Commit Graph

71 Commits

Author SHA1 Message Date
Araq
36afdca87f resolved conflicts with master 2014-01-18 01:16:45 +01:00
Zahary Karadjov
8e0941576f clean-up some obsolete code; close #602 2013-12-31 12:39:43 +02:00
Araq
b731e6ef1c case consistency: cs:partial bootstraps on windows 2013-12-29 03:19:10 +01:00
Araq
438703f59e case consistency: next steps 2013-12-29 01:13:51 +01:00
Araq
92b8fac94a case consistency part 4 2013-12-27 23:10:36 +01:00
Araq
2df9b442c6 case consistency part 1 2013-12-27 15:48:53 +01:00
Dominik Picheta
8c1ea5cb3f Added --noBabelPath override. 2013-12-25 22:38:53 +00:00
Erik O'Leary
aaf49947e9 Added jsondoc compiler switch
Outputs top-level exported information in JSON
2013-12-12 10:59:30 -06:00
Araq
9bf32ff72d bugfix: package names should not contain '.' 2013-10-07 21:36:31 +02:00
Araq
a0b82db402 the compiler can now deal with multiple modules of the same name 2013-09-26 17:34:46 +02:00
Araq
9bfcdc40ef JS codegen: supports more builtins 2013-09-24 23:56:23 +02:00
Araq
8b5aa221ad support for multiple modules of the same name; niminst supports 'platforms'; minor bugfixes 2013-09-24 16:07:07 +02:00
Araq
6825a69a70 -d:nocaas mode for easier bootstrapping on exotic OSes (Haiku) 2013-09-01 15:54:32 +02:00
Zahary Karadjov
8682ed9bd0 pass-through of static int generic params to arrays when late instantiation is disabled 2013-08-23 01:10:20 +03:00
Zahary Karadjov
fee2a7ecfa Experimental support for delayed instantiation of generics
This postpones the semantic pass over the generic's body until
the generic is instantiated. There are several pros and cons for
this method and the capabilities that it enables may still be possible
in the old framework if we teach it a few new trick. Such an attempt
will follow in the next commits.

pros:
1) It allows macros to be expanded during generic instantiation that
will provide the body of the generic. See ``tmacrogenerics``.
2) The instantiation code is dramatically simplified. Dealing with unknown
types in the generic's body pre-pass requires a lot of hacky code and error
silencing in semTypeNode. See ``tgenericshardcases``.

cons:
1) There is a performance penalty of roughly 5% when bootstrapping.
2) Certain errors that used to be detected in the previous pre-pass won't
be detected with the new scheme until instantiation.
2013-08-23 01:10:20 +03:00
Araq
b487ebaaba new scoping rules for 'if' now active 2013-06-04 01:11:55 +02:00
Araq
8c211113f2 better error message for subtle nil errors 2013-05-31 01:27:03 +02:00
Araq
9fc98cefda Merge branch 'master' into newparser 2013-05-07 18:44:24 +02:00
Zahary Karadjov
f52ea04d22 support suggest after compile in caas mode 2013-05-05 15:12:50 +03:00
Araq
23bd3ccd8b Merge branch 'master' into newparser 2013-05-04 19:10:12 +02:00
Araq
1dd01e5891 revert new scope for 'if' 2013-05-02 00:36:06 +02:00
Zahary Karadjov
89f9772f15 nimrod dump can now produce a machine readable json report
The data in the report includes necessary information for starting
the compiler service and setting up the project paths in the IDE.

the default verbosity of 1 is now set in the compiler code to fix an
issue with verbosity being temporary set to 1 during config parsing
even when it's explicitly overridden on the command-line.

