summary refs log tree commit diff stats
path: root/lib/core
Commit message (Collapse)AuthorAgeFilesLines
* added another version of eqIdentAraq2016-05-101-1/+17
|
* Fixed macros unpackX procedured to return values correctlyRuslan Mustakov2016-04-041-3/+3
|
* Use ``when insideRLocksModule`` instead of ``when compiles``Anatoly Galiulin2016-03-311-0/+1
|
* Fix ``XDeclaredButNotUsed`` warning when locks or rlocks module is usedAnatoly Galiulin2016-03-312-1/+2
|
* Documentation for `withLock`.Dominik Picheta2016-03-231-0/+2
|
* Rename locks.lock tmplt to withLock and change body to untyped.Dominik Picheta2016-03-231-1/+1
|
* Implement a `lock` template in `locks` module.Dominik Picheta2016-03-181-0/+8
|
* use 'using' instead of 'sig' keyword; cleans up new features a bitAndreas Rumpf2016-02-291-2/+1
|
* added 'sig' feature; removed tfShared support in the compilerAndreas Rumpf2016-02-281-1/+7
|
* Added rlocks module to documentation and news.txtAnatoly Galiulin2016-02-181-3/+3
|
* Added fixes from Araq's commentsAnatoly Galiulin2016-02-171-2/+2
|
* Added reentrant locks module to stdlibAnatoly Galiulin2016-02-171-0/+50
|
* Added nnkTemplateDef and nnkConverterDef to RoutineNodes setRuslan Mustakov2016-02-101-1/+1
|
* first implementation of the new lambda-lifting pass; barely anything worksAndreas Rumpf2015-12-261-1/+1
|
* Fix code generation issues with TNimType.Reimer Behrends2015-12-151-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an alternative attempt to fix issue #2841 in a way that does not rely on non-standard C compiler behavior. The underlying problem is that the typeinfo module includes system/hti.nim, but system/hti.nim is also included by system.nim. The result is that the compiler at any given point has two instances of TNimType with the same external name and will generate code either for one or both of them. Code generation for the second version is normally suppressed by using {.importc.}, but that results in a missing type declaration for modules that only use the second version. This happens for modules that import typeinfo, because the the second component of typeinfo.Any has type PNimType = ptr TNimType, which generates a "TNimType *" struct member. The previous solution was to have a typedef for TNimType in nimbase.h; however, this results in duplicate typedefs (specifically, but not only for the code generated for typeinfo.nim). Duplicate typedefs with the same type name are allowed in C++ and C11, but are explicitly forbidden in C89 and C99. Modern versions of gcc and clang accept them anyway, but this is not standard-compliant and may break for other C compilers or older versions of gcc and clang. This patch attempts to fix the issue by making the second component of typeinfo.Nim a pointer instead of a PNimType and casting back and forth as needed. Thus, the second version of TNimType occurs only within the code for typeinfo.nim, where it can be safely omitted.
* fixes #3541Araq2015-11-181-2/+1
|
* Move deprecated modules into lib/deprecated/Adam Strzelecki2015-09-301-18/+0
| | | | | This gives clear indication what modules are now deprecated and reduce clutter in non-deprecated module directories.
* fixes bootstrappingAraq2015-08-211-1/+2
|
* implemented macros.getImplAraq2015-08-211-0/+4
|
* Fixed macros.nim not compiling.Dominik Picheta2015-08-031-1/+4
| | | | Iterator aliases are not possible.
* Added documentation to macros.items.Dominik Picheta2015-08-031-0/+1
|
* Merge branch 'macro-items' of https://github.com/transfuturist/Nim into ↵Dominik Picheta2015-08-031-1/+3
|\ | | | | | | transfuturist-macro-items
| * Update macros.nimtransfuturist2015-07-031-1/+1
| |
| * Undeprecate childrentransfuturist2015-06-201-1/+1
| |
| * Change check for NimNode items to node kindtransfuturist2015-05-171-1/+1
| |
| * Add value check for NimNode itemstransfuturist2015-05-161-3/+4
| |
| * Better solution: deprecationtransfuturist2015-05-161-4/+2
| |
| * NimNode needs an items iterator to be used nicely in for statementstransfuturist2015-05-161-0/+4
| |
* | removed macros.high as it never worked outside of macros.nimAraq2015-07-281-10/+8
| |
* | fixes #2841Araq2015-07-221-43/+43
| |
* | Merge pull request #2272 from def-/unsignedAndreas Rumpf2015-07-111-46/+7
|\ \ | | | | | | Move unsigned int operations to system module
| * | Update deprecation notice about unsigned moduledef2015-07-021-1/+1
| | |
| * | Add unsigned exports for backwards-compatibilitydef2015-07-011-0/+3
| | |
| * | Move unsigned int operations to system moduledef2015-07-011-47/+5
| | | | | | | | | | | | | | | This should lead to less confusion because uint numbers and literals seem to work, but operators are just missing.
* | | Nimrod -> Nim renameAraq2015-07-081-1/+1
| | |
* | | fixes bootstrapping problemAraq2015-07-041-1/+2
| | |
* | | macros: Introduce sameType(a, b) for node typesAdam Strzelecki2015-07-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously introduced node comparison `==` was working somehow wrong on nodes returned from getType(a), comparing just ids of the symbols. Recently introduced `==` change 47dce2688633fad840a2f5e4073c531f1cd640ca started comparing symbol nodes pointer-wise, thus strictly. Since getType(a) always creates new symbol pointing to the type, comparing two such nodes using `==` always returns false, even they point to the same type. That is why we need a new sameType macro to be able to tell if these nodes point to the same type.
* | | fixes #3046Araq2015-07-031-1/+5
| | |
* | | made macros.$ a bit smarter; but really this one needs to dieAraq2015-07-031-0/+2
|/ /
* | Merge branch 'more_concurrency' into develAraq2015-06-301-2/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/tut1.txt lib/core/locks.nim lib/pure/collections/tables.nim lib/pure/selectors.nim
| * | get rid of deprecated effectsAraq2015-05-131-18/+6
| |/
* | conditional TGenericSeq extensionStefan Talpalaru2015-06-161-3/+7
| |
* | Merge branch 'devel' into gogcStefan Talpalaru2015-06-152-81/+86
|\ \
| * \ Merge pull request #2643 from grncdr/TAny-and-inheritanceAndreas Rumpf2015-06-071-0/+2
| |\ \ | | | | | | | | Resolve base type fields in `[](TAny, string)`
| | * | Resolve base type fields in `[](TAny, string)`Stephen Sugden2015-05-031-0/+2
| | |/
| * | lib/core - Dropped 'T' from typespdw2015-06-042-81/+84
| | |
* | | the Go GC - initial implementationStefan Talpalaru2015-05-311-2/+2
|/ /
* | get rid of deprecated effectsAraq2015-05-281-18/+6
| |
* | Macros: Introduce getType(t: typedesc): NimNodeAdam Strzelecki2015-05-171-0/+6
|/ | | | | | | | | | | | | Since typedesc are exception in macros and they are not implicitly converted to NimNode on macro call, we need some means to perform such conversion on demand. Fortunately it is as simple as declaring new magic "NGetType" proc with typedesc parameter. NOTE: Keeping actual macro exceptional behavior for typedesc is important, since it allows passing typedesc macro parameter to other procs or macros expecting type parameter. If typedesc parameter was implicitly converted, then we would lost this ability.
* macros: added bool literal supportAraq2015-04-201-0/+6
|