- Add
Iter(SubSeq)
- Add
=~(Eachable1, Pfx, MatchContext)
- Add
DecodeHints
- Add
=~(DecodeHints, ProcessesPipeline, MatchContext)
- Add
AtPath
pattern - Add experimental
ResetPath
pattern
- Add default
=~(Any, Any, MatchContext)
which returnsfalse
- Improve
decode()
implementation foraws
command - Improve
=~(Str, SubSeq, MatchContext)
- Fix MatchContext._path when matching elements in =~(Any, Arr, MatchContext)
- Fix
in(Int, NumRange)
which was causingfor i in 0 ...
to run once instead of not running
- Add
assert(Fun, Type, Str)
for asserting that the code throws the given exception. The type must be subtype of Exception. - Add namespace
net
- Add networking
c_sockaddr
,c_sockaddr_un
,c_sockaddr_in
- Add networking functions:
socket()
,bind()
,listen()
,accept()
,recvfrom()
,send()
- Add networking constants:
SOCK_STREAM
,SOCK_DGRAM
,SOCK_RAW
,MSG_OOB
,MSG_PEEK
,MSG_WAITALL
(all prefixed withC_
) - Add
Not
type and support in pattern matching - Add
env:
option to pass environment when running external programs - Add
ensure(Int, NumRange)
- Add
last(Eachable1, Any)
, the counterpart of first() - Add
skip(Iter, Any)
- skip elements matching the pattern - Add
skip(Iter, Int)
- skip given number of elements - When a function is called from CLI, the output is now displayed using experimental
echo_cli()
- Add
AWS2::regions(CommandsPipeline, Arr)
- Add
IfExists
pattern for optionally present fields - Add
before_first(Str, Str)
- get the piece before first occurrence of the delimiter - Add
after_last(Str, Str)
- get the piece after the last occurrence of the delimiter
- Add
UndefinedUpVar
exception, thrown when accessing undefined "upvar" - Following types now inherit from
Error
, notException
:NotImplemented
,ReadFail
,RequireFail
,MainFail
- Experimental syntax - allow many additional elements
x.HERE
andx::HERE
- Fix and improve documentation
- Improve
inspect()
- Add
regs
parameter toAWS2::regions(Fun)
$(log: ...)
can now take Str to prefix the message- Improve
retry()
logging - Improve
Time(Str)
is_subtype(Type, Type)
is now deprecated, use<=
operator, example:T1 <= T2
. Solves #391.typeof(Any)
is now deprecated, useType(Any)
instead.x \ f
syntax is now deprecated, usex.f()
andx.{...}
instead.
- GCC 9 on macOS is not supported anymore - it's broken
- Parsing of
curl -i ...
command into {"code": Int, "message": Str, "headers": Hash, "headers_arr": Hash, "body": Str} - Add
decode(Str, p)
, wherep
is aPath
or its subtype. - Add
assert(Path)
- Add
Bool(Real)
- Add experimental
native_ll_maybe_wrap
- Add
TmpDir
- Add
replace(File, Any, Any)
for in-place replacement
- Fix #451 - decode(Bool) is not strict enough
group(Eachable1, Fun)
now has additional parameterv
:group(e:Eachable1, k:Fun, v:Fun=...)
.v
tells how to process values before adding to the resulting multi-value-map.- The
?
operator now takesAny
instead ofFun
as the right argument. - Fix
tr
exception when pattern is aHash
and it should match not at the top level. Argv
now acceptsRepeat
keys:{Repeat('--repeat'): my_arr}
- Support
my_arr[idx] = val
for negativeidx
es. c_pcre_exec
now behaves correctly when too many captures are specified- Fix crash when accessing
RegExp#options
. - Improve GitHub build action
- Add builds: Arch Linux, centos 7 and 8, fedora 34 and 35, Amazon Linux 2
- Better exception message when redirecting to
>${null}
. - Website update & dark theme support
($())
is now a valid syntax for the identifier$()
Argv
-['--repeat']
is deprecated in favor ofRepeat('--repeat')
attrs()
is deprecated, usemeta()
instead
Str(Path)
is now returning.path
, not<Path path=...>
the_one()
is now fixed and will throw exception instead of returning null when appropriatefound_none
orfound_more
is not specified.
- Add
Hash(Hash)
(a no-op) - Add experimental
PatternAction
type for combining a pattern and an action to take when there is a match - Add experimental
->
syntax for constructingPatternAction
- Add experimental
=~(x, PatternAction)
which checks the pattern and conditionally runs the action - Add experimental
MatchContext
type - Add experimental
Deep
type for deep data structure matching - Add
Hash(Eachable1)
- Issue #436 - Add Hash(array_of_key_value_pairs) - Add
exec()
methods - Issue #459 partial()
is now deprecated because it's not used- Add
Lit
type to convey literal value, devoid of any "magical" meaning - Add
collector(Stats, Fun)
debug(Str, Fun)
is now supported- Add
ensure(Arr, T)
forT
being subtype ofArrLike
- Add
fork()
, higher level wrapper aroundc_fork()
- Add
Str(ArrLike)
inspect()
fix for partially applied functions:ngs -pi 'X*2'
does not fail anymore.=~(x, Hash)
now supports patterns for keys- Documentation generation now handles well
ENV
as default value for a parameter. - Reorganize stdlib to eleminate multiple
inherit()
calls - Remove unused
most_by_cb()
- Booleans now compare correctly when used as
Hash
keys exit_hook
now removes hooks in childfork()
- It is now possible to redirect to File without using
.path
-f=TmpFile(); $(echo a > $f)
- Issue #490 test.ngs
in the root folder now accepts optional file names; defaults tolang-tests.ngs
,stdlib.ngs
, and all*.ngs
files inlib/autoload
- Remove deprecated
nofail:
option write(f:File, s:Str)
now returnsf
- Deprecate
without(Eachable1, Any)
- Deprecate
without(Eachable2, Any)
- Add
replace(Str, RegExp, Str)
- Add
Bool(UserDefinedMethod)
- Add
c_pow(Real, Real)
,pow(Real, Real)
,pow(Int, Int)
- Add
decode()
for JSON Web Token (JWT) - Add
echo(File, Str)
- Add
echo(File, Lines)
- Add
C_DEFS
namespace for Cdefine
d constants (currently only with_SC_NPROCESSORS_ONLN
but will add more later, issue #113) - Add
c_sysconf()
,sysconf()
- Add
CleanupPolicy
,KeepCleanupPolicy
,RemoveCleanupPolicy
,KeepOnErrorCleanupPolicy
to be used withTmpFile
TmpFile
now accepts optionalCleanupPolicy
argument (defaults toRemoveCleanupPolicy
)- When running
ngs -e ...
,ngs -p ...
, etc - allow using_
instead offetch()
. - Add "curl" installer.
- Fix
Str(File)
- now display correct type name for subtypes - Make
decode_base64()
more robust pmap(Eachable1, Fun)
now limits number of threads (issue #113)- Add documentation for
MaybeFile
TmpFile
is not experimental anymoreencode_json()
withpretty=true
can now handle larger inputs
- Remove unused
defined
keyword
- Add
write(Str)
- write to stdout - Add
del(HashLike, Any)
- remove item fromHashLike
, similar todel(Hash, Any)
- Add
trim(Str)
- trim whitespace at the beginning and end of the string - Add
-ppj
command line switch - print "pretty" JSON. Requiresjq
program. - Add
assert(val, pattern, msg)
-val
must match thepattern
orAssertFail
will be thrown. - Add
Repeat
type - Signifies repetition of a pattern (or something else), to be used in patterns (and maybe somewhere else). - Add
group(Eachable1, Str)
- group by field - Add
uniq(Eachable1, Str)
- uniq by field - Add
duplicates(Eachable1, field_or_callback)
- find duplicates
- Introduced
=~
and!~
matching operators. - The
Pred
machinery replaced with=~
and!~
match/non-match operators for simplification. - Some
guard
clauses are now using=~
and as a result are more concise. inspect()
now shows attributes (including documentation) of methods and types.uniq()
now works withEachable1
(previouslyArr
) and has optional callback.reduce(Eachable1, Fun)
now does not assume that the givenEachable1
supportsIter()
encode_json()
now supportshints
optional prameter (of typeHash
).pretty
hint withtrue
value will "prettify" the output.partition(Eachable1, pattern)
now has default pattern (Bool.constructors
)store()
now supportshints
optional prameter (of typeHash
).pretty
hint withtrue
value will "prettify" the output.require()
now treats./something.ngs
as an absolute path (to fix later: treat as relative to the file)AnyOf
andAllOf
are no more experimental.- Increase fork-till-exec memory allocation from 1M to 10M (to avoid crashes)
Str(Set)
now works properly.- Improve
exit_hook
robustness. - Fix exception handling when calling
map()
with invalid arity callback.
=~
match againstArr
now matches element-wise. Previously only one-element-array was supported as the second argument and it had to match all elements of the first argument.
- Add
Bool()
- snap packaging (Thanks, @organom)
- CLI
- Fix Homebrew build (Issue #365)
- Fix GitHub actions (Thanks, @chenrui333)
- Add dependabot support to keep actions to the latest (Thanks, @chenrui333)
- Add toc for README (Thanks, @chenrui333)
- Improve build (Thanks, @chenrui333)
- Fix and improve documentation
ngs --help
andngs -h
now work
- Homebrew formula and readme instructions (Thanks, @SeekingMeaning)
- Homebrew badge (Thanks, @organom)
main()
can now be defined as part ofNamespace
of the main file:ns { F main(...) ...}
- Add experimental
only(val, predicate, mapper)
- Add
realpath(Str)
- Use
NGS_PATH
environment variable forrequire()
.NGS_DIR
is deprecated.
- Github actions instead of Travis (Thanks, @organom)
$(log ...)
now logs i/o redirections- Remove unused
ValueWrapper
type - Bootstrapping -
MY_NAMESPACE::main
works even ifmain
is not defined in the main file, allowingngs -e 'require("my_module.ngs")
to run its ownmain()
filterk()
,rejectk()
,filterv()
,rejectv()
- the predicate is now optional and defaults toidentity
.- Got rid of
xxd
build time dependency - make
sys/poll.h
dependency optional
- Remove deprecated
n()
switch
andcond
are now consistent with if, accepting{...}
code blocks for the LHS (switch {a=1; a+a} {...}
,cond { {a=b+c; a>0 } ... }
).
- Add
setup-dev-env
target in Makefile - Add
get(MatchSuccess, Int, dflt)
- Add
Null()
constructor - Add experimental
AllOf()
- Add experimental
Bool(AllOf)
- Add experimental
Bool(AnyOf)
- Add
linux
andwindows
parameter toec2din.ngs
- More concise tests with
THROWS
pseudo-operator - Add
NamedInstances
(aka enums) - Add experimental
Arg(Program)
- Function with only guard statement no more crashes NGS
- Add missing
Bool()
call infor(..., HERE, ...)
- Functions that take predicates - default the predicates to
identity()
and improve documentation filter(HashLike, predicate)
- thepredicate
doesn't have to beFun
anymorefilter(hl:HashLike, predicate)
now returns value of the same type ashl
escape_bash()
- fixed and it's not experimental anymoresection
insidens
now working properly- Top-level/commands syntax now treats as expression syntax any expression that starts with identifier followed by "." or "::".
- Support
block.return()
to returnnull
each(MultiMethod, Fun)
now returns the first parameter- Improve readability of
partition(Eachable1, predicate)
Int(Str)
now throws if the string contains garbage in the endIPAddr()
andIPNet()
now validate input+(Hash, Hash)
now handles subtypes properly (does not return aHash
but the subtype)ns { ... }
syntax now allows empty body -ns { }
.- Native
attrs()
methods - not crash on invalid argument attrs()
now defaults to emptyHash
, not tonull
.- Improve
Str(Type)
echo(INVALID_FILE_DESCRIPTOR, ...)
now throwsWriteFail
write(INVALID_FILE_DESCRIPTOR, ...)
now throwsWriteFail
- Experimental
OneOf
renamed toAnyOf
for naming consistency - Remove unused literal syntax for table
- Syntax:
F
function definition must be followed by a space when the function is named - Remove deprecated
table(Arr)
- Remove deprecated
filter(Eachable1, Str, Any)
- Remove experimental
min(Eachable1, Fun)
andmax(Eachable1, Fun)
- Deprecated
ensure_array(x)
in favor of the newerensure(x, Arr)
- Concurrency
- Add
c_pthread_cond_*
methods - Add
Cond
type that exposespthread_cond_*
functionality - Add
BlockingList
linked list type with bockingshift()
andpop()
methods - Add
Executor
type - Add
ThreadedExecutor
type for simplified processing in threads - Add
pmap(Eachable1, Int, Fun)
- parallel map using limited numbers of threads - Add
pfilter(Eachable1, predicate)
- parallel filter - Add
pfilter(Eachable1, Int, predicate)
- parallel filter using limited numbers of threads
- Add
- Add
block IDENTIFIER BODY
syntax - Add
section NAME BODY
syntax - Add experimental
TmpFile
- temporary file that is deleted automatically on exit - Add experimental
Program
(allowsassert(Program("dd"))
) - Add experimental
sortv()
- Add experimental
OneOf
type (allows"abc" ~ OneOf(Int, Str)
) - Add
List
linked list type - Add
JsonData
method which converts to JSON-compatible data structures; used byencode_json
now. - Add
has_no(container, element)
- Add
echo(ProcessesPipeline, Str)
- Automate updating
ngs.vim
syntax file - Add
lines()
- returns all standard input as array of lines - Add
words(Str)
- Add
Results
type, array-like withResult
items - Add
ResultsException
type (with.results
beingResults
type) - Add
List
type - Add
inspect(Eachable1)
- Add
len(Box)
- Add
len(NumRange)
forInt
ranges - Add
RetryBodyMissing
exception - Add
Namespace
type. It is now returned byns
block. - Add
Pred(NumRange)
. - Default code to run when not given on command line is
F default_argv_code() { fetch() }()
. - Add Vagrantfile
- Add
~(x, t:Type)
- Add
has_index(Eachable1, Int)
- Add
len(Int)
- Add experimental
Pred(OneOf)
- Add experimental
TODO(Str)
ec2din.ngs
now takes experimental-c COMMAND
- Rare crashes due to GC fixed
- Multi-stage builds for the docker image (thanks, @organom)
Hash(Arr, Str)
is nowHash(Eachable1, Str)
(to supportArrLike
)Hash(Arr, Fun)
is nowHash(Eachable1, Fun)
(to supportArrLike
)- Add missing brew dependencies to
install-mac.sh
(thanks for reporting, @zzamboni) - Add
executable
toinspect(Process)
and to exception reporting. basename()
is now implemented instdlib.ngs
as opposed to previously usingBASENAME(1)
.finished_ok()
now checks for known programs by their basename and not absolute paths (@zzamboni reported failing tests; this changes should fix it)echo(Int, Lines)
is nowecho(Any, Lines)
- Fix
wait(Process)
to behave correctly whenexit_code
is not set butexit_signal
is set. - Fix
$(blah >${true})
print_exception()
- add optional parameterecho
exception_specific_message()
- refactored for reusability- Improve error messages for syntax errors
push(e:Enum, name:Str)
now returnse
stat()
methods now return timestamps too (access/modify/change)pmap()
now throwsResultsException
if any of the threads failStats()
now works withEachable1
allowing counting characters in a string for examples- Fix Pred(SubSeq) and Pred(RegExp) to prevent endless recursion
- Fix
$(... >${false})
syntax - Fix
c_strptime()
- Improve
rand_uniq
implementation - Improve
MatchSuccess
- include pattern - Improve
MatchFailure
- include data and pattern - Move
get(Arr, Int, Any)
from C to stdlib and support negative indexes. - Merged two
first()
methods into one - Fix
Hash
comparison fornull
+
character is now valid "word" symbol -$(dig +short yahoo.com)
is now valid syntax
- Remove
Return
type and associated machinery - Remove deprecated
filter(Eachable1)
- Remove deprecated
to_exit_code()
- Brew packaging for MacOS
$()
now returnsProcessesPipeline
(a new type). You should check all the places in your code that useCommandsPipeline
. Code that handles result of$(...)
should be changed to expectProcessesPipeline
, notCommandsPipeline
.$(nofail my_command)
was removed. Use$(ok: my_command)
. Deprecated$(nofail: my_command)
still works.
- Add
chdir()
. - Add
set(obj, **kwargs)
. Sets given fields. - Add
copy(nti:NormalTypeInstance)
. Make shallow copy of an object. Lines
type. Array of strings to be processed as a unit for output purposes (echo
,warn
,error
).inspect()
now returnsLines
.- Add
-pil
command line switch for "Print Inspect()ed Lines" - Add
collector
forArrLike
. Enablescollector/ArrLike() ...
. - Add
mapo(Str, Fun)
(map to original data type) - map a string to a string, character by character. - Add
assert_bool(Any, Str)
totests.ngs
- Add
+(a:Eachable1, b:Eachable1)
which is only defined for same types ofa
andb
. - Add
-(Str, Ifx)
- Add experimental
is_subtype(t:Type, maybe_supertype:Type)
. - Add experimental
ensure(x, t:Type)
forEachable1
subtypes. Returns eitherx
if it's already of typet
or new object of typet
with single itemx
. - Add
ProcessesPipeline
type - Add
inspect(pp:ProcessesPipeline)
- Add
ProcessRedir
type;Redir
type was renamed toCommandRedir
.CommandsPipeline
hasCommandRedir
whileProcessesPipeline
hasProcessRedir
. - Add
Threads(ArrLike)
type - Add
join(ArrLike, Str)
- Add
.(ArrLike, Str)
- Add
collector(Set, Fun)
, allowingcollector/Set() ...
- Add
MethodParams
type - Add
MethodParam
type (and subtypesRequiredMethodParam
,OptionalMethodParam
,SplatMethodParam
,ArrSplatMethodParam
,HashSplatMethodParam
) - Add
NGS_EXIT_BACKTRACE
environment variable. If true, prints backtrace onexit()
. - Add
NGS_WARN_BACKTRACE
environment variable. If true, prints backtrace onwarn()
. - Add
NGS_ERROR_BACKTRACE
environment variable. If true, prints backtrace onerror()
. - Add
$(ok_sig: ...)
option. If external program terminates by specified signal, NGS will not throw exception. - Add
$(cd: ...)
option. Runs the external program in the specified directory. - Add
$(log: ...)
option. Logs the program to be executed first and then executes the program.
- Fixed
catch
bug that was resultingdump Uncaught exception
messages whencatch(e:MyType)
was handlinge
of non-MyType
. indexes(arr:Arr, predicate)
upgraded to handle eachable:indexes(e:Eachable1, predicate)
indexes(arr:Arr, r:PredRange)
- now takes optionaldflt
parameter:indexes(arr:Arr, r:PredRange, dflt=...)
Box()
now returns anEmptyBox
(thanks @organom !)Pred
improved so that.filter({"a": 1})
will not throw exception if there is noa
field.- Better
c_dlopen()
error message T.user = x
for native types now returnsx
and notT
, consistent with other assignmentsReturn
is now a subtype ofException
. This fixes failingFailure(Return)
, which only works onException
.- Remove
any()
andnone()
forBox
- they work anyway becauseBox
isEachable1
.any()
andnone()
are defined forEachable1
. - Faster
==(Hash, Hash)
- Faster
init(Hash)
- Fix
C_WEXITSTATUS
- return null whenWIFEXITED
returns false. - Fix
C_WTERMSIG
- return null whenWIFSIGNALED
returns false. - Fix
decode_hex()
- now handles inputs of even length, not specifically 2. This makesdecode_hex()
exact reverse ofencode_hex()
. - Work around strange error (Issue #180) after
execve()
was failing on MacOS. Now executing minimal amount of code after failingexecve()
. +(s:Str, a:Eachable1)
and +(a:Eachable1, s:Str)
now return result of exact the same type asa
, notArr
.- Improve
print_exception()
- Improved exception message for environment variable access, when the environment variable is not set.
- Remove MacOS-specific "stupid" malloc. GC library appears to work OK on MacOS now.
- Got rid of uthash dependency
- Finished moving
todo.txt
to GitHub issues - Improve
ArrLike
implementation bin/elb-describe-lbs.ngs
- Instances are now sorted by LaunchTime- Improve
finished_ok
implementation: easier handling of "known programs", refactor to supportok_sig
option. - Warning on usage of
`line: `
option on non-last command. CommandsPipeline
related changes which have low probability of breaking anything.wait(cp:CommandsPipeline)
is nowwait(pp:ProcessesPipeline)
and returnspp
.Str(cp:CommandsPipeline)
is nowStr(pp:ProcessesPipeline)
.kill(cp:CommandsPipeline, sig:Int=SIGNALS.TERM)
is nowkill(pp:ProcessesPipeline, sig:Int=SIGNALS.TERM)
lines(cp:CommandsPipeline)
is nowlines(pp:ProcessesPipeline)
lines(cp:CommandsPipeline, cb:Fun)
is nowlines(pp:ProcessesPipeline, cb:Fun)
assert_...(cp:CommandsPipeline, ...)
are nowassert_...(pp:ProcessesPipeline, ...)
Argv()
- support for arguments that need repeated argument name
- Deprecated
Pred(BasicTypeInstance)
- Removed deprecated
nuke_null()
- Terminal
- Improving error messages shown when exceptions occur.
- Add experimental
escape_bash(Str)
- quote argument for bash
- Running NGS without arguments no more produces an error but a friendly usage message
- Docker image for each commit; built by Travis
- Threads-related
- Add
Thread.local
- thread local storage (a Hash)Thread.local.thread
- current thread object
- Threads are now named:
- Add
init(t:Thread, name:Str, f:Fun)
- Add
init(t:Thread, name:Str, f:Fun, arg)
- Add
- Add
aws
command output parsing -.Reservation
renamed to._Reservation
- Add
eachk()
andeachv()
Str(s:Str, target_width:Int)
extended toStr(s:Str, target_width:Int, ch=' ')
, allowing padding with given character- Exiting
- Add
ExitException
- parent of all exceptions withexit_code
fieldFatalError
is now a child ofExitException
- Add
NormalExit
(child ofExitException
)
- Add
exit(exit_code:Int=1)
- Add
exit(s:Str, exit_code:Int=1)
- Add
- Add
dollar \$ escaping syntax
- Add
map_idx_val(e:Eachable1, mapper:Fun)
- Add
myip()
- returns your IP as observable from the Internet - Add
each()
forSuccess
andFailure
- Add experimental
each_chunk(e:Eachable1, n:Int, cb:Fun)
- Add experimental
decode(s:Str, t:Type)
- Add experimental
nd
(Ngs Data) command line tool
- Fix incorrect parsing of immediate hashes:
%{k1 v1 k2 v2 ...}
- Improve
Pred(r:RegExp)
- Fix
join(Arr)
for array ofThread
s Bool(Path)
now checks that underlying file system object is of the correct typedir()
now skips.
and..
entriesdir()
now has "raw" parameterdecode()
now parses "locate" outputnop()
now takes any argumentsretry()
- removed "catch_exceptions" parameterassert_path_exists(
) - improve implementationE_...
constants from C now include all constants available during compilationinit(Failure, ...)
- only accept Exception as second argumentdecode_json()
- improve exception
AWS2
-- second version of AWS (among other:.Region
renamed to._Region
)bin/na
("NGS AWS") -- CLI for AWS wrapper around declarative primitives librarybin/nd
("NGS Data") -- Data manipulation utility- documentation
- Moving
todo.txt
to GitHub issues
- Add
Time
, built on exposed c primitives - gettimeofday, strptime, mktime - Add
Set
type - Add
.user
field for arbitrary data on types - Add
bin/hn.ngs
-- "tail -f" like script for Hacker News - status() will override previous one on tty using escape codes if no other output was sent between the calls
- status() - use iTerm2 badges
join(Thread)
- throw exception if the other thread had exception- Improve AWS declarative primitives library
- Implement file descriptors redirection:
$(my_prog 2>${1})
- Better
Hash
iteration in stdlib due to additional exposedll_hash_*
primitives andLLHashEntry
type. - Fix Linux installation instructions
- Update Mac installation instructions
- Automatically set reference to namespace in methods defined in
ns { ... }
- Improve memory allocation - use "atomic" memory in few additional places
- Rename "Method" to "Multimethod" and "Method implementation" to "Method" all over
- Rename "attribute" to "field" all over
- Deprecate KV
- Rename
to_exit_code
toExitCode
for consistency (deprecateto_exit_code
)
- AWS2 -- second version of AWS
bin/na
("NGS AWS") -- CLI for AWS wrapper around declarative primitives libraryTable2
-- the more advanced tabular data holder- documentation
- Experimental syntax for building documents
- Add experimental
MapIter
,FilterIter
,FunIter
- Fix missing
version.h
andChageLog
update in 0.2.2
- Fix
assert_*
functions after pipes support in 0.2.0
- Add
lines(cp:CommandsPipeline)
to fix broken$(command).lines()
after pipes support in 0.2.0 - Add
to_exit_code(cp:CommandsPipeline)
to fix broken exit codes after pipes support in 0.2.0 - Fix tests broken with
RegExp
syntax change in 0.2.0 - Fix
Str(t:Time, format:Str=TIME_FORMAT, gmt:Bool=false)
that was not usingformat
- Add experimental
Pred(h:Hash)
- BREAKING: Swap write() arguments from write(what, file) to write(file, what) Many methods with old arguments order will still work but will give a deprecation warning.
- Pipes support
- Add optional "count" (bytes) parameter to read(fd:Int)
- Add preliminary
Str(t:c_pthread_t)
- Add missing
id(rrset:RecordSetRes)
- Add
abs(i:Int)
- Add
decode_uri_component(s:Str)
- Slightly improved documentation
- Improve stability of
Str(r:Res)
- Fix error handling in
[](arr:Arr, r:NumRange)
- Add optional "max_parts" parameter to split(s:Str, delim:Str)
- A bit more readable inspect() output
- Fix backslashes syntax in
/regular expressions/
- Incorporate Mac OS X support contributed by Zeev Glozman