Ludovic Courtès írta:
Thanks for all these bug fixes! Note that I'm waiting for a few more
days so that I (or someone else) can review all of them in a row. ;-)
I have these fixes, so don't hurry for me. ;-)
BTW, it would be helpful if you could provide a ChangeLog entry or a
short sentence explaining the fix you propose.
1. negative bounds of literal arrays:
* libguile/unif.c (read_decimal_integer): don't drop sign
(scm_i_read_array): check for negative length
2. generic * and 0:
* libguile/numbers.c (scm_product): don't short-circuit before correct
dispatching
However generic * is associative [1]. This should be changed or documented.
3. generic-capability?:
* oop/goops.scm: export generic-capability?
4. contents of empty shared array:
* libguile/unif.c (scm_make_shared_array): empty arrays are contiguous
5. bounds of 1-dimensional empty arrays:
* libguile/unif.c (scm_make_typed_array, scm_make_shared_array): don't
drop wrapper object on 1-dimensional empty array if lower bound != 0
+1. array->list has same bug as vector->list, see libguile/unif.c
ra2l() [2]
[1]
(use-modules (oop goops))
(define-class <c> ())
(define-method (* a b (c <c>)))
(* 2 3 (make <c>))
Backtrace:
In current input:
4: 0* [* 2 3 #<<c> ef85b0>]
<unnamed port>:4:1: In procedure * in expression (* 2 3 ...):
<unnamed port>:4:1: No applicable method for #<<generic> * (1)> in call
(* 6 #<<
c> ef85b0>)
ABORT: (goops-error)
[2]
(let ((b (make-shared-array #(1) (lambda xs '(0)) 2 2)))
(array->list b))
==> ((1))
_______________________________________________
Bug-guile mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-guile