Commit Graph

5556 Commits

Author SHA1 Message Date
Araq
3a8f7d505b temptyseqs works again 2015-02-10 20:19:45 +01:00
Araq
683b82a2ec fixes #2070 2015-02-10 20:19:44 +01:00
Charles Blake
cc8dffb559 Merge /home/cb/pkg/nim/Nim into devel 2015-02-10 10:18:02 -05:00
Dominik Picheta
03019849fc Async await try statement fixes. 2015-02-09 23:00:07 +00:00
Araq
703633bf0c stop after first failing C compilation for --parallelBuild:1 2015-02-09 22:29:20 +01:00
Charles Blake
41794ccd5b Merge Nim into devel 2015-02-09 09:57:39 -05:00
Andreas Rumpf
629bbf5ebd Merge pull request #2087 from flaviut/patch-1
Clean up build icons
2015-02-09 15:18:45 +01:00
Jeff
5424ab3d7e Date/time parsing with minor changes requested by Dom96 2015-02-09 21:46:18 +09:00
Jeff
13c5ce820e Date/time parsing 2015-02-09 20:58:36 +09:00
Varriount
af23312f79 Merge pull request #2059 from def-/getch
Getch
2015-02-09 02:37:36 -05:00
def
d6d152e451 Add a new line after readPasswordFromStdin, add result 2015-02-09 08:06:56 +01:00
Araq
ecd0dea091 tables work in 'const' sections; echo supports 'nil' strings; minor cleanups 2015-02-09 00:08:55 +01:00
def
18fb3a391c Fix readPasswordFromStdin for Windows 2015-02-08 22:53:49 +01:00
Andreas Rumpf
9431b734b4 Merge pull request #2093 from reactormonk/json-test-fix
apparently the json spacing changed
2015-02-08 21:08:08 +01:00
Simon Hafner
6f1152c66b apparently the json spacing changed 2015-02-08 11:01:09 -06:00
Araq
008b0f19bb 'nimsuggest' compiles again 2015-02-08 15:47:55 +01:00
Araq
34b4e9fc96 fixes #2004 2015-02-08 15:43:50 +01:00
Araq
ada0f14711 fixes #2073 2015-02-08 14:15:02 +01:00
Araq
c91ca82a43 fixes #2073; language spec change: arrow like operators are not right associative anymore 2015-02-08 13:38:06 +01:00
Araq
52e297c4e1 fixes #1956 2015-02-08 13:38:05 +01:00
Araq
736a04c66b better error message 2015-02-08 13:38:04 +01:00
Araq
f7f87a7709 merged #2083 manually 2015-02-08 13:38:04 +01:00
PhilipWitte
0b2a63b7bd Fixed website banner HTML & Javascript
Various website CSS improvements
Added docs & learn icons
Added learn articles
2015-02-08 04:01:18 -08:00
Flaviu Tamas
52d3a82396 Clean up build icons 2015-02-07 16:06:50 -05:00
reactormonk
5f54ccf0bd Merge pull request #2085 from flaviut/clarify-message
Clarify "instantiation from here"
2015-02-08 00:05:36 +05:00
Flaviu Tamas
7ca3353616 Clarify "instantiation from here"
After ~1 year of Nim, I finally realized it doesn't refer to dynamic memory
2015-02-07 13:14:53 -05:00
Charles Blake
1f3ce26421 Address Andreas' complaint about code duplication. 2015-02-07 13:13:03 -05:00
Charles Blake
11e7c4960e Merge /home/cb/pkg/nim/Nim into devel
pull from master
2015-02-07 13:11:27 -05:00
Andreas Rumpf
b25346719d Merge pull request #1869 from def-/json-stuff
Json stuff
2015-02-07 18:34:35 +01:00
Andreas Rumpf
28af09a446 Merge pull request #2062 from flaviut/expose-exception-parent
Expose exception parent
2015-02-07 18:21:13 +01:00
Andreas Rumpf
5f2382d093 Merge pull request #2060 from def-/rdstdin-pass
Rdstdin pass
2015-02-07 18:20:39 +01:00
Andreas Rumpf
31074e0015 Merge pull request #2058 from def-/nimrod-cfgs
Rename *.nimrod.cfg to *.nim.cfg
2015-02-07 18:11:00 +01:00
Charles Blake
42f8f1cd1f Fix unnecessarily slow set building from openArray.
The estimation of the initialSize as simply array len + 10 was too small for
for all but the smallest sets.  It would not elide/skip one final enlarge().
That last one is actually always the most expensive enlarge().  Indeed, in a
series where one to start from tiny and build up the table..that last one is
about 50% of all the enlarging time in general.  So, this simple and reasonable
optimization (compared to just starting at 64) was only helping about half as
much as it could.

