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`.
New inline stable sort for vectors
This PR should improve on the current stable sorting of vectors, fixing issues such as #217 (bug) and #101 (performance).
Full disclosure: The merge sort algorithm was completely stolen from sbcl.
I'm sure the new version can be optimized, for example by inlining `stable-sort-merge-vectors`, and by treating simple-arrays differently.
But for now, it already has slightly better performance on the sequences that I tested with, for example running:
```common-lisp
(time (dotimes (x 50000)
(defparameter *my-arr*
(make-array 9 :initial-contents
(list
(cons 3 'a)
(cons 2 'b)
(cons 2 'c)
(cons 2 'd)
(cons 3 'e)
(cons 2 'f)
(cons 2 'g)
(cons 2 'h)
(cons 1 'i))))
(stable-sort *my-arr* #'< :key #'car)))
```
gave me 0.34 sec in the old version, and 0.28sec in the new one (even with the overhead of the make-array call, which is the same for both). But most importantly, the new version leaves the array sorted, which fixes bug #217:
```common-lisp
> *my-arr*
#A(T (9) ((1 . I) (2 . B) (2 . C) (2 . D) (2 . F) (2 . G) (2 . H) (3 . A) (3 . E)))
```
while in the old-version:
```common-lisp
> *my-arr*
#A(T (9) ((3 . A) (2 . B) (2 . C) (2 . D) (3 . E) (2 . F) (2 . G) (2 . H) (1 . I)))
```
The example in #217 also works now, of course:
```common-lisp
> (let ((a (copy-seq "BCA")))
(stable-sort a #'char<)
a)
"ABC"
```
See merge request !28
Fix profiler module
This handles Issue #163.
Removes the problematic list case, and ignores any argument that is not a symbol or string.
Example of new behaviour:
```common-lisp
> (profile:profile 'defined-function)
;;; Warning: ignoring invalid argument to PROFILE: 'DEFINED-FUNCTION
> (profile:profile undefined-function 'defined-function defined-function)
;;; Warning: ignoring undefined function UNDEFINED-FUNCTION
;;; Warning: ignoring invalid argument: 'DEFINED-FUNCTION
> (profile:profile) ; list profiled functions
(DEFINED-FUNCTION)
```
See merge request !26
fix minor typo in pprint error message
Minor fix to an error message I got when trying to change a read-only pprint dispatch table.
See merge request !25
Improve man and help.
Sorry that it took so long.
I reorganized man page, so that now it tells truth about current flags. Also updated information about the authors.
Same for help prompt(--help).
Also, added some of these changes to changelog. I(my emacs)'ve been willing enough that I(my emacs) removed trailing whitespace. If you find that inappropriate, please let me know.
There is one thing that should be somehow fixed - we should have release.sh script(or something like that), that'd prepare a new build of ECL for release,
and change the date that's shown in man(or do we have that already?) - I've currently set it to 10.05.16 (dd/mm/yy).
See merge request !22