preparations for Nimble NimScript integrations; minor cleanups

This commit is contained in:
Araq 2015-08-18 14:01:40 +02:00
commit 9659540b18
7 changed files with 74 additions and 6 deletions

View file

@ -1,6 +1,9 @@
version 0.11.4
==============
- make tuple unpacking work in a non-var/let context
- built-in 'getImpl'
- document special cased varargs[untyped] and varargs[typed]
- The remaining bugs of the lambda lifting pass that is responsible to enable
@ -50,14 +53,50 @@ Low priority:
Misc
----
- make tuple unpacking work in a non-var/let context
- built-in 'getImpl'
- prevent 'alloc(TypeWithGCedMemory)'
Bugs
====
- Can lead to wrong C code:
template cd*(dir: string, body: stmt) =
## Sets the current dir to ``dir``, executes ``body`` and restores the
## previous working dir.
let lastDir = getCurrentDir()
setCurrentDir(dir)
try:
body
finally:
setCurrentDir(lastDir)
proc test =
cd dir:
var output = execProcess("git tag")
case meth
of DownloadMethod.git:
output = execProcess("git tag")
of DownloadMethod.hg:
output = execProcess("hg tags")
if output.len > 0:
case meth
of DownloadMethod.git:
result = @[]
for i in output.splitLines():
if i == "": continue
result.add(i)
of DownloadMethod.hg:
result = @[]
for i in output.splitLines():
if i == "": continue
var tag = ""
discard parseUntil(i, tag, ' ')
if tag != "tip":
result.add(tag)
else:
result = @[]
- VM: Pegs do not work at compile-time
- VM: ptr/ref T cannot work in general
- blocks can "export" an identifier but the CCG generates {} for them ...