Commit graph

249 commits

Author SHA1 Message Date
Daniel Kochmański
03e934dd85 builder: normalize build target names 2016-12-05 14:16:52 +01:00
Daniel Kochmański
55685bc3b1 compiler: sanitize building static-libraries
static-library can't be build from another static-library or
shared-object. For that target we allow only `:object' and `:c' input
files.
2016-12-05 12:16:21 +01:00
Daniel Kochmański
5357c43ebf cosmetic: indentation 2016-11-27 14:15:36 +01:00
Daniel Kochmański
72bb90dc5a builder: don't call guess-kind twice 2016-11-27 14:14:17 +01:00
Daniel Kochmański
ca0859d710 builder: guess-kind never returns :dll or :lib
In case of this kind of files it's always :shared-library
or :static-library.
2016-11-27 14:11:03 +01:00
Daniel Kochmański
3f3af5275d buildsystem: configpre (wip) 2016-10-08 12:00:07 +02:00
Fabrizio Fabbri
1c452a9f1d MSVC - avoid name clash on export libraries for program link. fix #287 2016-09-08 12:45:30 -04:00
Fabrizio Fabbri
af72e2b293 does not delete pdb files on windows 2016-05-12 13:09:53 -04:00
Fabrizio Fabbri
ce828c4000 Win64 and Visual Studio compiler
* Fix compilation error.
* Fix feature discover on cl compiler.
2016-03-02 12:43:36 -05:00
B. Scott Michel
b69d0c6022 emit_cxx_source_if_cxx
Emit ".cxx" source files instead of ".c" source if configured
"--with-cxx". This noticeably reduces the amount of whining from the
Clang compiler, which considered compiling ".c" as C++ a significant
deprecation.
2015-10-21 14:14:19 -07:00
Daniel Kochmański
6e3b64e428 cmpmain: declare init wrapper as extern C
Fixes #182.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-10-17 09:48:22 +02:00
Daniel Kochmański
68fa3985c6 builder: provide wrapper for randomized function init name
Randomized init funciton name is used internally and prevents symbol
clashes which lead to bugs when loading systems of the same name
(bundles for instance).

On the other hand wrapper provides a way to initialize library from
the C code. In this case it is programmer responsibility to name his
system uniquely. It will initialize it's submodules fine.

