summary refs log tree commit diff stats
path: root/todo.txt
Commit message (Expand)AuthorAgeFilesLines
* minor todo.txt updateAraq2017-12-271-2/+2
* cleanup todo.txtAraq2017-12-071-2/+0
* todo.txt updateAraq2017-11-281-0/+3
* todo.txt updatesAndreas Rumpf2017-11-161-2/+2
* 'nim doc' is now using version 2 of the documentation generatorAndreas Rumpf2017-11-161-1/+0
* todo.txt updatesAndreas Rumpf2017-11-081-0/+2
* breaking change: 'and' and 'mod' do not produce a subrange type anymore; fixe...Andreas Rumpf2017-10-301-1/+0
* work in progress: new implementation for 'a[^1]'Andreas Rumpf2017-10-291-1/+0
* made nimresolve part of the compilerAndreas Rumpf2017-10-291-2/+1
* deprecated unary '<'Andreas Rumpf2017-10-291-3/+0
* new feature: package level objectsAndreas Rumpf2017-10-291-2/+2
* first implementation of package level types that allow forwarding across modu...Andreas Rumpf2017-10-281-1/+0
* backend preparations for incomplete/forwarded object typesAndreas Rumpf2017-10-281-3/+7
* todo.txt updatesAndreas Rumpf2017-10-161-3/+0
* some progress on destroyer.nimAndreas Rumpf2017-10-101-1/+0
* minor todo.txt updateAndreas Rumpf2017-10-091-2/+1
* minor todo.txt updateAndreas Rumpf2017-04-021-1/+0
* todo updatesAraq2017-03-081-7/+0
* nimsuggest: fixes nimsuggest bug #45; do not show suggestions in string liter...Araq2017-03-081-0/+7
* finally todo.txt reflects reality againAndreas Rumpf2017-01-221-10/+7
* fixes #4721Andreas Rumpf2016-09-071-1/+0
* minor thingsAndreas Rumpf2016-08-241-0/+1
* make tests green againAndreas Rumpf2016-07-291-3/+0
* stdlib and compiler don't use .immediate anymoreAndreas Rumpf2016-07-291-1/+3
* generic multi-methods should work nowAndreas Rumpf2016-07-281-1/+0
* overloading of dot and parenthesis operators should now be done in .experimentalAndreas Rumpf2016-07-221-2/+1
* todo.txt updateAndreas Rumpf2016-07-181-1/+2
* added system.newSeqOfCap for improved efficiencyAndreas Rumpf2016-07-151-1/+0
* version 1 battle planAndreas Rumpf2016-07-151-13/+13
* documented new .this pragmaAndreas Rumpf2016-06-061-1/+0
* updated todo.txtAndreas Rumpf2016-06-061-3/+2
* fixes #4207Andreas Rumpf2016-06-011-0/+1
* Merge branch 'db_odbc2' of https://github.com/jlp765/Nim into jlp765-db_odbc2Andreas Rumpf2016-05-281-1/+1
|\
* | minor todo.txt updateAndreas Rumpf2016-05-281-1/+0
* | todo updatedAndreas Rumpf2016-03-181-1/+1
* | use 'using' instead of 'sig' keyword; cleans up new features a bitAndreas Rumpf2016-02-291-0/+3
* | some progress on GC v2Andreas Rumpf2016-02-031-0/+3
|/
* implements multi-line-comments; pounds are stripped from the doc commentsAndreas Rumpf2016-01-161-1/+1
* updated the documentation for the 'do' notationAndreas Rumpf2016-01-161-1/+0
* Merge branch 'crazy_concurrency' into no-echo-gotchaAndreas Rumpf2016-01-161-1/+1
|\
| * todo updateAndreas Rumpf2016-01-161-0/+1
* | finally removes 'echo ' gotchaAndreas Rumpf2016-01-151-3/+4
|/
* fixes #3550Araq2015-11-181-1/+1
* updated todo.txtAraq2015-10-281-86/+35
* first attempt to fix 'a[i]' handling in genericsAraq2015-09-121-1/+0
* implicit return types for iterators are now deprecatedAraq2015-09-101-1/+0
* documented NimScriptAraq2015-09-071-2/+0
* fixes #2590; methods now require a .base annotationAraq2015-09-061-1/+0
* Nimble is officially a part of Nim nowAraq2015-09-051-1/+1
* split os into os and ospaths parts; ospaths is available for NimScript; bette...Araq2015-09-041-1/+1
s='alt'>
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

                       
 


                                                                    

                                                                   

                                                   

 

                    
 
                                            
                                           
                                  

                                                                       
                                         
                                                           
                                                    
                                                         
                                                                                



                            
                                

                                                                      
                                                
                                   
                                                             
 
                                      


                                                                   
 
 



                                      

                                                                             
 



  
                                             



                                                                       


           







                                                                    


                                                                        
                                       
version 1.0 battle plan
=======================

- make 'not nil' the default (produce warnings instead of errors for
  a smooth migration path)
- case objects needs to be safe and need to support pattern matching
- implement a way to forward object type declarations across module
  boundaries; C++ style
- fix "high priority" bugs
- try to fix as many compiler crashes as reasonable


Not critical for 1.0
====================

- find a solution for the  x.f[T](y)  gotcha
- implement ``.delegate`` for .experimental
- annotation support for getType()
- make '--implicitStatic:on' the default; then we can also clean up the
  'static[T]' mess in the compiler!
- ``not`` or ``~`` for the effects system
- document and stress test ``.partial`` object declarations
- figure out why C++ bootstrapping is so much slower
- The bitwise 'not' operator cold be renamed to 'bnot' to
  prevent 'not 4 == 5' from compiling. -> requires 'mixin' annotation for procs!
- make 'nil' work for 'add':
  - resizeString
  - incrSeq
  - addChar
- pragmas need 'bindSym' support
- pragmas need re-work: 'push' is dangerous, 'hasPragma' does not work
  reliably with user-defined pragmas
- memory manager: add a measure of fragmentation
- we need a magic thisModule symbol
- optimize 'genericReset'; 'newException' leads to code bloat

- prevent 'alloc(TypeWithGCedMemory)'?
- map ``string`` and ``seq`` to ``std::string`` and ``std::vector``
- macro support for '='; bind '=' to a memory region
- macros as type pragmas


Bugs
====

- VM: Pegs do not work at compile-time
- blocks can "export" an identifier but the CCG generates {} for them ...
- ConcreteTypes in a 'case' means we don't check for duplicated case branches


GC
==

- use slightly bigger blocks in the allocator
- resizing of strings/sequences could take into account the memory that
  is allocated


Concurrency
===========

- implement 'foo[1..4] = spawn(f[4..7])'

Low priority:
- support for exception propagation? (hard to implement)
- the copying of the 'ref Promise' into the thead local storage only
  happens to work due to the write barrier's implementation


CGEN
====
- codegen should use "NIM_CAST" macro and respect aliasing rules for GCC
- ``restrict`` pragma + backend support