=================================================================== RCS file: /home/cvs/OpenXM/src/kan96xx/Doc/changelog-ja.tex,v retrieving revision 1.10 retrieving revision 1.23 diff -u -p -r1.10 -r1.23 --- OpenXM/src/kan96xx/Doc/changelog-ja.tex 2004/11/23 12:14:48 1.10 +++ OpenXM/src/kan96xx/Doc/changelog-ja.tex 2006/12/21 05:29:49 1.23 @@ -1,4 +1,4 @@ -% $OpenXM: OpenXM/src/kan96xx/Doc/changelog-ja.tex,v 1.9 2004/09/19 00:47:47 takayama Exp $ +% $OpenXM: OpenXM/src/kan96xx/Doc/changelog-ja.tex,v 1.22 2006/02/04 10:44:22 takayama Exp $ \documentclass{jarticle} \title{ChangeLog \\ ---kan96xx, kxx, k097} \author{Nobuki Takayama} @@ -305,6 +305,283 @@ GET では受渡しできるデータの量に制限があるため {\tt misc-2004/11/cgi} も参照のこと. Risa/Asir の \verb@ set_secure_mode @ , \verb@ set_secure_flag @ にも対応中. + +\section{2004-12-16, gnuplot v4 への対応.} + +\begin{enumerate} +\item 1.3-1.4 OpenXM/src/kan96xx/Doc/gnuplot.sm1 +\item 1.11 OpenXM/src/kan96xx/plugin/file2.c +\item 1.6 OpenXM/src/kan96xx/plugin/file2.h +\item 1.6 OpenXM/src/kan96xx/plugin/file2.hh +\item 1.4 OpenXM/src/kan96xx/plugin/file2.sm1 +\item 1.15 OpenXM/src/asir-contrib/packages/src/gnuplot +\end{enumerate} + +gnuplot で mouse を利用できるようにしたい. +そのため, gnuplot を batch mode でなく, +interactive mode で利用できるようにした. +http://www.gnuplot.info にあった, サンプルプログラム +{\tt gpReadMouseTest.c} ({\tt misc-2004/12/misc}) +を参考に mkfifo, popen 等を用いて実装した. +mkfifo, popen 等のシステムコールは plugin-file2 へ加えた. + +sm1 でやるテストの手順は以下のとおり. +\begin{verbatim} + (gnuplot.sm1) run + plotstart.aux + (splot x**2-y**2;) gnuplot + plotstop.aux +\end{verbatim} + +Windows, Debian package の build のテストはまだ. +({\tt gnuplot4ox} は {\tt gnuplot} に. {\tt gnuplot\_x11} は {\tt libexec} +の下へ install されるため.) + +Bug: {\tt plot\_dots} で, 計算しながら表示するという方法がうまくいかない. +大きなデータを渡すとうまく動かない. cf. {\tt heat()}. + +\section{2005-01-23, EUC等 8-bit の名前を受け付ける. bug fix} +\begin{enumerate} +\item scanner2 の bug により, トップレベル以外では 8 bit の名前をうけつけ + なかった. +\item {\tt OpenXM/src/kan96xx/Kan/scanner2.c} 1.7 +\end{enumerate} + +\section{2005-02-28, ox, bug fix} + +\begin{enumerate} +\item Engine のみを quit すると control server が残るバグ. +解決: oxmain.c で SIGCHLD を受け取るようにした. +\item Engine を quit してしまったあと, Engine でデータをおくろうとすると, +SIGPIPE で クライアントが終了してしまうバグ. +\begin{verbatim} + (ox.sm1) run + sm1connectr + oxsm1.ccc (quit) oxsubmit + oxsm1.ccc oxpopcmo --> クライアント終了. +\end{verbatim} +まだ完全に解決してない. +ox texmacs が正しく動作するのか要テスト. +\end{enumerate} + +\section{2005-06-9, 16, attribute, options.} +\begin{enumerate} +\item 全ての object に attr (attribute field) をつけた. +効率に関する調査は {\tt misc-2005/06/gfan/test1.sm1} (taka). +時間的効率についてはあまり問題ない. +\item 構造体の {\tt attr} フィールドを初期化するため {\tt OINIT} マクロを +加えた. {\tt stackm.h} +初期化がないと segfault する場合も. +\item {\tt @s/2005/06/16-note.pdf} (taka) に開発メモあり. +\item {\tt attr} を {\tt groebner}, {\tt gb} 等で活用する. +\end{enumerate} + +ソースの変更は多岐にわたるので一部のみ記す. +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Kan/dr.sm1} 1.49, {\tt setAttribute} 等のマクロ. +\item {\tt OpenXM/src/kan96xx/kan/gb.c} 1.10,11, {\tt groebner} が attr で gb かどうかの情報を戻す. +\item {\tt OpenXM/src/kan96xx/Doc/hol.sm1} 1.23, gb, pgb, gb\_h が option を attr で受け取れるようにする変更. +\end{enumerate} + +例: +{\footnotesize +\begin{verbatim} + ob key getAttribute value + Example: [(x-1) (y-1)] (gb) 1 setAttribute /ff set + ff (gb) getAttribute :: + + ob getAttributeList attr-obj + Example: [(x-1) (y-1)] [(gb) 1] setAttributeList /ff set + ff getAttributeList :: + + sm1> [(x0,x1) ring_of_polynomials 0] define_ring + [(x0^2+x1^2-h^2). (x0 x1 -4 h^2).] /ff set ; + sm1>[ff [(gbCheck)]] groebner /gg set ; + 3.gbCheck failed. + Note that the result is NOT groebner basis. + + Completed. + sm1>gg getAttributeList :: + [ $gb$ , 0 ] + + + [ [( (x Dx)^2 + (y Dy)^2 + 1) ( x y Dx Dy -1)] (x,y) + [ [ (Dx) 1 ] ] ] [(gbCheck) 1] setAttributeList gb getAttributeList :: + + [ [[(h+x) (x^3 + 2 h^3 + 2 x h^2)] [(x) (x)]] (x)] + [(reduceOnly)] setAttributeList gb_h pmat + + +\end{verbatim} +} + +\section{2005-07-07, gfan.sm1} +\begin{enumerate} +\item Collar-Kalkbrener-Moll のアルゴリズムを実装した. +\item {\tt getNextCone}, {\tt ckmFlip} +\item {\tt cone.ckmFlip} が 1 の時 CKM アルゴリズムを用いる. +\item {\tt cone.DhH} が 1 の時 $\partial x = x \partial + hH$, +0 の時 $\partial x = x \partial + h^2$ を選択. +{\tt cone.gb}, {\tt cone.reduction}, {\tt cone.gb\_gr}. +\item 関連する sm1 本体の変更. +\item {\tt eventail/data/test35.sm1}, {\tt test36.sm1}. +\end{enumerate} + +\begin{enumerate} +\item {\tt OpenXM/src/kan96xx/Doc/gfan.sm1} 1.10, 1.11. +\end{enumerate} + +\section{2005-07-18, Error Message} +\begin{enumerate} +\item サーバはエラーの位置およびエラーの位置での読み込みデータを +XML 形式で送る. +\begin{verbatim} + (ox.sm1) run sm1connectr + oxsm1.ccc (1 shell) oxsubmit + oxsm1.ccc oxpopcmo :: +\end{verbatim} +\item {\tt scanner.c}, {\tt scanner2.c} で {\tt ScannerBuf} に + 読み込んだデータを書き込む. +\item {\tt stackmachineError()} で + 大域変数 {\tt MsgStackTrace}, {\tt MsgSourceTrace} に書き込んでおく. +\item {\tt kxx/sm1stackmachine.c} の {\tt Sm1\_pushError2} で, +上の大域変数に設定されたメッセージをもとに, error package +の文字列に XML 形式で error message を書く. +\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 @ を呼び出すため導入. + + \end{document}