[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:7362] Re: 整数のビット数
- X-ml-count: 7367
- Subject: Re: [MD:7362] Re: 整数のビット数
- From: Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxx>
- Date: Fri, 14 Jul 2006 15:46:49 +0900 (JST)
- X-mailer: Mew version 4.2.53 on Emacs 22.0.50 / Mule 5.0 (SAKAKI)
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)