Commit graph

29 commits

Author SHA1 Message Date
Matthew Mondor
8f07cd58d8 The ECL code no longer uses tabulator characters, they were replaced
by spaces.

A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
2015-09-03 07:35:47 -04:00
Daniel Kochmański
4d19a27424 cosmetic: untabify
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-06-21 14:38:20 +02:00
Juan Jose Garcia Ripoll
e6a888f290 CATCH forms now use C blocks instead of labels. 2012-12-02 00:39:28 +01:00
Juan Jose Garcia Ripoll
1c95758108 Use the new brace routines in BLOCK, TAGBODY, CATCH, UNWIND-PROTECT, multiple values 2012-12-01 00:10:07 +01:00
Juan Jose Garcia Ripoll
d5fd199116 Added some IGNORE declarations and fixed some references to undefined variables. 2011-12-28 16:33:27 +01:00
Juan Jose Garcia Ripoll
d9d6d6864d C2 functions now receive the C1FORM as an argument. 2011-12-28 12:00:01 +01:00
Juan Jose Garcia Ripoll
910e79852e Instead of using system property lists, create dispatch tables for handling the C1, T1, C2 forms and others. 2010-05-26 12:12:57 +02:00
Juan Jose Garcia Ripoll
6a91d3b45a Refactored code so that it is shared by cmp and new-cmp:
* Use the new proclamations/sysfun.lsp files from the new compiler.
* We split src/cmp/cmpdefs.lsp into cmpdefs, cmppackage, cmptypes and cmpglobals
* Split cmpform.lsp out of cmpmac.lsp
* Merged in {cmp,new-cmp}/cmpc-wt.lsp some of the cmpmac wt routines
* Use functions instead of macros for the WT-* operations
* Split out from *cmp/cmpenv.lsp a file cmppolicy.lsp
* A single file, cmpenv-api.lsp for the manipulation of environments.
* The type comparison functions go into cmptype-arith.lsp and are cached.
* The code that propagates types in function calls goes into cmptype-prop.lsp.
* The remainings of cmpenv go into cmpenv-{declare,proclaim,declaim}.

Associated fixes:
* Fixed typo and wrong proclamation for SI:GET-SYSPROP.
* Fixed typo in SIMPLIFY-ARITHMETIC.
* Explicitely set the debug level when building ECL
* All declarations are stored in the compiler environment.
* Each function and form stores the compilation environment.
* Declaration POLICY-DEBUG-IHS-FRAME is acts only on the function environment.
* Make the definition if ihs_env only happen when it is used.
* Eliminated *notinline*, *inline-functions*  and *function-declarations*
* Slightly more efficient creation of accessors in kernel.lsp
* Remove the proxy C2DECL-BODY
* Fix the order of declarations in SI:PROCESS-DECLARATIONS
* Reimplemented C1BODY using SI:PROCESS-DECLARATIONS
* DECLAIM's proclamation do not propagate beyond the compiled file.
2010-05-05 17:36:19 +02:00
Juan Jose Garcia Ripoll
47d594912f Create two functions for writing comments in and out-of-line, and use them to write the compiled file header (compiler, date, etc). 2009-05-02 15:14:27 +02:00
Juan Jose Garcia Ripoll
8fe85d2e7c Introduce ECL_STACK_INDEX macro 2009-02-25 19:11:28 +01: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
7c5ab4f1fb Some functions now take a cl_env_ptr argument, becoming better isolated. 2008-10-11 22:32:54 +02:00
jgarcia
a59f90871a Emacs modelines for better editing 2008-02-02 19:14:05 +00:00
jgarcia
aa3dfe4058 Prefix most functions with 'ecl_' to avoid name collisions when embedding ECL in other libraries 2007-01-18 11:46:07 +00:00
jgarcia
52f90d2836 Add records to the compiler environment. 2006-06-12 08:52:22 +00:00
jgarcia
7305f018b3 Incorporate tags in the environment. 2006-06-12 08:52:06 +00:00
jgarcia
20ab0394db New special forms for handling the lisp stack. These constructions are used for function calls with too many arguments, multiple-value-prog1, unwind-protect, etc 2006-05-29 08:53:53 +00:00
jjgarcia
a5b4834caf Simplified the frame stack by replacing the frame class with a particular tag. 2005-08-30 14:38:04 +00:00
jjgarcia
21a2ebcfc0 Renamed the frame structure to avoid name clashes with NetBSD/68k 2005-05-20 15:02:52 +00:00
jjgarcia
06b3047b1d + Fixes in the code for backquoted vectors `#(,a ,b ...)
+ Fixes in the compiler code for CATCH and VALUES
+ Slight improvement in the readability of compiled CATCH
+ Implemented lisp hooks for cleaning on exit.
+ Improvements in the help messages from "configure"
2005-02-14 10:26:29 +00:00
jjgarcia
4eac79774e Preliminary support for POSIX threads. 2003-11-18 11:23:07 +00:00
jjgarcia
df97ca1b92 Fixed bug that prevented compilation under windows. ECL is now built as a single shared library on systems which support it. The compiler is being rewritten using higher level, more expressive functions. 2003-09-08 16:53:29 +00:00
jjgarcia
a381a7ee09 Merge NEW_COMPILER 25.05.03 2003-05-26 09:49:50 +00:00
jjgarcia
6b76d155ee Create new functions SI::{GET,PUT,REM}-SYSPROP to handle vital information
about functions, SETF forms, DEFTYPEs, etc. Property lists are no longer
used for this task.
2003-03-21 14:18:56 +00:00
jjgarcia
914f959599 1) Fix error in UNWIND-PROTECT forms: the destination frame nlj_fr has to
be saved, because it may be overwritten by a BLOCK or TAGBODY inside
the normal exit form.
2) Implement Invocation History Stack as a chain of stack-allocated records.
3) In compiled TAGBODY forms, replace tags with numbers to save space.
2002-11-11 12:57:21 +00:00
jjgarcia
a9e4edf4d0 The calling conventions have been changed. SI::C-ARGUMENTS-LIMIT and
LAMBDA-PARAMETERS-LIMIT are both 64. Up to C-ARGUMENTS-LIMIT may be
passed to a function using C calling conventions. If the function is
to retrieve more arguments, (for instance through a &rest variable),
this can be done, but then the arguments have to be pushed on the lisp
stack. This method allows us to raise the CALL-ARGUMENTS-LIMIT up to
MOST-POSITIVE-FIXNUM. From a users point of view, there is no visible
change, excep the fact that a function may receive more arguments.

The function apply() has been replaced with cl_apply_from_stack().
The former took a pointer to the list of arguments. The latter assumes
that the last "narg" elements on the lisp stack are the arguments of
the function.
2002-10-21 09:27:58 +00:00
jjgarcia
c9b91f9618 Minimal patches for C++ compatibility 2001-12-20 09:17:51 +00:00
jjgarcia
4a5ff5cb15 A bug in the compiler lead to wrong output for CATCH forms in which the tag is not constant. 2001-10-20 15:57:52 +00:00
jjgarcia
2d8d0cd44b Initial revision 2001-06-26 17:14:44 +00:00