[Go to BBS]
All articles in a thread
Subject加速管の集束効果
Article No673
Date: 2008/11/07(Fri) 22:57:47
ContributorKentaro Harada
  態度が悪くてグレートブリテン島に島流しになっています、放射光源の
原田です。ダラスベリー研究所の ERL 試験器(昔 ERLP 今 ALICE = accelerator
and laser in combined experiment)のラティスを計算する際、MAD と ELEGANT と
SAD で加減速が違うので苦労しました。結果を整理して Wiki に書いてみました。
(正しいかどうかは知りません。)
http://www-kekb.kek.jp/Documentation/SAD/index.php?%B6%F5%C6%B6%A4%CE%C3%BC%A4%CE%B8%FA%B2%CC
 
  どうぞよろしくお願い申し上げます。
 

Subjectcygwin
Article No674
Date: 2008/11/08(Sat) 01:09:14
ContributorKentaro Harada
  Windows 上の cygwin で TclTK ありで、インストール成功された方、
いらっしゃいましたらやり方をお教え下さいますよう、お願い致します。
生出さんの sad.conf
http://acc-physics.kek.jp/cgi-bin/SAD-BBS/wforum.cgi?no=629&reno=612&oya=612&mode=msgview&page=0
を使って、X11 は YES、TclTK は NO にするとうまくいきますが、TclTk を
YES にすると、パッチを当てようとした時に Windows ではファイル名に
: が使えないせいで、パッチが作れなくてエラーになってしまいます。
そもそも、Unix 上では files/tcl や files/tk 下に : の入ったファイルが
多数展開されますが、Windows の cygwin では展開されません。(ファイルが
作れませんので……)
  ……まあ、何か GUI で制御するわけではないので、GUI が使えなくとも
シミュレーションできれば関係ないんですが……

SubjectRe: cygwin
Article No675
Date: 2008/11/08(Sat) 16:49:05
ContributorAkio Morita
>   Windows 上の cygwin で TclTK ありで、インストール成功された方、
> いらっしゃいましたらやり方をお教え下さいますよう、お願い致します。
> 生出さんの sad.conf
> http://acc-physics.kek.jp/cgi-bin/SAD-BBS/wforum.cgi?no=629&reno=612&oya=612&mode=msgview&page=0
> を使って、X11 は YES、TclTK は NO にするとうまくいきますが、TclTk を
> YES にすると、パッチを当てようとした時に Windows ではファイル名に
> : が使えないせいで、パッチが作れなくてエラーになってしまいます。
> そもそも、Unix 上では files/tcl や files/tk 下に : の入ったファイルが
> 多数展開されますが、Windows の cygwin では展開されません。(ファイルが
> 作れませんので……)
>
生出さんの環境は、MacOSX上の仮想マシン上で動く cygwinで File Systemは
ホストOSであるMacOSX側からエクスポートされているので、'':''が複数バイトに写像されている
特殊な環境です。

Cygwin上で、'':''を含むファイル名を生成できないのは、Cygwinの実装上の制限だと思われます。

SubjectRe^2: cygwin
Article No676
Date: 2008/11/08(Sat) 21:07:02
ContributorAC
> >   Windows 上の cygwin で TclTK ありで、インストール成功された方、
> > いらっしゃいましたらやり方をお教え下さいますよう、お願い致します。
> > 生出さんの sad.conf
> > http://acc-physics.kek.jp/cgi-bin/SAD-BBS/wforum.cgi?no=629&reno=612&oya=612&mode=msgview&page=0
> > を使って、X11 は YES、TclTK は NO にするとうまくいきますが、TclTk を
> > YES にすると、パッチを当てようとした時に Windows ではファイル名に
> > : が使えないせいで、パッチが作れなくてエラーになってしまいます。
> > そもそも、Unix 上では files/tcl や files/tk 下に : の入ったファイルが
> > 多数展開されますが、Windows の cygwin では展開されません。(ファイルが
> > 作れませんので……)
> >
> 生出さんの環境は、MacOSX上の仮想マシン上で動く cygwinで File Systemは
> ホストOSであるMacOSX側からエクスポートされているので、'':''が複数バイトに写像されている
> 特殊な環境です。
>
> Cygwin上で、'':''を含むファイル名を生成できないのは、Cygwinの実装上の制限だと思われます。

oldsad-amorita-snapshot-2767ではX11はYES、TclTkはNOとすると、以下のようなエラーが出ます。


