Commit graph

5520 commits

Author SHA1 Message Date
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
5340b92ab8 lambda-list: enforce unique names among required parameters
Signal an error, if two required parameters have the same name.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-17 12:57:25 +02:00
Daniel Kochmański
6a8cc03e8a cosmetic: undef unused macro
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-17 12:26:57 +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
7a59ebda66 c_leta: don't compute whole list length for optimization
This is interpreter performance tweak. Behavior stays the same.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-16 18:28:49 +02:00
Daniel Kochmański
64d0b5586a flet/labels: signal an error if same name is used more than once
This behavior is unspecified by the ANSI spec, so we are free to do
that – can't imagine valid usecase of such blocks.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-16 18:25:08 +02:00
Daniel Kochmański
18ee04ed2f tests: add test-ansi suite stub
For now contains readtable case tests.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-13 21:40:43 +02:00
Daniel Kochmański
1bc33781d8 tests: mop-dependents: remove typo (?)
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-13 14:13:44 +02:00
Daniel Kochmański
61f2c84d85 tests: fix broken testing framework
This still needs refinements, but works.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-12 16:27:24 +02:00
Daniel Kochmański
1b7c1e7b25 tests: fix wrong assumption on assert
Tests using assert assumed it returns (values) — no value, but it
returns nil if assertion is true. Add it to deftests.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-12 14:21:54 +02:00
Daniel Kochmański
279dda194d encodings: fix misplaced function reference
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-12 13:27:08 +02:00
Daniel Kochmański
b37b20cf8e external-process: rename struct member to error-stream
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-12 11:22:29 +02:00
Daniel Kochmański
fc976a96ff doc: refine documentation for external-process
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-12 11:21:27 +02:00
Daniel Kochmański
8a905f31e8 run-program: allow further customization of process communication
Implement key parameters `if-input-does-not-exist', `if-error-exists'
(for pathnames) and `external-format' for both pathnames and streams.

Fixes #107.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-12 08:55:13 +02:00
Daniel Kochmański
9c948a188c system: set streams to nil
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-10 22:30:59 +02:00
Daniel Kochmański
06b4774717 rt: fix mixied package lock test
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-10 22:02:25 +02:00
Daniel Kochmański
2e6596ae25 tests: remove unused/outdated/unrelated tests
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-10 21:41:58 +02:00
Daniel Kochmański
fa0d48f270 run-program: error stream default value is :output
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-09 11:10:51 +02:00
Daniel Kochmański
e3ec8fa496 trace: improve warning message
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-09 10:53:42 +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
63e7187866 logical-pathname-translations: signal error if pathname not defined
If logical pathname wasn't defined yet, signal type error. Fixes #102.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-05 14:05:12 +02:00
Daniel Kochmański
0dcfdcfeb6 run-program: make invalid handler errorr message more readable
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-04 12:39:34 +02:00
Daniel Kochmański
850f1ccce4 ffi: remove package nickname 'uffi'
Our ffi isn't uffi 2.0 compatible and most systems wants this, when
they say (require 'uffi). Also if system has asdf dependency on
quicklisp) we have package name error.

We'll depend with UFFI 2.0 compability on cffi-uffi-compat, what is
the saniest approach. Some ECL specific patches will land there soon
to improve performance - no internal FFI api will change. It's just
nick removal.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-04 12:22:02 +02:00
Daniel Kochmański
3f7fe751b3 format: fix bug for empty width and fdigits
When neither w and d weren't set, then k was ignored.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-03 16:11:32 +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
4f80b5fca5 buildsystem: add src/*cmp/*.lsp to ecl dependencies
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-30 08:29:29 +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
d8609840d3 reader: readtable-case works approprietly for :invert and others
Reader had problems with converting case. Firstfully, it did convert
case for character literals. Second, it didn't convert characters for
some specific symbol cases (especially when some were escaped). Fixes

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-27 21:00:26 +02:00
Daniel Kochmański
92b8ff90a7 cosmetic: libffi updates this file on each compilation
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-27 20:56:31 +02:00
Daniel Kochmański
de22539146 cosmetic: short-float: fix inconsistencies with short-float
Altough short-float is now implemented as single-float, there are
clear signs that there were attempts / was separate implementation of
that type with partly-abandoned efforts. This patch shapes a bit code
in predlib.lsp and adds comments in appropriate places, that this
files needs to be modified, if such separate implementation occurs.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-26 12:54:10 +02:00
Daniel Kochmański
61a5f49639 clos: add single-float and double-float to built-in class hierarchy
Some libraries want methods to specialize on double-float and ECL
fails on such attempts. Fixes #96.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-07-26 12:41:27 +02:00
Daniel Kochmański
f2d81d5c45 si_reset_mergins: move function declaration to external.h
Build with cxx compiler should work now. Symbol was put in internal.h,
while it is accessed from outside.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-18 20:11:38 +02:00
Daniel Kochmański
a04b6ff8b8 cmp: mapcar: evaluate function only once
When function is a closure, all lexical environment were reinitialized
on each function call, because it was expanded multiple times. Do it
only once and use result in funcall. Fixes #17.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-16 07:52:52 +02:00
Daniel Kochmański
9e5fceb4d3 newcmp: deduplicate cmpmap.lsp
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-16 07:49:13 +02:00
Daniel Kochmański
a4283c3f8c clos: fix `print-object' for non- standard-object's
Previous commit overgeneralized. Handle just one particular corner
situation, when print-object leaks from standard-object to builtin
class T.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-07 16:11:47 +02:00
Daniel Kochmański
74021ab1a9 clos: fix `print-object' specialized on T (infinite recurrence)
Corner case. When user despite spec defines method `print-object'
specialized on standard-object and calls call-next-method,
`print-object' specialized on T called `write', which triggers
original `print-object' specialized on `standard-object'.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-07 12:00:49 +02:00
Daniel Kochmański
f52cf9c671 autotools, gc: refine aclocal.m4, refine GC detection, remove hack
Remove `ifdef' against GC version with hack - if GC too old use
included one. Also set default stack direction to `down' (on
cross-compilation) and fix cross-compilation of GMP. Fixes #87.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-06 22:43:16 +02:00
Daniel Kochmański
663de5ddfe msvc: rename labels INT' and FLOAT' to fix build with VS2013 CE
Patch provided by community members lll and Dinosky. Fixes #7.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-04 20:51:51 +02:00
Daniel Kochmański
5b4a6b81a0 signals: don't whitelist suspend/resume signals if GC below 7.4
GC 7.2 doesn't export `GC_get_thr_restart_signal`, so we can't
whitelist it. Gives warning about old GC.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-03 18:23:12 +02:00
Daniel Kochmański
359463a463 cross-compile: set default stack direction to down
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-03 15:58:13 +02:00
Daniel Kochmański
1d4b9284c5 buildsystem: fix builds with flag --with-clos-streams=no
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-03 15:40:11 +02:00
Daniel Kochmański
6ee2d334f4 format.d: accept t_string as ~? argument
Only when UNICODE is enabled obviously.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-03 15:38:34 +02:00
Daniel Kochmański
6b93019ce1 gmp: fix cross-compilation problem when passing --host
https://gmplib.org/list-archives/gmp-bugs/2012-January/002511.html

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-03 13:28:46 +02:00