- The scheme.h definition of Sfixnum(x) now uses multiply rather than
left shift to avoid counting on the behavior of << on negative numbers, which is undefined in C. mkheader.ss - Fixed a couple of casts, one harmless and the other causing Sinteger64_value to return 0 for the most-negative I64 on 32-bit builds. number.c - The configure-generated Makefile distclean target no longer removes zlib and nanopass, since they are logically part of the git clone. It does run make distclean in zlib. makefiles/Makefile.in original commit: 42e6fed96d69fa17cfcd9cdcec101aaa36ba4512
This commit is contained in:
parent
f7366215d8
commit
6765641be0
12
LOG
12
LOG
|
@ -24,3 +24,15 @@
|
|||
so they show up in the Windows workarea c directory.
|
||||
cmacros.ss,
|
||||
fasl.c, number.c, c/Mf-base, c/Makefile.{t,}{i3,a6}nt
|
||||
- The scheme.h definition of Sfixnum(x) now uses multiply rather than
|
||||
left shift to avoid counting on the behavior of << on negative numbers,
|
||||
which is undefined in C.
|
||||
mkheader.ss
|
||||
- Fixed a couple of casts, one harmless and the other causing
|
||||
Sinteger64_value to return 0 for the most-negative I64 on 32-bit
|
||||
builds.
|
||||
number.c
|
||||
- The configure-generated Makefile distclean target no longer removes
|
||||
zlib and nanopass, since they are logically part of the git clone.
|
||||
It does run make distclean in zlib.
|
||||
makefiles/Makefile.in
|
||||
|
|
|
@ -289,7 +289,7 @@ I32 S_int32_value(who, x) char *who; ptr x; {
|
|||
if (!BIGSIGN(x)) return (I32)u;
|
||||
if (u < ((U32)1 << 31)) return -(I32)u;
|
||||
if (u > ((U32)1 << 31)) S_error1(who, "~s is out of range", x);
|
||||
return (iptr)0x80000000;
|
||||
return (I32)0x80000000;
|
||||
}
|
||||
#endif /* (fixnum_bits > 32) */
|
||||
|
||||
|
@ -320,7 +320,7 @@ I64 S_int64_value(who, x) char *who; ptr x; {
|
|||
if (!BIGSIGN(x)) return (I64)u;
|
||||
if (u < ((U64)1 << 63)) return -(I64)u;
|
||||
if (u > ((U64)1 << 63)) S_error1(who, "~s is out of range", x);
|
||||
return (iptr)0x8000000000000000;
|
||||
return (I64)0x8000000000000000;
|
||||
}
|
||||
|
||||
S_error1(who, "~s is not an integer", x);
|
||||
|
|
|
@ -32,7 +32,6 @@ clean:
|
|||
|
||||
distclean:
|
||||
rm -rf $(workarea)
|
||||
rm -rf nanopass
|
||||
rm -rf zlib
|
||||
(cd zlib ; make distclean)
|
||||
rm -f Makefile
|
||||
rm -f Make.out
|
||||
|
|
|
@ -310,7 +310,7 @@
|
|||
(export "void" "Svector_set" "(ptr, iptr, ptr)")
|
||||
|
||||
(nl) (comment "Constructors")
|
||||
(def "Sfixnum(x)" (format "((ptr)(uptr)((x)<<~d))" ($ fixnum-offset)))
|
||||
(def "Sfixnum(x)" (format "((ptr)(uptr)((x)*~d))" ($ fixnum-factor)))
|
||||
(def "Schar(x)"
|
||||
(format "((ptr)(uptr)((x)<<~d|0x~x))"
|
||||
($ char-data-offset)
|
||||
|
|
Loading…
Reference in New Issue
Block a user