Opened 15 years ago
Closed 15 years ago
#540 closed defect (wontfix)
evicting srfi-4 vectors breaks ffi compatibility
| Reported by: | Moritz Heidkamp | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | core libraries | Version: | 4.6.x |
| Keywords: | Cc: | ||
| Estimated difficulty: |
Description
The program
((foreign-lambda foo f32vector) (object-evict (f32vector 1 2 3)))
fails with the error
Error: bad argument type - not a structure of the required type
f32vector
#<f32vector>
It seems like evicting srfi-4 vectors makes them incompatible with the FFI.
Change History (2)
comment:1 Changed 15 years ago by
| Milestone: | 4.7.0 |
|---|
comment:2 Changed 15 years ago by
| Resolution: | → wontfix |
|---|---|
| Status: | new → closed |
Note: See
TracTickets for help on using
tickets.

The problem is that the serialization also copies the tag of the structure that holds the vector (a srfi-4 vector is a struct with a symbol tag and a blob). The type-check compares the structure tag using the equivalent of
eq?which fails, since the evicted symbol tag is not identical to the symbol that's used for comparison.I can't think of a suitable solution to this right now.