Motivation
----------
Currenly tarballs for linux created manually. ZIP files are not
suitable, because they do not preserve unix file permissions.
Modification
------------
Implement 'koch xz' command to produce dist tarball in xz format. Also
the same command implemented in niminst.nim.
Result
------
Now it is easy to create source distribution for git stapshot and use it
further in packaging scripts.
Motivation
----------
Some linuxes (like Fedora) actually multiarch. And it means that
libgc.so.1 not always installed into /usr/lib. It is better to entrust
this job to ld and system configuration for it.
Modification
------------
Use relative path for Boehm GC on 'other' OS (and linux in particular)
Result
------
It is possible now to build nim with --gc:boehm on linux
Motivation
----------
peekLine procs use defer to reset position in the stream, but it also
make them always return nil.
Modification
------------
Explicitly set result value in peekLine, and write missing unit test.
Result
------
Tests are green and bug is fixed
Motivation
----------
External tools need to know whether or not any test in suite failed. For
example buildbot, or packaging tool would like to stop the execution and
mark it as failed if some tests does not pass.
Modification
------------
Add `--pedantic` switch to tester program which will force it to quit
with non-zero exit code if at least one failure detected. Also update
`tests()` proc in koch to inspect result from tester and propagate it to
user.
Result
------
Nothing has changed in default behaviour. But following invocations will
exit with non-zero code if there failed tests:
./koch tests --pedantic all
./tests/testament/tester --pedantic all
Corrected `noSideEffect pragma` links in lib/system
(The newer documentation uses slightly different links)
Corrected `noSideEffect pragma` in types links to match the updated link names
Minor link adjustment in stmts to match the newer link names
Since typedesc are exception in macros and they are not implicitly converted to
NimNode on macro call, we need some means to perform such conversion on demand.
Fortunately it is as simple as declaring new magic "NGetType" proc with
typedesc parameter.
NOTE: Keeping actual macro exceptional behavior for typedesc is important,
since it allows passing typedesc macro parameter to other procs or macros
expecting type parameter. If typedesc parameter was implicitly converted, then
we would lost this ability.