summary refs log tree commit diff stats
path: root/compiler/magicsys.nim
Commit message (Collapse)AuthorAgeFilesLines
* Types: Refactorings; step 1 (#23055)Andreas Rumpf2023-12-121-1/+1
|
* fixes #22552 (#23014)Andreas Rumpf2023-12-021-0/+7
|
* IC: progress and refactorings (#22961)Andreas Rumpf2023-11-201-5/+5
|
* NIR: Nim intermediate representation (#22777)Andreas Rumpf2023-10-111-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Theoretical Benefits / Plans: - Typed assembler-like language. - Allows for a CPS transformation. - Can replace the existing C backend by a new C backend. - Can replace the VM. - Can do more effective "not nil" checking and static array bounds checking. - Can be used instead of the DFA. - Easily translatable to LLVM. - Reasonably easy to produce native code from. - Tiny memory consumption. No pointers, no cry. **In very early stages of development.** Todo: - [x] Map Nim types to IR types. - [ ] Map Nim AST to IR instructions: - [x] Map bitsets to bitops. - [ ] Implement string cases. - [ ] Implement range and index checks. - [x] Implement `default(T)` builtin. - [x] Implement multi string concat. - [ ] Write some analysis passes. - [ ] Write a backend. - [x] Integrate into the compilation pipeline.
* unpublic the sons field of PType; the precursor to PType refactorings (#22446)ringabout2023-08-111-1/+1
| | | | | | | | | | | * unpublic the sons field of PType * tiny fixes * fixes an omittance * fixes IC * fixes
* `initNodeTable` and friends now return (#22444)ringabout2023-08-111-3/+3
|
* use strictdefs for compiler (#22365)ringabout2023-08-061-0/+2
| | | | | | | | | | | | | | | * wip; use strictdefs for compiler * checkpoint * complete the chores * more fixes * first phase cleanup * Update compiler/bitsets.nim * cleanup
* make deprecated statement a no-op (#21836)metagn2023-05-121-1/+0
|
* refactoring in preparation for better, simpler name mangling that wor… ↵Andreas Rumpf2023-04-241-2/+2
| | | | | | | | | | | (#21667) * refactoring in preparation for better, simpler name mangling that works with IC flawlessly * use new disamb field * see if this makes tests green * make tests green again
* cString => cSourceString; tyCString => tyCstring so that error msgs show ↵Timothee Cour2021-04-171-1/+1
| | | | cstring, not cString (#17744)
* `import foo {.all.}` reboot (#17706)Timothee Cour2021-04-161-0/+1
|
* IC: bugfixes (WIP) (#16836)Andreas Rumpf2021-02-021-0/+2
| | | | | | | | * minor improvements * IC: added the required logic for compilerProcs * LazySym ftw * we need this testing logic * reimplement the old way we use for module package creation * fixes a regression; don't pick module names if you can avoid it
* remove conditionals on nimHasUserErrors, nimNoNilSeqs2, nimNoNilSeqs (#16861)Timothee Cour2021-01-291-2/+0
| | | | | | | | | * cleanup docs for type(nil) | type(nil); simplify nimHasUserErrors * simplify nimNoNilSeqs2 * simplify nimNoNilSeqs * fixup
* IC: next steps (#16705)Andreas Rumpf2021-01-141-50/+0
| | | | | | | | | | | * code cleanups * refactorings for IC * more refactorings for IC * IC: attach the 'nil' type to its module * IC: refactorings and improvements * IC: progress * IC: more serialization fixes * IC: embarrassing omission * code cleanups
* IC: next steps (#16550)Andreas Rumpf2021-01-071-5/+2
| | | | | | | | | | | | | | | | | | * cleanups * ast.nim: cleanups * IC: no more sym.tab field, stored externally in the module graph * nimble compiles again * rodfiles: store bitwidth of integers and the endianness in the cookie because we serialize 'int' directly * rodfiles: added compilerproc and export sections * rodfiles: added all the missing sections * rodfiles: track the missing information * IC: architecture for lazy loading of proc bodies * make tests green again * completed the lazy loading of proc bodies * symbol lookup integration, part 1 * symbol lookup integration, part 2 * symbol lookup integration, part 3 * make tcompilerapi work again * rodfiles: fixed config change handling
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-8/+8
| | | | | | | | | | | | | | | | | | | * reworked ID handling * the packed AST now has its own ID mechanism * basic serialization code works * extract rodfiles to its own module * rodfiles: store and compare configs * rodfiles: store dependencies * store config at the end * precise dependency tracking * dependency tracking for rodfiles * completed loading of PSym, PType, etc * removed dead code * bugfix: do not realloc seqs when taking addr into an element * make IC opt-in for now * makes tcompilerapi green again * final cleanups Co-authored-by: Andy Davidoff <github@andy.disruptek.com>
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-15/+15
| | | | | | | | | | | | | | | | | * refactoring: idents don't need inheritance * refactoring: adding an IdGenerator (part 1) * refactoring: adding an IdGenerator (part 2) * refactoring: adding an IdGenerator (part 3) * refactoring: adding an IdGenerator (part 4) * refactoring: adding an IdGenerator (part 5) * refactoring: adding an IdGenerator (part 5) * IdGenerator must be a ref type; hello world works again * make bootstrapping work again * progress: add back the 'exactReplica' ideas * added back the missing exactReplica hacks * make tcompilerapi work again * make important packages green * attempt to fix the build for 32 bit machines (probably need a better solution here)
* Implements RFCs #209 (#13995)cooldome2020-04-161-0/+25
| | | | | * add test * add changelod entry Co-authored-by: cooldome <ariabushenko@bk.ru>
* miscellaneous bug fixes (part 3) (#13304)Timothee Cour2020-02-071-2/+4
| | | | | | | | | | * fix deprecation; fix indentation * git clone: use -q * fix Warning: pragma before generic parameter list is deprecated; fix typo * bugfix: sysTypeFromName("float64") was never cached
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-2/+2
| | | | | | | | | | | | | | | | | | * 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
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+1
|
* even more strict isNil handling for strings/seqs in order to detect bugsAraq2018-08-221-1/+2
|
* baby steps for incremental compilationAndreas Rumpf2018-05-301-10/+1
|
* refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-15/+5
| | | | around explicitly
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
|
* make tests green againAndreas Rumpf2018-05-181-1/+1
|
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-2/+2
|
* options.nim: no global variables anymoreAndreas Rumpf2018-05-131-2/+2
|
* sem pass compiles againAndreas Rumpf2018-05-121-3/+6
|
* big refactoring: magicsys compiles againAndreas Rumpf2018-05-101-93/+86
|
* make tests green againAraq2016-11-011-1/+1
|
* refactoring complete: explicit ident cacheAraq2016-10-311-0/+4
|
* big refactoring: step 1Araq2016-10-311-0/+4
|
* fixes #4295Andreas Rumpf2016-06-071-5/+9
|
* added undocumented exportNims pragma for Nimscript supportAraq2015-10-031-16/+22
|
* compiler: Trim .nim files trailing whitespaceAdam Strzelecki2015-09-041-13/+13
| | | | via OSX: find . -name '*.nim' -exec sed -i '' -E 's/[[:space:]]+$//' {} +
* implemented 'guard' annotationAraq2014-09-211-1/+1
|
* the big renamefest: first stepsAraq2014-08-221-5/+7
|
* some progress for jester+asyncAraq2014-06-271-0/+2
|
* case consistency: cs:partial bootstraps on windowsAraq2013-12-291-1/+1
|
* case consistency: next stepsAraq2013-12-291-1/+1
|
* case consistency part 4Araq2013-12-271-7/+7
|
* case consistency part 1Araq2013-12-271-9/+8
|
* fixes #578Araq2013-08-301-1/+1
|
* float64 is now an alias to 'float'; fixes #545Araq2013-08-301-4/+9
|
* implemented large parts of the 'not nil' checkingAraq2013-06-091-1/+15
|
* get rid of ImportTablePos and ModuleTablePosZahary Karadjov2013-05-121-2/+0
|
* Removes executable bit for text files.Grzegorz Adam Hankiewicz2013-03-161-0/+0
|
* small improvementsAraq2013-02-271-1/+4
|
* temporary debugging code for the memory leak investigationZahary Karadjov2012-11-281-0/+9
|