summary refs log tree commit diff stats
path: root/doc/lib.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lib.txt')
-rw-r--r--doc/lib.txt9
1 files changed, 6 insertions, 3 deletions
diff --git a/doc/lib.txt b/doc/lib.txt
index b7c94b505..4185e6f74 100644
--- a/doc/lib.txt
+++ b/doc/lib.txt
@@ -189,6 +189,12 @@ Math libraries
   Floating-point environment. Handling of floating-point rounding and
   exceptions (overflow, zero-devide, etc.).
 
+* `basic2d <basic2d.html>`_
+  Basic 2d support with vectors, points, matrices and some basic utilities.
+
+* `basic3d <basic3d.html>`_
+  Basic 3d support with vectors, points, matrices and some basic utilities.
+
 
 Internet Protocols and Support
 ------------------------------
@@ -218,9 +224,6 @@ Internet Protocols and Support
 * `smtp <smtp.html>`_
   This module implement a simple SMTP client. 
 
-* `irc <irc.html>`_
-  This module implements an asynchronous IRC client.
-
 * `ftpclient <ftpclient.html>`_
   This module implements an FTP client.
 
016f3a457b0980259973f4b0089d25cd6bc'>d7cc9016f ^
aded62520 ^
85ea9593b ^

599b5d6dc ^


85ea9593b ^
0872e7a27 ^
e3e17009f ^

e2094bc6f ^

4f1725ad6 ^

e2094bc6f ^
97565826e ^
50d4224d4 ^


97565826e ^
6795d9931 ^


fdf1d1238 ^
6795d9931 ^
e3e17009f ^

e3e17009f ^

e2094bc6f ^

1d9343080 ^

f6c8f97fe ^

6795d9931 ^



e2094bc6f ^
e3e17009f ^
212457f5e ^
5d46e1eaa ^

6baca5869 ^

3d1d163ef ^

efae36685 ^



5d46e1eaa ^
e3e17009f ^

212fdc594 ^

ea8afebf8 ^
c08efb4c5 ^


212fdc594 ^
e3e17009f ^

a1879cae5 ^




ea8afebf8 ^
16c1a9085 ^


aded62520 ^

0fad659bf ^

851d2a266 ^


aded62520 ^
e3e17009f ^

500394225 ^


e3e17009f ^
91cab6dbd ^
e3037a2f3 ^



9e884c31d ^
e3037a2f3 ^

0ce28d15c ^



d7cc9016f ^
e3037a2f3 ^

ee366f174 ^





e3037a2f3 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
                       
 
                                             
 
                                                             

                                                                              



                                                                              

                                                             
                                                                               

                                                                             


                                                                             
 
 

                                             

                                                                          

                                                                          
 
                                                                     


                                                                             
 


                                                                                  
                                                              
 

                                     

                     

                                                                           

                                                                            

                                                                         



                                                                                    
 
                   
 

                                                                    

                                                                      

                                                                                 



                                                                      
 

                      

                                                                                 
                                                         


                                                                           
 

                    




                                                                          
                                                                    


                                                                        

                                                                         

                                                                         


                                                                         
 

                


                                                                                
                    
 



                                                                          
                                                                             

                                                   



                                                                             
                                                                               

          





                                                                                 
            
## v0.19.X - XX/XX/2018

### Changes affecting backwards compatibility

- The stdlib module ``future`` has been renamed to ``sugar``.
- ``macros.callsite`` is now deprecated. Since the introduction of ``varargs``
  parameters this became unnecessary.
- Anonymous tuples with a single element can now be written as ``(1,)`` with a
  trailing comma. The underlying AST is ``nnkTupleConst(newLit 1)`` for this
  example. ``nnkTupleConstr`` is a new node kind your macros need to be able
  to deal with!
- Indexing into a ``cstring`` for the JS target is now mapped
  to ``charCodeAt``.
- Assignments that would "slice" an object into its supertype are now prevented
  at runtime. Use ``ref object`` with inheritance rather than ``object`` with
  inheritance to prevent this issue.
- The ``not nil`` type annotation now has to be enabled explicitly
  via ``{.experimental: "notnil"}`` as we are still not pleased with how this
  feature works with Nim's containers.


#### Breaking changes in the standard library

