summary refs log tree commit diff stats
path: root/compiler/pragmas.nim
Commit message (Expand)AuthorAgeFilesLines
...
* year 2012 for most copyright headersAraq2012-01-021-1/+1
* bugfix: the code gen can now handle alias TLock = TSysLock; this fixes thread...Araq2011-12-231-3/+0
* codegen uses alias analysis to generate better codeAraq2011-12-101-1/+1
* implemented 'let' statementAraq2011-11-291-0/+1
* new pragma: 'noinit'Araq2011-11-251-7/+11
* renamed optional to discardableAraq2011-09-241-5/+5
* implemented optional pragma for implicit discardAraq2011-09-241-4/+7
* beginning of a taint mode; type system enhancementsAraq2011-09-241-8/+13
* bugfixes for generics; new threads implementation still brokenAraq2011-09-201-0/+1
* 'pure' is now 'noStackFrame' for procsAraq2011-08-191-5/+6
* modifyable results for generics; teventemitter worksAraq2011-08-091-8/+13
* support for C++ code generation; importcpp and importobjc pragmasAraq2011-08-071-2/+18
* bugfix: 'set' overloadable; further steps for multi threading supportAraq2011-07-081-10/+12
* importCompilerProc pragma introduced because the hacks for typeinfo.nim did n...Araq2011-06-271-1/+9
* code gen bugfixes; marshal.nim implementedAraq2011-06-261-1/+1
* basic thread analysis workingAraq2011-06-131-9/+9
* deprecated system.copy: use system.substr insteadAraq2011-05-141-4/+4
* got rid of some arcane module namesAraq2011-04-211-1/+1
* big repo cleanupAraq2011-04-121-0/+543
icheta@gmail.com> 2018-02-28 15:43:08 +0000 committer Dominik Picheta <dominikpicheta@gmail.com> 2018-02-28 15:43:08 +0000 Sort changelog into appropriate headings.' href='/ahoang/Nim/commit/changelog.md?h=devel&id=e3e17009ff4fa13ed917b46a9709e9e51f62e7cf'>e3e17009f ^
b70fd0400 ^
737fff590 ^
35268c500 ^

e3e17009f ^
b70fd0400 ^
ff950725f ^
7cb31455e ^


742862b84 ^


e3e17009f ^
b70fd0400 ^
afeca3d9f ^
b70fd0400 ^
212457f5e ^
ab48d7901 ^
c0fc2f572 ^
e5425b5f2 ^

1874b3e78 ^

e3e17009f ^
fd24a8923 ^
e5425b5f2 ^
1874b3e78 ^

b70fd0400 ^
e3e17009f ^
2b565aad8 ^




b3a80dd2e ^
b70fd0400 ^

755c4428f ^


737fff590 ^
b70fd0400 ^
e3e17009f ^
3d88d06b3 ^


114da04cb ^


82d5e773e ^


114da04cb ^
f7d2f9c5f ^
e3e17009f ^
737fff590 ^
b70fd0400 ^
f7d2f9c5f ^
737fff590 ^
b70fd0400 ^
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
                   
 
 
                                            
 


                                                                      


                                                                          
 


                                                                                
                                                                     


                    
                                            
 











                                                                                    

                                                                                                         
 
                                    
 

                                                                                                                           
 
                    
 


                                                                        


                                                                     
 
                  
 
                                                    
 
                                           
 

                                                                                    

                                                                    
 
                                                                         
 

                                                             
                     
 




                                                                                                        
 

                   


                                                                                    
 
                
 


                                                                             


                                                                            


                                                                              
 
 
                    
 
                                                    
 
 
           
# v1.1 - XXXX-XX-XX


## Changes affecting backwards compatibility

- The switch ``-d:nimBinaryStdFiles`` does not exist anymore. Instead
  stdin/stdout/stderr are binary files again. This change only affects
  Windows.
- On Windows console applications the code-page is set at program startup
  to UTF-8. Use the new switch `-d:nimDontSetUtf8CodePage` to disable this
  feature.

- The language definition and compiler are now stricter about ``gensym``'ed
  symbols in hygienic templates. See the section in the
  [manual](https://nim-lang.org/docs/manual.html#templates-hygiene-in-templates)
  for further details. Use the compiler switch `--oldgensym:on` for a
  transition period.


### Breaking changes in the standard library

- We removed `unicode.Rune16` without any deprecation period as the name
  was wrong (see the [RFC](https://github.com/nim-lang/RFCs/issues/151) for details)
  and we didn't find any usages of it in the wild. If you still need it, add this
  piece of code to your project:

```nim

type
  Rune16* = distinct int16

```

- `exportc` now uses C instead of C++ mangling with `nim cpp`, matching behavior of `importc`, see #10578
  Use the new `exportcpp` to mangle as C++ when using `nim cpp`.

### Breaking changes in the compiler

- A bug allowing `int` to be implicitly converted to range types of smaller size (e.g `range[0'i8..10'i8]`) has been fixed.


## Library additions

- `encodings.getCurrentEncoding` now distinguishes between the console's
  encoding and the OS's encoding. This distinction is only meaningful on
  Windows.
- Added `system.getOsFileHandle` which is usually more useful
  than `system.getFileHandle`. This distinction is only meaningful on
  Windows.

## Library changes

- Added `os.delEnv` and `nimscript.delEnv`. (#11466)

- Enabled Oid usage in hashtables. (#11472)

- Added `unsafeColumnAt` procs, that return unsafe cstring from InstantRow. (#11647)

- Make public `Sha1Digest` and `Sha1State` types and `newSha1State`,
  `update` and `finalize` procedures from `sha1` module. (#11694)

- Added the `std/monotimes` module which implements monotonic timestamps.

- Consistent error handling of two `exec` overloads. (#10967)

## Language additions

- Inline iterators returning `lent T` types are now supported, similarly to iterators returning `var T`:
```nim
iterator myitems[T](x: openarray[T]): lent T
iterator mypairs[T](x: openarray[T]): tuple[idx: int, val: lent T]
```

## Language changes

- `uint64` is now finally a regular ordinal type. This means `high(uint64)` compiles
  and yields the correct value.


### Tool changes

- The Nim compiler now does not recompile the Nim project via ``nim c -r`` if
  no dependent Nim file changed. This feature can be overridden by
  the ``--forceBuild`` command line option.
- The Nim compiler now warns about unused module imports. You can use a
  top level ``{.used.}`` pragma in the module that you want to be importable
  without producing this warning.
- The "testament" testing tool's name was changed
  from `tester` to `testament` and is generally available as a tool to run Nim
  tests automatically.


### Compiler changes

- VM can now cast integer type arbitrarily. (#11459)


## Bugfixes