Commit Graph

12464 Commits

Author SHA1 Message Date
Zahary Karadjov
6758fbd06e Export an 'escapeXml' proc from xmldom
The interface is similar to escapeJson
2018-05-07 09:37:49 +02:00
Zahary Karadjov
5623007126 Fix the compilation of terminal.nim on Windows 2018-05-07 09:37:49 +02:00
Zahary Karadjov
70ec344bbf bugfix: strutils.find was broken for strings with uneven number of chars
For some reason, the problem was manifesting only inside the VM, it was
detecting an attempt to read past the string end (i.e. the formerly
accessible null byte).

To catch such errors, strutils now performs static tests too.

I've solved the problem by re-implementing the Boyer-Moore algotihm
in a cleaner way and I took the opportunity to make some other
optimisations to strutils.
2018-05-07 09:37:49 +02:00
Zahary Karadjov
cf13c5fba4 implement the export/except statement 2018-05-07 09:37:49 +02:00
Zahary Karadjov
7297613900 Bugfix: The compiler were not inserting proper downcasts for generic types
This resulted in a codegen error in C++ mode, because the generic
types were not defined in modules where calls requiring downcasts
were used (generating a downcast forces the inclusion of the full
definition of the involved types).
2018-05-07 09:37:49 +02:00
Zahary Karadjov
4ab1cfb0b0 fix a compiler crash related to the new strings in C++ mode 2018-05-07 09:37:49 +02:00
Zahary Karadjov
4409c82228 The terminal module now exports additional procs for generating ANSI color
codes as strings.
2018-05-07 09:37:49 +02:00
Zahary Karadjov
ae5c946a32 Support thread-local variables declared inside procs; fixes #7565 2018-05-07 09:37:49 +02:00
Zahary Karadjov
b0d85b0adf Backwards-compatible support for keyword arguments in the command syntax 2018-05-07 09:37:49 +02:00
Zahary Karadjov
e678a4285d Bugfix: Allow matching on nkExprEqExpr against varargs[untyped]
This enables macros accepting arbitrary keyword arguments:

log("foo", prop1 = "bar", prop2 = "baz")

As an added bonus, simple templates with varargs arguments can now
forward their params to procs accepting keyword arguments.
2018-05-07 09:37:49 +02:00
Zahary Karadjov
2b8bf8fc4a A motivating example for the new bindSym behavior.
The example is a proof-of-concept logging library, allowing you to define
lexically-scoped environments where certain logging attributes are applied
automatically to all logging statements.

fixes tmacro1 (use of `bindSym` inside static blocks)
2018-05-07 09:37:49 +02:00
Zahary Karadjov
bdcb729597 Better support for treating templates and macros as symbols.
This allows you to pass a template or a macro to another macro
which can then inspect the implementation of the former template/macro
using `getImpl`.

Since templates can be freely redefined, this allows you to treat
their symbols as compile-time variables that have lexical scope.
A motivating PoC example for a logging library taking advantage of
this will be provided in the next commit.

Implementation details:

* The name of a template or a macro will be consider a symbol if
  the template/macro requires parameters

* For parameterless templates/macros, you can use `bindSym`, which
  was extended to also work outside of compile-time procs.
