+ allot refactoring:
-- inline float allocation needs a gc check
- docs: don't pass volatile aliens to callbacks
- windows rollover broken again
- intrinsic fixnum>float float>fixnum
- fdasfsdfsa :help -- weird
- %allot-bignum-signed-2 still has issues on ppc
- fix %allot-bignum-signed-1/2 on x86
-- see if 0 0 >= is optimized
+ ui:
}
printf("Loading %s...",filename);
+ fflush(stdout);
/* read it in native byte order */
fread(&h,sizeof(F_HEADER)/sizeof(CELL),sizeof(CELL),file);
if(h.version != IMAGE_VERSION)
fatal_error("Bad version number",h.version);
-
+
/* read data heap */
{
- CELL size = h.data_size / CELLS;
+ CELL size = h.data_size;
if(size + tenured.base >= tenured.limit)
fatal_error("Data heap too large",h.code_size);
- if(size != fread((void*)tenured.base,sizeof(CELL),size,file))
- fatal_error("Wrong data heap length",h.data_size);
+ fread((void*)tenured.base,size,1,file);
tenured.here = tenured.base + h.data_size;
data_relocation_base = h.data_relocation_base;
if(size + compiling.base > compiling.limit)
fatal_error("Code heap too large",h.code_size);
- if(h.version == IMAGE_VERSION
- && size != fread((void*)compiling.base,1,size,file))
- fatal_error("Wrong code heap length",h.code_size);
+ fread((void*)compiling.base,size,1,file);
code_relocation_base = h.code_relocation_base;