[BACK]Return to gc.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-doc / int-parts

Annotation of OpenXM/src/asir-doc/int-parts/gc.texi, Revision 1.1

1.1     ! noro        1: @comment $OpenXM$
        !             2: @chapter $B%a%b%j4IM}(B
        !             3:
        !             4: @section $B%a%b%j4IM}5!9=(B
        !             5:
        !             6: @code{risa} $B$K$*$1$k%a%b%j4IM}$O(B, [Boehm,Weiser] $B$K$h$k$b$N$rMQ$$$F$$$k(B.
        !             7: $B$3$N%a%b%j4IM}5!9=$NFCD'$O(B, $B%?%0IU$1$rI,MW$H$;$:(B, $B<+F0E*$K%,!<%Y%C%8%3%l(B
        !             8: $B%/%7%g%s(B(GC) $B$r9T$J$&$3$H$G$"$k(B. $B=>$C$F%f!<%6$OI,MW$JNN0h$r<h$j$C$Q$J$7(B
        !             9: $B$K$7$F$h$$(B. $B7gE@$H$7$F$O(B, $B0l2s$N(B GC $B$G$9$Y$F$N%,!<%Y%C%8$r2s<}$G$-$k$H$O(B
        !            10: $B$+$.$i$J$$$3$H$H(B, $B%3%s%Q%/%7%g%s$r9T$J$o$J$$$3$H$G$"$k$,(B, $B<BMQ>e==J,$J5!(B
        !            11: $BG=$r;}$D(B. $B%a%b%j3d$jEv$F4o$K8=$l$k%^%/%m$O$9$Y$F$3$N%a%b%j4IM}$N$b$H$G%a(B
        !            12: $B%b%j$N3d$jEv$F$r9T$J$C$F$$$k(B. GC $B$O(B, $B$=$N;~E@$K$*$1$k(B, $B%9%?%C%/(B, $B%l%8%9(B
        !            13: $B%?(B, $B@EE*NN0h$+$i%^!<%-%s%0$r;O$a(B, $B$3$l$K$h$jE~C#$G$-$J$$NN0h$r$9$Y$F2s<}(B
        !            14: $B$9$k(B. $B%3%s%Q%$%i$N:GE,2=$K$h$j(B, $B:G=iNN0h$N@hF,$r;X$7$F$$$?%]%$%s%?$,(B, $BNN(B
        !            15: $B0h$NFbIt$r;X$7$F$$$k>l9g$K$b(B, GC $B@5$7$/$=$NNN0h$,;HMQCf$HH=CG$9$k(B.
        !            16:
        !            17: $BCm0U$9$Y$-$3$H$O(B, $BDL>o$N(B @code{malloc()} $B$K$h$j3d$jEv$F$i$l$?NN0hFb$O%9(B
        !            18: $B%-%c%s$5$l$J$$$3$H$G$"$k(B. $B$h$C$F(B, @code{malloc()} $B$O(B, $B$=$NB>$N(B C $B$N%i%$(B
        !            19: $B%V%i%j$NCf$+$i8F$P$l$k>l9g$r=|$$$F;HMQ$OHr$1$J$1$l$P$J$i$J$$(B. $B$^$?(B, $B0l$D(B
        !            20: $B$NNN0h$O(B, $BJ#?t$NNN0h$+$i;2>H$5$l$F$$$k2DG=@-$,$"$k$?$a(B, $B%f!<%6$,3+J|$9$k(B
        !            21: $B$3$H$O4m81$G$"$k(B. $B$?$@$7(B, $B:n6HMQ$N%P%C%U%!$J$I(B, $BL@$i$+$KB>$+$i$N;2>H$,$J(B
        !            22: $B$$$b$N$K4X$7$F$O3+J|$7$F9=$o$J$$(B. $B%a%b%j4IM}4X78$N<g$JH!?t$O<!$NDL$j(B.
        !            23:
        !            24: @example
        !            25: void GC_init()
        !            26: $B=i4|2=%k!<%A%s(B. $B5/F0;~$K<B9T$9$k(B.
        !            27:
        !            28: void *GC_malloc(int n)
        !            29: n bytes $B$NNN0h$r3d$jEv$F$k(B. $BNN0h$O(B 0 $B$G=i4|2=$5$l$k(B.
        !            30:
        !            31: void *GC_malloc_atomic(int n)
        !            32: $B%]%$%s%?$r4^$`$3$H$,$J$$$HJ]>Z$5$l$k(B n bytes $B$NNN0h$r3d$jEv$F$k(B.
        !            33:
        !            34: GC_free(void *p)
        !            35: p $B$N;X$9NN0h$r3+J|$9$k(B. Risa $B$G$O(B, $B$"$kNN0h$,$I$3$+$i$I$N0L;X$5$l$F$$$k(B
        !            36: $B$+0lHL$K$OH=CG$G$-$J$$$N$G(B, $BDL>o$O$3$N4X?t$,;HMQ$5$l$k$3$H$O$J$$(B.
        !            37: $B4X?tFb$G3d$jEv$F$?%P%C%U%!$N3+J|$J$I$KMQ$$$k$3$H$O$G$-$k(B.
        !            38: @end example
        !            39: @noindent
        !            40: $BDL>o$O(B @code{GC_malloc()} $B$r;HMQ$9$k$,(B, $BB?G\D9?tMQ$NNN0h$J$I(B, $BFbIt$K%]%$(B
        !            41: $B%s%?$r4^$^$J$$$3$H$,J,$+$C$F$$$kNN0hMQ$K(B @code{GC_malloc_atomic()} $B$,MQ(B
        !            42: $B0U$5$l$F$$$k(B. GC $B%k!<%A%s$O(B, @code{GC_malloc_atomic()} $B$K$h$j3d$jEv$F$i(B
        !            43: $B$l$?NN0h$NFbIt$O%9%-%c%s$7$J$$$N$G(B, GC $B$N8zN($,NI$/$J$k(B.
        !            44:
        !            45:
        !            46: @section Risa $B$K$*$1$k%a%b%j$N;HMQ(B
        !            47:
        !            48: Risa $B$K$*$1$k3F1i;;4X?t$K$D$$$F6&DL$N?6Iq$$$H$7$F(B, $B7k2L$H$7$F@8@.$5$l$k(B
        !            49: object $B$NFbIt$G(B, $BF~NO$G$"$k(B object $B$N3FIt$X$N;2>H$,9T$o$l$F$$$k2DG=@-(B
        !            50: $B$,$"$k(B, $B$H$$$&$3$H$,$"$k(B.
        !            51:
        !            52: $B<!$NNc$O(B, $BB?9`<0$N2C;;4X?t$G$"$k(B. $B$3$NCf$G(B, $BNc$($P@hF,$N9`$N<!?t$,0[$J$k(B
        !            53: $B>l9g$K$O(B, $B78?t(B($B$X$N%]%$%s%?(B)$B$,$=$N$^$^7k2L$K%3%T!<$5$l$F$$$k(B. $B$^$?(B,
        !            54: $B0z?t$N0lJ}$N<!?t78?t%j%9%H$NKvHx$^$G$?$I$C$?;~$K(B, $B0lJ}$N<!?t78?t%j%9%H$,(B
        !            55: $B;D$C$F$$$k>l9g$K$O(B, $B$=$N;D$j$,$=$N$^$^7k2L$N<!?t78?t%j%9%H$K$D$J$,$l$k(B.
        !            56:
        !            57: @example
        !            58: #include "ca.h"
        !            59:
        !            60: void addp(vl,p1,p2,pr)
        !            61: VL vl;
        !            62: P p1,p2,*pr;
        !            63: @{
        !            64:   DCP dc1,dc2,dcr0,dcr;
        !            65:   V v1,v2;
        !            66:   P t;
        !            67:
        !            68:   if ( !p1 )
        !            69:     *pr = p2;
        !            70:   else if ( !p2 )
        !            71:     *pr = p1;
        !            72:   else if ( NUM(p1) )
        !            73:     if ( NUM(p2) )
        !            74:       addnum(vl,p1,p2,pr);
        !            75:     else
        !            76:       addpq(p2,p1,pr);
        !            77:   else if ( NUM(p2) )
        !            78:     addpq(p1,p2,pr);
        !            79:   else if ( ( v1 = VR(p1) ) ==  ( v2 = VR(p2) ) ) @{
        !            80:     for ( dc1 = DC(p1), dc2 = DC(p2), dcr0 = 0; dc1 && dc2; )
        !            81:       switch ( cmpq(DEG(dc1),DEG(dc2)) ) @{
        !            82:         case 0:
        !            83:           addp(vl,COEF(dc1),COEF(dc2),&t);
        !            84:           if ( t )  @{
        !            85:             NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc1); COEF(dcr) = t;
        !            86:           @}
        !            87:           dc1 = NEXT(dc1); dc2 = NEXT(dc2); break;
        !            88:         case 1:
        !            89:           NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc1); COEF(dcr) = COEF(dc1);
        !            90:           dc1 = NEXT(dc1); break;
        !            91:         case -1:
        !            92:           NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc2); COEF(dcr) = COEF(dc2);
        !            93:           dc2 = NEXT(dc2); break;
        !            94:       @}
        !            95:     if ( !dcr0 )
        !            96:       if ( dc1 )
        !            97:         dcr0 = dc1;
        !            98:       else if ( dc2 )
        !            99:         dcr0 = dc2;
        !           100:       else @{
        !           101:         *pr = 0;
        !           102:         return;
        !           103:       @}
        !           104:     else
        !           105:       if ( dc1 )
        !           106:         NEXT(dcr) = dc1;
        !           107:       else if ( dc2 )
        !           108:         NEXT(dcr) = dc2;
        !           109:       else
        !           110:         NEXT(dcr) = 0;
        !           111:     MKP(v1,dcr0,*pr);
        !           112:   @} else @{
        !           113:     while ( v1 != VR(vl) && v2 != VR(vl) )
        !           114:       vl = NEXT(vl);
        !           115:     if ( v1 == VR(vl) )
        !           116:       addptoc(vl,p1,p2,pr);
        !           117:     else
        !           118:       addptoc(vl,p2,p1,pr);
        !           119:   @}
        !           120: @}
        !           121: @end example
        !           122:
        !           123: $B$3$N$h$&$K(B, Risa $B$N1i;;4X?t$G$O(B, $B0l8+ITMW$K$J$C$?Cf4VE*$J7k2L$G$b(B, $B$=$N(B
        !           124: $BItJ,<0$,:G=*7k2L$KMQ$$$i$l$F$$$k$3$H$,$"$k$?$a(B, $BCm0U$,I,MW$G$"$k(B. $BFC$K(B,
        !           125: $BG[Ns$r=q$-49$($kI,MW$,$"$k>l9g$J$I$K$O(B, $BG[Ns$=$N$b$N$r?7$7$/@8@.$7$F(B, $B@.(B
        !           126: $BJ,$r%3%T!<$7$F$+$iMQ$$$kI,MW$,$"$k(B.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>