Nim/lib/std
metagn 2bd1aa186e
New/better macro pragmas, mark some as experimental (#19406)
* New/better macro pragmas, make some experimental

fix #15920, close #18212, close #14781, close #6696,
close https://github.com/nim-lang/RFCs/issues/220

Variable macro pragmas have been changed to
only take a unary section node.
They can now also be applied in sections with multiple variables,
as well as `const` sections. They also accept arguments.

Templates now support macro pragmas, mirroring other routine types.

Type and variable macro pragmas have been made experimental.
Symbols without parentheses instatiating nullary macros or templates
has also been documented in the experimental manual.

A check for a redefinition error based on the left hand side of variable
definitions when using variable macro pragmas was disabled.
This nerfs `byaddr` specifically, however this has been documented as
a consequence of the experimental features `byaddr` uses.

Given how simple these changes are I'm worried if I'm missing something.

* accomodate compiler boot

* allow weird pragmas

* add test for #10994

* remove some control flow, try remove some logic
2022-01-20 20:57:50 +01:00
..
private Fix #19038 - making the Nim compiler work again on Windows XP (#19331) 2022-01-07 08:26:55 +01:00
compilesettings.nim add mm to compilesettings; deprecate gc (#19394) 2022-01-16 21:10:35 +01:00
decls.nim New/better macro pragmas, mark some as experimental (#19406) 2022-01-20 20:57:50 +01:00
editdistance.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
effecttraits.nim fixes #18371 (#18617) 2021-07-30 12:05:14 +02:00
enumerate.nim move tests to testament (#16101) 2020-11-24 19:06:41 +01:00
enumutils.nim Allow nnkAccQuoted in genEnumCaseStmt (#18606) 2021-07-29 07:47:34 +02:00
envvars.nim Added std/envvars for env vars handling (#19421) 2022-01-20 13:55:19 +01:00
exitprocs.nim Freeing critical sections via atexit in system/alloc and system/io (#19062) 2021-10-29 13:42:44 +02:00
genasts.nim new genAst as replacement for quote do (#17426) 2021-04-02 13:11:03 +02:00
importutils.nim make privateAccess work with generic types and generic instantiations; fix a SIGSEGV (#18260) 2021-06-19 11:24:46 -07:00
isolation.nim Rename = to =copy in stdlib (#17781) 2021-04-19 13:16:10 +02:00
jsbigints.nim add number literal jsbigints.big (#17707) 2021-04-13 09:33:28 +02:00
jsfetch.nim Implement RFC-391 (#18585) 2021-08-22 12:32:55 -07:00
jsformdata.nim Use .. warning:: (#17320) 2021-03-10 10:39:23 -08:00
jsheaders.nim Use .. warning:: (#17320) 2021-03-10 10:39:23 -08:00
jsonutils.nim rename nimLegacyJsonutilsHoleyEnum [backport] (#18938) 2021-10-01 20:26:29 +02:00
logic.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
monotimes.nim Implement zephyr urandom and monotime (#19142) 2021-11-14 12:49:30 +01:00
oserrors.nim Added std/oserrors for OS error reporting (#19390) 2022-01-17 13:06:31 +01:00
packedsets.nim various small documentation improvements (#18602) 2021-07-28 14:31:13 +02:00
setutils.nim correct licence header (#18935) 2021-10-01 13:57:06 +02:00
sha1.nim correct licence header (#18935) 2021-10-01 13:57:06 +02:00
socketstreams.nim Implements streams for sockets (#15729) 2021-01-07 16:09:57 +01:00
stackframes.nim init checks and 'out' parameters (#14521) 2020-06-23 10:53:57 +02:00
strbasics.nim correct licence header (#18935) 2021-10-01 13:57:06 +02:00
sums.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
sysrand.nim Implement zephyr urandom and monotime (#19142) 2021-11-14 12:49:30 +01:00
tasks.nim [std/tasks] more gcsafe stuffs [backport] (#18926) 2021-09-30 07:46:30 +02:00
tempfiles.nim [std/tempfiles] docs improvement (#18936) 2021-10-01 20:14:10 +02:00
time_t.nim use single backtick (#17141) 2021-02-21 19:53:28 -08:00
varints.nim Make unused code into actual test, replace echo with doassert (#13952) 2020-04-11 22:16:26 +02:00
vmutils.nim enable VM tracing in user code via {.define(nimVmTrace).} (#18244) 2021-06-24 11:55:31 +02:00
with.nim Small doc improvements for std/with (#17556) 2021-03-29 12:44:31 +02:00
wordwrap.nim move rest of tests to testament (#16140) 2020-11-27 20:47:49 +01:00
wrapnils.nim major improvements to std/wrapnils: optimal codegen, case objects, lvalue semantics (#18435) 2021-07-07 06:04:36 +02:00