In both bytecmp and c compiler we use si:function-boundary and
si:unwind-protect-boundary where appropriate. Previously bytecmp used an ad-hoc
special variable for function-boundary and didn't mark unwind-protect at all.
Remove recently-introduced ECI package (maybe we will reintroduce it later when
we'll have a common frontend for compilers).
Print method qualifiers.
For specializers, print class names, not class objects, and print eql specializers.
(defmethod m :around (a b (c (eql "10"))))
was
#<standard-method M (#<BUILT-IN-CLASS T> #<BUILT-IN-CLASS T>
#<CLOS:EQL-SPECIALIZER>)>
becomes
#<standard-method M :AROUND (T T (EQL "10"))>
Functions to print (nan,float)-to-string and and predicates are still
available, but ext:*-float-*-infinity aren't available if ECL is built
with option `--with-ieee-fp=no`.
Some libraries somewhat abuse the CLOSE method specializing it on their
own stuff which isn't a stream. Calling the NEXT-METHOD triggers the
condition. For pragmatic reasons we'll honor this and will specialize
only on the streams.
"style" temporary branch
The ECL code no longer uses tabulator characters, they were replaced
by spaces.
A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
See merge request !8
CLOS printer uses normal strings while float_to_string.d calls
push_base_string to cache printable form of infinity (and nan). Coerce
clos strings to base-string. Fixes#153. Related to #114.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Some libraries want methods to specialize on double-float and ECL
fails on such attempts. Fixes#96.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Previous commit overgeneralized. Handle just one particular corner
situation, when print-object leaks from standard-object to builtin
class T.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Corner case. When user despite spec defines method `print-object'
specialized on standard-object and calls call-next-method,
`print-object' specialized on T called `write', which triggers
original `print-object' specialized on `standard-object'.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Add `serror' and `stack-error-handler', which behave like normal
`cerror' -> `universal-error-handler' call order, except fact, that
after handling stack-overflow condition they reset appropriate stack
limit. Fixes#56.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Its lambda-list should be (generic-function &rest function-arguments), not
(generic-function function-arguments).
Its value should be returned at the call site of the generic function.
Fixes#278.