Commit graph

169 commits

Author SHA1 Message Date
Juan Jose Garcia Ripoll
a86bbd3605 Fixed various warnings to allow compiling ECL with CLang 2011-01-23 16:06:47 +01:00
Juan Jose Garcia Ripoll
86c211a6a1 Optimize ecl-inl.h for small cons and use of ecl_unlikely. New macros ECL_CONSP, ECL_LISTP, ECL_ATOM, ECL_SYMBOLP 2010-02-27 09:47:05 +01:00
Juan Jose Garcia Ripoll
f07ae97158 Replace some uses of FEtype_error_list with FEwrong_type_nth_arg 2010-02-25 22:32:08 +01:00
Juan Jose Garcia Ripoll
0bd19734d7 Replaced most uses of FEtype_error_cons with FEwrong_type_*_arg 2010-02-25 17:17:00 +01:00
Juan Jose Garcia Ripoll
e0a268376f Normalize names after @(defun tags so that the appear in the TAGS file. 2010-02-24 08:17:37 +01:00
Juan Jose Garcia Ripoll
d500289efa Reorganize the code for OP_LABELS/OP_FLET in ecl_interpret() to occupy less space and get faster. 2010-02-08 23:20:29 +01:00
Juan Jose Garcia Ripoll
94f889e7b8 Factor out some error conditions from the interpreter loop. 2010-02-08 22:05:57 +01:00
Juan Jose Garcia Ripoll
790d466cec Reduce the size of the core using GCC's __attribute__((noreturn)) 2010-02-04 21:18:24 +01:00
Juan Jose Garcia Ripoll
a2337a4d93 FEinvalid_function and FEundefined_function marked as __attribute((noreturn)). 2010-02-04 00:05:01 +01:00
Juan Jose Garcia Ripoll
0bf0cfbbae Factor out the guts of PROGV into a function ecl_progv() shared by the interpreter and the compiler. 2009-06-19 14:49:29 +02:00
Juan Jose Garcia Ripoll
dcfa4d2247 Forgot to save the interpreter environment before unoptimized calls (found out by JCB) 2009-06-07 18:27:44 +02:00
Juan Jose Garcia Ripoll
77cde5c2f8 Several fixes for various compiler warnings. 2009-06-07 00:02:49 +02:00
Juan Jose Garcia Ripoll
ecf055bc5a Fixes for the Windows port, including a flag to make ANSI C streams the default file type. 2009-03-30 14:42:16 +02:00
Juan Jose Garcia Ripoll
529e12a1ed Replaced some stack frame functions by internal and faster macros. 2009-02-28 13:14:41 +01:00
Juan Jose Garcia Ripoll
702dafcf94 Use bytecodes to undo the special bindings before exiting an interpreted function, not by keeping a copy of the bds_top pointer. 2009-02-27 23:40:39 +01:00
Juan Jose Garcia Ripoll
44190f4390 We cannot dealloc the interpreter stack, because there might be references from varargs. 2009-02-27 22:34:40 +01:00
Juan Jose Garcia Ripoll
d71a16daac Remove an unused argument from ecl_interpret() 2009-02-26 00:14:07 +01:00
Juan Jose Garcia Ripoll
9ea37f0266 ecl_stack_pop_n is no longer used. Simplified different parts of the stack frames and interpreter. 2009-02-25 23:51:35 +01:00
Juan Jose Garcia Ripoll
22b070d0ac Removed ecl_stack_{push,pop,set_index}. Fixed ECL_STACK_SET_INDEX. 2009-02-25 20:52:48 +01:00
Juan Jose Garcia Ripoll
4ffa8552ae The ECL_STACK* macros were not hygienic and caused problems due to the duplication of the 'env' name. 2009-02-25 20:15:33 +01:00
Juan Jose Garcia Ripoll
8fe85d2e7c Introduce ECL_STACK_INDEX macro 2009-02-25 19:11:28 +01:00
Juan Jose Garcia Ripoll
80127a2f01 Exported macros for manipulating the lisp stack 2009-02-24 23:23:57 +01:00
Juan Jose Garcia Ripoll
18767d76ae Slight optimizations in the code for lisp stacks + values 2009-02-22 00:39:51 +01:00
Juan Jose Garcia Ripoll
17a3ba8acc Removed unused function. 2009-02-21 23:29:42 +01:00
Juan Jose Garcia Ripoll
c6fe981f87 The generation of new block ids is now thread safe. 2009-02-21 23:26:42 +01:00
Juan Jose Garcia Ripoll
8004e7e027 Removed the entry_fixed pointer because we are not using it. 2009-02-21 22:51:36 +01:00
Juan Jose Garcia Ripoll
246e562141 Fixed the optimization of parsing &allow-other-keys. 2009-02-21 22:31:30 +01:00
Juan Jose Garcia Ripoll
1215375d0a Slight optimizations of C code for OP_POPREST/PUSHKEYS 2009-02-21 00:52:44 +01:00
Juan Jose Garcia Ripoll
03ed288a85 New bytecodes for parsing the arguments of an interpreted function. 2009-02-21 00:07:16 +01:00
Juan Jose Garcia Ripoll
69bdd4f3ff Slight simplification of the ecl_stack_frame structure, with changes associated to interpreter, gfun and apply 2009-02-19 00:04:31 +01:00
Juan Jose Garcia Ripoll
44d23d1cdf Factor the code for creating stack frames from varargs. Removed some arguments from ecl_apply_from_stack_frame and _ecl_standard_dispatch. 2009-02-17 23:40:27 +01:00
Juan Jose Garcia Ripoll
a4b7fca01b Removed debug statement 2009-02-16 16:03:25 +01:00
Juan Jose Garcia Ripoll
a1bc92b05c Changed the way closures are invoked, to make them similar to generic functions and bytecodes 2009-02-15 12:05:56 +01:00
Juan Jose Garcia Ripoll
e4870189d2 All function objects now have function pointers. 2009-02-14 21:44:16 +01:00
Juan Jose Garcia Ripoll
9f42309fbd Finished the new dispatch code. 2009-02-14 00:01:57 +01:00
Juan Jose Garcia Ripoll
f096fdac51 Initial changes for a common dispatch function 2009-02-13 17:05:21 +01:00
Juan Jose Garcia Ripoll
609e1b8396 Fix support for unicode characters in readtables 2008-10-24 23:10:49 +02:00
Juan Jose Garcia Ripoll
7452875f32 ihs_push now requires the lisp environment. 2008-10-13 22:48:37 +02:00
Juan Jose Garcia Ripoll
46aa17b1d9 frs_push, frs_pop and ecl_unwind tak an environment as arg 2008-10-13 22:34:18 +02:00
Juan Jose Garcia Ripoll
70c64f9652 The macros/functions for accessing and changing symbol values require an environment value. 2008-10-12 16:44:29 +02:00
Juan Jose Garcia Ripoll
4d11eaa81a ecl_cs_check() now takes an environment parameter. 2008-10-12 13:00:53 +02:00
Juan Jose Garcia Ripoll
ed584a62c5 Deprecate name: cl_dealloc (-> ecl_dealloc) 2008-10-11 23:14:54 +02:00
Juan Jose Garcia Ripoll
7c5ab4f1fb Some functions now take a cl_env_ptr argument, becoming better isolated. 2008-10-11 22:32:54 +02:00
Juan Jose Garcia Ripoll
8bf59c96ad When resizing the stack, enclose the update in an interrupts-free region 2008-10-10 22:56:15 +02:00
Juan Jose Garcia Ripoll
5bda4b4f61 All allocation functions are now in the ECL library and they now have the ecl_* prefix. Old names are kept in macro form. 2008-10-10 22:36:15 +02:00
Juan Jose Garcia Ripoll
45ab6f72fe New signal handlers which delay signals until an interruptible safe point is reached. 2008-10-07 23:59:57 +02:00
Juan Jose Garcia Ripoll
c0a1638b99 Added stack checks to ecl_interpret 2008-10-02 12:03:40 +02:00
Juan Jose Garcia Ripoll
89a5283927 Implemented an interface for setting/querying options with numeric values and used it for stack sizes and limits. 2008-10-02 11:11:58 +02:00
jjgarcia
8b1c69589a ECL now signals a STACK-OVERFLOW condition when the binding stack grows too much 2008-09-28 20:11:38 +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