[Gauche-devel-jp] Re: gosh の開発で行き詰まった

Back to archive index

Shiro Kawai shiro****@lava*****
2004年 7月 10日 (土) 08:26:53 JST


ひさびさにWindows立ち上げてWindows Updateをかけてました。
再起動してほっといて気づいたらLinuxが立ち上がってた…というのを
何度もやってしまう。

From: shelarcy <shela****@capel*****>
Subject: [Gauche-devel-jp] Re: gosh の開発で行き詰まった
Date: Sat, 10 Jul 2004 08:15:27 +0900

> もしや、と思ってスタブを外してみたらうまく動きました。
> 元の patch での GUI アプリケーション生成の際に障害が出ていたということな
> のかな?

ああ、そうかもしれません。有野さんはコンソールのreplは要らなくて
別の用途に使いたいってことだったと思います。

libgauche.dll自体はコンソール無しでも動いてほしいでしょうから、
標準出力、エラー出力関係はなんとかする必要がありそうですね。


> C:\develop\Gauche-0.8\boost>gosh
> *** ERROR: unbound variable: sys-access
> Stack Trace:
> _______________________________________
>    0  (sys-access dotfile F_OK)
>          At line 145 of "../lib/gauche/interactive.scm"
> WARNING: couldn't load gauche.interactive
> 
> 
> +(if "!defined(WIN32_NATIVE)"
>    (define-cproc sys-access (pathname::<string> amode::<int>)
>      "int r;
>      if (geteuid() != getuid() || getegid() != getgid()) {
>        Scm_Error(\"cannot use sys-access in suid/sgid program.\");
>      }
>      SCM_SYSCALL(r, access(Scm_GetStringConst(pathname), amode));
> -  SCM_RETURN((r == 0)? SCM_TRUE : SCM_FALSE);")
> +  SCM_RETURN((r == 0)? SCM_TRUE : SCM_FALSE);"))
> 
> これで逃げているのがよくないんですよね。……でも、geteuid、getuid、
> getegid、getgid あたりって存在しないし……

ここはsys-accessでファイルの存在チェックをやってるとこですね。
geteuid etc.の項はunixのsuid/sgidプログラムでセキュリティホールを
作らないようにするためのものなので、Windowsではチェック部分を
飛ばしていいと思います。access(2)が無ければ、同等のWindows APIに
置き換えちゃって下さい。

> そのあたりはちゃんとしたものが出来上がったら shiro さんにやってもらいた
> いと思います。autotools 使えないので……。

ふーむ。私がやるとすると、cygwin+mingwでconfigureを走らせる、
という方向に行きそうな気がします。それで動いてしまうなら敢えて
boostを触る必要もなさそうな。

> 見たところ存在するのは
[...]
> のようですが、これでどうにかなるのかな?
> signal 関係良く分からない……。

シグナルをブロックするコールってのがどっかにあると思うんですが…
(でないと使い物にならない)。

> > - bignum.c冒頭のallocaまわりのパッチがよく分からないんですが、今のだと
> >   ちょっとまずくないかしら。
> 
> そのあたりは、元の patch がそうなってたからそうしたという形なので、直す
> 必要があれば直します。

ここは後でなんとかなるので後回しでいいでしょう。

--shiro



Gauche-devel-jp メーリングリストの案内
Back to archive index