This is the mail archive of the
guile@sourceware.cygnus.com
mailing list for the Guile project.
Regarding recent void * change
- To: guile at sourceware dot cygnus dot com
- Subject: Regarding recent void * change
- From: Mikael Djurfeldt <mdj at mdj dot nada dot kth dot se>
- Date: Sat, 11 Mar 2000 15:53:09 +0100
- Cc: Bernard URBAN <Bernard dot Urban at meteo dot fr>
- Reply-to: Mikael Djurfeldt <djurfeldt at nada dot kth dot se>
Are you sure you know what you're doing?
Note that we'll now have lvalues which are void *. Is it always safe
to store an arbitrary integer in such a location?
I'm thinking of the following scenario:
Pairs, vectors, objects etc now consist of fields of the type void *.
When dealing with such values, the compiler should be able to make the
assumption that we're dealing with pointers, so it can use registers
in the CPU specialized for holding addresses.
I'm afraid that there might exist architectures where dealing with
values which are invalid as pointers will yield a bus error.
(On the other hand one could have VOIDP_TEST (which should have been
named SCM_VOIDP_TEST) undefined on such architectures...)
Also, the recent SCM_ASWORD change will screw up Guile on Cray, but
this might be simple to fix.
I think we generally should think more about how changes influence
Guile on other architectures than we have done recently.