Commit graph

8378 commits

Author SHA1 Message Date
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
Daniel Kochmański
2cbd91c3ac cmp: define-policy: use explicit package accessors 2023-02-21 14:34:11 +01:00
Daniel Kochmański
ee9e72e5aa cmp: use cmutil extensions by invoking them with prefix ext 2023-02-21 14:34:11 +01:00
Daniel Kochmański
acd1dd3c07 cmp: don't import symbols from the SYSTEM package
Use proper package accessors instead. This was mostly already done. Removal of
package imports make it easier to tell when symbols do not belong to cmp.
2023-02-21 14:34:11 +01:00
Daniel Kochmański
edb19dcf75 cmp: cleanup: remove unused special variables
It is worth noting that *active-protection* and *pending-actions* are generally
not used too (because *pending-actions* are never modified), but if we want to
add some useful semantics to with-compilation-unit one day then we'll need both.
2023-02-21 14:34:11 +01:00
Daniel Kochmański
7b56516679 cosmetic: improve cmpenv comments to include the qualifier :declare 2023-02-21 14:34:11 +01:00
Daniel Kochmański
0cc0fd914a Merge branch 'fix-format-nil' into 'develop'
Avoid putting NIL into LOOP body in FORMAT

See merge request embeddable-common-lisp/ecl!286
2023-02-20 20:18:11 +00:00
Tarn W. Burton
cacf6a0ee9 Add test for NIL forms in FORMAT 2023-02-20 15:08:39 -05:00