mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 18:02:05 +00:00
C sources regenerated for new len(openarray) header that catches more bugs; symbol files should work again
This commit is contained in:
@@ -764,8 +764,8 @@ proc processMagicType(c: PContext, m: PSym) =
|
||||
of mOpenArray: setMagicType(m, tyOpenArray, 0)
|
||||
of mRange: setMagicType(m, tyRange, 0)
|
||||
of mSet: setMagicType(m, tySet, 0)
|
||||
of mSeq: setMagicType(m, tySequence, 0)
|
||||
of mOrdinal: nil
|
||||
of mSeq: setMagicType(m, tySequence, 0)
|
||||
of mOrdinal: setMagicType(m, tyOrdinal, 0)
|
||||
else: GlobalError(m.info, errTypeExpected)
|
||||
|
||||
proc newConstraint(c: PContext, k: TTypeKind): PType =
|
||||
|
||||
@@ -124,6 +124,8 @@ if [ $# -eq 1 ] ; then
|
||||
chmod 644 $docdir/regexprs.txt
|
||||
cp doc/rst.txt $docdir/rst.txt || exit 1
|
||||
chmod 644 $docdir/rst.txt
|
||||
cp doc/subexes.txt $docdir/subexes.txt || exit 1
|
||||
chmod 644 $docdir/subexes.txt
|
||||
cp doc/theindex.txt $docdir/theindex.txt || exit 1
|
||||
chmod 644 $docdir/theindex.txt
|
||||
cp doc/tools.txt $docdir/tools.txt || exit 1
|
||||
@@ -176,6 +178,8 @@ if [ $# -eq 1 ] ; then
|
||||
chmod 644 $libdir/system/assign.nim
|
||||
cp lib/system/atomics.nim $libdir/system/atomics.nim || exit 1
|
||||
chmod 644 $libdir/system/atomics.nim
|
||||
cp lib/system/avltree.nim $libdir/system/avltree.nim || exit 1
|
||||
chmod 644 $libdir/system/avltree.nim
|
||||
cp lib/system/cellsets.nim $libdir/system/cellsets.nim || exit 1
|
||||
chmod 644 $libdir/system/cellsets.nim
|
||||
cp lib/system/cgprocs.nim $libdir/system/cgprocs.nim || exit 1
|
||||
@@ -312,6 +316,8 @@ if [ $# -eq 1 ] ; then
|
||||
chmod 644 $libdir/pure/strtabs.nim
|
||||
cp lib/pure/strutils.nim $libdir/pure/strutils.nim || exit 1
|
||||
chmod 644 $libdir/pure/strutils.nim
|
||||
cp lib/pure/subexes.nim $libdir/pure/subexes.nim || exit 1
|
||||
chmod 644 $libdir/pure/subexes.nim
|
||||
cp lib/pure/terminal.nim $libdir/pure/terminal.nim || exit 1
|
||||
chmod 644 $libdir/pure/terminal.nim
|
||||
cp lib/pure/times.nim $libdir/pure/times.nim || exit 1
|
||||
@@ -328,6 +334,8 @@ if [ $# -eq 1 ] ; then
|
||||
chmod 644 $libdir/pure/xmlparser.nim
|
||||
cp lib/pure/xmltree.nim $libdir/pure/xmltree.nim || exit 1
|
||||
chmod 644 $libdir/pure/xmltree.nim
|
||||
cp lib/pure/collections/critbits.nim $libdir/pure/collections/critbits.nim || exit 1
|
||||
chmod 644 $libdir/pure/collections/critbits.nim
|
||||
cp lib/pure/collections/intsets.nim $libdir/pure/collections/intsets.nim || exit 1
|
||||
chmod 644 $libdir/pure/collections/intsets.nim
|
||||
cp lib/pure/collections/lists.nim $libdir/pure/collections/lists.nim || exit 1
|
||||
|
||||
@@ -309,15 +309,12 @@ proc newSeq*[T](s: var seq[T], len: int) {.magic: "NewSeq", noSideEffect.}
|
||||
## This is equivalent to ``s = @[]; setlen(s, len)``, but more
|
||||
## efficient since no reallocation is needed.
|
||||
|
||||
when defined(newOpenArrayLen):
|
||||
proc len*[T: openArray](x: T): int {.magic: "LengthOpenArray", noSideEffect.}
|
||||
else:
|
||||
proc len*[T](x: openArray[T]): int {.magic: "LengthOpenArray", noSideEffect.}
|
||||
proc len*[T: openArray](x: T): int {.magic: "LengthOpenArray", noSideEffect.}
|
||||
proc len*(x: string): int {.magic: "LengthStr", noSideEffect.}
|
||||
proc len*(x: cstring): int {.magic: "LengthStr", noSideEffect.}
|
||||
proc len*[I, T](x: array[I, T]): int {.magic: "LengthArray", noSideEffect.}
|
||||
proc len*[T](x: seq[T]): int {.magic: "LengthSeq", noSideEffect.}
|
||||
## returns the length of an array, a sequence or a string.
|
||||
## returns the length of an array, an openarray, a sequence or a string.
|
||||
## This is rougly the same as ``high(T)-low(T)+1``, but its resulting type is
|
||||
## always an int.
|
||||
|
||||
|
||||
10
todo.txt
10
todo.txt
@@ -2,13 +2,10 @@ version 0.8.14
|
||||
==============
|
||||
|
||||
- BUG: type TX = TTable[string, int]
|
||||
- BUG: len(openArray) breaks symbol files
|
||||
- BUG: temp3.nim triggers weird compiler bug
|
||||
- BUG: --debugger:on does not work with talloc.nim
|
||||
- warning for implicit openArray -> varargs conversion
|
||||
- implement explicit varargs; **but** ``len(varargs)`` problem remains!
|
||||
--> solve by implicit conversion from varargs to openarray
|
||||
- implicit invokation of `items`/`pairs` seems nice
|
||||
- implicit invokation of `items`/`pairs` seems nice; ensure items(23) does
|
||||
not compile though
|
||||
|
||||
version 0.9.0
|
||||
=============
|
||||
@@ -125,6 +122,9 @@ Low priority
|
||||
need to recompile clients; er ... what about templates, macros or anything
|
||||
that has inlining semantics?
|
||||
- codegen should use "NIM_CAST" macro and respect aliasing rules for GCC
|
||||
- warning for implicit openArray -> varargs conversion
|
||||
- implement explicit varargs; **but** ``len(varargs)`` problem remains!
|
||||
--> solve by implicit conversion from varargs to openarray
|
||||
|
||||
Version 2
|
||||
=========
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
News
|
||||
====
|
||||
|
||||
2011-XX-XX Version 0.8.14 released
|
||||
2012-XX-XX Version 0.8.14 released
|
||||
==================================
|
||||
|
||||
Version 0.8.14 has been released! Get it `here <download.html>`_.
|
||||
|
||||
Reference in New Issue
Block a user