Files
Nim/compiler
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
..
2021-01-07 20:26:40 +01:00
2022-01-11 10:16:51 +01:00
2021-05-12 22:00:37 +02:00
2021-03-19 16:53:38 +01:00
2021-03-29 21:16:11 +02:00
2022-01-20 13:59:36 +01:00
2021-11-02 16:30:59 +01:00
2017-01-07 22:35:09 +01:00
2019-11-28 17:13:04 +01:00
2021-01-07 20:26:40 +01:00
2021-07-27 12:48:27 +02:00
2021-05-20 15:48:46 +02:00
2021-01-12 09:36:51 +01:00
2019-09-27 07:02:54 +02:00
2022-01-04 11:10:46 +01:00
2022-01-13 14:43:35 +01:00
2021-01-07 20:26:40 +01:00
2021-11-02 16:30:59 +01:00
2021-04-09 08:00:13 +02:00
2019-11-28 17:13:04 +01:00
2021-01-07 20:26:40 +01:00
2021-09-03 15:18:55 +02:00
2021-04-07 19:54:28 +02:00
2021-04-24 18:33:29 +01:00
2020-11-10 21:53:25 +01:00
2021-05-09 00:56:37 +02:00
2021-12-04 07:43:20 +01:00
2021-05-12 22:00:37 +02:00
2021-12-04 07:43:20 +01:00

Nim Compiler

  • This directory contains the Nim compiler written in Nim.
  • Note that this code has been translated from a bootstrapping version written in Pascal.
  • So the code is not a poster child of good Nim code.

See Internals of the Nim Compiler for more information.