Commit graph

8385 commits

Author SHA1 Message Date
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