=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/changelog-ja.tex,v retrieving revision 1.16 retrieving revision 1.36 diff -u -p -r1.16 -r1.36 --- OpenXM/src/kan96xx/Doc/changelog-ja.tex 2005/07/18 10:55:15 1.16 +++ OpenXM/src/kan96xx/Doc/changelog-ja.tex 2018/05/02 02:28:13 1.36 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/changelog-ja.tex,v 1.15 2005/07/07 06:07:46 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/changelog-ja.tex,v 1.35 2015/10/12 11:29:48 takayama Exp $ \documentclass{jarticle} \title{ChangeLog \\ ---kan96xx, kxx, k097} \author{Nobuki Takayama} @@ -129,6 +129,7 @@ \section{2004-09-05, グレブナfanの計算} \begin{enumerate} \item polymake が必要. 9/1, 9/2, 9/3, 9/4 のノートも参照. +@s/2004/08/21-note.pdf に変数等の説明あり. \item OpenXM の cvs への commit は大きい区切りで. 細かい変更は {\tt eventail/cone.sm1} で. \item {\tt OpenXM/src/kan96xx/Doc/gfan.sm1} 1.1 @@ -450,5 +451,463 @@ XML 形式で送る. \item \verb@ [(traceShowScannerBuf)] extension :: @ \item Todo: {\tt executeToken} の中までみないと, すでに定義された関数のどの位置でエラーを起こしたのかがわからない. \end{enumerate} + +\section{2006-01-26, -engineLogToStdout} +\begin{enumerate} +\item engine を xterm 内部で動かさないで呼び出したプログラム +の標準出力へつないだまま動かす. +\begin{verbatim} + (ox.sm1) run + /Xm_engineLogToStdout 1 def + asirconnectr + ((x-2)^2). fctr :: +\end{verbatim} +\item cfep への対応. +\begin{verbatim} + ox_texmacs --view cfep --engineLogToStdout + ox_texmacs --view debug --engineLogToStdout +\end{verbatim} +\end{enumerate} + +ソースの変更. +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Doc/ox.sm1} 1.46 +\item {\tt OpenXM/src/kxx/ox\_texmacs.c} 1.26 +\item {\tt OpenXM/src/kxx/ox100start.c} 1.7 +\item {\tt OpenXM/src/util/ox\_pathfinder.c, h} 1.30 +\end{enumerate} + +\section{2006-01-30, class の body を得る.} +\begin{verbatim} +[1,2,3] (error) dc /ff set %%CLASSNAME_ERROR_PACKET を生成. bodyは[1,2,3] +ff (body) dc %% [classのタグ番号, class の body object] を戻す. +--> [1,2,3] +\end{verbatim} +関連. {\tt KnewErrorPacketObj()} + +ソースの変更. +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Kan/kclass.c} 1.6 +\end{enumerate} + +\section{2006-02-01, 新しい error packet} +\begin{verbatim} +(ox.sm1) run +sm1connectr +oxsm1.ccc (1 shell) oxsubmit +oxsm1.ccc oxpopcmo :: +\end{verbatim} +\verb@ errorPacket (body) dc 3 get @ が +リスト(キーワード,値)となる. 場所(where)や理由(reason), +処理系によっては, line や parse error の場所. +関連事項: misc-2005/A1/cfep. +{\tt oxclearstack}. + +ox\_texmacs で tunnel channel 0 へ cfep 用のエラー命令を送る. +({\tt outputStringToTunnel()}) +\begin{verbatim} +ox_texmacs --view debug +!sm1;^E +1 shell ^E +\end{verbatim} + + +ソースの変更. +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Kan/stackmachine.c} 1.34 +\item {\tt OpenXM/src/kan96xx/Doc/ox.sm1} 1.48 +\item {\tt OpenXM/src/kxx/sm1stackmachine.c} 1.6 +\item {\tt OpenXM/src/kxx/ox\_texmacs.c} 1.27 +\item {\tt OpenXM/doc/OpenXM-specs/OX-RFC-103.oxw} 1.6 +\end{enumerate} + +\section{2006-02-04, メッセージの localization (ox用)} +オリジナル {\tt misc-2005/A1/cfep/packages/misc}. +\begin{verbatim} +/localizedString.file (Resource/sm1-ja_JP.eucJP.sm1) def +localizedString.load %% 辞書をロードする. +[(parse) (ox.sm1) pushfile] extension +sm1connectr +oxsm1.ccc ( hoge ) oxsubmit +oxsm1.ccc oxpopcmo /e1 set +e1 translateErrorForCfep message %% エラー obj の翻訳 +\end{verbatim} +エラー object の構造. +[serial, 共通エラー番号, message, core] +空欄のときは, $-1$ か null object. + +ソースの変更. +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Kan/dr.sm1} 1.53, localizedString を追加. +\item {\tt OpenXM/src/kan96xx/Doc/ox.sm1} 1.52, translateErrorForCfep を修正 +\item {\tt OpenXM/src/kan96xx/Doc/Resource} 翻訳のためのリソース. +\item {\tt OpenXM/src/kxx/Makefile.in} 1.36, Resource をコピー. +\end{enumerate} + +\section{2006-02-04, {\tt -authEncoding file} の実装} + +OX-RFC-104 の {\tt -authEncoding file} を実装. +\begin{verbatim} +~/.openxm/tmp.opt/c.txt --> 1435 (Do not put the newline character.) +~/.openxm/tmp.opt/d.txt --> 1234 +chmod 700 ~/.openxm/tmp.opt +ox -ox ox_sm1 -authEncoding file -passControl c.txt -passData d.txt +[(oxCreateClient) (localhost) 1300 1200 [(1435) (1234)]] extension ; + data ctrl ctrl data +\end{verbatim} + +cfep で MyOpenGLView の event 入力用の delegate ox server ``ox\_nextevent'' +は ox\_asir のサーバである. +``ox\_nextevent'' は +MyOpenGLView から NSPipe, NSTask を用いて MyOpenGLView の出力を +stdin で受信できる状態でないといけない. +MyOpenGLView は {\tt ox} を用いて{\tt ox\_asir} よりの順方向接続をまつ予定. +\begin{enumerate} +\item {\tt OpenXM/src/kxx/oxmain.c} 1.22 +\end{enumerate} + +\section{2006-12-21, UseDsmall option} + +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Kan/output.c} +\item {\tt OpenXM/src/kan96xx/Kan/global.c} +\item {\tt OpenXM/src/kan96xx/Kan/kanExport0.c} +\item {\tt OpenXM/src/kan96xx/Kan/option.c} +\item {\tt OpenXM/src/kan96xx/Kan/usage.c} +\end{enumerate} + +{\tt makeDsmall()}. + +\verb@ [(UseDsmall) 1] system_variable @ で +出力の時だけ D が小文字になる. +asir \verb@ print_tex_form @ を呼び出すため導入. + +\section{2007-6-3, mgkz} +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Doc/gkz.sm1} 1.2 +\item {\tt OpenXM/src/kan96xx/Doc/printhelp.sm1} 1.9 +\end{enumerate} + +mgkz (メモ的な数学ノートは misc-2006/04) コマンドを追加. +Modified A-hypergeometric system を生成. +printhelp.sm1 に キーワード mgkz を追加. + +プログラム作成方法のメモ. +まず, gkz を mgkz としてコピー. +\verb@ ( ) error @ をプログラムの各部分に入れながら, +[ ] mgkz を実行して, debug. +すると変数の値を観察できて簡単. + +\section{2009-8-26, gfan} +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Doc/gfan.sm1} 1.13 +\end{enumerate} + +Grobner cone で 線型空間を除いたものの +次元が $1$ or $0$ の時は正しく動作しない. +この時に エラーメッセージを出す. +(cf. taka: i-hg/crest09/Prog/fan1.sm1, fan2.sm1) + +\section{2009-9-4, gfan} +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Doc/gfan.sm1} 1.17 +\item {\tt OpenXM/src/kan96xx/trans/yy\_polymake.y} 1.5 +\item {\tt OpenXM/src/kan96xx/trans/yylex\_polymake.c} 1.5 +\item {\tt OpenXM/src/kan96xx/trans/data} +\end{enumerate} + +gfan.sm1 package は polymake 2.0 の出力に対しては正しく動作する. +しかし 2.2, 2.3 に対して動作しない. +{\tt trans/data/data1b.txt} は 2.0 の出力, +{\tt trans/data/data1.txt} は 2.3 の出力, +入力 property は INEQUALITIES で FACETS を 出力 property としている. + +{\tt trans/data/data2.txt} は簡単な例. + +2.3 では VERTICES が UNDEF となる. これを正しく parse するように polymake2tfb を +変更した. +\begin{verbatim} + ./polymake2tfb +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. Type "show copying" +and "show warranty" for details. +This GDB was configured as "x86_64-pc-msys". +Type "show configuration" for configuration details. +For bug reporting instructions, please see: +. +Find the GDB manual and other documentation resources online at: +. +For help, type "help". +Type "apropos word" to search for commands related to "word"... +Reading symbols from ./ox_sm1d...done. +(gdb) break main +Breakpoint 1 at 0x10049b7b8: file oxserver00-d.c, line 37. +(gdb) run +Starting program: /home/Nobuki/OX4/OpenXM/src/kxx/ox_sm1d +[New Thread 11260.0x17c8] +[New Thread 11260.0x2e50] +[New Thread 11260.0x8ac] +[New Thread 11260.0x29d0] +[New Thread 11260.0x27b8] + +Breakpoint 1, main (argc=1, argv=0x24cb10) at oxserver00-d.c:37 +37 main(int argc, char *argv[]) { +(gdb) call dup2(open("tmp-o.txt",0),0) +// run macro package : dr.sm1, 9/26,1995 --- Version 09/22, 2013. +sm1>macro package : module1.sm1, 1994 -- Nov 8, 1998 +sm1 version : 3.050615 +sm1 url : http://www.math.kobe-u.ac.jp/KAN +name = ox_sm1 +sm1>--------------------------------------------------- +engineByteOrder=0 +Hello world. +Set EnvOfChildServer. +Set EnvOfStackMachine. + +mtag is 514 (serial=11) : OX_DATA +(CMO_STRING[4],[size=17],$ (1).. (0).. div $), +mtag is 513 (serial=12) : OX_COMMAND + +function_id is 268; SM_executeStringByLocalParser +KSexecuteString( (1).. (0).. div ) + +ERROR(kanExport[0|1].c): KisInvalidRational(): zero division. You have f/0. +Trace: div<-; + +Breakpoint 2, Sm1_popErrorMessage (s=0x10049d084 "executeString: ") + at sm1stackmachine.c:205 +205 char *Sm1_popErrorMessage(char *s) { +(gdb) print s +$2 = 0x10049d084 "executeString: " +(gdb) print ErrorMessageMode +$3 = 2 +(gdb) break popErrorStackByString +Breakpoint 3 at 0x1004033f0: file stackmachine.c, line 1445. +(gdb) continue +Continuing. + +Breakpoint 3, popErrorStackByString () at stackmachine.c:1445 +1445 char *popErrorStackByString(void) { +(gdb) list +1440 }else{ +1441 return( (ErrorStack.ostack)[--(ErrorStack.sp)]); +1442 } +1443 } +1444 +1445 char *popErrorStackByString(void) { +1446 struct object obj = OINIT; +1447 struct object eobj = OINIT; +1448 eobj = popErrorStack(); +1449 if (ectag(eobj) != CLASSNAME_ERROR_PACKET) { +(gdb) break sGC_malloc +Breakpoint 4 at 0x1004035a0: file stackmachine.c, line 1510. +(gdb) continue +Continuing. + +Breakpoint 4, sGC_malloc (n=93) at stackmachine.c:1510 +1510 void *sGC_malloc(size_t n) { /* synchronized function */ +(gdb) up +#1 0x000000010040276b in Sm1_popErrorMessage (s=0x10049d084 "executeString: ") + at sm1stackmachine.c:221 +221 a = (char *) sGC_malloc(sizeof(char)*(strlen(s)+strlen(e)+2)); +(gdb) print s +$4 = 0x10049d084 "executeString: " +(gdb) print e +$5 = 0x6008d4d70 "\nERROR(kanExport[0|1].c): KisInvalidRational(): zero division. You have f/0." +// 正常 +(gdb) continue +Continuing. + 14 [main] ox_sm1d 11260 cygwin_exception::open_stackdumpfile: Dumping stack trace to ox_sm1d.exe.stackdump +[Thread 11260.0x2e50 exited with code 35584] +[Thread 11260.0x8ac exited with code 35584] +[Thread 11260.0x29d0 exited with code 35584] +[Thread 11260.0x2f84 exited with code 35584] +[Thread 11260.0x2a28 exited with code 35584] +[Inferior 1 (process 11260) exited with code 0105400] +(gdb) quit + +GC_malloc や strcpy 等が怪しいとにらむ. + + + char * 系 void * 系の宣言なしが segfault の原因? + strcpy が変. + + kxx/serversm.h に +#include +void *sGC_malloc(int n); +を加える. + ./ox_sm1d