Commit graph

70 commits

Author SHA1 Message Date
Araq
32aa46a881 bugfix: typeinfo generation 2012-09-21 16:28:57 +02:00
Araq
214c7a2ebd implemented a stack trace profiler 2012-09-15 00:21:10 +02:00
Araq
0171566c98 openarray/varargs split; breaks bootstrapping 2012-08-16 08:34:33 +02:00
Araq
51de278bd4 next steps for tyVarargs/tyOpenArray split 2012-08-14 08:44:26 +02:00
Araq
244c14db0b top level closures should work; transf is not a pass anymore; next steps for first class iterator support 2012-08-13 17:07:49 +02:00
Zahary Karadjov
1d065b601c DLL fixes for windows; fixes #175 2012-07-31 18:59:44 +03:00
Araq
58a66a0d70 more reliable NI/NU definitions 2012-07-28 17:28:36 +02:00
Araq
538b06a123 implements #173 2012-07-28 14:16:08 +02:00
Zahary Karadjov
371619c43a fixed the rodfiles tests 2012-07-20 00:35:05 +03:00
Zahary Karadjov
4841b6390c removed nimdat in favor of per-module dat init procs 2012-07-19 19:43:58 +03:00
Araq
e54ce7ddc1 don't put DLL loading into nimdat 2012-07-19 00:21:29 +02:00
Zahary Karadjov
32e2994636 dynamic library symbols are not loaded in nimdat 2012-07-18 15:40:35 +03:00
Araq
83deb233ee attempt to fix DLL generation 2012-07-18 00:02:53 +02:00
Araq
4215686cce x11 example compiles again; updated python wrapper; compiler supports variables in DLLs 2012-07-16 08:11:37 +02:00
Araq
5a838d3e06 thread var emulation should work again 2012-06-25 00:23:41 +02:00
Araq
ee98c76d2e bite the bullet and make 'initStackBottom' a compilerproc 2012-06-24 20:00:25 +02:00
Araq
e0092cfae6 Merge branch 'master' of github.com:Araq/Nimrod 2012-06-19 22:38:48 +02:00
Araq
f191059e56 somewhat working closures 2012-06-19 22:37:00 +02:00
Zahary Karadjov
df1ec09399 proper indentation in the generated C code 2012-06-12 04:43:58 +03:00
Zahary Karadjov
567b5b07ea fixes #20 properly 2012-04-15 01:06:40 +03:00
Zahary Karadjov
d2b45dbe85 C variables are created in their enclosing block instead of their enclosing function 2012-04-12 14:12:32 +03:00
Zahary Karadjov
a64f03230a proper order of initialization for .global. variables 2012-04-10 20:53:44 +03:00
Zahary Karadjov
8d698b2bdd Merge branch 'master' of github.com:Araq/Nimrod into upstream 2012-03-31 18:51:11 +03:00
Zahary Karadjov
22dc76a361 typedesc and expr params
types are now valid proc/template/macro params and you can overload over them:
proc foo(T: typedesc)        # accept any type
proc foo(T: typedesc{int}) # overload specifically for int
proc foo(T: typedesc{int or float or Callable}) # overload for any type matching the constraints

expr{type} is a param expecting compile time value of the designated type (or type class).

when typedesc or expr params are used with a proc, the proc will be instantiated once
for each unique type/value used as parameter.
2012-03-31 18:50:48 +03:00
Araq
142e849b91 implemented support for the AVR CPU and standalone OS 2012-03-31 01:03:14 +02:00
Araq
2c4a1dbc0c further steps for closure support 2012-02-08 09:10:59 +01:00
Araq
632aece191 further steps to closure support 2012-02-06 00:19:56 +01:00
Zahary Karadjov
c3e790b1ed fixes #87 2012-02-03 03:23:43 +02:00
Araq
4b95233632 fixes #98 2012-01-29 19:12:48 +01:00
Araq
1ba3dbc759 bugfix tests/tzeroarray 2012-01-29 13:38:23 +01:00
Araq
8aa4e46707 implemented incompleteStruct pragma; embedded debugger works with posix module 2012-01-05 00:46:51 +01:00
Araq
4f1b89c30c year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
Araq
cd83cc81aa code gen can generate code to keep alive stack roots 2011-12-22 15:04:00 +01:00
Araq
94358e03e9 compiler generates volatile temps to keep C compiler from optimizing away stack roots 2011-12-12 01:40:23 +01:00
Araq
af792da0bb codegen uses alias analysis to generate better code 2011-12-10 01:06:32 +01:00
Araq
fc9fdc2b9d cleaned up configuration file handling and documented the new behaviour 2011-11-30 00:53:41 +01:00
Araq
7fcbdc6d42 implemented 'let' statement 2011-11-29 17:27:48 +01:00
Araq
2de98d9e05 new pragma: 'noinit' 2011-11-25 15:33:58 +01:00
Araq
fedc69f61a unused constants are optimized away 2011-11-22 18:48:00 +01:00
Zahary Karadjov
489340658e Added system.program_results for controlling the exit code of the program under normal circumstances
Implemented operators like +=, -=, etc for ordinals, floats and string

Programs using the UnitTest module will now report the number of failed tests as the exit code of test runs (0 for successful run)
2011-11-10 04:10:03 +02:00
Araq
c517639155 lazy loading of body ast implemented 2011-10-30 20:53:04 +01:00
Araq
299390a585 constant folding for cnst[i] and cnst.attr 2011-10-29 23:54:50 +02:00
Araq
abe9dfafe8 compilation cache: DLL interfacing now works 2011-10-27 18:02:01 +02:00
Araq
627d33da08 compilation cache: small fixes; methods still not working 2011-10-23 21:39:02 +02:00
Araq
dce8d3d1ab rod files: next trivial examples working 2011-10-22 22:49:51 +02:00
Araq
182ab85dc8 trivial change scenario works with symbol files 2011-10-22 01:51:30 +02:00
Araq
ddbad192a4 got rid of gToTypeInfoId 2011-10-21 21:39:12 +02:00
Araq
d871cadbb3 got rid of gGeneratedSyms 2011-10-21 21:02:03 +02:00
Araq
43eace163a further steps for incremental C code generation 2011-10-21 19:07:01 +02:00
Araq
a6f90d4cdd first steps to C file merge operation for incremental compilation 2011-10-21 01:06:24 +02:00