summary refs log tree commit diff stats
path: root/doc/manual_experimental.rst
Commit message (Collapse)AuthorAgeFilesLines
* Improve Markdown code blocks & start moving docs to Markdown style (#19954)Andrey Makarov2022-07-151-1943/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add additional parameters parsing (other implementations will just ignore them). E.g. if in RST we have: .. code:: nim :test: "nim c $1" ... then in Markdown that will be: ```nim test="nim c $1" ... ``` - implement Markdown interpretation of additional indentation which is less than 4 spaces (>=4 spaces is a code block but it's not implemented yet). RST interpretes it as quoted block, for Markdown it's just normal paragraphs. - add separate `md2html` and `md2tex` commands. This is to separate Markdown behavior in cases when it diverges w.r.t. RST significantly — most conspicously like in the case of additional indentation above, and also currently the contradicting inline rule of Markdown is also turned on only in `md2html` and `md2tex`. **Rationale:** mixing Markdown and RST arbitrarily is a way to nowhere, we need to provide a way to fix the particular behavior. Note that still all commands have **both** Markdown and RST features **enabled**. In this PR `*.nim` files can be processed only in Markdown mode, while `md2html` is for `*.md` files and `rst2html` for `*.rst` files. - rename `*.rst` files to `.*md` as our current default behavior is already Markdown-ish - convert code blocks in `docgen.rst` to Markdown style as an example. Other code blocks will be converted in the follow-up PRs - fix indentation inside Markdown code blocks — additional indentation is preserved there - allow more than 3 backticks open/close blocks (tildas \~ are still not allowed to avoid conflict with RST adornment headings) see also https://github.com/nim-lang/RFCs/issues/355 - better error messages - (other) fix a bug that admonitions cannot be used in sandbox mode; fix annoying warning on line 2711
* New/better macro pragmas, mark some as experimental (#19406)metagn2022-01-201-1/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* deprecate unsafeAddr; extend addr (#19373)flywind2022-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * deprecate unsafeAddr; extend addr addr is now available for all addressable locations, unsafeAddr is deprecated and become an alias for addr * follow @Vindaar's advice * change the signature of addr * unsafeAddr => addr (stdlib) * Update changelog.md * unsafeAddr => addr (tests) * Revert "unsafeAddr => addr (stdlib)" This reverts commit ab83c99c507048a8396e636bf22d55fdd84d7d1c. * doc changes; thanks to @konsumlamm Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* move type operation section and remove deepcopy document (#19389)flywind2022-01-151-40/+14
| | | ref #19173; because deepcopy is not fit for ORC/ARC which was used for spawn and spawn will be removed from compiler
* docs: Mention `import foo {.all.}` syntax (#19377)Leon2022-01-131-0/+11
| | | | | | | Mention the `import foo {.all.}` syntax in the manual, with a caveat about private imports. Also link to the experimental importutils module. Co-authored-by: adigitoleo <adigitoleo@dissimulo.com>
* `caseStmtMacros` no longer experimental, experimental manual refactor (#19173)hlaaftana2021-11-231-673/+507
| | | | | | | | | | | * `caseStmtMacros` no longer experimental, experimental manual refactor * Update doc/manual.rst * apply review suggestions * apply review Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Remove `Covariance` section from the experimental manual (#18688)konsumlamm2021-08-291-101/+63
| | | | | | | * Remove `Covariance` section * Add blank lines after `.. code-block::` * Fix CI?
* Documentation only, add 1 example (#18633)Juan Carlos2021-08-031-0/+18
|
* use more `.}` (#18542)flywind2021-07-201-2/+2
|
* move {.injectStmt.} to experimental; add a test (#18300)Timothee Cour2021-06-201-0/+1
| | | | | * move {.injectStmt.} to experimental; add a test * undocument and deprecat `.injectStmt` but keep its implementation until we have a replacement
* view types: spec changes (#18226)Andreas Rumpf2021-06-101-17/+14
| | | | | | | | | | | | | * view types: spec changes * Update doc/manual_experimental.rst Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> * Update doc/manual_experimental.rst Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com> Co-authored-by: konsumlamm <44230978+konsumlamm@users.noreply.github.com>
* follow-up #18013 - inline syntax highlighting (#18166)Andrey Makarov2021-06-041-10/+10
|
* further progress on rst roles & directives (fix #17646) (#17659)Andrey Makarov2021-04-081-1/+1
| | | | | | | * further progress on rst roles & dir-s (fix #17646) * fix documents according to the messages * fix bug 17 from #17340
* nnkArglist => nnkArgList + special case stylecheck:error (#17529)Timothee Cour2021-03-271-1/+1
| | | | | * nnkArglist => nnkArgList * special case stylecheck:error
* RST backtick refactor (all *.rst except manual.rst and rst_examples.rst) ↵quantimnot2021-03-181-256/+258
| | | | | (#17258) Co-authored-by: quantimnot <quantimnot@users.noreply.github.com>
* promote std prefix in docs (#17128)flywind2021-02-201-9/+9
|
* tests and docs for call operator (#16980)hlaaftana2021-02-091-1/+33
| | | | | | | * tests and docs for call operator * fix leftover * add extra dot test
* rename case statement macro from match to `case` (#16923)hlaaftana2021-02-081-13/+11
| | | | | * rename case statement macro from match to `case` * fix test
* Make small text changes in the docs (#16634)Elliot Waite2021-01-251-1/+1
| | | | | | | | | * Fix broken links in docs * Fix rand HSlice links * Make small text changes in the docs * Fix typo in contributing docs
* Deprecate TaintedString (#15423)Juan Carlos2021-01-151-22/+0
| | | | Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com>
* fix docs typo (#16637)flywind2021-01-121-1/+1
| | | | | | | * fix typo * fix typo * Update doc/astspec.txt
* Nil type check implementation (#15287)Alexander Ivanov2020-12-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Nil checking * Enable current older not nil checking again, run new checking only under flag, skip our test * Enable tests, work on try/except and bugs, fix notnil tests * Enable strictNotNil tests (currently with lowercase category) and add some expected output * Work on try/except/finally: still some things unclear and a lot of code can raise out of try * Fix the notnil build by going back to the old version of a test which I shouldn't have changed * Fix test : use action compile * Work on mutation and aliasing: not finished * Render var parititions graph, try to understand it, fix a nilcheck if bug * Rebase, progress on working with partitions * Improve time logic * Fix some bugs, use graph indices instead of symbol in nil map * Fix bugs, test simpler ident aliasing for now, support two mutation levels * Support ContentMutation and ReAssignment: for now just detect possible re assignment for var parameters of calls * Enable several simple passing tests * Cleanup a bit, fix condition/branch infix-related bug * Remove some files, address some comments by Araq * Use internalError and no quit for now * Separate tests with expected warnings and with expected ok, fix a bug with if with a single branch related to copyMap * Fix new data structures, bugs: make tests pass, disable some for now * Work on fixing errors with non-sym nodes, aliasing: tests fail * Work on alias support: simple set-based logic, todo more tests and ref sets? * Use ref sets: TODO can we think of handle seq-s similar to varpartitions' Araq ones * Handle defers in one place, stop raising in reverse to make an async test compile with strictNotNil, add a commented out test * Dot expressions: call/reassignment. Other refactorings and distinct, SeqOfDistinct support. Checkout an older varpartitions * Work on field tracking * Backup : trying to fix bugs when running some stdlib stuff for running an async test * Start a section about strict not nil checking in experimental manual * Fix experimental strict not nil manual section and move it to another file based on Araq feedback * Fix unstructured flow and double warning problems, fix manual, cleanup * Fix if/elif/else : take in account structure according to Araq feedback * Refactor a bit * Work on bracket expr support, re-enable tests, clarify in manual/tests/implementation static index support for now * Work on compiling stdlib and compiler with strictNotNil * Small fixes to the manual for strictNotNil * Fix idgen for strict check nil rebase * Enable some simple tests, remove old stuff, comment out code/print * Copy the original varpartitions source instead of my changes * Remove some files
* styleCheck: Fix error for `sugar` and `std/with` (#16176)ee72020-12-021-1/+1
| | | | | | | | | | | | | | | | With this commit, we no longer see an error if we pass `--styleCheck:error` when compiling a file that contains `import sugar` or `import std/with`. The problem was that those modules (and only those modules) import `std/private/underscored_calls`, which contained a styleCheck issue: its spelling of `nnkArgList` didn't match the `nnkArglist` spelling in `macros.nim`. This commit fixes the issue by renaming `nnkArgList` to `nnkArglist` repo-wide. The other way around would be a breaking change for code that used `nnkArglist` and `--styleCheck:error`. Fixes: #16174
* more "eg" fixesnarimiran2020-10-201-1/+1
|
* Fix typoClyybber2020-10-011-1/+1
|
* Fix "arraq" typo :)Clyybber2020-10-011-1/+1
|
* views: yet another bugfix (#15447)Andreas Rumpf2020-10-011-0/+16
| | | | | | | * views: yet another bugfix * views: extended the spec * views: take into account potential hidden mutations via proc calls
* spec for view types (#15424)Andreas Rumpf2020-09-291-5/+185
| | | | | | | | | | | * spec for view types * spec additions * refactoring; there are two different kinds of views * refactorings and spec additions * enforce that view types are initialized * enforce borrowing from the first formal parameter * enforce lifetimes for borrowing of locals * typo in the manual * clarify in the implementation what a borrow operation really is
* .noalias annotation; frontend support (#15419)Andreas Rumpf2020-09-281-0/+15
| | | | | * .noalias annotation; frontend support * added .noalias support to Nim; implements https://github.com/nim-lang/RFCs/issues/204
* Remove Deprecated {.this:self.} from Documentation so people dont use it ↵Juan Carlos2020-09-151-36/+0
| | | | anymore (#15328)
* borrow checking (#15282)Andreas Rumpf2020-09-091-0/+52
| | | | | | | | | | | * refactoring: move procs to typeallowed.nim * frontend preparations for first class openArray support * prepare the code generator for first class openArray * code generation for first class openArray; WIP * code generation for open arrays, progress * added isViewType proc * preparations for borrow checking * added borrow checking to the front end
* "for-loop macros" are no longer an experimental feature (#15288)Miran2020-09-081-46/+0
|
* strict func: much better error messages (#15068)Andreas Rumpf2020-07-251-0/+38
| | | | | * strict func: much better error messages * documented the 'strict funcs' mode
* Fix some typos (#14843)Danil Yarantsev2020-06-281-1/+1
|
* init checks and 'out' parameters (#14521)Andreas Rumpf2020-06-231-3/+3
| | | | | | | | | | | * I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
* Fix typoClyybber2020-05-081-1/+1
|
* exp. features now in correct manual, closes #11932 (#14195)hlaaftana2020-05-021-4/+181
|
* changed type() to typeof() in docs and error messages (#14084)hlaaftana2020-04-241-2/+2
|
* docs: move `not nil` to the experimental page (#14027)Rory O’Kane2020-04-211-0/+30
| | | | | When I heard that this feature existed, and found the 2018 changelog entry that said `not nil` was made experimental (https://github.com/nim-lang/Nim/blob/devel/changelogs/changelog_0_19_0.md#changes-affecting-backwards-compatibility), I looked for `not nil` documentation in https://nim-lang.org/docs/manual_experimental.html. When I didn’t find it there, I initially assumed the feature had no documentation. This change moves the documentation to where readers will expect it. As well as moving the text to another file, I added instructions for enabling the experimental feature and tweaked some wording.
* [backport] Fix spelling typos (#12755)Brian Wignall2019-11-281-3/+3
|
* Fix word wrappingJjp1372019-10-221-3/+4
|
* Fix many broken linksJjp1372019-10-221-2/+2
| | | | | | Note that contrary to what docgen.rst currently says, the ids have to match exactly or else most web browsers will not jump to the intended symbol.
* added destructors.rst spec to the build documentationAraq2019-08-161-75/+6
|
* Moved 'Case statement macros' documentation out of manual into ↵Ico Doornekamp2019-07-121-0/+51
| | | | manual_experimental (#11716)
* [bugfix] document the norewrite pragma (#11453)Juan Carlos2019-06-131-0/+20
| | | | | * fixes #9454 * Peer review feedback, wording, move to experimental manual
* manual_experiments: clarificationsAraq2019-05-151-1/+4
|
* manual: add a section about aliasing restrictions for parameter passing; ↵Araq2019-05-061-0/+25
| | | | Spark inspired
* manual_experimental: cleanup the type/typedesc confusions, typedesc is here ↵Araq2019-04-201-3/+3
| | | | to stay for good
* move more stuff into manual_experimentalAndreas Rumpf2019-03-271-0/+376
|
* manual.rst: move experimental features to manual_experimentalAndreas Rumpf2019-03-271-0/+1232