Commit graph

1431 commits

Author SHA1 Message Date
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
9527e2eccf Makefile.in: be explicit with directories 2016-10-21 10:06:49 +02:00
Daniel Kochmański
3f3af5275d buildsystem: configpre (wip) 2016-10-08 12:00:07 +02:00
Daniel Kochmański
ac756c87e6 cmp: cross-cc: add mingw32 to windows list 2016-09-20 14:52:40 +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
Elias Pipping
ee0152431c Implement ext:terminate-process 2016-09-06 19:58:39 +00:00
Daniel Kochmański
ed5ecd03eb ieee-floats: fix builds with --with-ieee-fp=no
Functions to print (nan,float)-to-string and and predicates are still
available, but ext:*-float-*-infinity aren't available if ECL is built
with option `--with-ieee-fp=no`.
2016-08-11 22:38:30 +02:00
Daniel Kochmański
691e77c3be cmp/c++: fix inlined function calls
We have 3 more regressions with CXX in comparison to pure C mode.
Related to #241.
2016-07-28 19:07:44 +02:00
Daniel Kochmański
f1857e0ed5 cmp: defcallback: accept ':default' calling convention
Fixes #244.
2016-06-21 15:20:34 +02:00
Fabrizio Fabbri
af72e2b293 does not delete pdb files on windows 2016-05-12 13:09:53 -04:00
Daniel Kochmański
ff27203a15 Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop 2016-03-21 11:44:39 +01:00
Erik M. Bray
d23d974654 Allow CC and other environment variables passed to safe-run-program to be a command with arguments 2016-03-17 15:57:16 +01:00
Daniel Kochmański
1a8f0decf2 Merge branch 'fix-c-nested-closures' into develop 2016-03-12 10:01:57 +01:00
Daniel Kochmański
9b82583884 newcmp: remove obsolete newcmp package 2016-03-11 16:06:45 +01:00
Daniel Kochmański
0d260397cb compiler: cosmetic: remove deprecated remanents 2016-03-10 17:12:08 +01:00
Daniel Kochmański
939f068390 compiler: fix aux_closure creation
Bug was probably introduced in a1bc92b05c

Fixes #128 and and misc.319 from ANSI tests.
2016-03-10 14:22:10 +01:00
Daniel Kochmański
8583b08258 Merge branch 'win_merge' into 'develop'
Win64 and Visual Studio compiler

* Fix compilation error.
* Fix feature discover on cl compiler.

Kindest Regards.
f.

See merge request !19
2016-03-02 19:21:46 +00:00
Daniel Kochmański
0e5116b2f2 cosmetic: fix typo 2016-03-02 19:07:01 +00: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
Fabrizio Fabbri
52de2ceea6 Fix compilation for AIX and xlc compiler. 2016-03-02 12:08:48 -05:00
Daniel Kochmański
e20576df32 fix: si:open-unix-socket-stream accepts both string and base-string
(automatic coercion is performed)
2016-01-28 11:47:48 +01:00
Daniel Kochmański
4d0433ed7e defsetf: change DO-DEFSETF function prototype
Carry STORES to do-setf-method-expansion in order to fix bug with long
form of DEFSETF (using multiple values as assignment variables is
legal). Change is backwards compatible.
2016-01-26 17:40:52 +01:00
Daniel Kochmański
af9900c7d4 compiler: fix compiler-macro for `FIND'
C-compiled `FIND' didn't respect `START' nor `END' arguments due to bug
in parsing the arguments and invoking `DO-SEQ'. Fixes #199.
2015-12-18 10:35:11 +01:00
Daniel Kochmański
060fa6b4bf Merge branch 'develop' into mobile 2015-10-28 18:41:55 +01:00
Sylvain Ageneau
df019224f8 mobile: support Nacl and PNacl
This patch adds support for chrome's Native Client and Portable Native
Client
2015-10-23 18:12:54 +02: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
55bbfcfaeb cmpname: don't randomize init function names for libraries
Both shared and static libraries might be linked from C code and names
of the initialization functions has to be known without parsing the
file. Related to #177 and #74. FWIW it doesn't introduce regression on
ADSF bundles (#74) and solves initialization problem (#177).

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-10-01 13:29:53 +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
Daniel Kochmański
899f51106e cmpc: when infinity is used, emit macro "INFINITY"
and "-INFINITY" for negative infinity. These corner-cases lead to
compilation error, so no regression will be imposed even against
non-c99 compilers.

INFINITY and NAN macros are introduced by C99 standard, so such code
requires C-backend to support this math extension. Fixes #156.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-09-04 21:32:08 +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
a2ceed9cb3 deftype: use destructure directly, remove unused arg
Removes ENV arg, which were ignored by using destructure directly.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-18 15:39:29 +02:00
Daniel Kochmański
64a96a537b cosmetic: deduplicate expand-deftype function definition
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-18 12:07:57 +02:00
Daniel Kochmański
0359b79c81 deftype: make deftype accept macro lambda-lists
Fixes #86.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-18 12:06:03 +02:00
Daniel Kochmański
6b2b2ac598 cmpprop: fix repeated required arguments
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-17 12:59:43 +02:00
Daniel Kochmański
7b3373ece8 lambda-list: Improve error message in c-compiler
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-17 12:58:32 +02:00
Daniel Kochmański
8869a54bde flet/labels: make same function name error message more descriptive
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-17 12:15:53 +02:00
Daniel Kochmański
e289af9500 LET: signal an error when multiple bindings of the same name occur
This situation is unspecified by ANSI spec – also hard to find
situation, when such construct wouldn't be an error.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-17 10:07:31 +02:00
Daniel Kochmański
bacece3827 Revert "cmp: ffi: cast `ecl_make_foreign_data' 3rd argument to *(void **)"
This reverts commit ab50a55fb1.

We can't cast every 3rd argument to *(void **) - this breaks *things*.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-08 08:36:43 +02:00
Daniel Kochmański
ab50a55fb1 cmp: ffi: cast `ecl_make_foreign_data' 3rd argument to *(void **)
Some compilers doesn't allow putting function pointers when parameter
type is declared (void *), but it's necessary if we want to use
callbacks. Fixes #99.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-31 14:19:35 +02:00
Daniel Kochmański
f40e183770 cmp: search for tag only when name is unique
fasl and program init function names are always the same, don't search
for tag in binary files for this two targets.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-31 09:29:56 +02:00
Daniel Kochmański
1ada997e7c cmp: use unique names for inititalization functions of libraries
Fixes #74.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-30 21:22:25 +02: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
29cd90c448 cmp: make init-function-name consistant with compute-init-name
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-30 08:35:03 +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