mov8 mem1 -> mem2
to
mov mem1 -> reg
mov8 reg -> mem2
instead of
mov8 mem1 reg
mov reg mem2
which causes unaligned and invalid memory access when the
address mem1 is at a page boundary and the next page is
unmapped.
library-path, so, whereever you set it, you should decide whether
to include "." or exclude it.
["$prefix/lib/ikarus" is still added to the path so that multiple
versions of ikarus can exist and each uses its own sources dir
without interference]
- some cleanup in compiler to use the new include library instead of
"ikarus.include-src.ss" which is no longer needed.
- it now takes an optional environment (it was required)
- it no longer returns a second value (list of libraries)
- it's output is "pretty".
the old expand is now called core-expand.
`(annotated-call ,annotation ,rator ,rands ...)
form for cases when there is an annotation attached to the procedure
call. The compiler just stripps it out and makes no use of it.
compiler. (useful for a future project)
- refershed all boot files (because of added primitives)
- regenerated some autoconf files (to use newer version)
- Deleted old optimizer and changed the meaning of optimize level to
be:
0: bypass the optimizer
1: copy propagation, constant folding, no inlining
1: copy propagation, constant folding, with inlining
The default is set to 1.
- (optimize-level [0,1,2]) and ikarus -O[0,1,2]
where -O0 = no optimizations
-O1 = using old optimizer
-O2 = using the new cp0 optimizer
defaults to -O1 for now.
- (cp0-size-limit n) which is the limit of the residual size for
each inlining attempt
- (cp0-effort-limit n) which is the limit on the effort expended
for each inlining attempt
- Rewrote the syntax-match macro to make use of the same technology
used in syntax-case itself resulting in reduced code size.
- Added (system-value <symbol>) which returns the system value.
E.g., (system-value 'car) => #<procedure car>
This is pretty much the same as
(eval <symbol> (environment '(ikarus)))
except that it does not involve compiling the expression or
consulting the library/expander systems.
- Fixed the fasl loader to make it understand complex numbers.
printed (instead, they were just #<procedure>). Names for
procedures that are defined like
(define foo
(let ([something ---])
(lamdba () ---)))
now works.