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
Tarn W. Burton
6323c4e574
Avoid add NIL to LOOP
2023-02-20 15:08:18 -05:00
Marius Gerbershagen
de89593216
fix typos
2023-02-18 17:30:30 +01:00
Marius Gerbershagen
357c860f1a
tests: actually run clos tests and fix one of the tests
2023-02-16 20:03:39 +01:00
Marius Gerbershagen
a5cb93d311
clos: fix computation of instance size
...
For empty structs, the size was off by one. While this did not affect
structs that were created directly with the structure constructor, for
structs that were externalized with MAKE-LOAD-FORM-SAVING-SLOTS
instances which were one element too large were created.
2023-02-16 20:00:12 +01:00
Daniel Kochmański
4831831f74
Merge branch 'bytecmp-closure-optimization' into 'develop'
...
bytecmp: create fewer unnecessary closures
See merge request embeddable-common-lisp/ecl!281
2023-02-14 21:06:11 +00:00
Daniel Kochmański
feff551c31
Merge branch 'inline-closure-global' into 'develop'
...
Fix compiler bug regarding inlining for global functions that are closures
See merge request embeddable-common-lisp/ecl!280
2023-02-14 21:05:19 +00:00
Marius Gerbershagen
d34fe2c065
Merge branch 'fix-listen' into develop
2023-02-05 19:45:58 +01:00
Tarn W. Burton
5a309eba76
listen: when poll/select indicate non-blocking in then check for bytes
2023-02-05 19:41:42 +01:00
Marius Gerbershagen
f0d3dc4b6d
Merge branch 'method-combinations' into 'develop'
...
various cleanups
See merge request embeddable-common-lisp/ecl!284
2023-01-30 17:15:09 +00:00
Daniel Kochmański
7db7e0545f
clos: defcombin: fix regressions
2023-01-28 22:15:54 +01:00
Daniel Kochmański
2ba8228366
clos: move define-method-combination to a separate file
2023-01-22 20:36:09 +01:00
Daniel Kochmański
dea75e6bb5
clos: refactor define-complex-method-combination
...
Factor out a macro WITH-METHOD-GROUPS. The function PARSE-QUALIFIER-PATTERN is
put as a local function in this new macro.
2023-01-22 20:36:09 +01:00
Daniel Kochmański
78abe40fb9
clos: handle correctly the pattern * in define-method-combination
...
The pattern in the long form of the define-method-combination may contain * as
a list element meaning "any" qualifier. For example:
(define-method-combination foo ()
((bar (:xxx * :yyy)))
...)
In this case qualifiers `:xxx 3 :yyy' and `:xxx :zzz :yyy' will match.
2023-01-22 20:36:09 +01:00
Daniel Kochmański
3064bac62b
tests: add regression tests for define-method-combination
2023-01-22 20:36:07 +01:00
Daniel Kochmański
8ba1bb888a
si_process_lambda_list: process all variables in an uniform manner
...
The comment mentioned that aux variables (the sixth value) are returned the
same way as requireds, optionals and keywords however factually that was not
the case - the number of variables was not the first element of the list. This
commit updates the function and all its callers.
2023-01-22 20:12:58 +01:00
Daniel Kochmański
b62cf6b7ed
cmuutil: don't use setf to enable use in early macros
...
There was no real utility in using SETF there yet it made using collect macros
not possible in macros that are used to define ECL.
2023-01-22 20:12:58 +01:00
Daniel Kochmański
26c8e18750
cmputil: fix invalid iteration
...
Instead of using the iteration variable we've used the same list repeatedly.
2023-01-22 20:12:58 +01:00
Daniel Kochmański
36e5a02241
Merge branch 'define-method-combination-arguments' into 'develop'
...
Implement the :arguments option for define-method-combination
See merge request embeddable-common-lisp/ecl!279
2023-01-22 19:03:20 +00:00
Marius Gerbershagen
fb146cf806
Merge branch 'fix-parse-directive' into 'develop'
...
Fix format directive parser so that parameters are not allowed after colon or at sign
Closes #590
See merge request embeddable-common-lisp/ecl!282
2023-01-22 18:01:42 +00:00
Marius Gerbershagen
3a0d818c0e
printer: print zero after decimal point in exponential notation if there are no other trailing digits
...
Previously for example (prin1 1.0e-8) would result in 1.e-8. However,
the ANSI standard (see CLHS section 22.1.3.1.3) specifies that there
has to be at least one digit after the decimal point therefore we now
print 1.0e-8.
2023-01-21 17:43:48 +01:00
Marius Gerbershagen
84db9e7a3f
clos: implement the :arguments option for define-method-combination
2023-01-21 17:18:10 +01:00
Tarn W. Burton
a495b04301
Add regression test for LISTEN on files
2023-01-16 10:46:24 -05:00
Marius Gerbershagen
3d809dab47
autoconf: allow building with the bundled gmp library on arm apple devices
...
Since our ancient LGPL licensed copy of libgmp only knows about
PowerPC apple devices, build it using the fallback plain C
implementation as on x86.
Closes #689 .
2023-01-14 15:22:17 +01:00
Tarn W. Burton
eeb91e8005
Avoid parsing parameters after colon or at sign
2023-01-06 11:27:22 -05:00
Tarn W. Burton
ca6d6e10d5
Add tests for illegal format directive parameters
2023-01-06 11:21:55 -05:00