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
a42545ea3e
disables the compile-time rope formatting during bootstrapping
2012-11-28 01:15:14 +02:00
Zahary Karadjov
e817d54369
first batch of rope code converted to rfmt
...
The results so far are inconclusive:
The rope cache tries have been reduced by more than 125K (nearly 20%),
but the bootstrap time seems to be ever slightly increasing (0.01s).
2012-11-28 01:15:13 +02:00
Zahary Karadjov
f644e3079f
experimental compile-time rope formatting code
2012-11-28 01:15:13 +02:00
Zahary Karadjov
f9bd8cc985
[caas] first version that actually works (still has a lot of logical memory leaks on recompilation)
2012-11-28 01:15: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
814fcb2639
bugfix: stack traces; first class iterators almost working
2012-11-15 01:27:25 +01:00
Araq
2133fbfcce
bugfix: wrong assertions for C++ code generation; some solaris support; first steps to an effect system
2012-10-30 22:29:03 +01:00
Zahary Karadjov
2efdf3df81
fixes #106
2012-10-16 02:21:28 +03:00
Zahary Karadjov
11cd0fde42
add static assertions in the generated code about platform-related assumptions
2012-10-11 13:22:18 +03:00
Araq
cf06131dec
better extension loading for the OpenGL wrapper
2012-10-09 17:11:33 +02:00
Zahary Karadjov
c27637747a
bugfix: closures as default param values
2012-10-06 14:51:46 +03:00
Araq
3bcf9f4e53
opengl wrapper compiles under windows
2012-09-29 08:06:43 +02:00
Araq
36efc380dd
website improvements; better opengl wrapper (still broken)
2012-09-28 00:22:07 +02:00
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