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

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



From: M.Fujii <boochang@xxxxxxxxxxxx> さん曰く
Subject: Re: [MD:7362] Re: 整数のビット数
Message-ID: <20060714.185952.01366683.boochang@xxxxxxxxxxxx>
Date: Fri, 14 Jul 2006 18:59:52 +0900 (JST)

> > ということは、cygwin で実績があるから portable dumper とかは大丈
> > 夫ということですな。じゃ、今のうちに
> 
> Cygwin 版と MSVC 版では Lisp_Object の内部構造が全く異なるので、Cygwin
> 版での動作実績は全く参考にならないと考えてください。

はい、わかりました。(というか知りませんでした ^^;)

> また、Cygwin 版で整数のビット幅を 29bit にするためには portable dumper
> 周りもかなり手を入れています。(整数のビット幅を 29bit にするためにやっ
> た訳ではありませんが...)
> 
> 済みませんが、以下の変更は MSVC の時だけ有効になるようにしていただけな
> いでしょうか?お願いします。

#ifndef VALBITS
#if defined (MEADOW) || defined (_MSC_VER)
#define VALBITS (BITS_PER_EMACS_INT - GCTYPEBITS)
#else
#define VALBITS (BITS_PER_EMACS_INT - (GCTYPEBITS + 1))
#endif
#endif /* no VALBITS */

#ifndef ARRAY_MARK_FLAG
#if defined (MEADOW) || defined (_MSC_VER)
#define ARRAY_MARK_FLAG ((EMACS_INT) ((EMACS_UINT) 1 << (VALBITS + GCTYPEBITS - 1)))
#else
#define ARRAY_MARK_FLAG ((EMACS_INT) ((EMACS_UINT) 1 << (VALBITS + GCTYPEBITS - 2)))
#endif
#endif /* no ARRAY_MARK_FLAG */

な風にしておきます。

;; VC++ の判定方法が正しくなかったら指摘してね。

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