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>
Removes coercion to base-string and improves some use cases. Due to
recent change in double-quote reader (conformity fix), now type of
each read string is (simple-array character (*)), so when pathnames
were created, it were copying it to (simple-array base-char (*)), lead
to buggy results. Consider:
(let ((path
(let ((x "foo"))
(make-pathname :name x :type x))))
(eql (pathname-name path)
(pathname-type path))) ; => T
Before change, this construct was returning NIL, what in case of
serialization might be a problem, and wasn't `the right thing`® to do.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
Additional sanity checks and bugfixes in case of providing extended
strings to character low-level functions.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
If directory is of type (simple-array character(*)), then coerce it to
(simple-array base-char (*)) instead of throwing an error.
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
- libatomic_ops is updated accordingly,
- new directory for garbage collector is bdwgc,
- updated MSVC Makefiles,
- obsolete directories gc and gc-unstable are removed.
Additional macros has been proposed:
- with-setf-expansions maps setf expansions of places on provided list
into lists of pairs (bindings), stores, store-forms and
access-forms.
- with-expansion-setter creates lexically scoped function, which binds
forms to stores using multiple-value-binds, and at the end places
code provided at start macro-call.
Due to mistake, ext::make-encoding was pointing to si_make_encoding,
but si_make_encoding was calling ext::make-encoding, what caused
infinite recursion when building for windows, when codepage was
different then Latin-1.
cmptype-arith.lsp: problem introduced in commit
c0b23555c6 which added empty &optional
clause and &allow-other-keys capability to typespec for values.
Problem was, that multiple &optional keywords in typespec it
considered error, while
'(VALUES &OPTIONAL T &OPTIONAL T)
should return as optional part, list (T &optional T) - even if it
looks weird.