2018-05-07 09:37:49 +02:00
alaviss
7897026e57 pretty, prettybase: simplify relative paths (#7779)
This allows nimble to be built with compiler as a nimble package
2018-05-07 07:30:13 +02:00
Flaviu Tamas
b132965330 Allow using CC environment variable with csources (#7754) 2018-05-06 11:23:08 +02:00
Florent
d3ad467022 Fixes #7764 (#7767)
* Fixes #7764

* Change KEY_RECORD_EVENT filter

* Update terminal.nim

* Revert changes and modify readPasswordFromStdIn
2018-05-06 10:56:40 +02:00
alaviss
26d89fa09c options: use isSome (#7782)
Fixes #7780
2018-05-06 10:55:19 +02:00
Andreas Rumpf
d8dd43e500 fixes #7757 2018-05-06 10:50:04 +02:00
alaviss
97056fbb9b fixes #7774 (#7783) 2018-05-06 10:34:22 +02:00
Andreas Rumpf
700a2e125b make the tester compile without warnings 2018-05-06 09:00:55 +02:00
Andreas Rumpf
6e8d5790c8 pegs: fixes another null accessing bug 2018-05-06 09:00:41 +02:00
Andreas Rumpf
88cf6573e0 fixes #7743 2018-05-06 08:59:39 +02:00
Andreas Rumpf
cd0985df06 update the changelog 2018-05-06 08:17:32 +02:00
Andreas Rumpf
272bbad784 Merge branch 'devel' into araq-parser-fixes 2018-05-06 08:03:29 +02:00
Andreas Rumpf
d8fde9daba make tests green 2018-05-05 21:45:07 +02:00
Araq
bbb0fd4eb7 remove deprecated stuff from the stdlib; introduce better deprecation warnings 2018-05-05 21:45:07 +02:00
Andreas Rumpf
dfc17e5f8e make Nimble not crash after the refactoring 2018-05-05 21:08:45 +02:00
Andreas Rumpf
b7116a28ee compiler refactoring, pass config around explicitly 2018-05-05 18:47:29 +02:00
Andreas Rumpf
eef12654bd compiler/msgs.nim: minor code cleanup 2018-05-05 15:07:13 +02:00
Andreas Rumpf
1aa359febb warn about inconsistent spacing around binary operators; fixes #7582 2018-05-05 14:58:33 +02:00
Andreas Rumpf
805402b294 fixes #7582 2018-05-05 14:17:31 +02:00
Dominik Picheta
608017801d Fixes crash in httpclient due to new string indexing rules. 2018-05-04 22:26:16 +01:00
Arne Döring
6f4ca3f276 test binarySearch, fix for search in empty. (#7769) 2018-05-04 15:29:21 +02:00
Araq
7d78707e36 fixes #7766 2018-05-04 08:11:13 +02:00
Emery Hemingway
cda591a42f Disable setTerminate when noCppExceptions is defined (#7751) 2018-05-04 07:40:40 +02:00
Dmitry Atamanov
27631b1112 Fix filter_tmpl errors (#7763) 2018-05-04 07:39:05 +02:00
notTito
8f7bd6cf5c Replace factorial function with a compile time one (#7276)
* Replace factorial function with a compile time one

* Fix the indentation

* Update
2018-05-04 07:37:57 +02:00
Arne Döring
f94fafff9b Deprecate smart binary search (#7745)
* deprecate smartBinarySearch

* changelog entry
2018-05-03 17:23:13 +02:00
Dominik Picheta
9735bb46be Merge pull request #7760 from yglukhov/fix-7738
Fixes #7738
2018-05-03 16:19:32 +01:00
Yuriy Glukhov
9955ee0a9b Fixes #7738 2018-05-03 18:15:31 +03:00
Dominik Picheta
f7f69b1abb Merge pull request #7624 from skilchen/fix-issue7620
there is no hour 0 in am/pm time (see #7620)
2018-05-03 16:07:27 +01:00
Dominik Picheta
3829d9081c Merge pull request #7694 from SolitudeSF/libssl
link against libssl.so.45
2018-05-03 16:00:39 +01:00
Dominik Picheta
9099ec5d0b Merges #7700 manually and adds decodePlus option to decodeUrl too. 2018-05-03 15:18:19 +01:00
Dominik Picheta
5564289b57 Merge pull request #7714 from data-man/show_compile_timestamps
Compiler: show compile timestamps
2018-05-03 14:12:24 +01:00
Eugene Kabanov
5063437b0c Make clearCallbacks() public. (#7753) 2018-05-03 07:53:54 +02:00
David Krause
78e946c450 fixed high level sendTo for sending to udp6 (#7630) 2018-05-02 22:44:08 +01:00
genotrance
452321874d Fixes for #7747 - finish.exe issues (#7748) 2018-05-02 19:16:44 +02:00
Araq
21cbf438ce make tests green 2018-05-02 13:34:54 +02:00
Araq
eb03d9aafe fixes #7749 2018-05-02 13:34:54 +02:00
Andreas Rumpf
48aee47bf6 compiler: code cleanup 2018-05-02 13:34:54 +02:00
Andreas Rumpf
74fe7a800b make tests green again 2018-05-02 13:34:54 +02:00