thijs
cdc83658ad
fix docs
2019-10-25 18:13:47 +02:00
Marius Gerbershagen
6ade6d4491
numbers: fix several bugs in the expt function
...
-expt of an integer and rational lead to a wrong type error in
ecl_expt_float
-type contagion of (expt 0 +y) did not work properly
-there were several useless type checks in places where previous
function calls already ensured that objects were numbers
Fixes #526 .
2019-09-29 16:43:39 +02:00
Marius Gerbershagen
a08f26cc27
Merge branch 'fix-socket-receive-to-return-remote-addr' of https://gitlab.com/thijso/ecl into develop
2019-09-02 21:52:13 +02:00
Marius Gerbershagen
bcf1c3bba7
Merge branch 'fix-udp-socket-receive' into 'develop'
...
Fix socket-receive to match the documentation; set MSG_TRUNC when socket type is :datagram
See merge request embeddable-common-lisp/ecl!162
2019-09-02 19:46:07 +00:00
thijs
98afe7cbd0
Fix socket-receive to match the documentation; return the address of the peer that sent a message
2019-08-31 16:28:16 +02:00
thijs
87a2076384
Fix socket-receive to match the documentation; set MSG_TRUNC when socket type is :datagram
2019-08-31 16:20:28 +02:00
Daniel Kochmański
b96d28a4f8
Merge branch 'fix-476' into 'develop'
...
Fix 476
Closes #476
See merge request embeddable-common-lisp/ecl!161
2019-08-26 06:15:51 +00:00
Marius Gerbershagen
574a90a7c3
multithreading: close windows thread handle before releasing exit_barrier in thread_cleanup
...
Fixes out of memory errors when creating lots of threads on windows,
joining them and then again creating many threads (see e.g. the
atomic-incf/decf tests).
2019-08-25 21:04:29 +02:00
Marius Gerbershagen
0080acd4ce
multithreading: fix spinlock in ecl_wait_on_timed
...
process.woken_up was not set to nil before calling condition. This could
lead to threads not waiting correctly on barriers and consequently to
mp:process-join returning earlier than it should.
2019-08-25 21:03:55 +02:00
Marius Gerbershagen
14a94c2b0e
run-program: fix :error :output on windows
...
The file descriptor for the error output in the parent process was
set to the wrong value.
2019-08-25 21:03:54 +02:00
Marius Gerbershagen
24c93e1537
run-program: fix null stream input/output on windows
...
The nul file on windows can't be opened with O_TRUNC flag.
2019-08-25 21:03:53 +02:00
Marius Gerbershagen
bd9c590810
ieee-fp: remove _fpreset from si_trap_fpe
...
This is not needed since windows includes feclearexcept.
Furthermore, it leads to segmentation faults in the ieee-fp tests.
2019-08-25 21:03:53 +02:00
Marius Gerbershagen
5ea9cdf8a4
tests: fix some failing tests on windows
2019-08-25 21:03:38 +02:00
Marius Gerbershagen
25d8bf63ef
cmp: fix linker-cc for msvc
...
linker-cc for other compilers includes the libpath in the linker
options, therefore for consistency we need it here too.
2019-08-20 19:52:25 +02:00
Marius Gerbershagen
2003b7f999
streams: don't return 0 in file-column if column can't be determined
...
Instead we return an invalid value (-1 for ecl_file_column and nil for
si_file_column). All users of these functions already deal correctly with
invalid values.
Fixes #309 .
2019-08-20 15:36:56 +02:00
Marius Gerbershagen
1d0abc9c43
numlib: remove unneeded workaround for msvc
2019-08-20 14:41:53 +02:00
Marius Gerbershagen
2b3f7bb1fd
numlib: fix return value of signum for complex zero
2019-08-19 20:26:10 +02:00
Marius Gerbershagen
c1c68bb4fe
bytecmp: fix return value of multiple-value-bind with no variable bindings and no body
...
Statements such as (multiple-value-bind () :foo) returned :foo instead
of nil (see the multiple-value-bind.11-13 tests in the ansi-test
suite).
2019-08-19 19:46:27 +02:00
Marius Gerbershagen
c38739f3bb
format: fix addition of fill style newlines in ~< ... ~:@> directive
...
Only add fill style newline for blanks that don't follow a ~ newline
directive (see the format.logical-block.23 test in the ansi-test
suite).
2019-08-19 18:07:13 +02:00
Marius Gerbershagen
31f079eb80
pretty-printer: fix *print-circle* for arrays and vectors
...
The previous implementation did not respect *print-circle*.
Fixes #476 .
2019-08-18 19:34:22 +02:00
Marius Gerbershagen
693ce14130
printer: remove redundancies between pretty and ordinary printer
2019-08-18 19:31:58 +02:00
Daniel Kochmański
df339485eb
Merge branch 'infinity-NaN-numeric-functions' into 'develop'
...
Make all numeric functions return sensible values for infinity/NaN
Closes #477
See merge request embeddable-common-lisp/ecl!160
2019-08-16 18:52:23 +00:00
Daniel Kochmański
8b82c98cac
Merge branch 'alt-fix-513' into 'develop'
...
Fix 513 2nd try
Closes #514
See merge request embeddable-common-lisp/ecl!159
2019-08-16 18:44:23 +00:00
Marius Gerbershagen
e385abb213
ieee-fp: document the behaviour of numeric functions for infinity/NaN
2019-08-14 21:46:39 +02:00
Marius Gerbershagen
3c2105fe3d
ieee-fp: add tests for numeric functions with infinity/NaN
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
57db4c813c
complex-float: use CMPLX for constructing complex floats
...
Works better for edge cases such as x + I*∞, which otherwise would
lead to a complex with NaN real part.
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
327da031cd
ieee-fp: fix asin/acos/asinh/acosh/atanh for NaN
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
ac19a3f0a9
ieee-fp: fix round function for NaN
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
fa28f08770
ieee-fp: fix ext:float-{infinity/nan}-p
...
ext:float-infinity-p returned true for NaNs and ext:float-nan-p was
slower than necessary.
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
5c7aecc15f
ieee-fp: fix min/max for NaN
...
As for the C functions fmin/fmax, we ignore NaNs
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
a597fd5379
eql: fix NaN comparison
...
Old approach doesn't work reliably on x86_64. See e.g.
> (eql (+ ext:double-float-negative-infinity ext:double-float-positive-infinity) (ext:nan))
NIL
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
046c6b9f32
number_compare.d: fix number comparison for NaN
...
All comparisons with NaN should return NIL for consistency with the
IEEE standard.
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
d9a105dabc
numlib.lsp: make signum return proper values for infinity/NaN
2019-08-14 20:51:40 +02:00
Marius Gerbershagen
2cbe875668
dffi: fix bug in converting to :cstring's
...
We used the next argument instead of the current one. Bug identified
and fixed by Christoph Buck.
Fixes #523 .
2019-08-06 20:14:10 +02:00
Marius Gerbershagen
61e799074d
cmp: fix type propagation for / with one argument
...
Fixes #522 .
2019-08-06 19:38:47 +02:00
Marius Gerbershagen
5859593b82
Merge branch 'develop' into 'develop'
...
buildsystem: remove unnecessary nodefaultlib linker flags(msvc)
See merge request embeddable-common-lisp/ecl!157
2019-08-06 16:48:31 +00:00
zyg
3108680e43
buildsystem: update windows msvc build instructions
2019-08-06 21:59:05 +08:00
Exaybachay
f61cb729f9
doc: update msvc build descriptions
2019-07-30 10:36:54 +08:00
Exaybachay
30f1ffcd5d
buildsystem: remove unnecessary nodefaultlib linker flags(msvc)
...
MS link.exe can pick the right crt libraries according to the compiler flags,
such as /MD, /MDd etc.
So we remove them to keep the command line tidy and clean.
2019-07-26 11:55:52 +08:00
Marius Gerbershagen
f331600f84
subtypep and type=: fix bogus type error
...
It can happen for example in
(subtypep t '(CONS (AND STANDARD-CHAR (MEMBER #\@)) REAL))
that in subtypep and type= the second call to safe-canonical-type
fails and returns the error from +canonical-type-failure+ instead of a
valid tag. This leads to type-errors in logandc2 or = which expect an
integer.
Fixes #519 .
2019-07-24 19:03:07 +02:00
Marius Gerbershagen
0ff3e27b54
ECL_STACK_FRAME_VARARGS: Use the correct struct
2019-07-23 18:45:49 +02:00
Marius Gerbershagen
912f4e49dc
apply_from_stack_frame: use correct frame base
...
Previously, we assumed that all stack frames were lying at the top of
the lisp stack. This is not always true due to e.g.
multiple-value-prog1 pushing onto the lisp stack.
2019-07-23 18:45:24 +02:00
Marius Gerbershagen
13358703d0
Merge branch 'develop' into 'develop'
...
buildsystem: with-manual in configure script should be enable-manual
See merge request embeddable-common-lisp/ecl!156
2019-07-22 18:57:08 +00:00
Exaybachay
9e7d545b3e
buildsystem: with-manual in configure script should be enable-manual
2019-07-22 22:36:02 +08:00
Daniel Kochmański
adace6ba08
cmp: replace magic number with a defined constant
...
The magic number was wrong anyway.
2019-07-20 09:22:01 +02:00
Daniel Kochmański
f3c6e4ccef
cmp: remove unused interface *linking-calls*
...
Variable is always nil so blocks of code are never executed. Remove
it. TRAMPOLINK was used only in such bodies.
2019-07-19 14:30:53 +02:00
Daniel Kochmański
923a34130b
apply: remove case for 64 arguments
...
C argument limit is set to 63, this case is not harmful but *may*
confuse a person who reads the code. If we raise the limit adding
remaining cases is trivial.
2019-07-19 14:30:53 +02:00
Daniel Kochmański
0e7ef61b69
cmp: t3local-fun-declaration: do not call next-lcl more than needed
...
When we process required arguments their amount may exceed maximum
number of arguments which are allowed to be passed on C stack. In this
case the remainder is shifted to optionals *but* we have called
next-lcl for all arguments what lead to a situation where all
arguments were passed on the list. Fixes #514 .
2019-07-19 14:30:53 +02:00
Daniel Kochmański
23e02dbd9d
cosmetic: align slot
2019-07-19 14:30:53 +02:00
Daniel Kochmański
903156b8d6
preprocessor: error when ECL_C_ARGUMENTS_LIMIT changes
...
This is a canary which errors when code needs to be adjusted. When
appropriate definitions are added the error condition should be
changed accordingly.
2019-07-19 14:30:50 +02:00