Introduce a rightSize() proc to be the inverse to mustRehash().  Export it
to clients since pre-sizing is externally useful in set construction and the
current mustRehash rules are opaque and beyond the control of clients.

Also add test module logic to check that rightSize() and mustRehash() are
inverses in the appropriate sense..not really in a block/assertion throwing
unit test since this is a peformance nice-to-have issue rather than about
basic correctness.  (Also, fix a too vs. two typo in doc comment.)
2015-02-07 09:37:17 -05:00
Charles Blake
8e685585a6 Merge /home/cb/pkg/nim/Nim into devel 2015-02-07 09:32:27 -05:00
Araq
dc85c2498b nimsuggest knows how to deal with files not belonging to the project 2015-02-07 13:15:30 +01:00
Araq
0b5c42f405 configuration system supports %= to access environment variables 2015-02-07 12:55:23 +01:00
Araq
1314e91ef5 fixes c++ codegen regression 2015-02-07 10:48:09 +01:00
Araq
d933fde40d yet another C++ bugfix 2015-02-07 10:48:08 +01:00
Araq
74c6c8c903 compiler distinguishes between 2 different 'var' types for C++ interop; code cleanups 2015-02-07 10:48:07 +01:00
Araq
e84834db79 lots of C++ codegen improvements 2015-02-07 10:48:07 +01:00
Dominik Picheta
d020ad097c Merge pull request #2081 from h3rald/patch-3
newRollingFileLogger - fmtStr is always set to defaultFmtStr
2015-02-06 22:05:10 +00:00
Fabio Cevasco
99b14c8d8d newRollingFileLogger - fmtStr is always set to defaultFmtStr 2015-02-06 22:40:21 +01:00
Charles Blake
65ce08f38c Add hcode. Re-factor rawGet. Fix infinite loop.
Replace state enum with a cached hash code which has the same memory overhead
and locality as the enum, but can really speed things up with non-integer-like
keys (keys for which either hash() or == take more than couple cycles, or where
the key data is "indirect" and might incur another cache miss).  To function as
both empty/filled state and a hash code cache, it only needs to be ensured that
hash codes are non-zero for any real key.  That is done at the one place in the
whole file hash() is called.  Keep convention clear via isFilled() & isEmpty().
An isDeleted state will no longer be necessary as per below excl/inf loop fix.

Since some use sites know hc and some do not, re-factor rawGet into two forms -
one with known hash code and one with an unknown HC that returns it. Both forms
still return <0 on missing, but returns the much more informative "-1 - index".
That return can be quickly inverted by -1 - result to recover the index where
insert should happen, provided no modifications are made to the table in the
meantime.  This protocol retains the prior <0 interface and also makes it easy
to avoid unnecessary duplicate search work in procs like containsOrInclImpl
(which formerly searched in the initial get and AGAIN in rawInsert).  Strip the
searching part out of rawInsert to "make it even more raw".  swap(s.data, n) a
bit earlier so rawGet and rawGetKnownHC can have similar parameter lists and
integrate well with rawInsert/code sharing between Set and OrderedSet impls.

This PR also fixes infinite looping upon too many deletes. [ The deleted state
(aka "tombstone") approach is vulnerable to the table filling up with deleted
items which forces giant scans for missing keys which could be anywhere.  In
the version prior to this PR, table wraparound wasn't even detected yielding
infinite loops. ] This PR changes excl() from marking slots as deleted to Knuth
algo 6.4R, "local/incremental moveback rehashing" - adapted from Knuth's h->h-1
to the cache-friendlier h->h+1 probe sequence and adapted from "gotos" to a new
doWhile template.  This method restores the table to a state that would have
resulted from pure inserts (in some order).  Update nextTry accordingly.  Since
linear probing can degrade a little faster, 50% rather than 66% may be a better
default growth threshold, but users should be able to adjust threshold anyway.

Old unit tests all pass.  More extensive testing in this module is probably
warranted before taking similar enhancements over to collections.tables.
2015-02-06 09:24:20 -05:00
Araq
53f4c7758b fixes #1601 2015-02-05 13:12:20 +01:00
Araq
b44ee119c8 list CC executions properly again for --parallelBuild:1 2015-02-05 12:23:27 +01:00
Araq
c795a469bc fixes #2011 2015-02-05 12:23:26 +01:00
Andreas Rumpf
d41d9f704d Merge pull request #2067 from def-/tests-stuff
Tests stuff
2015-02-04 23:45:45 +01:00
def
25cee6e05b Clean up tests/static
tstaticparammacro still fails
2015-02-04 22:18:06 +01:00
def
1c4153790b Clean up tests/osproc 2015-02-04 22:15:30 +01:00
def
f18368bd3b Clean up tests/modules 2015-02-04 22:09:42 +01:00