| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
* allow defects to be caught even for --exceptions:goto (WIP)
* implemented the new --panics:on|off switch; refs https://github.com/nim-lang/RFCs/issues/180
* new implementation for integer overflow checking
* produce a warning if a user-defined exception type inherits from Exception directly
* applied Timothee's suggestions; improved the documentation and replace the term 'checked runtime check' by 'panic'
* fixes #13627
* don't inherit from Exception directly
|
| |
|
|
|
|
| |
* fixes #13513
* merge tarithmetics in tarithm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* ensure capitalize doesn't take an inferred sink parameter
* sink parameter inference: first version, for now disabled. Changed that sink parameters can be consumed multiple times in order to adhere to our spec.
* sink inference can now be disabled with .nosinks; sometimes for proc type interop this is required
* fixes yet another critical DFA bug
* better implementation that also understands if expressions etc
* document sink parameter inference and allow for global disabling
|
| |
|
|
|
|
| |
* fix #13490
|
|
|
|
|
| |
* fix #9855, fix #9855, fix genericHead
* render TTypeKind via toHumanStr
|
|
|
|
|
|
|
|
|
|
| |
* fix #13150 `nim doc --project` works with duplicate names and with imports below main project file
* add to help; fixup after #13212 isRelativeTo got merged
* fix test tests/compilerapi/tcompilerapi.nim
* remove nimblePkg field; compute on the fly instead
* kochdocs: compiler docs now under compiler/
* --docRoot now has smart default: best among @pkg, @path
|
| |
|
|
|
|
| |
a few magic numbers with consts (#13170)
|
|
|
|
|
|
| |
* fixes #13122
* moved tests to where they belong
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* VM: allow certain hardcoded special var variables at CT
* VM: allow all importc var, cast[int](ptr)
* fix tests tests/vm/tstaticprintseq.nim, tests/cpp/t8241.nim
* VM: == works for ptr/pointer nodes
* bugfix: ==, cast now also works for pointer, not just ptr
* VM supports cast PtrLikeKinds <=> PtrLikeKinds / int
* improve cname handling
* fixup + bug fix
* VM: support cast from ref to int
* address comment: opcLdGlobalDeref => opcLdGlobalDerefFFI
* defensive check against typ == nil
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* first implementation of the =trace and =dispose hooks for the cycle collector
* a cycle collector for ARC: progress
* manual: the .acyclic pragma is a thing once again
* gcbench: adaptations for --gc:arc
* enable valgrind tests for the strutils tests
* testament: better valgrind support
* ARC refactoring: growable jumpstacks
* ARC cycle detector: non-recursive algorithm
* moved and renamed core/ files back to system/
* refactoring: --gc:arc vs --gc:orc since 'orc' is even more experimental and we want to ship --gc:arc soonish
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* implemented alignas pragma
* fix bootstrap
* generate c++ compatible syntax for alignas
* Make it work.
* Multiple alignof expressions. Implement top level alignof.
|
|
|
|
|
|
|
|
|
|
|
| |
* cursors: first implementation
* added currently failing test
* .cursor works for doubly linked lists
* make -d:useMalloc work again
* added code to nil out refs in a destructor
* it's now called --gc:arc
* renderer.nim: render nkBreakState properly
* make simple closure iterators work without leaking
|
| |
|
|
|
|
|
|
| |
* refactor illegal iterator assignment detection
* delete crappy test
|
|
|
| |
One improvement over #devel is visible in the transformation of getEnv. With this approach we move to result whenever possible.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* add nodeId proc to macros
* add doc comment.
* fix typo
|
|
|
|
|
| |
* Remove sonsLen
* Use Indexable
|
|
|
|
|
|
|
| |
* fixes #10578
* add tests
* add changelog
* add {.exportcpp.}
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* small refactoring
* refactor computeObjectOffsetFoldFunction with AccumObject
* refactor packed object offstes fold function
* refactor compute union object offsets fold function
* merge normal/packed object offset fold function
* compiletime offsetof in c++ inheritance objects
* enable c++ inheritance offsetof tests
* correct alignment for big sets/enums on weird 32bit platforms
* uncomputedSize -> unknownSize
* workaround for travis
* fixes win32 alignment problems
|
|
|
|
| |
* destroy for sink openarray
|
|
|
|
|
| |
* fix to(Biggest)Int
* kill toFloat magics as well
|
| |
|
| |
|
| |
|
|
|
|
| |
* fixes #11847
|
| |
|
|
|
|
|
| |
* remove zeroExtend and friends from the compiler builtins.
* fix jssys
|
| |
|
|
|
|
|
| |
* remove immediate from tests
* remove immediate from the compiler
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove NaN/Inf/NegInf magic
* Make range checks in semConv
* fix the failing line
* fix `firstOrd` and `lastOrd`
* fix `localError`
* remove debug comment
* Cleanup, fix failing test
* make tests green
|
| |
|
| |
|
|
|
|
|
| |
* fixes for ptr array derefence codegen
* fix comments, make diff nicer
|