ringabout
40d40039d3
fixes #25885 ; incompleteStruct ignored without importc ( #25898 )
...
fixes #25885
(cherry picked from commit 8ad1d106ec )
2026-06-15 08:01:21 +02:00
ringabout
b3e02ef0c3
make PNode.typ a private field ( #24326 )
...
(cherry picked from commit 68b2e9eb6a )
2025-01-14 07:46:40 +01:00
ringabout
7e88091de3
fixes #22553 ; regression of offsetof(T, anFieldOfUncheckedArray) ( #24014 )
...
fixes #22553
follow up https://github.com/nim-lang/Nim/pull/21979 which introduced a
char dummy member prepended to objs only containing an UncheckedArray
2024-08-27 09:45:30 +02:00
Andreas Rumpf
6ed33b6d61
type graph refactor; part 3 ( #23064 )
2023-12-14 16:25:34 +01:00
Andreas Rumpf
db603237c6
Types: Refactorings; step 1 ( #23055 )
2023-12-12 16:54:50 +01:00
Andreas Rumpf
10c3ab6269
NIR: store sizes, alignments and offsets in the type graph; beginning… ( #22822 )
...
…s of a patent-pending new VM
2023-10-16 00:01:33 +02:00
SirOlaf
fcf4c1ae17
Fix #22713 : Make size unknown for tyForward ( #22714 )
...
Close #22713
---------
Co-authored-by: SirOlaf <>
2023-09-17 20:03:43 +02:00
ringabout
93ced31353
use strictdefs for compiler ( #22365 )
...
* wip; use strictdefs for compiler
* checkpoint
* complete the chores
* more fixes
* first phase cleanup
* Update compiler/bitsets.nim
* cleanup
2023-08-06 14:26:21 +02:00
Andreas Rumpf
20b011de19
refactoring in preparation for better, simpler name mangling that wor… ( #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
2023-04-24 06:52:37 +02:00
ringabout
b57a9637e8
fixes #20914 ; fixes the alignment of big sets ( #20918 )
...
* fixes #20914 ; fixes the align of bug sets
* add a test for alignof
2022-11-26 07:48:11 +01:00
metagn
0014b9c48e
top-down type inference, implements rfc 149 ( #20091 )
...
* micro implementation of rfc 149
refs https://github.com/nim-lang/RFCs/issues/149
* number/array/seq literals, more statements
* try fix number literal alias issue
* renew expectedType with if/case/try branch types
* fix (nerf) index type handling and float typed int
* use typeAllowed
* tweaks + const test (tested locally) [skip ci]
* fill out more of the checklist
* more literals, change @ order, type conversions
Not copying the full call tree before the typedesc call check
in `semIndirectOp` is also a small performance improvement.
* disable self-conversion warning
* revert type conversions (maybe separate op later)
* deal with CI for now (seems unrelated), try enums
* workaround CI different way
* proper fix
* again
* see sizes
* lol
* overload selection, simplify int literal -> float
* range, new @ solution, try use fitNode for nil
* use new magic
* try fix ranges, new magic, deal with #20193
* add documentation, support templates
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2022-08-24 07:11:41 +02:00
Andreas Rumpf
0d6795a771
fixes #19569 ( #19595 ) [backport]
...
* minor code refactorings
* fixes #19569
2022-03-09 07:22:10 +01:00
Andreas Rumpf
c6fc3b2eae
fixes #19051 [backport:1.6] ( #19133 )
2021-11-12 11:19:24 +01:00
Timothee Cour
7e94420847
cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString ( #17744 )
2021-04-17 11:14:09 +02:00
cooldome
3af7818af4
Fix #12636 ( #15850 )
...
* close #11142
* fix #12636
* undo unwanted changes
* fix illegal recursion case
2020-11-05 18:55:52 +01:00
cooldome
f8cac6bbbc
fix #15752 ( #15754 )
2020-10-28 00:09:26 +01:00
Andreas Rumpf
64016ddedc
fixes view types for sizeof() and --gc:orc ( #15680 )
2020-10-22 18:52:05 +02:00
cooldome
fe187719ab
fix #15516 ( #15518 )
2020-10-08 09:12:03 +02:00
Clyybber
1440e70c62
allow packed union ( #14868 )
...
Co-authored-by: Arne Döring <arne.doering@gmx.net >
2020-07-01 11:41:03 +02:00
Andreas Rumpf
3ba0c30758
sizeof for empty objects/tuples should be 1; fixes #14690 ( #14751 )
2020-06-21 19:58:37 +02:00
Timothee Cour
9502e39b63
nim doc --backend:js, nim doc --doccmd:-d:foo, nim r --backend:js, --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
2020-05-11 12:01:18 +02:00
Timothee Cour
66db9de714
CT sizeof(+friends) for {.importc, completeStruct.} types, enable ABI static checks ( #13926 )
...
* -d:checkabi obsolete (ABI check now enforced); add `addTypeHeader` helper
* cleanups
* import sizeof at CT for {.completeType.}
* address comments; revert default enabling of -d:checkAbi for now
* mimportc_size_check.nim => msizeof5.nim; merge mabi_check.nim into msizeof5.nim; refactor
* all pragmas in errmsgs should be written: '.importc' (un-ambiguous and less verbose than {.importc.})
2020-04-23 11:24:09 +02:00
Andreas Rumpf
a6682de004
catchable defects ( #13626 )
...
* 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
2020-03-12 23:44:33 +01:00
Jasper Jenkins
796aafe7e0
make case-object transitions explicit, make unknownLineInfo a const, replace a few magic numbers with consts ( #13170 )
2020-01-17 10:34:31 +01:00
Clyybber
7e747d11c6
Cosmetic compiler cleanup ( #12718 )
...
* 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
2019-11-28 17:13:04 +01:00
Arne Döring
0496a666e2
implemented alignas pragma ( #12643 )
...
* implemented alignas pragma
* fix bootstrap
* generate c++ compatible syntax for alignas
* Make it work.
* Multiple alignof expressions. Implement top level alignof.
2019-11-13 08:22:41 +00:00
Araq
ed2fb36bc6
refactoring: use the new strings and seqs when optSeqDestructors is active
2019-10-20 08:11:07 +02:00
Andreas Rumpf
dd082b6ec8
fixes #12264 [backport] ( #12302 )
2019-09-30 21:44:24 +02:00
Federico Ceratto
39290cf88c
Fix spellings ( #12277 ) [backport]
2019-09-27 07:02:54 +02:00
Clyybber
ed1d41c51e
Small ast.nim cleanup ( #12156 )
...
* Remove sonsLen
* Use Indexable
2019-09-09 11:54:15 +02:00
Andreas Rumpf
21fc8b4d4d
refactor sizealignoffset ( #12077 )
...
* 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
2019-08-28 19:36:29 +02:00
Arne Döring
afbcd1b330
int128 on firstOrd, lastOrd and lengthOrd ( #11701 )
...
* fixes #11847
2019-08-07 15:53:16 +02:00
cooldome
d563efb719
fixes #11792 ( #11793 )
2019-07-21 16:53:22 +02:00
Araq
87a2ced1ba
there is only one style -- my style
2019-07-10 19:17:06 +02:00
Arne Döring
11dad688fe
Offsetof fixes ( #11690 )
...
* first fixes
* more tests and fixes
* code normalization
2019-07-09 09:07:45 +02:00
Arne Döring
20d0ef8afb
[backport] fix #11320 ( #11538 )
...
* [backport] fix #11320
* fix test for 32 bit test
2019-07-03 08:00:40 +02:00
Clyybber
f18b3af9d4
Replace countup(x, y-1) with x ..< y
2019-05-07 12:32:05 +02:00
Araq
c3067e36bb
newruntime: progress
2019-04-01 16:51:18 +02:00
Arne Döring
97c3b113a5
Size ptr tuple ( #10846 )
...
* fixes #10117
* Add support for recursive tuples
* detect in generics
2019-03-18 11:37:09 +01:00
Arne Döring
1d9b88f25d
sizealign of union type ( #10780 )
...
* sizealign of union type
* add error message for packed union
2019-03-04 09:19:38 +01:00
Arne Döring
abad758a7e
Fix for sizeof bitsize combination ( #10227 )
...
* fix #10082
* added test
2019-01-07 18:09:57 +01:00
Andreas Rumpf
062d7e3a39
fixes #10082
2018-12-30 02:45:43 +01:00
Araq
1711a60f7b
fixes #9868
2018-12-05 16:16:58 +01:00
Andreas Rumpf
350396e1ca
gc:destructors: more progress
2018-11-29 20:10:52 +01:00
cooldome
ea5fc9f204
fixes #9794 : sizeof tuple is incorrect if contains imported object ( #9795 )
...
* fixes #9794
* Fix linux test
2018-11-26 09:46:19 +01:00
cooldome
2ac7f52388
Fixes multiple bugs with sink arguments ( #9802 )
...
* fixes #9781
* fix spacing
2018-11-26 09:45:45 +01:00
Arne Döring
1e08fff2d5
bitsize respected in size calculation. ( #9756 )
2018-11-19 13:48:40 +01:00
Arne Döring
5dfcc4e91c
make tsizeof run on C++ backend ( #9734 )
2018-11-18 14:36:20 +01:00
Arne Döring
0059f16dfb
Merge pull request #9511 from krux02/krux02-devel
...
Krux02 devel
2018-10-31 17:12:36 +01:00
Arne Döring
1ec5c6fdf5
Sizeof alignof fixes ( #9568 )
...
fixes #9545
2018-10-30 16:41:06 +01:00