guile-user
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]