summary refs log tree commit diff stats
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* fixes #24109; gdb.SYMBOL_FUNCTION_DOMAIN (#24110)ringabout2024-09-161-5/+5
| | | fixes #24109
* Fix CSS for `number-lines` code blocks (#24081)Jake Leahy2024-09-091-2/+2
| | | | | | | | | | | | Adds a few fixes for when using code blocks with lines numbered - Use CSS variables for the colours so that it works in dark mode - Don't turn on normal table effects like hover and smaller font when its a line number table - With dochack.nim, don't add a clipboard copy button for the line numbers at the side [Example page showing the changes](https://66dcde6e4a655efb70771d9a--dazzling-kitten-6c3419.netlify.app/)
* Fixes #23846; prepend nimArgs to args (#23847)EuklidAlexandria2024-07-171-2/+3
| | | | Fixes #23846. Probably, nimArgs should be prepended in other places (e.g. `buildDocSamples`).
* Treat CJK Ideographs as letters in `isAlpha()` (#23651)Alexander Kernozhitsky2024-05-291-25/+45
| | | | | | | | | | | | | | | | | Because of the bug in `tools/parse_unicodedata.nim`, CJK Ideographs were not considered letters in `isAlpha()`, even though they have category Lo. This is because they are specified as range in `UnicodeData.txt`, not as separate characters: ``` 4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;; 9FEF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;; ``` The parser was not prepared to parse such ranges and thus omitted almost all CJK Ideographs from consideration. To fix this, we need to consider ranges from `UnicodeData.txt` in `tools/parse_unicodedata.nim`.
* Support NetBSD/aarch64 (#23616)PHO2024-05-162-0/+2
| | | | | I could trivially port Nim to NetBSD/aarch64 because it already supported NetBSD and aarch64. I only needed to generate `c_code` for this combination.
* lexer cleanups (#23037)Jacek Sieka2023-12-061-1/+0
| | | | * remove some dead code and leftovers from past features * fix yaml printing of uint64 literals
* build documentation for `htmlparser` (#22879)ringabout2023-10-271-1/+4
| | | | | | I have added a note for installment https://github.com/nim-lang/htmlparser/pull/5 > In order to use this module, run `nimble install htmlparser`.
* remove outdated config (#22603)ringabout2023-08-311-4/+0
|
* fixes #22441; build documentation for more modules in the checksums (#22453)ringabout2023-08-171-0/+3
| | | Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
* Add Linux constant SO_BINDTODEVICE (#22468)Emery Hemingway2023-08-141-0/+1
|
* build atlas documentation (#22071)ringabout2023-06-111-1/+7
|
* Atlas: now in its own repository (#22066)Andreas Rumpf2023-06-101-0/+101
| | | | | * Atlas: now in its own repository * progress
* Remove Deprecated Nimfix (#22062)Juan Carlos2023-06-101-2/+1
| | | | * Remove Deprecated Nimfix * Trailing whitespace cleanups
* add const RLIMIT_STACK (#21772)Qinsi (James) ZHU2023-06-091-0/+1
| | | | | | | * add const RLIMIT_STACK * generate by detect.nim * add generated const for linux-amd64
* fixes #22025 vcc fails with The filename or extension is too long. when ↵Juan M Gómez2023-06-061-0/+5
| | | | | linking (#22026) [vcc]makes paths relative when possible fixes #22025
* Atlas: --project switch and better graph representation (#21971)Andreas Rumpf2023-06-0316-1892/+0
|
* Atlas: avoid segfault on failed Github search (#21980)Gruruya2023-06-021-1/+1
| | | | | * Atlas: avoid segfault on failed Github search * Return empty array on failed search instead of nil
* Atlas: Use copyFileWithPermissions to copy nim executable (#21967)SirOlaf2023-05-311-1/+1
| | | | | Use copyFileWithPermissions to copy nim executable Co-authored-by: SirOlaf <>
* Atlas: virtual environments (#21965)Andreas Rumpf2023-05-301-1/+78
| | | | | * Atlas: virtual environments * fixes
* Atlas: URL rewrite rules; --autoinit flag (#21963)Andreas Rumpf2023-05-302-10/+303
|
* Atlas: some final cleanups (#21947)Andreas Rumpf2023-05-281-7/+12
|
* fixes atlas logging colors on windows (#21946)ringabout2023-05-281-3/+3
| | | fixes atlas logging colors
* Atlas: checkout latest tagged commit with `atlas use` (#21944)Gruruya2023-05-281-7/+20
| | | | Now any deps with unspecified version reqs will checkout the last tagged commit instead of the first commit.
* ship atlas and build documentation (#21945)ringabout2023-05-281-140/+0
| | | | | * ship atlas and build documentation * move atlas.md and link it in tools' index
* Atlas: use colored output (#21939)Andreas Rumpf2023-05-281-38/+48
| | | | | | | * Atlas: use colored output * fixes merge conflict * another tiny improvement
* Atlas: add `atlas tag` command (#21936)Gruruya2023-05-271-4/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Initial structure, `GitTags` → `GitRefsTags` * Determine if we should use v prefix * get tag from latest tag, patch nimble file * Just do tags for now * atlas tag now tags and pushes * Improve UX of `atlas tag` * better description for `tag` * Small fixup * Consistent naming * strip after checking status * Take major/minor/patch as arg for `atlas tag` * undo testing comment * Fix for `v` prefixed versions * Avoid useless assignment * Remove uselss enum assignment * Consistent parameter seperation * Add error handling for non-semver tags * Use `assert` to quit on error * Update tools/atlas/atlas.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de> * Don't push tags if errors occurred * Allow `atlas tag [tag]` again * Add atlas tag `a..z` for fields > 3 * Document the three input options * Take up less lines in help * Less or in help * One last doc pass * Check args length * clarify last tag * consistency/order --------- Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* Atlas: explicit graph representation (#21937)Andreas Rumpf2023-05-271-28/+55
|
* Atlas: fixes 'use' command (#21932)Andreas Rumpf2023-05-272-53/+43
| | | | | * Atlas: fixes 'use' command * Atlas: refactoring + make tests green again
* Atlas: clone with `--recursive` (#21933)Gruruya2023-05-271-1/+1
|
* atlas: search improvements (#21929)Gruruya2023-05-272-5/+8
| | | | | | | | | * Get description and license from github json response * Allow running `atlas search` outside of a workspace * Check `len` instead of `dirExists` * make `list` identical to `search`
* atlas: better code (#21926)Andreas Rumpf2023-05-261-16/+12
|
* Fix Nimgrab (#21918)Juan Carlos2023-05-261-3/+10
| | | | | | | | | * . * Fix nimgrab client not closing * Fix nimgrab client not closing * Fix nimgrab client not closing
* Atlas: Actually use deps for use command (#21922)SirOlaf2023-05-261-2/+1
| | | Co-authored-by: SirOlaf <>
* Atlas: misc (#21919)Andreas Rumpf2023-05-262-25/+34
| | | | | * Atlas: misc * Atlas: use the lockfile if one exists
* atlas: better docs (#21911)Andreas Rumpf2023-05-252-76/+156
| | | | | | | | | * atlas: better docs * better workspace/project handling * make tests green again * bugfix
* Atlas: added 'use' command (#21902)Andreas Rumpf2023-05-242-7/+104
| | | | | * Atlas: added 'use' command * typo
* Atlas: first lockfiles implementation; cleared up upated vs updateWor… ↵Andreas Rumpf2023-05-232-13/+81
| | | | | (#21895) Atlas: first lockfiles implementation; cleared up upated vs updateWorkspace commands
* minor atlas improvements (#21888)Andreas Rumpf2023-05-232-19/+68
| | | | | * minor atlas improvements * atlas: support a _deps workspace subdirectory
* Atlas tool: search github too, no need to register your project at pa… ↵Andreas Rumpf2023-05-223-6/+55
| | | | | | | (#21884) * Atlas tool: search github too, no need to register your project at packages.json * added missing file
* clean up SOME pending/xxx/issue link comments (#21826)metagn2023-05-111-8/+3
| | | | | * clean up SOME pending/xxx/issue link comments * great
* build documentation for `checksums/md5` and `checksums/sha1` (#21791)ringabout2023-05-041-1/+5
| | | | | * build documentation for md5 and sha1 * fixes documentation reference
* fixes #19863; move sha1, md5 to nimble packages for 2.0 (#21702)ringabout2023-05-022-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * move sha1, md5 to nimble packages * boot the compiler * fixes tests * build the documentation * fixes docs * lol, I forgot koch.nim * add `nimHasChecksums` define * clone checksums but maybe copying is better * bump nimble hash * use ChecksumsStableCommit * fixes tests * deprecate them * fixes paths * fixes koch
* atlas tool: 'update' command (#21557)Andreas Rumpf2023-03-212-3/+36
|
* Update LLDB debug script + Add Custom Nim formatters (#21517)Joey2023-03-192-350/+763
| | | | | | | | | * Fix custom objects, fix handling of nil variables * Rename because lldb complains about dashes in filename * Add example of how to use custom type formatting from Nim * Add synthetic objects with dynamic fields and add an example
* fixes #21461 (#21463)Arnaud Moura2023-03-032-0/+1039
| | | | | * fixes #21461; Move nim-gdb.py and add nim-lldb.py * fixes bad path for nim-gdb.py
* Support tuples in nim-gdb (#21410)Jake Leahy2023-02-211-3/+22
| | | | | | | | | * Support for printing tuple types * Add test of printing a tuple * Add support for printing tuples in GDB * Forgot to [skip ci]
* Support new runtime with nim-gdb (#21400)Jake Leahy2023-02-201-257/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add support for orc strings * Cleaned up testing script Enums now printing properly Merged both old and new strings into the one printer Moving onto sets which seem kinda difficult * Sets working Instead of trying to imitate how Nim represents enums, I just call the dollar proc for each enum value While this runs into problems if the user doesn't call the dollar proc anywhere, I believe its a decent tradeoff I've cleaned up the error message for when it cannot find dollar proc (Might add in proper message on how to fix) * Support sequences V2 runtime seems to have sequences that don't have a len (Guessing its some kind of short seq optimisation?) but I've rolled the implementation into normal sequences since the implementation is practically the same * Clean up test program so it isn't using diff Also don't redirect the first nim compile to /dev/null so that we can check for any compilation errors I found the diff to be annoying to read (Seeing as the test script already performs diffing) * Tables are now supported * Add colours to test output It was getting difficult to tell apart test output from GDB output so I added colour to better tell them apart * Both old and new runtime are working Set exit code in python test script so that this could possibly be added to the CI. Only issue is that it can be flaky (GDB crashes randomly for some reason) * Remove old code that was commented out If I need it later I'll just use git * Remove branch that never runs * Remove the old test output [skip ci]
* Adds an extra optional argument to vcc: `vctoolset` Fixes #21335 (#21336)Juan M Gómez2023-02-092-5/+17
|
* docgen: implement cross-document links (#20990)Andrey Makarov2023-01-041-15/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * docgen: implement cross-document links Fully implements https://github.com/nim-lang/RFCs/issues/125 Follow-up of: https://github.com/nim-lang/Nim/pull/18642 (for internal links) and https://github.com/nim-lang/Nim/issues/20127. Overview -------- Explicit import-like directive is required, called `.. importdoc::`. (the syntax is % RST, Markdown will use it for a while). Then one can reference any symbols/headings/anchors, as if they were in the local file (but they will be prefixed with a module name or markup document in link text). It's possible to reference anything from anywhere (any direction in `.nim`/`.md`/`.rst` files). See `doc/docgen.md` for full description. Working is based on `.idx` files, hence one needs to generate all `.idx` beforehand. A dedicated option `--index:only` is introduced (and a separate stage for `--index:only` is added to `kochdocs.nim`). Performance note ---------------- Full run for `./koch docs` now takes 185% of the time before this PR. (After: 315 s, before: 170 s on my PC). All the time seems to be spent on `--index:only` run, which takes almost as much (85%) of normal doc run -- it seems that most time is spent on file parsing, turning off HTML generation phase has not helped much. (One could avoid it by specifying list of files that can be referenced and pre-processing only them. But it can become error-prone and I assume that these linke will be **everywhere** in the repository anyway, especially considering https://github.com/nim-lang/RFCs/issues/478. So every `.nim`/`.md` file is processed for `.idx` first). But that's all without significant part of repository converted to cross-module auto links. To estimate impact I checked the time for `doc`ing a few files (after all indexes have been generated), and everywhere difference was **negligible**. E.g. for `lib/std/private/osfiles.nim` that `importdoc`s large `os.idx` and hence should have been a case with relatively large performance impact, but: * After: 0.59 s. * Before: 0.59 s. So Nim compiler works so slow that doc part basically does not matter :-) Testing ------- 1) added `extlinks` test to `nimdoc/` 2) checked that `theindex.html` is still correct 2) fixed broken auto-links for modules that were derived from `os.nim` by adding appropriate ``importdoc`` Implementation note ------------------- Parsing and formating of `.idx` entries is moved into a dedicated `rstidx.nim` module from `rstgen.nim`. `.idx` file format changed: * fields are not escaped in most cases because we need original strings for referencing, not HTML ones (the exception is linkTitle for titles and headings). Escaping happens later -- on the stage of `rstgen` buildIndex, etc. * all lines have fixed number of columns 6 * added discriminator tag as a first column, it always allows distinguish Nim/markup entries, titles/headings, etc. `rstgen` does not rely any more (in most cases) on ad-hoc logic to determine what type each entry is. * there is now always a title entry added at the first line. * add a line number as 6th column * linkTitle (4th) column has a different format: before it was like `module: funcName()`, now it's `proc funcName()`. (This format is also propagated to `theindex.html` and search results, I kept it that way since I like it more though it's discussible.) This column is what used for Nim symbols resolution. * also changed details on column format for headings and titles: "keyword" is original, "linkTitle" is HTML one * fix paths on Windows + more clear code * Update compiler/docgen.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de> * Handle .md and .nim paths uniformly in findRefFile * handle titles better + more comments * don't allow markup overwrite index title for .nim files Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* fixes warnings when building csources (#21194)ringabout2022-12-281-6/+6
| | | | | * replace `symbolfiles` with `incremental`; fixes warnings when build csources * fixes self conversion warnings