- ``re.split`` for empty regular expressions now yields every character in
  the string which is what other programming languages chose to do.
- The returned tuple of ``system.instantiationInfo`` now has a third field
  containing the column of the instantiation.

- ``cookies.setCookie` no longer assumes UTC for the expiration date.
- ``strutils.formatEng`` does not distinguish between ``nil`` and ``""``
  strings anymore for its ``unit`` parameter. Instead the space is controlled
  by a new parameter ``useUnitSpace``.

- ``proc `-`*(a, b: Time): int64`` in the ``times`` module has changed return type
  to ``times.Duration`` in order to support higher time resolutions.
  The proc is no longer deprecated.
- ``posix.Timeval.tv_sec`` has changed type to ``posix.Time``.

#### Breaking changes in the compiler

### Library additions

- ``re.split`` now also supports the ``maxsplit`` parameter for consistency
  with ``strutils.split``.
- Added ``system.toOpenArray`` in order to support zero-copy slicing
  operations. This is currently not yet available for the JavaScript target.
- Added ``getCurrentDir``, ``findExe``, ``cpDir`` and  ``mvDir`` procs to
  ``nimscript``.
- The ``times`` module now supports up to nanosecond time resolution when available.
- Added the type ``times.Duration`` for representing fixed durations of time.
- Added the proc ``times.convert`` for converting between different time units,
  e.g days to seconds.

### Library changes

- ``macros.astGenRepr``, ``macros.lispRepr`` and ``macros.treeRepr``
  now escapes the content of string literals consistently.
- ``macros.NimSym`` and ``macros.NimIdent`` is now deprecated in favor
  of the more general ``NimNode``.
- ``macros.getImpl`` now includes the pragmas of types, instead of omitting them.
- ``macros.hasCustomPragma`` and ``macros.getCustomPragmaVal`` now
  also support ``ref`` and ``ptr`` types, pragmas on types and variant
  fields.
- ``system.SomeReal`` is now called ``SomeFloat`` for consistency and
  correctness.

### Language additions

- Dot calls combined with explicit generic instantiations can now be written
  as ``x.y[:z]``. ``x.y[:z]`` that is transformed into ``y[z](x)`` in the parser.
- ``func`` is now an alias for ``proc {.noSideEffect.}``.
- In order to make ``for`` loops and iterators more flexible to use Nim now
  supports so called "for-loop macros". See
  the `manual <manual.html#macros-for-loop-macros>`_ for more details.

### Language changes

- The `importcpp` pragma now allows importing the listed fields of generic
  C++ types. Support for numeric parameters have also been added through
  the use of `static[T]` types.
  (#6415)

- Native C++ exceptions can now be imported with `importcpp` pragma.
  Imported exceptions can be raised and caught just like Nim exceptions.
  More details in language manual.

- ``nil`` for strings/seqs is finally gone. Instead the default value for
  these is ``"" / @[]``.
- Accessing the binary zero terminator in Nim's native strings
  is now invalid. Internally a Nim string still has the trailing zero for
  zero-copy interoperability with ``cstring``. Compile your code with the
  next switch ``--laxStrings:on`` if you need a transition period.


### Tool changes

- ``jsondoc2`` has been renamed ``jsondoc``, similar to how ``doc2`` was renamed
  ``doc``. The old ``jsondoc`` can still be invoked with ``jsondoc0``.

### Compiler changes

- The VM's instruction count limit was raised to 1 billion instructions in
  order to support more complex computations at compile-time.

- Support for hot code reloading has been implemented for the JavaScript
  target. To use it, compile your code with `--hotCodeReloading:on` and use a
  helper library such as LiveReload or BrowserSync.

- A new compiler option `--cppCompileToNamespace` puts the generated C++ code
  into the namespace "Nim" in order to avoid naming conflicts with existing
  C++ code. This is done for all Nim code - internal and exported.

- Added ``macros.getProjectPath`` and ``ospaths.putEnv`` procs to Nim's virtual
  machine.

- The ``deadCodeElim`` option is now always turned on and the switch has no
  effect anymore, but is recognized for backwards compatibility.

- ``experimental`` is now a pragma / command line switch that can enable specific
  language extensions, it is not an all-or-nothing switch anymore.

### Bugfixes