version 1.29, 2012/10/29 02:51:41 |
version 1.37, 2020/03/14 00:50:55 |
|
|
% $OpenXM: OpenXM/src/kan96xx/Doc/changelog-ja.tex,v 1.28 2012/09/16 01:53:08 takayama Exp $ |
% $OpenXM: OpenXM/src/kan96xx/Doc/changelog-ja.tex,v 1.36 2018/05/02 02:28:13 takayama Exp $ |
\documentclass{jarticle} |
\documentclass{jarticle} |
\title{ChangeLog \\ ---kan96xx, kxx, k097} |
\title{ChangeLog \\ ---kan96xx, kxx, k097} |
\author{Nobuki Takayama} |
\author{Nobuki Takayama} |
\date{} |
\date{} |
|
\usepackage{url} |
\begin{document} |
\begin{document} |
\maketitle |
\maketitle |
|
|
|
|
\section{2004-09-05, $B%0%l%V%J(Bfan$B$N7W;;(B} |
\section{2004-09-05, $B%0%l%V%J(Bfan$B$N7W;;(B} |
\begin{enumerate} |
\begin{enumerate} |
\item polymake $B$,I,MW(B. 9/1, 9/2, 9/3, 9/4 $B$N%N!<%H$b;2>H(B. |
\item polymake $B$,I,MW(B. 9/1, 9/2, 9/3, 9/4 $B$N%N!<%H$b;2>H(B. |
|
@s/2004/08/21-note.pdf $B$KJQ?tEy$N@bL@$"$j(B. |
\item OpenXM $B$N(B cvs $B$X$N(B commit $B$OBg$-$$6h@Z$j$G(B. |
\item OpenXM $B$N(B cvs $B$X$N(B commit $B$OBg$-$$6h@Z$j$G(B. |
$B:Y$+$$JQ99$O(B {\tt eventail/cone.sm1} $B$G(B. |
$B:Y$+$$JQ99$O(B {\tt eventail/cone.sm1} $B$G(B. |
\item {\tt OpenXM/src/kan96xx/Doc/gfan.sm1} 1.1 |
\item {\tt OpenXM/src/kan96xx/Doc/gfan.sm1} 1.1 |
Line 674 shell.c $B$K(B help $B$rDI2C(B. |
|
Line 676 shell.c $B$K(B help $B$rDI2C(B. |
|
$B:n6H%U%!%$%k$N@8@.$O(B |
$B:n6H%U%!%$%k$N@8@.$O(B |
{\tt generateTMPfiles()} ({\tt util/ox\_pathfinder.c}). |
{\tt generateTMPfiles()} ({\tt util/ox\_pathfinder.c}). |
|
|
|
\section{2013-09-20, doPolymake} |
|
bug fix. $BM-M}?t$r(B accept. oxshell $B$N%^%K%e%"%k$r99?7(B. |
|
|
|
class $B$NMxMQK!$r;W$$=P$9(B. |
|
\begin{verbatim} |
|
[(FACETS) (polymake.data(polymake.POINTS([[1,0,0],[1,1,0],[1,0,1],[1,1,1/2]])))] |
|
doPolymake /rr set |
|
rr 1 get /ff set |
|
ff (array) dc :: % class $B$r(B array $B$XJQ49(B. |
|
\end{verbatim} |
|
{\tt primitive.c} $B$G(B class $B$r(B search. |
|
KclassDataConversion() $B4X?t$rFI$a$P$h$$$3$H$,$o$+$k(B. |
|
grep $B$9$k$H(B {\tt kclass.c} $B$rC5$;$P$$$$(B. |
|
$B$3$3$K(B tag $B$,$$$m$$$m$"$k(B. |
|
usage $B$K(B note-class $B$rDI2C(B. |
|
|
|
\section{2013-09-22, oxdecode\_post} |
|
|
|
mime $B7A<0$N(B post message $B$r(B URL encoding $B$KJQ49(B |
|
(mime $B$NH=DjEy$O8=>u$J$s$A$c$C$F(B). |
|
$B$3$l$G(B, reverse proxy $B7PM3$G$b@5>oF0:n(B. |
|
|
|
\begin{verbatim} |
|
cat t.txt |
|
FACETS POINTS |
|
1 0 0 |
|
1 1 0 |
|
1 0 1 |
|
|
|
curl -F oxMessageBody=@t.txt http://polymake.math.kobe-u.ac.jp/cgi-bin/cgi-polymake.sh |
|
\end{verbatim} |
|
|
|
\begin{verbatim} |
|
library(RCurl); |
|
postForm("http://polymake.math.kobe-u.ac.jp/cgi-bin/cgi-polymake.sh", |
|
oxMessageBody="FACETS POINTS\n1 0 0\n1 1 0\n1 0 1") |
|
[1] "POINTS\n1 0 0\n1 1 0\n1 0 1\r\n\nFACETS\n1 -1 -1\n0 1 0\n0 0 1\n\n |
|
AFFINE_HULL\n\n\n_version 2.0\n_application polytope\n\n" |
|
attr(,"Content-Type") |
|
charset |
|
"text/plain" "UTF-8" |
|
\end{verbatim} |
|
|
|
{\tt cgiPolymake.log} $B$K(B 1 $B$rBeF~$7$F$*$/$H(B($B4{DjCM(B) |
|
sm1log $B$G(B /tmp/sm1log.txt $B$K(B post message $B$r5-O?(B. |
|
date $B4X?t$rDI2C(B. |
|
|
|
curl $B$rMQ$$$?8F$S=P$7$N%F%9%H(B. |
|
\begin{verbatim} |
|
(cgi.sm1) run |
|
/cgiQueryPolymake { cgiQueryPolymake.curl } def |
|
[(FACETS) (polymake.data(polymake.POINTS([[1,0,0],[1,1,0],[1,0,1],[1,1,1/2]])))] /ff set |
|
ff doPolymake.OoHG /rr set |
|
\end{verbatim} |
|
|
|
\section{2013-09-25, usePolymake.*} |
|
polymake $B$N%9%$%C%A(B. version $B$K$h$j?6$kIq$$$,0c$&$N$GCm0U(B. |
|
|
|
$B3F<o(B log $B$N>l=j(B. |
|
\begin{enumerate} |
|
\item server side. {\tt /tmp/sm1log.txt}: cgi-post $B$N(B encoded $BJ8;zNs(B. |
|
\item server side. cgi-polymake.sh $B$K(B tee $B$rDI2C$9$k$H(B, oxdecode\_post $BA0$NJ8;zNs$r(B |
|
$BJ]B8$G$-$k(B. |
|
\item client side. oxshell $B$G(B work file $B$r(B {\tt \$TMP} $B$K;D$9$K$O(B |
|
oxshell $B$N(B usage $B$r8+$F(B, keep\_tmp\_files $B$r;H$&(B. |
|
local $BHG$G$O(B {\tt @@@doPolymake.vars} $B$K5-O?$"$j(B. |
|
asir $B$G$O(B {\tt polymake.log()} $B$K3JG<(B. |
|
\item {\tt usePolymake.OoHG.curl} $B$N;~$O(B {\tt /tmp/sm1-q-cgi*.txt} |
|
$B$K(B cgi $B$KLd$$9g$o$;$k;~$NJ8;zNs$,3JG<$5$l$k(B. |
|
\end{enumerate} |
|
|
|
$B$J$*(B mac $BHG$O(B error $B$G(B bus error $B$r5/$3$9>l9g$"$j(B. |
|
$B%5%s%W%k(B code $B$O(B, {\tt misc-2013/09/genpos/mac.sm1}. |
|
$B$3$l$O(B ticket. |
|
|
|
screenflow $B$K$h$k3P$(=q$-$O(B, |
|
fe $B$N(B {\tt /Movies/oxvh/2013-09-25-polymake}. |
|
|
|
\section{2015-10-10, cygwin64, msys64} |
|
|
|
cygwin64, msys64 $BBP1~(B. |
|
\begin{enumerate} |
|
\item gc $B$K$O(B patch. cygwin64 $B$N(B gc.h $B$O$9$G$K(B patch $B$,Ev$?$C$F$k(B. |
|
$B$h$C$F(B gc $B$,99?7$5$l$?$i(B patch $B$OB?J,ITMW(B. |
|
\item sigsetjmp $B$r(B {\tt \_setjmp} $B$K$7$J$$$H$?$H$($P(B |
|
$BHyJ,:nMQAG4D$N3]$1;;$G(B segfault. $B860x$O$h$/$o$+$i$:(B. |
|
\item string.h, stdlib.h $BEy$N(B prototype $B@k8@$r$7$F$*$+$J$$$H(B {\tt ox\_sm1} $B$,(B segfault. |
|
\item msys $B$G$O(B cmd.exe $B$,?7$7$$(B window $B$r3+$+$J$$$N$G(B($BFf(B), mintty $B$r;H$&(B. |
|
\end{enumerate} |
|
fe $B$N(B {\tt /Movies/archive} $B$N(B bandicam $B$K$b5-O?(B. |
|
|
|
Todo, ctrl-C $B$,0lEY$7$+M-8z$G$J$$(B. sigaction $B$rMxMQ$9$k$Y$-(B? |
|
|
|
{\tt ox\_sm1} $B$N(B segfault $B$N(B debug |
|
{\tiny |
|
\begin{verbatim} |
|
misc-2015/10/cygwin-for-sm1 $B$K(B |
|
oxserver00-d.c Makefile-for-ox_sm1d tmp-o.txt $B$"$j(B. |
|
tmp-o.txt $B$O(B ( (1).. (0).. div ) oxsubmit $B$G(B $B%(%i!<$r5/$3$9L?Na$r(B, |
|
stream dump $B$7$?$b$N(B. cf. (ox.sm1) run (extension-oxLog) usage |
|
oxpipe.c $B$r(B oxserver00.c $B$XAH$_9~$s$@$b$N(B. gdb $BMQ(B. ox_sm1d |
|
523 rm ox_sm1d |
|
525 make -f Makefile-for-ox_sm1d ox_sm1d |
|
526 ./ox_sm1d <tmp-o.txt |
|
|
|
cygwin, msys $B$N(B gdb $B$O(B run <file $B$,=PMh$J$$$3$H$KCm0U(B. |
|
$ gdb ./ox_sm1d |
|
GNU gdb (GDB) 7.9 |
|
Copyright (C) 2015 Free Software Foundation, Inc. |
|
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> |
|
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: |
|
<http://www.gnu.org/software/gdb/bugs/>. |
|
Find the GDB manual and other documentation resources online at: |
|
<http://www.gnu.org/software/gdb/documentation/>. |
|
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 <file $B$9$kBe$o$j(B. cf. stackoverflow [cygwin gdb pipe] |
|
$1 = 0 |
|
(gdb) break Sm1_popErrorMessage |
|
Breakpoint 2 at 0x100402720: file sm1stackmachine.c, line 205. |
|
(gdb) continue |
|
Continuing. |
|
[New Thread 11260.0x2f84] |
|
oxserver00-d.c for debug. |
|
[New Thread 11260.0x2a28] |
|
sm1>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." |
|
// $B@5>o(B |
|
(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 $B$d(B strcpy $BEy$,2x$7$$$H$K$i$`(B. |
|
|
|
|
|
char * $B7O(B void * $B7O$N@k8@$J$7$,(B segfault $B$N860x(B? |
|
strcpy $B$,JQ(B. |
|
|
|
kxx/serversm.h $B$K(B |
|
#include <string.h> |
|
void *sGC_malloc(int n); |
|
$B$r2C$($k(B. |
|
./ox_sm1d <tmp-o.txt $B$,@5>o=*N;(B. |
|
\end{verbatim} |
|
} %% end tiny |
|
|
|
\noindent |
|
$B2r7h(B: OpenXM/src/util/mysig.c $B$K(B sigaction $B$rMQ$$$?(B signal emulation $B$r2C$($?(B. |
|
$B$3$l$K$h$j>e5-$N$h$&$J%H%i%V%k$O2r>C(B. |
|
|
|
\section{doPolymake $B$N9=B$%a%b(B (2020.03.12)} |
|
doPolymake $B$K5/0x$9$k(B bug $B$r(B fix. $B$=$N;~$K(B doPolymake $B$NN.$l$rFI$_D>$7$?(B. |
|
|
|
$B%F%9%HMQ$NF~NO(B(polymake $B$O(B $B%5!<%P!<$rMxMQ(B). |
|
{\tiny |
|
\begin{verbatim} |
|
export OX_XTERM_GEOMETRY=80x20+0+0 |
|
sm1 |
|
(cgi.sm1) run ; |
|
usePolymake.OoHG.curl polymake.start ; |
|
[(FACETS) (polymake.data(polymake.POINTS([[1,0],[1,1]])))] |
|
doPolymake /rr set ; |
|
rr :: |
|
\end{verbatim} |
|
} |
|
{\tt rr} $B$K$O(B sm1 $B$N(B class.tree $B%G!<%?$,3JG<$5$l$k(B. |
|
{\tt OX\_XTERM\_GEOMETRY} $B$r@_Dj$9$k$3$H$G(B ox server $B$,(B iconic $B$K$J$i$J$$(B. |
|
polymake $B$X(B OOHG $B$GLd$$9g$o$;$F$$$kK\BN$O(B, |
|
{\tt cgi.sm1} $B$N(B {\tt cgiQueryPolymake.curl}. |
|
$B$3$l$rFI$`$H;EAH$_$,$o$+$k(B. |
|
polymake http server $BB&$G$O<!$N%3!<%I(B(cgi-polymake.sh)$B$G(B post message $B$r<u<h$j(B, polymake $B$G7W;;$7$F(B, $B7k2L$rLa$9(B. |
|
{\tiny |
|
\begin{verbatim} |
|
#!/bin/bash |
|
# $OpenXM: OpenXM/src/polymake/cgi/cgi-polymake.sh,v 1.1 2004/09/27 01:20:46 takayama Exp $ |
|
PATH=/usr/local/polymake/bin:$PATH |
|
export TMP=/tmp |
|
source /home/taka/OpenXM/rc/dot.bashrc |
|
WFILE=/tmp/tmp-post-$$.txt |
|
tee /tmp/t.txt | oxdecode_post >${WFILE} |
|
env CONTENT_LENGTH=`wc -m ${WFILE} | awk '{print $1}'` sm1 -q -s "[(parse) (cgi.sm1) pushfile] extension cgiPolymake quit " <${WFILE} |
|
rm -f ${WFILE} |
|
exit 0 |
|
: rm -f ${WFILE} |
|
\end{verbatim} |
|
} |
|
$BAw?.B&$N(B {\tt cgiQueryPolymake.curl} $B$O(B curl $B$N(B form option $B$rMQ$$$F(B |
|
post message $B$r$9$k(B. |
|
$B%-!<$O(B {\tt oxMessageBody} $B$G$"$k(B. |
|
$BAw$k(B form $B$O(B {\tt /tmp/sm1-q-cgi.txt???} $B$K@8@.$5$l$k(B. |
|
$B$3$3$G(B ??? $B$O(B pid $B$G$"$k(B. |
|
$B7k2L$r<u$1<h$C$?$i$3$N0l;~%U%!%$%k$O(B {\tt OpenXM\_tmp} $B4D6-JQ?t$G;XDj$5$l$k(B |
|
folder $B$X0\F0$5$l$k(B. |
|
{\rm /tmp/sm1-q-cgi*} $B$OF0:n%(%i!<Ey$K$h$j;D$k$3$H$,$"$k$N$GDj4|E*$K:o=|$9$k$3$H$,(B |
|
$BK>$^$7$$(B. |
|
{\tt cgiQueryPolymake.curl} $B$O(B polymake version 2 $B7A<0$N=PNO$rJ8;zNs$N(B list $B$H$7$FLa$9(B. |
|
|
|
$B$3$l$r(B tree $B7A<0Ey$KJQ49$7$F$$$k$N$O(B {\tt kan96xx/trans} $BFb$N%=!<%9$G$"$k(B. |
|
$B$3$N%U%)%k%@$O%G!<%?7A<0$NJQ49Ey$N%F%9%H%1!<%9$H$7$F:n@.$5$l$?(B. |
|
$B9M$(J}$H$7$F$O(B, |
|
\begin{center} |
|
\fbox{tree $B7A<0$N%G!<%?(B} $\Leftrightarrow$ |
|
\fbox{tfb $B7A<0$N%G!<%?(B} $\Leftrightarrow$ \fbox{polymake $B7A<0(B} |
|
$\Leftrightarrow$ \fbox{polymake web server} |
|
\end{center} |
|
{\tt polymake2tfb} $B$O(B polymake version 2 $B$N%U%!%$%k$rF~NO$H$9$k$H(B |
|
tfb $B7A<0$N%G!<%?$r=PNO$9$k(B. |
|
{\tiny |
|
\begin{verbatim} |
|
polymake2tfb < ~/.OpenXM_tmp/sm1-q-cgi-out.txt37402 |
|
polymake.data(polymake.POINTS([[1,0],[1,1]]),polymake.FACETS([[1,-1],[0,1]]),polymake.AFFINE_HULL()) |
|
\end{verbatim} |
|
} |
|
tfb $B7A<0$N%G!<%?$O(B {\tt ox\_k0} $B$,(B parse $B$7$F(B, $B$=$l$r(B tree $B7A<0$KJQ49$7$F$$$k(B. |
|
$B5UJQ49$b(B {\tt ox\_k0} $B$,9T$&(B |
|
($B%=!<%9(B {\tt polymake.sm1}, $B4X?t(B {\tt tfbToTree} $B$r;2>H(B). |
|
|
\end{document} |
\end{document} |
|
|