Commit graph

2166 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
da0f6a2e64 SETQS does not check whether argument is constant, just as in SBCL. 2008-06-09 19:20:43 +02:00
Juan Jose Garcia Ripoll
33861197f3 Split operator MSETQ into VSETQ and VSETQS. 2008-06-09 19:19:25 +02:00
Juan Jose Garcia Ripoll
93586f613c Only use OP_VBIND[S] for values other than 0-th 2008-06-09 18:40:23 +02:00
Juan Jose Garcia Ripoll
7bdc8ce4cd ecl_interpret returns the first value 2008-06-09 18:30:58 +02:00
Juan Jose Garcia Ripoll
a8ba969759 Inline the stack push operation 2008-06-09 16:20:02 +02:00
Juan Jose Garcia Ripoll
c782245fc6 Save a pointer to the current environment in the interpreter. 2008-06-09 16:00:51 +02:00
Juan Jose Garcia Ripoll
5c82dc7e80 COND and PROG1 now operate using only REG0 and the stack 2008-06-09 14:28:26 +02:00
Juan Jose Garcia Ripoll
2ff8435086 OP_JT/JNIL need not set NVALUES 2008-06-09 12:07:11 +02:00
Juan Jose Garcia Ripoll
bbf7c9dea6 Allow COND forms to use REG0 to store computations, instead of forcing use of VALUES. 2008-06-09 11:54:52 +02:00
Juan Jose Garcia Ripoll
ee88cc241e Since OP_JT/JNIL check reg0, we can simplify the bytecodes for WHILE 2008-06-09 11:38:34 +02:00
Juan Jose Garcia Ripoll
abea2b728b Given that reg0 contains always VALUES(0), we can simplify OP_JT and OP_JNIL. 2008-06-09 11:37:36 +02:00
Juan Jose Garcia Ripoll
e400b3fb46 Simplify bytecodes compiler by rewriting IF as a COND. 2008-06-09 11:27:34 +02:00
Juan Jose Garcia Ripoll
027dae5686 Use the local IHS frame for storing the lexical environment. 2008-06-09 09:21:47 +02:00
Juan Jose Garcia Ripoll
6d1f4e8c15 Inline OP_PROGV. 2008-06-08 23:10:41 +02:00
Juan Jose Garcia Ripoll
53005f7068 The IHS record is not created in apply lambda but in ecl_interpret 2008-06-08 22:21:59 +02:00
Juan Jose Garcia Ripoll
18d0ffb0f4 The lexical environment of a function is stored in the same IHS record as its name. 2008-06-08 22:13:45 +02:00
Juan Jose Garcia Ripoll
2ac39d71bb Removed global environment field cl_env.lex_env 2008-06-08 20:30:35 +02:00
Juan Jose Garcia Ripoll
84c9902ed0 Remove useless field frs_lex from the frame stack records. 2008-06-08 19:59:25 +02:00
Juan Jose Garcia Ripoll
847e937183 Inline OP_MSETQ 2008-06-08 19:44:30 +02:00
Juan Jose Garcia Ripoll
5e31d6ed4e Inline OP_FLET/LABELS and let them access cl_env.lex_env less often. 2008-06-08 19:32:25 +02:00
Juan Jose Garcia Ripoll
9430fa5f87 OP_PROTECT also pushes the environment onto the stack. 2008-06-08 19:13:51 +02:00
Juan Jose Garcia Ripoll
0f0bf2b4e2 OP_TAGBODY also pushes the environment to be saved 2008-06-08 19:04:36 +02:00
Juan Jose Garcia Ripoll
82332d0523 Avoid using field lex_env in frame stack records, at least for blocks 2008-06-08 18:54:11 +02:00
Juan Jose Garcia Ripoll
2d77670383 ecl_interpret() now takes an explicit lexical environment argument. 2008-06-08 18:38:38 +02:00
Juan Jose Garcia Ripoll
30cb0fe1f5 lambda_bind_var() now takes also a generic environment as argument 2008-06-08 18:18:31 +02:00
Juan Jose Garcia Ripoll
27a9fa082d All functions that operate on the lexical environment take a generic environment as argument, not inspecting cl_env. 2008-06-08 18:05:18 +02:00
Juan Jose Garcia Ripoll
d9fc012432 The interpreter is rewritten using indirect threaded code 2008-06-08 00:48:31 +02:00
Juan Jose Garcia Ripoll
c02df756cc Export a condition for detected user interrupts (SIGINT) 2008-06-04 23:07:55 +02:00
Juan Jose Garcia Ripoll
212fbd1d22 In methods function's type declarations, the type and the name were swapped 2008-06-04 22:59:49 +02:00
Juan Jose Garcia Ripoll
54dc598232 Import version 1.118 of ASDF 2008-06-04 22:58:56 +02:00
Juan Jose Garcia Ripoll
8cac166b98 We need sys/time.h for struct timeval. 2008-05-31 15:27:04 +02:00
Juan Jose Garcia Ripoll
5cac5c6595 Merge branch 'master' of http://ecls.sourceforge.net/git/ecl/ 2008-05-31 15:15:16 +02:00
jjgarcia
92152c66ee When using the generational garbage collector, do not use dlopen/dlclose wrapper
s, which deactivate the garbage collector. In this case, we need not explicit ca
lls to si_gc(Ct) in si_load_binary()
2008-05-31 13:14:05 +00:00
Juan Jose Garcia Ripoll
0ce0eaf8b1 Merge branch 'master' of http://ecls.sourceforge.net/git/ecl/ 2008-05-31 15:11:59 +02:00
jjgarcia
f42ca59c92 Accessors for low-level socket timeout attributes (by G. Carncross). 2008-05-31 13:04:07 +00:00
jjgarcia
af6c551e80 When using the generational garbage collector, do not use dlopen/dlclose wrappers, which deactivate the garbage collector. In this case, we need not explicit calls to si_gc(Ct) in si_load_binary() 2008-05-31 12:58:01 +00:00
jjgarcia
70c30b8ef9 In compile-file, ensure that :output-file is appended the proper file extension 2008-05-30 23:55:54 +00:00
jjgarcia
a63f6a5bda Allow depth to be infinite (coded as depth=0) in _hash_equal[p] 2008-05-30 23:52:32 +00:00
jjgarcia
abec6e581f Stronger hashing for C files initialization names 2008-05-30 23:52:16 +00:00
jjgarcia
7677ee8ce6 When computing the hash key of a pathname, since they are not circular structures, reset the depth parameter. 2008-05-30 23:51:57 +00:00
jjgarcia
75a324fbbe The last 12 bytes of a string were not used for the hash 2008-05-30 23:51:44 +00:00
Juan Jose Garcia Ripoll
1823c67d1b In compile-file, ensure that :output-file is appended the proper file extension 2008-05-31 01:50:21 +02:00
Juan Jose Garcia Ripoll
461e418543 Allow depth to be infinite (coded as depth=0) in _hash_equal[p] 2008-05-31 01:44:26 +02:00
Juan Jose Garcia Ripoll
5f51ab2132 Stronger hashing for C files initialization names 2008-05-31 01:43:37 +02:00
Juan Jose Garcia Ripoll
903d9bfcb7 When computing the hash key of a pathname, since they are not circular structures, reset the depth parameter. 2008-05-31 00:36:38 +02:00
Juan Jose Garcia Ripoll
35a1a52fe2 The last 12 bytes of a string were not used for the hash 2008-05-31 00:34:47 +02:00
Juan Jose Garcia Ripoll
3b003dcaab Merged 2008-05-31 00:31:34 +02:00
jjgarcia
d93be391f9 Seems we need to call the garbage collector in order to stabilize loading of binary files 2008-05-30 21:00:17 +00:00
jjgarcia
263c837285 Mark the date at which the generational garbage collector becomes safe to use 2008-05-30 17:03:59 +00:00
jjgarcia
fe3af8d9a2 The Boehm-Weiser garbage collector needs to use SIGSEGV for the generational garbage collector algorithm. 2008-05-30 17:01:06 +00:00