Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new genAst as replacement for quote do #17426

Merged
merged 32 commits into from
Apr 2, 2021
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e4ae3dc
new `macros.genAst`: fixes all issues with `quote do`
timotheecour Jul 12, 2019
ff40adb
add tests
timotheecour Jul 12, 2019
d0c691b
add changelog entry
timotheecour Jul 12, 2019
5e0bcda
add workaround for https://github.com/nim-lang/Nim/issues/2465#issuec…
timotheecour Jul 13, 2019
12b42c4
add test for #9607
timotheecour Jul 13, 2019
ba2d73d
add kNoExposeLocalInjects option
timotheecour Jul 13, 2019
26fcfdc
simplify: `do:`=>`:`
timotheecour Jul 14, 2019
150610a
add test case for nested application of genAst
timotheecour Jul 21, 2019
42769b8
genAst: automatically call newLit when needed
timotheecour Jul 24, 2019
e290257
allow skipping `{}`: genAst: foo
timotheecour Jul 24, 2019
232a0ba
fixup
timotheecour Jul 24, 2019
a8839d4
fixup
timotheecour Jul 24, 2019
88d7c91
improve comment
timotheecour Jul 24, 2019
e40b5ba
fixup
timotheecour Jul 24, 2019
c7d05e0
clarifications
timotheecour Jul 25, 2019
d54517a
fixup
timotheecour Jul 26, 2019
2e8f5b2
improve comments, simplify runnableExamples
timotheecour Jul 27, 2019
c9dfedd
kNoAutoNewLit => kNoNewLit
timotheecour Jul 30, 2019
bc19a03
add example
timotheecour Jul 30, 2019
e2a90d4
add test that shows this fixes #11986
timotheecour Aug 23, 2019
af8ebc1
add examples showing mixin; add examples showing passing types, macro…
timotheecour Aug 25, 2019
d3ebf15
move to std/genasts
timotheecour Mar 20, 2021
fa763a3
fixup
timotheecour Mar 20, 2021
5f0d6d3
fixup
timotheecour Mar 20, 2021
0e3c5d7
fixup
timotheecour Mar 20, 2021
ef08871
_
timotheecour Mar 20, 2021
6e7fcc4
_
timotheecour Mar 20, 2021
f160df5
cleanups
timotheecour Mar 20, 2021
9198b36
test in vm + rt
timotheecour Mar 20, 2021
71dbcb7
address comments
timotheecour Mar 20, 2021
1fafc0a
address comment
timotheecour Mar 22, 2021
429a2f4
improve docs
timotheecour Apr 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fixup
  • Loading branch information
timotheecour committed Apr 2, 2021
commit fa763a38d15426e23560472406633462c1fc8df9
27 changes: 1 addition & 26 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,28 +41,8 @@

- added `jsonutils.jsonTo` overload with `opt = Joptions()` param.

## Library changes

- `json.%`,`json.to`, `jsonutils.formJson`,`jsonutils.toJson` now work with `uint|uint64`
instead of raising (as in 1.4) or giving wrong results (as in 1.2).
- `asyncdispatch.drain` now properly takes into account `selector.hasPendingOperations`
and only returns once all pending async operations are guaranteed to have completed.
- `asyncdispatch.drain` now consistently uses the passed timeout value for all
iterations of the event loop, and not just the first iteration.
This is more consistent with the other asyncdispatch apis, and allows
`asyncdispatch.drain` to be more efficient.
- `base64.encode` and `base64.decode` was made faster by about 50%.
- `htmlgen` adds [MathML](https://wikipedia.org/wiki/MathML) support
(ISO 40314).
- `macros.eqIdent` is now invariant to export markers and backtick quotes.
- `htmlgen.html` allows `lang` on the `<html>` tag and common valid attributes.
- `macros.basename` and `basename=` got support for `PragmaExpr`,
so that an expression like `MyEnum {.pure.}` is handled correctly.
- `httpclient.maxredirects` changed from `int` to `Natural`, because negative values serve no purpose whatsoever.
- `httpclient.newHttpClient` and `httpclient.newAsyncHttpClient` added `headers` argument to set initial HTTP Headers,
instead of a hardcoded empty `newHttpHeader()`.
- Added `genasts.genAst` that avoids the problems inherent with `quote do` and can
be used as a replacement (#11722)

- Added an overload for the `collect` macro that inferes the container type based
on the syntax of the last expression. Works with std seqs, tables and sets.
Expand All @@ -71,7 +51,6 @@

- Added `randState` template that exposes the default random number generator.
Useful for library authors.
## Language additions

- Added `std/enumutils` module. Added `genEnumCaseStmt` macro that generates case statement to parse string to enum.
Added `items` for enums with holes.
Expand Down Expand Up @@ -276,6 +255,7 @@
- Added `hasClosure` to `std/typetraits`.



## Language changes

- `nimscript` now handles `except Exception as e`.
Expand Down Expand Up @@ -348,11 +328,6 @@


## Tool changes
- VM FFI now works with {.importc, dynlib.}, when using -d:nimHasLibFFI (#11635)

- importc procs with a body are now executed in the VM as if importc wasn't specified,
this allows using {.rtl.} procs at CT, making -d:useNimRtl work in more cases,
e.g. compiling nim itself (#11635)

- The rst parser now supports markdown table syntax.
Known limitations:
Expand Down