compiler/lexbase was temporary renamed to nimlexbase as a
work-around for a codegen naming conflict with lib/pure/lexbase
resulting in linking errors (further investigation needed).
2013-05-01 20:46:05 +03:00
Zahary Karadjov
e7581e7b9b experimental support for outputting code snippets in error messages; implements #301
see #301 for description.
currently, the feature is activated by setting the verbosity level to 2 or more
2013-04-09 00:15:43 +03:00
Zahary Karadjov
95b28700cc bugfix: fix linking when symbol files are used 2013-04-08 23:23:12 +03:00
Araq
5893a9195c implemented --dynlibOverride option for static linking of 'dynlib' 2013-04-08 16:38:49 +02:00
Grzegorz Adam Hankiewicz
72a3e21f28 Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
Simon Hafner
cc893b968b added isServing parameter 2013-02-26 14:36:33 -06:00
Araq
8e9b39084c Merge branch 'master' of github.com:Araq/Nimrod 2013-02-16 22:54:03 +01:00
Araq
5d119f61d1 preparations for a generational GC 2013-02-16 22:53:35 +01:00
Simon Hafner
1785c6877b EcmaScript => JS. Fixes #330
No one calls it EcmaScript anymore.
2013-02-15 11:08:30 -06:00
Araq
ab6f793408 first version of a simple mark&sweep GC; activate with --gc:markAndSweep 2013-02-07 01:57:10 +01:00
Araq
2a2b630757 cleaner GC switching 2013-01-31 16:34:39 +01:00
Zahary Karadjov
19e795e017 the mainmodule option has effect only when no explicit module is given 2013-01-28 00:26:49 +02:00
Zahary Karadjov
81a3585872 merged upstream master 2013-01-27 23:41:45 +02:00
Araq
f280ed1560 implements #295 2013-01-08 16:30:26 +01:00
Araq
3020257559 implemented --listFullPaths option for aporia 2012-12-27 00:05:23 +01:00
Araq
7148812524 first steps for FFI support at compile time 2012-12-19 02:22:39 +01:00
Araq
c98696d742 lazy paths for Babel support 2012-12-11 20:06:15 +01:00
Zahary Karadjov
d0edb1826b adds an option to interleave the generated code with snippets from the original source
Lines from the original source are outputted as comments next to line directives.
Hopefully, this will make debugging codegen problems easier.

Other changes:
The frame setup code now uses a single-line C macro. My motivation was to reduce
the noise in the generated output and make it easier to step over the boiler-plate
code, but counter-intuitively this also improved the overall compilation speed a
little bit so I applied the same treatment to line tracking too (this reduces the size of
the generated files and the explanation is that probably the I/O overhead dominates
the macro expansion costs).
2012-12-02 20:36:29 +02:00
Zahary Karadjov
e9e22ccb2a track the "owner" heap object in the ref write barrier
See the papers for reference counting with heap sliding views for details:
2012-12-01 15:37:13 +02:00
Zahary Karadjov
36e25a6849 CaaS in-memory caching
removed some redundant filepath params and variables and
switched to canonical paths in most places
2012-11-28 01:15:13 +02:00
Zahary Karadjov
091c1b3075 caas is now drivable through stdin
* added idetools --eval
* streams.readLine recognises and applies the backspace character
2012-11-28 01:15:13 +02:00
Araq
3d40842088 doc2 improvements; small lexer bugfix: backslashes in comments 2012-11-20 17:46:11 +01:00
Araq
9f38ff0c65 next steps for exception tracking 2012-11-03 15:57:12 +01:00
Araq
224f42bbd7 bugfix: exception tracking (still disabled) 2012-11-01 19:57:48 +01:00
Zahary Karadjov
d9d82fb0af syntax compatibility between do blocks and stmt blocks
See the section `do notation` in the manual for more info.

* nkMacroStmt has been removed
   Macro statements are now mapped to regular nkCall nodes.
   The support for additional clauses (such as else, except, of, etc)
   have been restored - they will now appear as additional arguments
   for the nkCall node (as nkElse, nkExcept, etc nodes)

* fixed some regressions in the `is` operator and semCompiles
2012-10-04 15:37:26 +03:00
Araq
1d14cb1ad8 next steps towards term rewriting macros; simple examples work 2012-08-30 22:55:32 +02:00
Araq
674c05f426 made compiler more robust for idetools; implemented idetools.usages 2012-07-30 23:07:19 +02:00
Araq
538b06a123 implements #173 2012-07-28 14:16:08 +02:00
Araq
76235348f8 extracted documentation generator 2012-05-09 01:50:08 +02:00