ringabout
f89ba2c951
add default field support for object in ARC/ORC ( #20480 )
...
* fresh start
* add cpp target
* add result support
* add nimPreviewRangeDefault
* reduce
* use orc
* refactor common parts
* add tuple support
* add testcase for tuple
* cleanup; fixes nimsuggest tests
* there is something wrong with cpp
* remove
* add support for seqs
* fixes style
* addd initial distinct support
* remove links
* typo
* fixes tuple defaults
* add rangedefault
* add cpp support
* fixes one more bugs
* add more hasDefaults
* fixes ordinal types
* add testcase for #16744
* add testcase for #3608
* fixes docgen
* small fix
* recursive
* fixes
* cleanup and remove tuple support
* fixes nimsuggest
* fixes generics procs
* refactor
* increases timeout
* refactor hasDefault
* zero default; disable i386
* add tuples back
* fixes bugs
* fixes tuple
* add more tests
* fix one more bug regarding tuples
* more tests and cleanup
* remove messy distinct types which must be initialized by original types
* add tests
* fixes zero default
* fixes grammar
* fixes tests
* fixes tests
* fixes tests
* fixes comments
* fixes and add testcase
* undo default values for results
Co-authored-by: flywind <43030857+xflywind@users.noreply.github.com >
2022-10-04 12:45:10 +02:00
ringabout
0f5ad49971
[ARC] fixes #18645 ; C Compiler error when initializing {.global.} with a block ( #19953 )
...
* fixes #18645 ; C Compiler error when initializing {.global.} with a block:
* arguably cleaner solution
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com >
Co-authored-by: Araq <rumpf_a@web.de >
2022-10-03 16:12:23 +02:00
metagn
2cca38d33c
pragma for sfCallsite instead of name check + better semantics, test ( #20464 )
...
* pragma for sfCallsite instead of name check at every template definition
Not documented because it seems to be for internal use?
Should also make it possible to make comparisons and setops imports, but this doesn't have to be done.
I can reuse a name like `cursor` for the pragma as well, added a new name just to be safe.
* make sfCallsite recursive, add tests
2022-10-03 06:07:55 +02:00
ringabout
81e7811e01
fixes nim check with orc ( #20456 )
...
* fixes nim check with orc
* fixes tests
* add tests
* fixes tests
* Update tests/arc/t20456.nim
2022-10-02 06:44:10 +02:00
ringabout
1737bb9f9e
disable threads when booting the compiler ( #20478 )
2022-10-02 06:42:09 +02:00
Bung
567c3f055d
Fix #19224 For loops over a hardcoded empty array crash the compiler ( #20476 )
...
* Fix #11684 For loops over a hardcoded empty array crash the compiler
* Update t19224.nim
2022-10-01 23:19:07 +02:00
Bung
cbd9fee22a
fix #19678 Broken behavior with string ranges in case labels ( #20475 )
...
* fix #19678 Broken behavior with string ranges in case labels
* Update compiler/semtypes.nim
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2022-10-01 18:17:07 +02:00
Andreas Rumpf
8d47bf1822
new move analyser2 ( #20471 )
...
* produce better code for closure environment creation
* new 'first write' analysis;
* scope based move analyser
* code cleanup
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
2022-10-01 16:46:51 +02:00
metagn
cfff454cf9
closed ambiguous enum defaults to first overload ( #20457 )
...
* closed ambiguous enum defaults to first overload
* add warning
* turn to hint
* work around config
2022-10-01 13:30:23 +02:00
metagn
24b81e9df6
remove hack for deprecated csize in compiler ( #20463 )
...
* remove hack for deprecated csize in compiler
* remove test
2022-10-01 09:07:52 +02:00
ringabout
96c5586d03
add plausibleAnalytics support for koch docs[backport:1.6] ( #20454 )
...
add plausibleAnalytics to koch docs[backport:1.6]
2022-09-30 12:39:28 +02:00
ringabout
ae050b05e9
koch boot compiler with orc ( #20467 )
...
* koch boot compiler with orc
* use orc
* workaround bugs
* move it
* move the data
2022-09-30 12:38:25 +02:00
ringabout
a8cc5d1379
Unicode Operators are no longer experimental ( #20444 )
...
* Unicode Operators are no longer experimental
* fixes tests
* Update doc/manual.md
Co-authored-by: Andreas Rumpf <rumpf_a@web.de >
2022-09-28 22:37:26 +02:00
metagn
919a889ba8
moderate system cleanup & refactor ( #20355 )
...
* system refactor, move out 600 lines
* compilation, slice, backwardsindex, misc_num moved out of system
* some procs/types moved into arithmetics, basic_types
* system no longer depends on syncio
* some procs moved around to fit with their surroundings
* make exceptions an import, old ops to misc_num
* move instantiationInfo back
* move back nim version, fix windows echo
* include compilation
* better docs for imported modules, fix unsigned ops
also remove ze, ze64, toU8, toU16, toU32 with nimPreviewSlimSystem
* fix terminal
* workaround IC test & weird csize bug, changelog
* move NimMajor etc back to compilation, rebase for CI
* try ic fix
* form single `indices`, slim out TaintedString, try fix IC
* fix CI, update changelog, addQuitProc
* fix CI
* try fix CI
* actually fix CI finally hopefully
* Update lib/system/compilation.nim
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
* update kochdocs
* hopefully fix csize uses for slimsystem
* fix tquit
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
2022-09-28 15:28:45 -04:00
Tomohiro
92a0f191bf
Use vccexe when generating static lib with vcc ( #19843 )
2022-09-28 15:07:41 +02:00
metagn
de4b0346bd
store full definition AST for consts, fix noRewrite ( #20115 )
...
* continue #9582 for consts, close #9331 , fix #20114
also move extractPragma to ast to pave the way for things like {.strdefine: "abc".} etc
* changelog correctly
* fix jsgen
* update tgetimpl
* fix sighashes
* fix #19766 , add comment about postfix
* fix noRewrite LOL
refs #16620
* fix changelog
* fix destructors
2022-09-28 15:05:01 +02:00
ringabout
fdc6b0fb6e
fixes #19986 ; mutable view from immutable location ( #20134 )
...
* fixes #19986 ; mutable view from immutable location
* fixes the tests
2022-09-28 14:02:07 +02:00
konsumlamm
18cea8e9bd
Update message for checking cast ( #20145 )
...
* Update message for checking `cast`
* Update error messages in tests
2022-09-28 13:59:27 +02:00
ringabout
e33e9e4a32
fixes #20141 ; dereferencing pointer to incomplete type error with cast ( #20147 )
...
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com >
2022-09-28 13:57:47 +02:00
ringabout
fe8feb46c6
fixes #19457 seqs are not properly updated in loop with ARC/ORC ( #19922 )
...
* test CI
* fixes #19457
* add comments
Co-authored-by: sandytypical <43030857+xflywind@users.noreply.github.com >
2022-09-28 13:12:08 +02:00
ringabout
80e739f2bf
fixes #19401 ; fixes #19402 ; rework Forward declaration and finalizer for ORC ( #20295 )
...
* fixes #19401 ; fixes #19402 ; rework Forward declaration and finalizer for ORC
* add more tests
* give it a name
* make more tests
* fixes tests
* hidden addr for cpp
* move code to a function
2022-09-27 20:07:26 +02:00
Amjad Ben Hedhili
98a717dda9
allow more simple expressions in js ( #20270 )
...
* make it match ccgexprs.nim `isSimpleExpr`
* x in {1, 2}
* r[].x and r.x when r is ref type
* float(x)
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com >
2022-09-27 12:47:45 +02:00
Amjad Ben Hedhili
d755c02b02
Compute small nim string lit at CT ( #20439 )
...
* Reduces runtime overhead for small strings.
* Avoids including `makeNimstrLit` in the output when all strings are
small enough.
2022-09-27 11:11:09 +02:00
Andreas Rumpf
ca1f3f36b9
no ropes WIP ( #20433 )
...
* refactorings in preparation for ropes elimination of the C code generator; mostly the usual ': Rope' -> 'result: var Rope' rewrite
* rewrote ccgcalls.nim
* refactored ccgexprs.nim
* ccgliterals: refactoring
* refactoring: code dealing with name mangling
* refactoring: getRecordFieldsAux
* ropes are strings (insert obscene joke here)
* optimize JS code gen
* optimizations and code improvements
* more optimizations
* final cleanups
2022-09-27 10:57:47 +02:00
ringabout
cb24eea86b
fixes #20426 ; remove maincommand and m options since they are a no op since 2014 ( #20429 )
...
* bump macOS image on Azure CI to macos-11
##[warning]The macOS-10.15 environment is deprecated, consider switching to macos-11(macos-latest), macos-12 instead. For more details see https://github.com/actions/virtual-environments/issues/5583
* fix CI error
* fixes #20426 ; remove `maincommand` and `m` options since they are a noop since 2014 and causes confusion
fixes #20426
7f7b13a45f (diff-d949f8c356fd2dc9ceedc6f3dbbd01e2c806269dd0a8ad6516facf589fa2c99a) makes it a no op, but it causes a regression because it should add `expectArg(switch, arg, pass, info)` before the discard statement. It causes https://github.com/nim-lang/Nim/issues/20426 to happen. Without `expectArg(switch, arg, pass, info)`, `-mm:orc` is wrongly interpreted as `-m` and compiler, which doesn't make sense. It should either abort compilation or prints `argument for command line option expected: '-m'` message. Since they are a no op since 2014, let's remove it to clear the confusion. Let's wait and see whether it breaks something.
* add a changelog
2022-09-26 15:40:20 -04:00
Amjad Ben Hedhili
40dae8c731
Represent more types as JS TypedArrays ( #20411 )
...
* Represent `array[N, char]` as JS `UInt8Array(N)`
* Add support distinct and range types
* Add support for bools and enums
2022-09-26 12:26:28 +02:00
Bung
e13cd40e21
fix #2614 improve error message when array of proc calling convention… ( #20379 )
...
fix #2614 improve error message when array of proc calling convention mismatch
2022-09-26 11:58:13 +02:00
ringabout
30bd75e459
continue booting the compiler with refc ( #20421 )
...
* continue boot the compiler with refc
* koch
* use `gc:refc`
2022-09-24 20:14:01 +08:00
ringabout
7739e23420
defaults to ORC ( #19972 )
...
* defaults to Orc
* bootstrap using refc
* use gc
* init orc defines
* unregister orc
* fix gc
* fix commands
* add prepareMutation for orc
* enable deepcopy for orc
* prepareMutation
* more fixes
* some cases
* bug #20081
* partial fixes
* partial fixes
* fixes command line
* more fixes
* build Nim with refc
* use gc
* more fixes
* rstore
* orc doesn't support threadpool
* more shallowCopy
* more fixes
* fixes unsafeNew
* workarounds
* small
* more fixes
* fixes some megatest
* tcodegenbugs1 refc
* fxies megatest
* build nimble with refc
* workaround tensordsl tests
* replace shallowCopy with move
* fixes action
* workaround
* add todo
* fixes important packages
* unpublic unregisterArcOrc
* fixes cpp
* enable windows
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com >
2022-09-23 13:05:05 +02:00
ringabout
47b59e4d33
fix #17351 ; switch to c++17 and remove hacks ( #20407 )
...
* fix #17351 ; switch to c++17
* remove workaround
2022-09-23 11:16:43 +02:00
Aditya Siram
be4bd8a0ed
Fixes #20348 ; only respect the recursion limit if the symbol's generic type has been generated by the compiler ( #20377 )
...
Fixes #20348
2022-09-22 14:19:36 -04:00
Bung
2afce84616
Improve error message when instantiating generics with object constructor ( #20358 )
...
* Improve error message when instantiating generics with object constructor
* follow suggestion
* Update compiler/semobjconstr.nim
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com >
* Update tests/errmsgs/t19882_2.nim
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com >
2022-09-21 21:11:39 -04:00
ringabout
70c25c45d6
fixes #20397 ; fixes stylecheck regression ( #20398 )
...
* fixes #20397 ; fixes stylecheck
* add testcase
2022-09-21 15:04:33 -04:00
ringabout
e0c1159fb3
fixes #20391 ; make of operator work with generics for ORC ( #20395 )
2022-09-21 10:29:39 +02:00
ringabout
4a1bda667c
turn nimIncrSeqV3 into deadcode ( #20388 )
2022-09-20 14:59:50 +02:00
Bung
08c02f0236
report expression has no type other than has to be used (or discarded… ( #20392 )
...
report expression has no type other than has to be used (or discarded) when typ is tyNone in discardCheck
2022-09-20 14:50:48 +02:00
Bung
a302b26e0e
fix #19882 Improve error message when instantiating generics that lac… ( #20356 )
...
* fix #19882 Improve error message when instantiating generics that lack a type
* Update tests/errmsgs/t19882.nim
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com >
2022-09-19 18:31:40 -04:00
Amjad Ben Hedhili
7a756bfaef
Shorten JS block code ( #20370 )
2022-09-19 15:09:41 +02:00
ringabout
97259a5ab3
fixes #19713 ; Revert "Remove tlsEmulation enabled from Windows + GCC config" ( #19119 ) ( #20327 )
...
* Revert "Remove tlsEmulation enabled from Windows + GCC config (#19119 ) [backport:1.6]"
This reverts commit 77b696c2c9 .
* increase nimTlsSize to 48000
* enable for windows
* fixes tests
* fixes tlsEmulation:on
2022-09-19 09:16:54 +02:00
Tanguy
3a5e38ab9d
Allow custom pragma on iterators [backport] ( #20344 )
...
Allow custom pragma on iterators
2022-09-17 02:10:47 +08:00
metagn
a73ae3e066
minor improvements to follow up recent PRs ( #20342 )
...
put mOpenArrayToSeq in compile-time evaluation whitelist
(it was mNone before which was whitelisted), homogenize
"ordinal type expected" errors, put overloadable enums
in non-experimental manual
2022-09-14 18:30:15 +02:00
Bung
08faa04d78
fix #20233 Float ranges in case statement in JS crash compiler ( #20349 )
2022-09-14 17:16:34 +02:00
Andreas Rumpf
6bf21e7b3d
fixes #19724 ; don't be aggressive when you infer sink parameters ( #20314 )
...
* fixes #19724 ; don't be aggressive when you infer sink parameters
* better logic and updated tests
* wip
* fixes tests (#20330 )
* restore tests
* try splitPath
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com >
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com >
Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com >
2022-09-12 00:58:29 +02:00
Clay Sweetser
8850644cb7
Revert "fixes #20155 ; repr range with distinct types is broken with ORC" ( #20334 )
...
Revert "fixes #20155 ; repr range with distinct types is broken with ORC (#20158 )"
This reverts commit 37b3f62eef .
2022-09-11 16:56:11 -04:00
ringabout
37b3f62eef
fixes #20155 ; repr range with distinct types is broken with ORC ( #20158 )
...
* fixes #20155 ; repr range with distinct types is broken with ORC
* skipRanges
2022-09-11 16:55:22 -04:00
Andrey Makarov
088487f652
Implement Markdown definition lists (+ migration) ( #20333 )
...
Implements definition lists Markdown extension adopted in a few
implementations including:
* [Pandoc](
https://pandoc.org/MANUAL.html#definition-lists )
* [kramdown](
https://kramdown.gettalong.org/quickref.html#definition-lists )
* [PHP extra Markdown](
https://michelf.ca/projects/php-markdown/extra/#def-list )
Also affected files have been migrated.
RST definition lists are turned off for Markdown: this solves the
problem of broken formatting mentioned in
https://github.com/nim-lang/Nim/pull/20292 .
2022-09-11 13:52:43 -04:00
metagn
58e6d439d8
fix #13515 [backport] ( #20315 )
...
* fix #13515
* only compile test
* no idea why this PR is unlocking this
* don't rope in symchoices
* even more restrictive
2022-09-11 08:33:24 +02:00
ringabout
1699ba1c93
fixes nightlies build regression ( #20322 )
...
fixes nightlies build
2022-09-08 22:30:03 +02:00
ringabout
bbbfde7341
fixes #20303 ; wasMoved expressions with side effects for ORC ( #20307 ) [backport]
...
fixes #20303 ; wasMoved expressions with side effects
2022-09-08 08:07:28 +02:00
Amjad Ben Hedhili
5d947bb791
Replace if by case in JS isSimpleExpr ( #20267 )
...
use case stmt
2022-09-06 21:33:40 +02:00