[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:7362] Re: 整数のビット数



From: "Shun-ichi GOTO" <shunichi.goto@xxxxxxxxx> さん曰く
Subject: Re: [MD:7362] Re: 整数のビット数
Message-ID: <2288dbd90607132323n7a576b71oab143ab7e8ebbe2a@xxxxxxxxxxxxxx>
Date: Fri, 14 Jul 2006 15:23:08 +0900

> On 7/14/06, 白井秀行 Hideyuki SHIRAI <shirai@xxxxxxxxxxx> wrote:

> > lisp.h の VALBITS から追いかけてもどうやって決定しているのか全然
> > わからなかった。
> 
> ソースを見る限りは lisp.h の #define VALBITS と #define GCTYPEBITS
> が全てのように思う。

> で、 emacs-cvs での lisp.h 1r1. #define VALBITSの定義変更がどういうわけか
> meadowにsyncされていないのが直接の原因だと思うのだな。

うーむ、

> でも、それだと何で白井さんとこでcygwin buildしたものが29bitになるのか
> 説明はつかないのだけど。本当にcygwin meadow で、29bitなの?

手元にないから本当かどうかわからないけど、小関さんの実験結果を見
る限りは 29bit になっていると思う。理由はわかんない。

とりあえず、

> emacs:
> #define VALBITS (BITS_PER_EMACS_INT - GCTYPEBITS)
> => 32-3 == 29bits

#define ARRAY_MARK_FLAG ((EMACS_INT) ((EMACS_UINT) 1 << (VALBITS + GCTYPEBITS - 1)))

> meadow:
> #define VALBITS (BITS_PER_EMACS_INT - (GCTYPEBITS + 1))
> => 32-(3+1) == 28bits

#define ARRAY_MARK_FLAG ((EMACS_INT) ((EMACS_UINT) 1 << (VALBITS + GCTYPEBITS - 2)))

を変えて、make してみた。

#xfffffff
=> 268435455
#x10000000
=> -268435456

ってなって、いまのところちゃんと動いているけど、

> で、本家の無いように追従するのがよいのだろうけど、これを残した理由が
> portable dumper で必要だったとか、あるいはその頃取り入れこぼしたとか、
> なんであるのかはまだ追求してません。

がわからないとだめですな。

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)