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>
When stack overflow condition is risen, to throw cerror stack limit
has to be raised by pre-allocated margin. This function resets stack
limit to original value. The only argument is stack designator.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
It is different from stack size, because limit is space available to
user, while stack size is larger by safe_area necessary to act on
stack overflow conditions.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Some functions were setting size of stack to provided value, while
other added (* 2 margin) to it, what wasn't consistant. Now each
function treats provided size as a limit and adds margin to it.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Use wget to download tests (ecl-curl failed on https), use ecl
binaries and libs from installation directory and fix tests target
order.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Documentation explicitly mentions this nickname, and it's common for
many implementations. Closes#72.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
This is required because format is working on string with fill pointer
making it an array - not simple-array what is expected.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
`multiple-value-prog1` was called outside `let` bindings, thereof it
lead to returning unbound access-forms.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
If printed float is effectively zero, then if not explicitly specified
by `fdigits` it should be printed as 0.0 (or .0 if width is too small).
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Bugfix: decrement number of digitse provided to `flonum-to-string` if
sign is also to be printed.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
This "special case" isn't general enough to cover situations, when
width is too small. If we print ie "3.1421", then at least three
characters are required, but printing "0.1231" requires only two of
them. Also 0 is a valid argument forcing using minimal set of
characters to print number reliably (with smallest accuracy possible).
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Trailing zero is obligatory unless d is explicitly set to 0. Consider
following example:
(format nil "~0f" 3.0) ; 3.0
If trailing zero is optional, then 3. would be printed and this would
be an integer (not float). If d is explicitly set to 0 we assume, that
programmer knows what he's doing and tries to convert float to
integer.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
When user supplies "0.0" to format and fdigits parameter is nil, then
".0" should be printed (at least). If fdigits is set to zero, then
correct result is "0.". For values 1 and more appropriate number of
zeros after period is printed.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
When printing 0.0 and fdigits parameter set to 0 or nil, single "."
was printed, what is not valid float number. Now it at least prints
".0".
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Simplifies code. Also creates additional clause (commented now) to
handle special case, when width is too small to display number.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
When width is supplied to format, CLHS 22.3.3.1 Says "Exactly w
characters will be output." This patch fixes this non-conformity to
count separator (".") as well.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
`floatnum-to-string` requires it's first argument to be non-negative
number. To assure that, it was setting it to it's abs, with FIXME
hint, that only one function seems to be able to pass negative number
there. This commit assures, that mentioned function passes
non-negative argument.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Specification says, that scale parameter defaults to 0 (same applis to
fmin in regard of implementation). Both parameters were sanity checked
all over the function flotnum-to-string. This change simplifies the
code in regard of removing this sanity-checks due to sane default.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Fixes erroneous assumption, that for sequence dimension-spec mustn't
be an atom. '(array t 1) designates simple-vector of any type and
unknown length. Fixes issue #6.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>