summary refs log tree commit diff stats
path: root/compiler/ccgthreadvars.nim
Commit message (Collapse)AuthorAgeFilesLines
* fix #16752: threadvar now works with importcpp types; osx now uses native ↵Timothee Cour2021-01-271-3/+7
| | | | | | | | | | | TLS (`--tlsEmulation:off`), which can be orders of magnitude faster (#16750) * osx now uses native TLS, which can be orders of magnitude faster * add {.cppNonPod.} * improve test * changelog, docs, disable part of windows test
* fixes #14865 (#14937)Andreas Rumpf2020-07-081-0/+1
|
* `nim doc --backend:js`, `nim doc --doccmd:-d:foo`, `nim r --backend:js`, ↵Timothee Cour2020-05-111-1/+1
| | | | | | | | | | `--doccmd:skip` + other improvements (#14278) * `nim doc --backend:js|cpp...` `nim doc --doccmd:'-d:foo --threads:on'` `nim r --backend:cpp...` (implies --run --usenimcache) * --usenimcache works with all targets * --docCmd:skip now skips compiling snippets; 50X speedup for doc/manual.rst
* Unexport even more symbols (#13214)alaviss2020-01-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * system/gc: don't export markStackAndRegisters * compiler/cgen: unexport internal symbols As these functions are Nim-specific walkaround against C's optimization schemes, they don't serve any purpose being exported. * compiler/cgen: don't export global var unless marked * compiler/ccgthreadvars: don't export threadvar unless marked * tests/dll/visibility: also check for exports This ensure that these changes don't break manual exports. * compiler/cgen: hide all variables created for constants * compiler/ccgtypes: don't export RTTI variables * compiler/ccgexprs: make all complex const static * nimbase.h: fix export for windows * compiler/cgen, ccgthreadvars: export variables correctly For C/C++ variables, `extern` means that the variable is defined in an another unit. Added a new N_LIB_EXPORT_VAR to correctly export variables.
* --exception:goto switch for deterministic exception handling (#12977)Andreas Rumpf2020-01-011-2/+2
| | | | | This implements "deterministic" exception handling for Nim based on goto instead of setjmp. This means raising an exception is much cheaper than in C++'s table based implementations. Supports hard realtime systems. Default for --gc:arc and the C target because it's generally a good idea and arc is all about deterministic behavior. Note: This implies that fatal runtime traps are not catchable anymore! This needs to be documented.
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-9/+9
| | | | | | | | | | | | | | | | | | * Cleanup compiler code base * Unify add calls * Unify len invocations * Unify range operators * Fix oversight * Remove {.procvar.} pragma * initCandidate -> newCandidate where reasonable * Unify safeLen calls
* Less ropes (#10979)Arne Döring2019-04-111-1/+1
| | | | | * convert ropecg to a macro * fewer intermediate ropes
* remove the last global variables in the C code generatorAndreas Rumpf2018-05-281-20/+7
|
* options.nim: no global variables anymoreAndreas Rumpf2018-05-131-3/+3
|
* C code generator compiles againAndreas Rumpf2018-05-121-3/+3
|
* C++ codegen: emit 'extern C' for importc'ed functions that we declare a ↵Araq2017-02-141-2/+2
| | | | prototype for
* new name mangling rules for easier debuggingAndreas Rumpf2017-02-021-2/+2
|
* refactoring: flags instead of boolsAndreas Rumpf2016-05-181-2/+2
|
* nimrod -> nimErik Johansson Andersson2016-02-051-1/+1
|
* Get rid of deprecation warningsdef2015-04-071-14/+14
|
* bugfix: c++ support for 'NimThreadVarsSize'Araq2014-10-081-3/+6
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* case consistency: cs:partial bootstraps on windowsAraq2013-12-291-1/+1
|
* case consistency part 1Araq2013-12-271-2/+2
|
* Revert "Revert "bugfix: emulated thread vars used in combination with the ↵Zahary Karadjov2013-08-191-2/+2
| | | | | | mark & sweep GC"" This reverts commit 75c586bbe1cc649b36fc00362ab40ebb1d163d9f.
* Revert "bugfix: emulated thread vars used in combination with the mark & ↵Araq2013-05-271-2/+2
| | | | | | sweep GC" This reverts commit 420789c2782be7b969ad02448841d90bd0d17a1f.
* bugfix: emulated thread vars used in combination with the mark & sweep GCZahary Karadjov2013-05-261-2/+2
| | | | resulted in invalid code generation
* Removes executable bit for text files.Grzegorz Adam Hankiewicz2013-03-161-0/+0
|
* more uint related fixesZahary Karadjov2012-06-141-3/+4
|
* proper indentation in the generated C codeZahary Karadjov2012-06-121-3/+2
|
* fix threading testsZahary Karadjov2012-04-151-2/+3
|
* C variables are created in their enclosing block instead of their enclosing ↵Zahary Karadjov2012-04-121-1/+3
| | | | function
* year 2012 for most copyright headersAraq2012-01-021-1/+1
|
* new compiler option tlsEmulationAraq2011-10-271-3/+1
|
* compilation cache: methods have a chance to workAraq2011-10-231-4/+12
|
* preparations for 0.8.12Araq2011-07-101-0/+0
|
* bugfix: 'set' overloadable; further steps for multi threading supportAraq2011-07-081-11/+10
|
* compiler can emulate thread local variablesAraq2011-06-151-0/+54