Commit graph

2185 commits

Author SHA1 Message Date
jjgarcia
1813aa8e6c Reuse code for long function calls 2008-06-28 18:14:00 +00:00
jjgarcia
07e49ba844 Simplify code slightly by removing all direct references to VALUES and NVALUES. 2008-06-28 18:13:40 +00:00
jjgarcia
982a31133a Fixed the flags for the statically linked ECL 2008-06-28 08:36:21 +00:00
jjgarcia
90e936d85c There is not finitel(), so just use coercion. 2008-06-28 08:22:14 +00:00
jjgarcia
0e657faf79 Complete the fix for LONG_FLOAT. 2008-06-28 07:57:39 +00:00
jjgarcia
aa099a332a Implement SI:MAKE-PIPE (By S. Gromoff). Eliminate OPEN-PIPE / CLOSE-PIPE. 2008-06-27 20:18:12 +00:00
jjgarcia
faa259203e Automatic initialization of GC library uses ECL's usual flags 2008-06-26 21:06:09 +00:00
jjgarcia
0c4c43b052 When ECL_OFFSET_TABLE is empty, there is a syntax error in C 2008-06-26 21:05:48 +00:00
jjgarcia
a7465e94ba Fixed optimization of MAPL and MAPC: output value was wrong. 2008-06-23 20:39:26 +00:00
jjgarcia
03c9c55e1c Do not use constants for OP_GO labels 2008-06-23 20:39:12 +00:00
jjgarcia
a49e3f7475 Simplify the lexical environment record for local functions 2008-06-23 20:38:56 +00:00
jjgarcia
9ef1a4b026 Introduce bind_frame() abstraction 2008-06-23 20:38:44 +00:00
jjgarcia
df9aacf3db Split an opcode for actual frame creation from those for frame identification. 2008-06-23 20:38:32 +00:00
jjgarcia
7a43b9738f BLOCK and TAGBODY share exit code 2008-06-23 20:38:17 +00:00
jjgarcia
5d98623c8a Restructure code so that OP_DO admits a location 2008-06-23 20:38:05 +00:00
jjgarcia
a427f1e0e5 Remove useless bds_unwind statement from OP_EXIT_FRAME 2008-06-23 20:37:54 +00:00
jjgarcia
fb59889206 si::bc-disassemble did not know about OP_[P]INT 2008-06-23 20:37:42 +00:00
jjgarcia
fec1c3a8f2 Fixed two typos 2008-06-23 20:37:29 +00:00
jjgarcia
719b6ecd9d ECL_LONG_DOUBLE was not defined 2008-06-23 20:37:16 +00:00
jjgarcia
1a7041c0f5 More rigorous parsing of character names. 2008-06-23 20:37:04 +00:00
jjgarcia
3df72c1d30 Introduce location objects 2008-06-23 20:36:50 +00:00
jjgarcia
0953e12582 Extend c_new_env as a step towards changing the lexical environments. 2008-06-23 20:36:37 +00:00
jjgarcia
da0452752b Failure in checking for integer constants. 2008-06-19 16:41:15 +00:00
jjgarcia
7a1fd864e1 Update IHS environment also when using optimized function calls in interpreter 2008-06-19 16:26:48 +00:00
jjgarcia
cea621fc7a Tag changes to the interpreter 2008-06-19 15:10:10 +00:00
jjgarcia
d003cc91fc More consistent undoing of variable bindings in compiler. 2008-06-19 15:09:28 +00:00
jjgarcia
38bbf43237 Opcodes for small integers 2008-06-19 15:09:12 +00:00
jjgarcia
3654ccf8b4 Replace ecl_apply_{lambda|bclosure} with calls to ecl_interpret. 2008-06-19 15:08:52 +00:00
jjgarcia
e65ebd076c Simplify the interpreter code for calling functions 2008-06-19 15:08:38 +00:00
jjgarcia
aa50e7ef4c Separate lisp objects for functions with fixed and variable # arguments 2008-06-19 15:08:03 +00:00
jjgarcia
4475760597 Fixed typo. 2008-06-19 15:07:50 +00:00
jjgarcia
7732ada63b Avoid using FORMAT when it has not been defined. 2008-06-19 15:07:37 +00:00
jjgarcia
aa920784b4 Turn the macros in bytecodes.h into standalone forms that output no value. This restriction allows us to have more complex code in them. 2008-06-19 15:07:24 +00:00
jjgarcia
8ad5c52f70 Split OP_MSETQ into OP_VSETQ and OP_VSETQS. 2008-06-19 15:07:10 +00:00
jjgarcia
8bdaba7f11 Implement bytecodes for calling functions with 1 and 2 arguments. 2008-06-19 15:06:57 +00:00
jjgarcia
a2b260c24d Optimize some common lisp functions 2008-06-19 15:06:43 +00:00
jjgarcia
d8122d6c61 Eliminate all direct references to stack_top 2008-06-19 15:06:31 +00:00
jjgarcia
12986c134c The interpreter now keeps VALUES(0) always in REG0 2008-06-19 15:06:16 +00:00
jjgarcia
28eb316b88 Avoid using STACK_PUSH in loops 2008-06-19 15:05:51 +00:00
jjgarcia
665505205e Inline stack_pop operation 2008-06-19 15:05:36 +00:00
jjgarcia
108a76ed13 OP_MSETQ does not use the VALUES register 2008-06-19 15:05:21 +00:00
jjgarcia
71ed18e2db Inline funcalls and fix problem with multiple-value-prog1 and macrolet + declarations 2008-06-19 15:05:08 +00:00
jjgarcia
90370c96d0 Fixed typo in COMPILED-FUNCTION-NAME. 2008-06-19 15:04:54 +00:00
jjgarcia
9a5f1a7751 Introduce bytecode closure objects to save space in FLET/LABELS forms 2008-06-19 15:04:27 +00:00
jjgarcia
77d53061eb Revert to the old code for multiple-value-setq 2008-06-19 15:04:12 +00:00
jjgarcia
b2d1a996b3 More compact format for bytecodes OP_FLET/LABELS 2008-06-19 15:03:56 +00:00
jjgarcia
590129c767 No need to check when searching environments 2008-06-19 15:03:40 +00:00
jjgarcia
271d33ee3f Slightly leaner code for searching environment 2008-06-19 15:03:28 +00:00
jjgarcia
83c35e01c2 SETQS does not check whether argument is constant, just as in SBCL. 2008-06-19 15:03:12 +00:00
jjgarcia
ce724349c5 Split operator MSETQ into VSETQ and VSETQS. 2008-06-19 15:02:58 +00:00