[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guile 1.5.8 beta available for testing.
From: |
Lars J. Aas |
Subject: |
Re: Guile 1.5.8 beta available for testing. |
Date: |
Thu, 29 Aug 2002 09:59:23 +0200 |
User-agent: |
Mutt/1.3.24i |
Marius Vollmer <address@hidden> wrote:
: "Lars J. Aas" <address@hidden> writes:
: > I'd appreciate it if the SCM_POSFIXABLE() bug, steming from the
: > fallback SCM_LONG_BIT define in __scm.h, was fixed before 1.6 was
: > released.
:
: I'm not yet satisfied with the analysis. As far as I can see, the
: problem lies not with SCM_LONG_BIT being unsigned incorrectly, but
: with SCM_MOST_POSITIVE_FIXNUM being unsigned incorrectly.
:
: We compute SCM_MOST_POSITIVE_FIXNUM like this
:
: ((((scm_t_signed_bits) 1) << (SCM_I_FIXNUM_BIT - 1)) - 1)
:
: where SCM_I_FIXNUM_BIT is unsigned when SCM_LONG_BIT is. However, the
: type of the result of a bit-shift operator is that of the promoted
: left operand (6.5.7;3 in the ANSI C standard). So
: SCM_MOST_POSITIVE_FIXNUM is signed since scm_t_signed_bits is.
:
: Your compiler seems to get this wrong, right?
:
: A fix would be to move the scm_t_signed_bits cast one level up, and
: also in SCM_MOST_NEGATIVE_FIXNUM. We should do that and put a
: deriding comment about MS on the code. OK?
Sounds reasonable.
This works:
#define SCM_MOST_POSITIVE_FIXNUM \
(((scm_t_signed_bits) (1 << (SCM_I_FIXNUM_BIT - 1))) - 1)
compiler version info for comment:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
: Is that the only issue holding off a plain build of 1.5.8 with the
: Microsoft compiler?
Nope. The msvc compiler needs to follow the __MINGW32__ path most of
the time, so I had to update most of those #if conditionals. There
are some issues with opendir()/readdir()/closedir(), so I had to disable
those bindings. I also disabled all the compiled srfis (4, 13&14?).
: If there are others, we shouldn't bother to work
: around this particular bug in the release.
OK.
Lars J