gcc-4 -o tfXlib_.o -c -g -O1 -Wall -std=c99 -pedantic-errors -mpreferred-stack-boundary=4 -std=gnu99 -I/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/src -I/usr/X11R6/include -I/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/arch/i386-CYGWIN_NT-5.01/include -I/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01 /home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/src/tfXlib_.c
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/src/tfXlib_.c: In function 'tfXListFonts':
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/src/tfXlib_.c:926: error: passing argument 4 of 'XListFonts' from incompatible pointer type
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/src/tfXlib_.c: In function 'tfXGetFontPath':
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/src/tfXlib_.c:964: error: passing argument 2 of 'XGetFontPath' from incompatible pointer type
make[2]: *** [tfXlib_.o] Error 1
make[2]: Leaving directory `/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767'
make: *** [all] Error 2

SubjectRe^2: cygwin
Article No677
Date: 2008/11/08(Sat) 21:30:54
ContributorAC
> >   Windows 上の cygwin で TclTK ありで、インストール成功された方、
> > いらっしゃいましたらやり方をお教え下さいますよう、お願い致します。
> > 生出さんの sad.conf
> > http://acc-physics.kek.jp/cgi-bin/SAD-BBS/wforum.cgi?no=629&reno=612&oya=612&mode=msgview&page=0
> > を使って、X11 は YES、TclTK は NO にするとうまくいきますが、TclTk を
> > YES にすると、パッチを当てようとした時に Windows ではファイル名に
> > : が使えないせいで、パッチが作れなくてエラーになってしまいます。
> > そもそも、Unix 上では files/tcl や files/tk 下に : の入ったファイルが
> > 多数展開されますが、Windows の cygwin では展開されません。(ファイルが
> > 作れませんので……)
> >
> 生出さんの環境は、MacOSX上の仮想マシン上で動く cygwinで File Systemは
> ホストOSであるMacOSX側からエクスポートされているので、'':''が複数バイトに写像されている
> 特殊な環境です。
>
> Cygwin上で、'':''を含むファイル名を生成できないのは、Cygwinの実装上の制限だと思われます。

oldsad-amorita-snapshot-2767にて、TclTk YESでは以下のところでコンパイルが失敗します。

gcc-4 -c -O -DSAD_FORCE_X11 -DHAVE_TM_ZONE -pipe -Wall -Wno-implicit-int -I"." -I/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../unix -I/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../generic -I/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../libtommath -DPACKAGE_NAME=\"tcl\" -DPACKAGE_TARNAME=\"tcl\" -DPACKAGE_VERSION=\"8.5\" -DPACKAGE_STRING=\"tcl\ 8.5\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DNO_VALUES_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -DTCL_CFGVAL_ENCODING=\"iso8859-1\" -DTCL_SHLIB_EXT=\"\" -DTCL_CFG_OPTIMIZED=1 -DTCL_CFG_DEBUG=1 -DTCL_TOMMATH=1 -DMP_PREC=4 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRTOL=1 -DHAVE_WAITPID=1 -DHAVE_GETADDRINFO=1 -DUSE_TERMIOS=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_TZNAME=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_MKTIME=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_ST_BLKSIZE=1 -DHAVE_INTPTR_T=1 -DHAVE_UINTPTR_T=1 -DNO_UNION_WAIT=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DHAVE_FTS=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_UNLOAD_DLLS=1 /home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../unix/tclUnixChan.c
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../unix/tclUnixChan.c: In function 'CreateSocketAddress':
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../unix/tclUnixChan.c:2497: error: 'EAI_SYSTEM' undeclared (first use in this function)
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../unix/tclUnixChan.c:2497: error: (Each undeclared identifier is reported only once
/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix/../unix/tclUnixChan.c:2497: error: for each function it appears in.)
make[3]: *** [tclUnixChan.o] Error 1
make[3]: Leaving directory `/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/unix'
make[2]: *** [/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01/tcl8.5.5/.build_done] Error 2
make[2]: Leaving directory `/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767/obj/i386-CYGWIN_NT-5.01'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/kekb/oldsad-amorita-snapshot-2767/oldsad-amorita-snapshot-2767'
make: *** [all] Error 2

SubjectRe: cygwin
Article No678
Date: 2008/11/11(Tue) 19:45:05
ContributorKentaro Harada
  僕は Main Trunk でやっています。
  X11=YES, TclTk=NO であれば、そのままコンパイルしてエラーは出ません。
 
(数ヶ月前の cygwin ではエラーになりました。数日前のダウンロードでは OK。
これらはすべて SAD 側の問題ではなく、森田さんがよく指摘するように、cygwin の
嫌な面が出ているのだろうと思います。誰でも何でも入れるので、コードが壊れたり、
仕様が勝手に変わったり、下手をすると シェルすら動かなくなることすらあった
くらいです。cygwin を使う以上、これらは諦めないといけないことだろうと思いますが、
いちいちそんな状況に対して Makefile やコードをアップデートするのも、精神力と
時間がもったいないのも確かです。)
 
  cygwin は便利ですが、困ったものですね。

SubjectRe^2: cygwin
Article No679
Date: 2008/11/11(Tue) 20:25:12
ContributorAkio Morita
>   僕は Main Trunk でやっています。
>   X11=YES, TclTk=NO であれば、そのままコンパイルしてエラーは出ません。
>  
> (数ヶ月前の cygwin ではエラーになりました。数日前のダウンロードでは OK。
> これらはすべて SAD 側の問題ではなく、森田さんがよく指摘するように、cygwin の
> 嫌な面が出ているのだろうと思います。誰でも何でも入れるので、コードが壊れたり、
> 仕様が勝手に変わったり、下手をすると シェルすら動かなくなることすらあった
> くらいです。cygwin を使う以上、これらは諦めないといけないことだろうと思いますが、
> いちいちそんな状況に対して Makefile やコードをアップデートするのも、精神力と
> 時間がもったいないのも確かです。)
>  
src/tfXlib_.cに関しては、XListFonts()の4th argumentと XGetFontPath()の 2nd argumentは
Xlib的には int*型ですが、tfXlib_.cでは integer4*型の引数を積んでいます
従って、int != int32_tな環境では型が一致しません
現時点の環境としては ILP64な環境が該当します
# unix系の64bit実装は、LP64モデルが多いので int == int32_tになっています

実用上、SAD自身が 64bitではまともに動かないので問題無いわけですが...


Tclがコンパイルできない件に関しては、POSIX/SUS的には cygwin側が全面的に悪だと思います
EAI_SYSTEMマクロは、netdb.hで定義されるべきマクロで、標準は以下を参照
http://www.opengroup.org/onlinepubs/009695399/basedefs/netdb.h.html

getaddrinfo()のエラーチェックで使われており、標準は以下を参照
http://www.opengroup.org/onlinepubs/009695399/functions/getaddrinfo.html

このgetaddrinfo()は、RFC 3493で定義されている address family independent APIで
cygwinの newlibでは未実装です。