summary refs log tree commit diff stats
path: root/todo.txt
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2009-05-08 16:36:06 +0200
committerAndreas Rumpf <rumpf_a@web.de>2009-05-08 16:36:06 +0200
commitdb4f617afcd095db087dcb52e3ea603cca111da7 (patch)
treeeeffcc8fb523171dc394c136acf9b8006ec4138f /todo.txt
parent08bc9ac03c49db7bfcdee82f46aadf95a324e015 (diff)
downloadNim-db4f617afcd095db087dcb52e3ea603cca111da7.tar.gz
version 0.7.8
Diffstat (limited to 'todo.txt')
-rw-r--r--todo.txt118
1 files changed, 78 insertions, 40 deletions
diff --git a/todo.txt b/todo.txt
index 3e80ba6f1..66c4762f6 100644
--- a/todo.txt
+++ b/todo.txt
@@ -4,27 +4,17 @@ TO IMPLEMENT
 Plan
 ----
 
-* implement new memory manager --> hopefully faster turnaround times
 * implement LLVM backend --> faster turnaround times
-
-
-RST
----
-- footnotes; prefix :i: whitespace before :i:, _reference, `reference`__
-  __ anonymous: www.nimrod.org
+* implement ``p(.int, int.): string`` notation for resolution of overloaded
+  procs
 
 Bugs
 ----
 
-- BUG: check if "break" is valid is not complete: "break" within "for"
-  may be incorrect, if the called iterator is not in a loop
-  --> check that "yield" is inside a loop!
 - BUG: returning an array does not work --> see md5.nim module
 - BUG: if not nodeOfDegree(g, 1) >= 0: inc(counter)
-- BUG: addr/deref may not work when interpreting
 - BUG: the parser allows empty object case branches
 - BUG: when optmizing cgen.c with Visual C++, GCC, LLVM (O3), it breaks.
-- BUG: ``-cc:bcc`` command line option does not error
 - BUG: symbol files still do not work
 - BUG: tlastmod returns wrong results on BSD (Linux, MacOS X: works)
 
@@ -32,6 +22,12 @@ Bugs
 High priority
 -------------
 
+- new $$ string interpolation operator? 
+  $$"The value is $var &var" -- too hard to implement
+
+- find a way to reindroduce the cleanup() pass for C code generation: this
+  is hard because of partial evaluation --> symbol files will fix this as
+  a side effect
 - typeAllowed() for parameters...
 - implicit conversions from ``ptr/ref T`` to ``var T`` and from
   ``ptr/ref T`` to ``T``? Yes.
@@ -44,15 +40,40 @@ High priority
   implement
 - language change: inheritance should only work with reference types, so that
   the ``type`` field is not needed for objects! --> zero overhead aggregation
+- resizing of strings/sequences could take into account the memory that
+  is allocated
+
+
+Library
+-------
+
+- socket, http, ftp, email, fastcgi: implement from scratch
+- osproc for Windows
+- bignums
+
+- gui module
+- finish json module: hard
+
+- YAML module
+- ncurses bindings
+- python
+- TCL
+- automate module: expect-like module for Nimrod
+
+- for system:
+  proc `@` [T](a: openArray[T]): seq[T] = 
+    newSeq(result, a.len)
+    for i in 0..a.len-1: result[i] = a[i]
+    
+  --> ensure @[] calls the array version!
+
 
 For the next versions
 =====================
 
 - multi-processor support
 - IDE
-- better support for GDB?
 - support for generation of dynamic libraries
-- better code generator: skip ropes datastructure, it uses too much memory
 - make set optimizations part of the transformation (--> all backends profit
   from it), but this really needs a more abstract code generator
 
@@ -60,11 +81,8 @@ For the next versions
 Further ideas/nice to have
 ==========================
 
-- queues additional to streams: have to positions (read/write) instead of one
+- queues additional to streams: have two positions (read/write) instead of one
 - introduce: refany type???
-- CLR code generator; better use XYZ? --> Version 1.2?
-- provide an interactive shell: if the user wants his commands
-  to be executed, the command should end with #
 - implement packed arrays (bit arrays)/ packed records
 - implement tables (implement as library? - no! Builtin because of
   constructor syntax is nice to have)
@@ -119,23 +137,6 @@ Version 2
     
 
 
-Library
--------
-
-- gui module
-- finish json module: hard
-- socket, http, ftp, email, fastcgi: implement from scratch
-- ncurses bindings
-- osproc for Windows
-- bignums
-- python
-- TCL
-- automate module: expect-like module for Nimrod
-- parsecsv module
-
-- YAML module
-
-
 Low priority
 ------------
 
@@ -176,23 +177,25 @@ Low priority
         
   o.x = 13 # ambigious
 
-- implement stack walking via assembler for horribly advanced optimizers
-- use `` notation for identifier concatenation?
+- use `` notation for identifier concatenation
 - Visual C++: emit ``default: __assume(0);`` for optimization
 - macros: ``typecheck`` pragma; this is really a good idea! This allows
   transformations based on types!
 - make callconv a set
 - partial generic instantation is missing
-- get code generation for C++ exception handling right!
 - find a way for easy constructors and destructors; though constructors are
   flawed... destructors are not, however!
 - multiple dispatch: no, but provide a proc ``typeId`` to allow the user to
   implement it efficiently
-- replace ropes with strings in the C code generator: This may yield a HUGE
-  speedup of the compiler! (10%)
 - code generated for type information is wasteful
 
 
+RST
+---
+- footnotes; prefix :i: whitespace before :i:, _reference, `reference`__
+  __ anonymous: www.nimrod.org
+
+
 Changelog
 =========
 
@@ -542,4 +545,39 @@ Changelog
 - BUGFIX: iterators using open arrays
 - BUGFIX: [$anyEnum]
 
+0.7.6: release
+0.7.7:
+- implemented the "parsecsv" module
+- added ``math.TRunningStat`` object and its methods
+- added ``strutils.validIdentifier``
+- reStructuredText parser: implemented ``.. container ::`` directive
+- updated the website
+- ``cgi.stackTraceNewLine`` functionality
+- added ``cgi.decodeData`` 
+- BUGFIX: evaluation for ``mLengthSeq``, ``mLengthOpenArray``, 
+  ``evalSetLengthSeq``, ``evalNewSeq``
+- ``copy`` and ``newString`` are magics now; thus several more things
+  can be evaluated
+- ``evalAddr`` fixed
+- BUGFIX: generics are now processed earlier in the pipeline; thus 
+  generics can be used within macros
+- new module ``xmlgen``
+- ``macros.error`` now prints a stack trace
+- changed bootstrapping in ``koch.py`` and ``boot.nim`` to fix bug 
+  #369607.
+- implemented the new memory management; the GC does not take advantage of
+  it yet
+- BUGFIX: magics don't imply ``lfNoDecl`` any longer
+- BUGFIX: ``newString`` is not evaluated at compile-time anymore, unless
+  evaluation is requested
+- the GC now relies on the new memory manager
+- BUGFIX: check that "yield" is inside a loop!
+- BUGFIX: ``isAllocatedPtr`` still had a small bug
+- overflow checking for ``newSeq`` now works
+- BUGFIX: ``commands.processSwitch`` no errors if an argument is given to a
+  switch that does not receive one
+
+0.7.8: release
+
+