Fixes #74. Fixes #177.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-10-02 13:01:04 +02:00
Daniel Kochmański
03045d98ae cmp: remove deprecated verbosity variables
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-10-01 11:03:46 +02:00
Daniel Kochmański
970ccb7c36 compiler: accept foreign object files
Sometimes we want to build with objects from CFFI (like
wrappers). These doesn't have entry point and initialization
function. If we'll encounter such an object just attach it without
adding it to the initialization queue. Fixes #174.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-09-23 09:03:51 +02:00
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
8bc260c377 cmp: embed unique tag with init function name in each exported module
This is necessary if we want to retrieve function name from compiled
binary, what is necessary if we want to use unique names for this
function. This is necessary for fix of issue #41.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-30 21:20:15 +02:00
Daniel Kochmański
8972fb38d3 cmp: remove redundant compute-main-name function
Same functionality is provided by compute-init-name

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-30 08:32:02 +02:00
Daniel Kochmański
d75552027a compiler: bind lexically *readtable* when file is compiled
Both byte and C compilers didn't bind lexically *readtable*, what lead
to pollution of other compiled packages. Fixes #95 and #59.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-28 14:25:29 +02: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
63640b0a79 Added newlines to the C templates. 2013-06-08 22:04:06 -07:00
Juan Jose Garcia Ripoll
e92f8c418f Added a 'machine' object that represents the features of a cross compilation target in the compiler. Inline forms now are created with one such machine on mind, and recreated if the machine changes. 2013-06-02 22:49:54 +02:00
Juan Jose Garcia Ripoll
b47b1869c6 New way of creating lisp data, using an array of string streams 2013-04-07 13:50:07 +02:00
Juan Jose Garcia Ripoll
fe85aebbc9 Removed the "-w" option from compiler-cc so that it works with clang. 2013-01-09 00:00:53 +01:00
Juan Jose Garcia Ripoll
825fc8cbd3 Cnil and Ct are now part of legacy 2012-06-30 23:01:40 +02:00
Juan Jose Garcia-Ripoll
efadef99dc Prefix the block creation macros, ECL_BLOCK_*, etc 2012-06-30 12:01:44 +02:00
Juan Jose Garcia Ripoll
2c5b024036 Export both EXT:INSTALL-BYTECODES-COMPILER and EXT:INSTALL-C-COMPILER 2012-06-01 18:53:45 +02:00
Juanjo Garcia-Ripoll
f53d22e57d New function C:INSTALL-C-COMPILER restores the C compiler once the bytecodes compiler has been activated 2012-05-31 10:50:24 +02:00
Juan Jose Garcia Ripoll
5743b5cbd4 Fixed circularities when printing comments in the compiler and when printing the TRACE 2012-01-02 23:12:17 +01:00
Juan Jose Garcia Ripoll
a25dfa49ac Change assignements in COMPILE so that the function does not violate the type declaration of its argument. 2011-12-27 16:59:09 +01:00
Juan Jose Garcia Ripoll
c2e2171dc0 Avoid recursive invocation of C1EXPR by allowing the C1 processors to act like macros, returning new forms to be processed. Remove also the CATCH for compiler errors, since we now rely on conditions for signal handling. 2011-12-27 12:36:52 +01:00
Juan Jose Garcia Ripoll
24debdf161 Fix additional warnings about unused variables and variables which are assumed global in the compiler. 2011-12-26 17:59:16 +01:00
Juan Jose Garcia Ripoll
4b2eca745a Replace more uses of DEFVAR with DEFPARAMETER 2011-12-10 20:12:14 +01:00
Juan Jose Garcia Ripoll
181c12947f Remove /EXPORT option from ECL, to avoid duplicated exports in Windows64.
This is perfectly safe for ECL already uses ECL_DLLEXPORT to announce names.
2011-11-13 15:34:04 +01:00
Juan Jose Garcia Ripoll
ea0fdff007 Avoid further uses of make_simple_base_string. 2011-11-06 10:02:55 +01:00
Juan Jose Garcia Ripoll
7beedc12c8 Fixed list of compiled/library/executable file extensions in cmpmain.lsp 2011-10-29 20:30:46 +02:00
Juan Jose Garcia Ripoll
d8b042877e Changed the entry point of compiled code, which now takes either a codeblock or OBJNULL. 2011-09-04 19:18:30 +02:00
Juan Jose Garcia Ripoll
599f8017e1 Function read_VV is renamed to ecl_init_module() 2011-08-01 15:39:46 +02:00
Juan Jose Garcia Ripoll
2b3c328777 DISASSEMBLE should not always try to dump the data file. 2011-07-27 21:56:10 +02:00
Juan Jose Garcia Ripoll
24ffd8065c Remove :ecl-bytecmp from features when loading the C compiler 2011-07-16 21:56:43 +02:00
Juan Jose Garcia Ripoll
ac46c803c6 Remove debug statement. 2011-06-28 21:11:55 +02:00
Juan Jose Garcia Ripoll
0e2c3b363d Minor changes in the function that translate lisp component names to compiler flags: they are now absolute pathnames. 2011-06-28 19:32:43 +02:00
Juan Jose Garcia Ripoll
bfb7b7f7f9 Warn when linking files that contain separate binary sections. 2011-06-26 10:59:48 +02:00
Juan Jose Garcia Ripoll
4c24b43755 Add an extra function to the shared and statically linked libraries to allow for initialization of ECL and loading of the library. 2011-06-25 23:07:33 +02:00
Juan Jose Garcia Ripoll
8638796be0 In BUILDER, the routine for adding cdata did not work when one of the arguments was a symbol. 2011-06-24 23:25:29 +02:00
Juan Jose Garcia Ripoll
e0d89daf02 Added the possibility of linking ECL's compiled data as binary data at the end of the compiled files, instead of C constants. 2011-06-23 21:28:58 +02:00
Juan Jose Garcia Ripoll
3bf2bda467 Separate dumping of data into a C file from creating the dumped array. 2011-06-21 22:04:19 +02:00
Juan Jose Garcia Ripoll
ec8c9527d5 Remove incomplete support for shared data files 2011-06-20 21:27:33 +02:00
Juan Jose Garcia Ripoll
84582d1e1d Fixed typo in C::BUILDER (Fare) 2011-06-11 01:19:03 +02:00
Juan Jose Garcia Ripoll
2655b9b479 Remove another use of si:system 2011-05-23 00:02:59 +02:00
Juan Jose Garcia Ripoll
243a3bf233 Change the extension of compiled header files to avoid name clashes with the operating system and C library 2011-04-10 10:01:30 +02:00