|
|
| version 1.1, 2002/01/31 10:20:24 | version 1.36, 2002/04/16 09:38:51 |
|---|---|
| Line 1 | Line 1 |
| @auto[] | #@USE |
| #z/t.p | |
| @autoz[] | |
| $request:charset[windows-1251] | $request:charset[windows-1251] |
| $response:charset[windows-1251] | $response:charset[windows-1251] |
| $response:content-type[$.value[text/html]$.charset[$response:charset]] | $response:content-type[$.value[text/html]$.charset[$response:charset]] |
| @main[] | @main[] |
| ^xoutputrusattr[] | #^invaliddate2[] |
| #^process2[] | |
| #^casehashtext[] | |
| #^subjvaltest[] | |
| #^tableselect0[] | |
| #^memnotest1[] | |
| #^transparams[] | |
| #^voidparams[] | |
| #^rolls2[] | |
| #^cacheexpireschanging[] | |
| #^cacheexpiresfixed[] | |
| #^dateoffsets[] | |
| #^exceptionTypes[] | |
| #^roll2[] | |
| #^rolls[] | |
| #^exceptions1[] | |
| #^locate_by_expr[] | |
| #^method_junction_params{...} | |
| #^verifyCookie[paf] | |
| ^execlangs[] | |
| #$t[^tobjeresult[]]$t.a | |
| #^xmlprobs[] | |
| #^doubleprobs[] | |
| #^math:random(-10) | |
| #^divnamestop[] | |
| #^arrayclone[] | |
| #^operator_tricks[] | |
| #^xoutputrusattr[] | |
| #^xdocset1[] | #^xdocset1[] |
| #^regexp3[] | #^regexp3[] |
| #^exec2[] | #^exec2[] |
| Line 94 $response:content-type[$.value[text/html | Line 124 $response:content-type[$.value[text/html |
| <hr> | <hr> |
| OK | OK |
| @invaliddate2[] | |
| $d[^date::create(1018946575/60/60)] ^d.sql-string[] | |
| @process2[] | |
| ^^process{ | |
| ^process{ | |
| ^$a[^^if(0){^$.k[y]}{^$.k[^^hren[]n]}] ^$a.k | |
| } | |
| } | |
| @casehashtext[] | |
| $tt[1] | |
| $tmp[ | |
| ^switch[$tt]{ | |
| ^case[1]{ | |
| $.aaa[123] | |
| } | |
| ^case[DEFAULT]{ | |
| $.bbb[456] | |
| } | |
| } | |
| shit! | |
| ] | |
| #$tmp | |
| $tmp.aaa | |
| @subjvaltest[] | |
| $a12[val] | |
| $b[12] | |
| $a$b | |
| @tableselect0[] | |
| $person[^table::create{name height | |
| paf 1.77 | |
| шохин 2.07 | |
| moko 1.77 | |
| }] | |
| $nottoohigh[^person.select($person.height<2)] | |
| ^nottoohigh.menu{$nottoohigh.name<br>} | |
| @transparams[] | |
| $idoc[^xdoc::create{<?xml version="1.0" ?><doc/>}] | |
| $odoc[^idoc.transform[global.xsl; | |
| $.param1['1'] | |
| $.param2['2'] | |
| ]] | |
| <pre>^taint[^odoc.string[$.method[html]]] | |
| @memnotest1[] | |
| ^for[i](0;4000){ | |
| $xxxx[$i] | |
| $xxxx | |
| } | |
| @memnotest1notes[] | |
| одна итерация цикла: | |
| [Mon Apr 8 20:12:02 2002] execution-------------------------| | |
| '469641+=28 wcodeframe -> 0 !optimize[3]''469669+=49 string от {} -> 0 optimize[3]' | |
| [Mon Apr 8 20:12:02 2002] 12:STRING__WRITE | |
| [Mon Apr 8 20:12:02 2002] "|| " | |
| [Mon Apr 8 20:12:02 2002] 12:WITH_ROOT | |
| [Mon Apr 8 20:12:02 2002] 13:VALUE | |
| [Mon Apr 8 20:12:02 2002] "xxxx" string | |
| [Mon Apr 8 20:12:02 2002] 14:CREATE_EWPOOL'469377+=24 wcodeframe -> 0 !optimize[1]''469401+=49 string -> 41 !optimize[7]' | |
| [Mon Apr 8 20:12:02 2002] 16:WITH_READ | |
| [Mon Apr 8 20:12:02 2002] 17:VALUE | |
| [Mon Apr 8 20:12:02 2002] "i" string | |
| [Mon Apr 8 20:12:02 2002] 18:GET_ELEMENT | |
| [Mon Apr 8 20:12:02 2002] 17:WRITE_VALUE'469452+=40 MAX_NUMBER -> !~2 actual digits''469492+=49 -> 41 !' | |
| [Mon Apr 8 20:12:02 2002] 16:REDUCE_EWPOOL'469541+=24 VString -> 0 optimize[5]' | |
| [Mon Apr 8 20:12:02 2002] 15:CONSTRUCT_VALUE | |
| [Mon Apr 8 20:12:02 2002] 12:STRING__WRITE | |
| [Mon Apr 8 20:12:02 2002] "| " | |
| [Mon Apr 8 20:12:02 2002] 12:WITH_READ | |
| [Mon Apr 8 20:12:02 2002] 13:VALUE | |
| [Mon Apr 8 20:12:02 2002] "xxxx" string | |
| [Mon Apr 8 20:12:02 2002] 14:GET_ELEMENT | |
| [Mon Apr 8 20:12:02 2002] 13:WRITE_VALUE'469573+=41 string expand nothing for now' | |
| [Mon Apr 8 20:12:02 2002] 12:STRING__WRITE | |
| [Mon Apr 8 20:12:02 2002] "||"'469617+=24 VString -> 0 !optimize[6]' | |
| [Mon Apr 8 20:12:02 2002] <-ja returned | |
| [Mon Apr 8 20:12:02 2002] ja-> | |
| 201/328=0.612804878049 %%optimized | |
| 1. | |
| CREATE_*POOL | |
| сделать | |
| *POOL_POOLED+CODE | |
| где | |
| wwrapper | |
| и(возможно) wcodeframe | |
| +string | |
| стековая переменная | |
| 2. | |
| избавиться от обёртки при возврате результата process [см. тело _for] | |
| 3. | |
| сделать callback для process, чтобы вынести invariants из _for & co. | |
| 4. | |
| @todo склеить get_element и write_value (при вставлении? write_value) | |
| 5. | |
| reduce_*pool -> вариант получить именно string, без VString обёртки [часто | |
| обёртка сразу выбрасывается = не нужна] | |
| 6. | |
| process вариант получить именно string, без VString обёртки [часто обёртка | |
| сразу выбрасывается = не нужна] | |
| 7. | |
| string head, убить 8 байт неправильной link | |
| @voidparams[] | |
| ^voidparamsm[$form:field] | |
| @voidparamsm[p] | |
| ^p.int(123) | |
| @rolls2[] | |
| $now[^date::now[]] | |
| $d[^date::create($now.year;$now.month)] ^d.sql-string[]<br> | |
| ^for[i](1;12){ | |
| ^d.roll[month](-1) ^d.sql-string[]<br> | |
| } | |
| @cacheexpireschanging[] | |
| ^cache[$DB_HOME/keyключ][^date::now(+1)]{ ^rem{1 day} | |
| ^cache[^date::now(+4/24/60/60)] | |
| # ^cache(2) | |
| # ^cache(0) | |
| ^math:random(100) | |
| } | |
| @cacheexpiresfixed[] | |
| ^cache[$DB_HOME/keyключ][^date::now(+2/24/60/60)]{ | |
| ^math:random(100) | |
| } | |
| @dateoffsets[] | |
| $d[^date::create(^date::now[]+1/24/60)] | |
| #$d[^date::now(+1/24/60)] | |
| ^d.sql-string[] | |
| #$d | |
| @exceptionTypes[] | |
| # parser.compile ^test[} компиляция (непарная скобка, ...) | |
| # parser.runtime ^if(0). параметры (больше/меньше, чем нужно, не тех типов, ...) | |
| # number.zerodivision ^eval(1/0) ^eval(1%0) | |
| # number.format ^eval(abc*5) | |
| # file.missing ^file:delete[delme] not found | |
| # file.access ^table::load[.] no rights | |
| # image.format ^image::measure[index.html] not gif/jpg | |
| # sql.connect ^connect[mysql://baduser:pass@host/db]{} not found/timeout | |
| # sql.execute ^connect[mysql://okuser:pass@host/db]{^void:sql{select bad}} syntax error | |
| # xml ^xdoc::create{<forgot?>} any error in xml/xslt libs | |
| # smtp.connect not found/timeout | |
| # smtp.execute communication error | |
| @roll2[] | |
| $d[^date::create(2002;4;2;2;2;3)] ^d.sql-string[]<br> | |
| ^d.roll[day](+365*3+1) ^d.sql-string[]<br> | |
| @rolls[] | |
| $d[^date::create(2002;4;4)] | |
| ^d.sql-string[]<br> | |
| ^for[i](1;7){ | |
| ^d.roll[day](-1) | |
| ^d.sql-string[]<br> | |
| } | |
| <hr> | |
| $d[^date::create(2002;3;28)] | |
| ^d.sql-string[]<br> | |
| ^for[i](1;7){ | |
| ^d.roll[day](+1) | |
| ^d.sql-string[]<br> | |
| } | |
| <hr> | |
| $d[^date::create(2002;12;3)] | |
| ^d.sql-string[]<br> | |
| ^for[i](1;14){ | |
| ^d.roll[day](-1) | |
| ^d.sql-string[]<br> | |
| } | |
| <hr> | |
| $d[^date::create(2002;10;19)] | |
| ^d.sql-string[]<br> | |
| ^for[i](1;14){ | |
| ^d.roll[day](+1) | |
| ^d.sql-string[]<br> | |
| } | |
| @exceptions1[] | |
| ^try{ | |
| aaa | |
| ^throw[custom1;paf;is stupid] | |
| }{ | |
| ^if($exception.type eq custom1){ | |
| # $exception.handled(1) | |
| ^throw[$exception] | |
| type=$exception.type<br> | |
| source=$exception.source<br> | |
| file=$exception.file<br> | |
| lineno=$exception.lineno<br> | |
| comment=$exception.comment<br> | |
| } | |
| } | |
| @locate_by_expr[] | |
| $t[^table::create{a b | |
| 1 nok | |
| 2 ok | |
| 3 nok | |
| }] | |
| ^if(^t.locate($t.a==2)){$t.b}{n} | |
| @method_junction_params[param] | |
| ^if($param is junction){junction}{ne junction} | |
| @verifyCookie[value] | |
| ^if($cookie:dummyvote eq $value){ | |
| $result(1) | |
| }{ | |
| $cookie:dummyvote[$value] | |
| $result(0) | |
| } | |
| @execlangs[] | |
| $f[^file::exec[test.pl]] | |
| err:$f.stderr<br> | |
| ^process{$f.text} | |
| #$c[^t.columns[]] | |
| #^c.menu{ | |
| #* $c.column<br> | |
| #} | |
| c:$t.c<br> | |
| @tobjeresult[] | |
| ^table::create{a | |
| 12} | |
| @xmlprobs[] | |
| $xmlDataType[^xdoc::load[program.xml]] | |
| #<pre>^taint[^xmlDataType.string[]] | |
| $xmlDataTypes[^xmlDataType.select[programs/program[@id=4]/data]] | |
| #=^xmlDataTypes._count[]= | |
| =^xmlDataTypes.0.getAttribute[type-id]= | |
| @doubleprobs[] | |
| $1(^math:radians(180)) | |
| $2($math:PI) | |
| ^if(^1.format[%.10f]==^2.format[%.10f]){y;n} | |
| ^if($1==$2){y;n} | |
| ^if(^math:radians(180)==$math:PI){y;n} | |
| @divnamestop[] | |
| $a(10) | |
| ^eval($a\3) | |
| @arrayclone[] | |
| $t[^table::create{a b | |
| 1 11 | |
| 2 22 | |
| }] | |
| $c[^table::create[$t]] | |
| ^c.append{2 33} | |
| ^t.count[] | |
| ^c.count[] | |
| @operator_tricks[] | |
| ^if(1){$a[^t[]]} | |
| $a! | |
| $a($b) | |
| ^if(1){y}{n} | |
| $MAIN:a(^t[] eq OK) | |
| #$MAIN:a(1) | |
| ^if($a){y}{n} | |
| #^if(1){y}{n} | |
| $form:if | |
| $a[$.n[1]] | |
| $a.if | |
| @xoutputrusattr[] | @xoutputrusattr[] |
| $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}] | $d[^xdoc::set{<?xml version="1.0" encoding="windows-1251"?><d attr="привет"/>}] |
| ^show_xdoc2[$d] | ^show_xdoc2[$d] |