Marius Gerbershagen
c300f2ee3a
threads.h: use clock_monotonic for timeouts on posix if available
...
Prevents threads from timing out too early or too late if the system
clock is adjusted while waiting.
2023-05-27 18:36:16 +02:00
Marius Gerbershagen
c1078cda7d
threads.h: add fallback if gettimeofday is not defined
...
Probably unnecessary but since we have the same fallback in
get-internal-real-time we should add it here too for consistency.
2023-05-27 16:41:57 +02:00
Marius Gerbershagen
fceb54c237
replace some deprecated macro names
2023-05-21 19:04:43 +02:00
Jeronimo Pellegrini
1c1db8637c
Make (log x 0) return 0 (as per the spec)
...
The CL spec says that "If base is zero, log returns zero." But ECL
was not checking for zero, so a divide by zero error was generated.
This patch makes it return zero when the base is zero:
> (log 1 0)
0
> (log 1/2 0)
0
> (log #C(2 1) 0)
0
> (log 2 0.0)
0.0
2023-04-15 15:30:04 +02:00
Marius Gerbershagen
8cffaf858c
numbers/log.d: fix typo
2023-03-25 13:46:43 +01:00
Marius Gerbershagen
8586876051
tests: multiprocessing: increase timeout value in semaphore smoke tests
...
This makes the test run more reliably on slow computers.
2023-03-18 16:41:41 +01:00
Marius Gerbershagen
4705967061
cmp: remove superfluous encode-string function
2023-03-18 15:18:20 +01:00
Marius Gerbershagen
acd81e16cd
allow non-ascii characters in debug info
2023-03-18 15:18:10 +01:00
Marius Gerbershagen
ae19006cb8
Merge branch 'cmpwerk' into 'develop'
...
Separate COMPILER and EXT,FFI,MP packages
See merge request embeddable-common-lisp/ecl!285
2023-03-12 15:31:36 +00:00
Marius Gerbershagen
0c09ded44d
doc: be more precise about error cases for ext:terminate-process
2023-03-12 16:07:42 +01:00
Marius Gerbershagen
6845a9a480
Merge branch 'external-processes-encoding' into 'develop'
...
Some improvements for ext:run-program
Closes #607
See merge request embeddable-common-lisp/ecl!287
2023-03-12 14:31:39 +00:00
Daniel Kochmański
0a3c4f53be
cosmetic: fix a typo
2023-03-09 13:56:48 +01:00
Daniel Kochmański
eb580f4084
doc: fix a spelling mistake s/:signalled/:signaled/ for the status
2023-03-07 17:13:03 +01:00
Daniel Kochmański
f160a6e07e
tests: run-program: don't call terminate-process excessively
...
Calling terminate-process on a process that has already finished has undefined
consequences.
2023-03-07 17:10:16 +01:00
Daniel Kochmański
08c48b5346
doc: describe calling terminate-process on a finished process
...
Consequences of such action are undefined. This is prompted by the fact that
windows will signal an error in this case.
2023-03-07 17:01:14 +01:00
Marius Gerbershagen
c637d9d41a
ext:string-to-octets: avoid allocating unnecessarily large output array
...
If start and end are given we may only need a smaller array. Also add
1 for possible null terminator.
2023-02-26 17:37:48 +01:00
Marius Gerbershagen
dd29e35966
tests: 2am: if (finishes) fails due to a signal, print the error
2023-02-26 17:05:12 +01:00
Marius Gerbershagen
115b52f9f5
terminate-process: improve error message
2023-02-26 17:05:12 +01:00
Marius Gerbershagen
828b2b482a
tests: run-program: fix terminate-process test on Windows
2023-02-26 17:05:12 +01:00
Marius Gerbershagen
c52ec9fe9e
tests: implement process-environ test on windows
2023-02-26 17:03:09 +01:00
Marius Gerbershagen
02ef05479c
ext:run-program: support unicode characters for the process name, arguments and environment
...
The encoding is determined by ext:*default-external-format* as usual.
2023-02-26 17:03:09 +01:00
Marius Gerbershagen
53388175f3
unixsys: better error messages if we fail to spawn a subprocess
2023-02-26 16:56:43 +01:00
Daniel Kochmański
4d3285892a
cmp: load cmptables before cmpforms
2023-02-21 16:16:30 +01:00
Daniel Kochmański
7f5eb56055
cmp: treat compilation-speed as a separate optimization option
...
Policy api works now with compilation speed (although we have no policies for
compilation-speed currently). Supersedes !241 .
2023-02-21 16:16:30 +01:00
Daniel Kochmański
dae023d2af
cmp: refactor cmppolicy (part 3)
...
- get rid of circular lists
- add a comment that shows the ropes
- definetely separate standard quality and extended quality dependencies:
on/off works only with standard qualities
only-on/only-off works only with extended qualities
2023-02-21 16:16:30 +01:00
Daniel Kochmański
e9668d798c
cmp: refactor cmppolicy (part 2)
...
- define-policy has more strict syntax checking
- define-policy puts clauses in parenthesis
- compute-policy is rewritten for readibility
- augment-policy is rewritten for readibility
- define-policy and define-policy-alias are separate macros
2023-02-21 16:16:30 +01:00
Daniel Kochmański
6a4d094f0f
cmp: refactor cmppolicy (part 1)
...
- make compilation-speed supported similar to other optimzie qualities
- make define-policy idempotent for recompilation with the same options
- remove dead code branches
- rework code to eliminate multiple EVAL-WHENs (for readibility)
2023-02-21 16:16:30 +01:00
Daniel Kochmański
621720b457
cmp: separate policy definition and environment OPTIMIZE accessors
2023-02-21 16:16:30 +01:00
Daniel Kochmański
523460b874
cmp: cleanup to avoid some forward-references
2023-02-21 16:16:30 +01:00
Daniel Kochmański
b4eeff082d
cmp: move refs to a separate file cmprefs
...
Also load cmptype-arith.lsp much sooner than before.
2023-02-21 16:16:30 +01:00
Daniel Kochmański
2c09a82c11
cmp: move locations and representations into separate files
2023-02-21 16:16:27 +01:00
Daniel Kochmański
76f0ac2399
cmp: remove obsolete function push-vars
...
The function push-vars initialized a slot var-index and called
cmp-env-register-var however var-index is never read so there is no need for
that. Remove both function and the unused slot.
2023-02-21 14:34:11 +01:00
Daniel Kochmański
81a671dea7
cmp: defun-cached: fix reset-cache and a declaration
...
reset-cache did cons a new array but did not assign it to the cache variable
so it was essentially a no-op. Also we bind cache to lexvar and then declare
that lexvar to preserve declaration semantics.
2023-02-21 14:34:11 +01:00
Daniel Kochmański
e984568e7d
cmp: rearrange cmppolicy to have a correct order
...
assume-right-types were used before it was defined.
2023-02-21 14:34:11 +01:00
Daniel Kochmański
d29a26cf8a
cosmetic: cmp: declare unused variables as ignored
2023-02-21 14:34:11 +01:00
Daniel Kochmański
23428b8af9
cosmetic: clos: declare unused variables as ignored
2023-02-21 14:34:11 +01:00
Daniel Kochmański
c38a18bd01
cmp: move env-related operators from cmpvar to cmpenv-var
2023-02-21 14:34:11 +01:00
Daniel Kochmański
0489f2e227
cmp: move functions from cmpmac to cmputil
...
both files served the same purpose
2023-02-21 14:34:11 +01:00
Daniel Kochmański
9eff84b622
cmp: rename env functions to comply to other naming conventions
...
c1make-global-variable -> make-global-var (and move to cmpvar) -- this function
does not create c1form so this name was wrong
cmp-env-declare-special -> declare-special (and move to cmpenv-var) -- this
function does not only declare special but it also creates an instance of a
variable - move that to a new file cmpenv-var.lsp
2023-02-21 14:34:11 +01:00
Daniel Kochmański
f1080c716c
cmp: remove unused environment object type "cleanup"
2023-02-21 14:34:11 +01:00
Daniel Kochmański
a85b585108
cmp: move set-closure-env from cmpenv-api to cmpenv-fun
2023-02-21 14:34:11 +01:00
Daniel Kochmański
b3ec398d29
cmp: move all conditions to a separate file
2023-02-21 14:34:11 +01:00
Daniel Kochmański
66c7626a8f
cmp: cleanup: some more cleanup
2023-02-21 14:34:11 +01:00
Daniel Kochmański
f38ef8ee2b
cmp: cleanup: add ignore declarations, remove unused args etc
2023-02-21 14:34:11 +01:00
Daniel Kochmański
45bb774caf
cmp: values-type-and: fix a typo - we should use rest1 for reference
2023-02-21 14:34:11 +01:00
Daniel Kochmański
7f1f97e1c0
cmp: cosmetic cleanups
2023-02-21 14:34:11 +01:00
Daniel Kochmański
93fbbcccfc
cmp: more robust compiler-features collecting
2023-02-21 14:34:11 +01:00
Daniel Kochmański
e4988d1f7c
cmp: don't USE the package EXT
2023-02-21 14:34:11 +01:00
Daniel Kochmański
e74826b9cd
cmp: be explicit about symbol packages
...
In dispatch tables and other places where the symbol is a token of some
processing we try to be explicit about its home package (CL, SI, FFI, MP).
2023-02-21 14:34:11 +01:00
Daniel Kochmański
6ab1d0aded
cmp: constants: be explicit about the package
2023-02-21 14:34:11 +01:00