You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(55) |
Nov
(148) |
Dec
(120) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(87) |
Feb
(207) |
Mar
(282) |
Apr
(224) |
May
(88) |
Jun
(74) |
Jul
(110) |
Aug
(142) |
Sep
(33) |
Oct
(67) |
Nov
(93) |
Dec
(147) |
2009 |
Jan
(59) |
Feb
(58) |
Mar
(66) |
Apr
(48) |
May
(55) |
Jun
(14) |
Jul
(11) |
Aug
(61) |
Sep
(23) |
Oct
(20) |
Nov
(16) |
Dec
(2) |
2010 |
Jan
(3) |
Feb
(9) |
Mar
(19) |
Apr
(17) |
May
(16) |
Jun
(2) |
Jul
(3) |
Aug
(13) |
Sep
(16) |
Oct
(10) |
Nov
(3) |
Dec
(12) |
2011 |
Jan
(18) |
Feb
|
Mar
(14) |
Apr
(23) |
May
(26) |
Jun
(6) |
Jul
(8) |
Aug
(6) |
Sep
(19) |
Oct
(30) |
Nov
(17) |
Dec
(24) |
2012 |
Jan
(5) |
Feb
(22) |
Mar
(57) |
Apr
(16) |
May
(20) |
Jun
(6) |
Jul
|
Aug
(10) |
Sep
(3) |
Oct
(14) |
Nov
(5) |
Dec
(4) |
2013 |
Jan
(10) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(1) |
Jun
(7) |
Jul
(3) |
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(7) |
Dec
(1) |
2014 |
Jan
(2) |
Feb
(3) |
Mar
(1) |
Apr
(7) |
May
(18) |
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(6) |
Dec
(4) |
2015 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
(18) |
Jun
(25) |
Jul
|
Aug
(6) |
Sep
(2) |
Oct
(3) |
Nov
|
Dec
(10) |
2016 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(8) |
Jul
|
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
|
2017 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
|
Nov
(4) |
Dec
|
From: Andrey C. <sp...@us...> - 2016-06-05 03:35:26
|
Update of /cvsroot/spf/devel/~ac/lib/lin/mime In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8972 Modified Files: mime.f Log Message: Skip extra crlf after mime boundary. Committed on the Free edition of March Hare Software CVSNT Client. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ Index: mime.f =================================================================== RCS file: /cvsroot/spf/devel/~ac/lib/lin/mime/mime.f,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- mime.f 23 Sep 2011 11:04:21 -0000 1.11 +++ mime.f 5 Jun 2016 03:35:24 -0000 1.12 @@ -205,7 +205,7 @@ IF >IN 1+! THEN TRUE ELSE - DUP 3 < IF DROP FALSE EXIT THEN + DUP 5 < IF DROP FALSE EXIT THEN \ íå íàéäåí ðàçäåëèòåëü ÷àñòåé, íåâåðíûé ôîðìàò ïèñüìà, îáðàáîòàåì åãî õâîñò DUP >IN +! + TRUE |
From: ruvim <ru...@us...> - 2016-02-28 23:01:01
|
Update of /cvsroot/spf/devel/~pinka/samples/2007/fcomposition In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7098 Modified Files: !readme.ru.txt index.f.xml Log Message: FIX samples fcomposition -- typo and wording Index: !readme.ru.txt =================================================================== RCS file: /cvsroot/spf/devel/~pinka/samples/2007/fcomposition/!readme.ru.txt,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- !readme.ru.txt 9 Aug 2008 23:02:31 -0000 1.8 +++ !readme.ru.txt 28 Feb 2016 23:00:59 -0000 1.9 @@ -1,6 +1,6 @@ \ Feb.2008 -Ìàêåò ôîðò-ñèñòåìû. Öåëü: îòðàáîòêè êîìïîçèöèè è ñáîðêè (ðàñêðóòêè). +Ìàêåò ôîðò-ñèñòåìû. Öåëü: îòðàáîòêà êîìïîçèöèè è ñáîðêè (ðàñêðóòêè). index.f -- ñáîðêà è çàïóñê 32-áèòíîé ìàêåòíîé ôîðò-ñèñòåìû. Index: index.f.xml =================================================================== RCS file: /cvsroot/spf/devel/~pinka/samples/2007/fcomposition/index.f.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- index.f.xml 22 May 2015 08:43:55 -0000 1.15 +++ index.f.xml 28 Feb 2016 23:00:59 -0000 1.16 @@ -54,7 +54,7 @@ <include href="quit.f.xml"/> <init><rem> initiate the target system </rem> - <rem> The host system and the target system are has a same code form! So we can execute a words from the target system.</rem> + <rem> The host system and the target system both have the same code form! So we can execute the words from the target system as is.</rem> `TC-WL::VOC-LIST hcall @ VOC-LIST ! `TC-WL::SAVE-STORAGE hcall RESTORE-STORAGE |
From: ruvim <ru...@us...> - 2016-02-11 20:42:40
|
Update of /cvsroot/spf/devel/~mlg/SrcLib In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25824 Added Files: ssss.f Log Message: Simple Static Scoping for Structures (2009) See also https://groups.google.com/d/msg/comp.lang.forth/rp5TZLpNtJU/LYq-cFv14sAJ --- NEW FILE: ssss.f --- \ ssss.f Simple Static Scoping for Structures \ (p) Michael L Gassanenko \ the below code and specification are Public Domain \ History: v1.1 -- 5 Jan 2009 -- bug fixes, two more RIs, description \ v1.0 -- 18 Dec 2008 -- initial \ ====================================== \ Contents: \ 0. Foreword \ 1. Description \ 2. Specification \ 3. Reference implementations \ 3.1. Reference Implementation 1 \ 3.2. Reference Implementation 2 \ 3.3. Reference Implementation 3 \ 3.4. Reference Implementation 4 \ 4. Example Code: lists of strings and integers \ 5. Functionality Tester \ ====================================== \ 0. Foreword \ \ First of all, it is arguable if scopes/namespaces are needed at all. \ I will assume that you have a compelling reason to use them. \ \ The main idea of the approach implemente in this file is: \ do not try to find out at compile-time \ what will happen with data at run-time. \ Instead, explicitly specify the bounds where \ words from a name space are visible, \ and let name spaces be completely separate from run-time data. \ \ There are following sections: \ 1. Description that informally explains how the scopes work; \ 2. Specification that formally defines the behaviour of words; \ 3. a number of Reference Implementations (RIs). \ It is possible that not all of them will work on your system; \ or that you will dislike the source that implements some of them. \ You, at least, have a choice. \ 4. Example Code demonstrates how it works. \ 5. Functionality Tester allows you to ensure against bugs \ when you bring this code to a new system, or write your own \ implementation. \ ====================================== \ 1. Descripion: \ \ The basic functionality is provided with the words SCOPE s{ }s : \ \ SCOPE _name_ or NEW-SCOPE _name_ -- create a new empty scope \ (two names because one of them may be already there in your system, \ choose the one that is not used) \ \ s{ _scope_ -- enter the scope _scope_ \ \ s{ _scope_ DEFINITIONS -- enter the scope _scope_, \ the new definitions will be added to _scope_ \ \ }s -- leave the last opened scope \ \ }s DEFINITIONS -- use this to leave the scope opened via s{ _name_ DEFINITIONS \ \ Extended functionality: there is also an option to create a tree of scopes \ where child scopes inherit all words visible in the parent scopes: \ \ ' _scope_ EXTENSION-SCOPE _child_scope_ -- all words defined in _scope_ will \ be also visible in _child_scope_, but not vice versa. This implements the classical \ visibility rule for nested scopes and derived classes. \ \ ' _scope_ SAME-SCOPE _new_name_ -- make _scope_ also available via _new_name_. \ This is for the case that you do not need nested scopes, but still want to use \ different names. (For example, you want some classes to share the same namespace.) \ ====================================== \ 2. Specification: \ SCOPE ( "scope-name" -- ) Create an empty scope that later may be \ referenced as scope-name. scope-name is a definition that may be, \ for example, ticked. A word list is associated with scope-name, \ this word list may be added to the search order by executing \ s{ scope-name or ' scope-name OPEN-SCOPE. \ The behaviour of scope-name is implementation-defined. \ EXTENSION-SCOPE ( scope-xt "scope-name" -- ) create a scope that \ later may be referenced as scope-name. scope-name is associate with \ all word lists from the scope identified by scope-xt (later referenced \ as the basic scope for scope-name) plus one more word list \ (later referenced as own word list of scope-name). \ The behaviour of scope-name is implementation-defined. \ Ambiguous conditions: \ - The word }s is not visible in the search order, or \ some different functionality is visible under the name }s \ SAME-SCOPE ( scope-xt "scope-name" -- ) create an alias scope \ for scope-xt. The same set of word lists is associated with \ scope-xt and scope-name. \ The behaviour of scope-name is implementation-defined. \ OPEN-SCOPE ( scope-xt -- ) Add all word lists associated with the scope \ to the search order. If scope-xt identifies an extension scope, \ first (recursively) add word lists from the basic scope, then \ add own word list (so that it is searhed first). \ An ambiguous condition exists if scope-xt does not represent a scope. \ s{ ( "scope-name" -- ) "s-brace" Parse scope-name delimited by spaces. \ Find scope-name in the search order and perform OPEN-SCOPE. \ This is an immediate word. \ }s ( -- ) "closing-brace-s" Close the scope, that is, remove from \ the search order all word lists associated with the last opened scope. \ This is an immediate word. \ Ambiguous conditions: \ - In the process of removing the word lists, the search order \ reaches such a state that the name }s is not visible, or \ some different functionality is visible under the name }s \ - The execution token for }s is executed when the search order is \ in a different state than at the moment of finding }s \ - The state of the search order is different than what was established \ by OPEN-SCOPE or s{ \ ====================================== \ 3. Reference implementations (I think, you need only one of them) \ --- choosing the implementation --- \ There are 4 implementations, the most laconic is #4, \ while #3 is VOCABULARY-based and probably most convenient (but having \ the longest source too). \ If you do not need extension scopes, you may easily remove them from #1 and #2. 4 constant RI-of-choice cr .( RI-of-choice=) RI-of-choice . cr \ ====================================== \ 3.1. Reference Implementation 1 \ In this implementation, the behaviour of a SCOPE is to add the corresponding \ word list(s) to the search order. Each scope has its own }s, the }s from \ parent scope is searched at run-time. RI-of-choice 1 = [IF] : order-depth ( -- n ) get-order dup >r 0 ?do drop loop r> ; : >order ( wid -- ) >r get-order r> swap 1+ set-order ; : add-definition ( wid addr len -- ) rot get-current swap set-current >r evaluate r> set-current ; : scope ( "name" -- ) wordlist dup S" : }s previous ; immediate" add-definition create , does> @ >order ; : same-scope ( xt "name" -- ) create , does> @ execute ; : open-scope ( xt -- ) order-depth >r execute order-depth r> > 0= abort" expected a scope"; : s{ ( "name" -- ) ' open-scope ; immediate : extension-scope ( xt "name" -- ) wordlist dup [ char | parse : }s previous s" }s" evaluate ; immediate|] sliteral add-definition create , , does> 2@ >r open-scope r> >order ; [ELSE] \ ====================================== \ 3.2. Reference Implementation 2 \ In this implementation, a SCOPE leaves the word lists on the data stack. \ Each scope has its own }s, the }s from parent scope is searched at compile-time. RI-of-choice 2 = [IF] 315 constant scope-tag : ?scope scope-tag xor abort" expected a scope"; : open-scope ( xt -- ) >r get-order depth - r> swap >r execute ?scope r> depth + set-order ; : scope wordlist get-current swap set-current S" : }s previous ; immediate" evaluate get-current swap set-current scope-tag 2constant ; : same-scope >r : r> compile, postpone ; ; : extension-scope ( xt "name" -- ) wordlist get-current swap set-current over open-scope S" : }s previous postpone }s ; immediate }s" evaluate get-current swap set-current ( xt wid ) create , , does> 2@ >r execute ?scope r> scope-tag ; : s{ ( "name" -- ) ' open-scope ; immediate [ELSE] \ ====================================== \ 3.3. Reference Implementation 3 \ In this implementation, SCOPE is VOCABULARY, which means that it can be \ correctly displayed by ORDER on any system. Vocabularies contain \ attributes (definitions) used while opening and closing the scopes. \ It does not even use GET-ORDER/SET-ORDER! But there are 7 auxiliary definitions. RI-of-choice 3 = [IF] only forth also definitions : order-top get-current definitions get-current swap set-current ; : add-definition ( wid addr len -- ) rot get-current swap set-current >r evaluate r> set-current ; vocabulary dummy-voc dummy-voc order-top forth constant dummy-wl : execute-scope ( xt -- ) also dummy-voc execute order-top dummy-wl = abort" scope expected" ; : scope>wl ( xt -- wid ) execute-scope order-top previous ; : get-vocs/scope ( wid -- n ) S" vocs/scope" rot search-wordlist if execute else 1 then ; : scope vocabulary ; : same-scope >r : r> compile, postpone ; ; : open-scope ( xt -- ) dup scope>wl S" parent-scope" rot search-wordlist if recurse then execute-scope ; : extension-scope dup scope>wl get-vocs/scope 1+ ( xt n ) >in @ vocabulary >in ! ' scope>wl S" constant vocs/scope same-scope parent-scope" add-definition ; : s{ ( "name" -- ) ' open-scope ; immediate : }s order-top get-vocs/scope 0 ?do previous loop ; immediate [ELSE] \ ====================================== \ 3.4. Reference Implementation 4 \ In this implementation, a SCOPE modifies the array of word lists \ left on the stack by GET-ORDER. This is the most laconic implementation. RI-of-choice 4 = [IF] : scope-closer create immediate , does> @ 0 ?do previous loop ; : execute-scope ( xn .. x0 n xt -- xn .. x0 ym .. y0 n+m ) over depth - >r execute r> over depth - <> abort" expected a scope" ; : do-scope does> 2@ >r execute r> swap 1+ ; : extension-scope wordlist 2dup create , , do-scope get-current >r set-current 0 swap execute-scope dup 0 ?do nip loop 1+ S" scope-closer }s" evaluate r> set-current ; : scope ['] noop extension-scope ; : same-scope >r : r> compile, postpone ; ; : s{ ' >r get-order r> execute-scope set-order ; immediate [THEN] [THEN] [THEN] [THEN] \ ====================================== \ 4. Example code: lists of strings and integers 1 [IF] cr .( == example: lists ==) cr .( starting: ) cr order cr .s \ define a simple field : SFIELD ( offset "name" -- ) ( name: addr -- addr+offset ) CREATE DUP , DOES> @ + ; scope list s{ list definitions 0 sfield next cell+ : .next next @ ; : !next next ! ; }s definitions constant /listelem cr .( /listelem = ) /listelem . : reverse-list ( head -- head' ) 0 swap begin dup while ( prev this ) s{ list dup dup .next ( prev this this next ) 2swap !next }s repeat drop ; ' list extension-scope intlist /listelem s{ intlist definitions sfield data cell+ : .data data @ ; : !data data ! ; }s definitions constant /intlist-elem cr .( /intlist-elem = ) /intlist-elem . : int-elem ( tail x -- head ) align here /intlist-elem allot >r s{ intlist r@ !data r@ !next }s r> ; : print-intlist ( head -- ) begin dup while s{ intlist dup .data . .next }s repeat drop ; variable my-intlist 0 10 int-elem 20 int-elem 30 int-elem 40 int-elem my-intlist ! cr .( int list: ) my-intlist @ print-intlist my-intlist @ reverse-list my-intlist ! cr .( reverse int list: ) my-intlist @ print-intlist ' list extension-scope stringlist /listelem s{ stringlist definitions sfield length cell+ sfield data : .data dup data swap length @ ; : .length length @ ; : !length length ! ; }s definitions constant /stringlist-base cr .( /stringlist-base = ) /stringlist-base . : string-elem ( tail addr len -- head ) align here over /stringlist-base + allot >r s{ stringlist r@ !length r@ data r@ .length cmove r@ !next }s r> ; : print-stringlist ( head -- ) begin dup while s{ stringlist dup .data type space .next }s repeat drop ; variable my-stringlist 0 S" first" string-elem S" second" string-elem S" third" string-elem S" fourth" string-elem my-stringlist ! cr .( string list: ) my-stringlist @ print-stringlist my-stringlist @ reverse-list my-stringlist ! cr .( reverse string list: ) my-stringlist @ print-stringlist cr .( finishing: ) cr order cr .s [THEN] \ ====================================== \ 5. Functionality tester \ --- tester -- \ auxiliary definitions 1 [IF] cr .( testing... ) cr only forth also definitions : please" postpone s" postpone evaluate ; immediate : odepth get-order dup 0 ?do nip loop ; : eq? 2dup <> if cr ." mismatch:" swap . . order .s 1 abort" mismatch" then 2drop ; odepth constant od0 depth constant sd0 sd0 [IF] cr .( *** WARNING *** stack not empty: ) .s cr [THEN] \ --- tester -- \ outside of any scopes -1 constant x -2 constant yy : no-s1 please" -1 x eq?" ; : no-s2 please" -2 yy eq?" ; : outside please" odepth od0 eq? depth sd0 eq? -1 x eq? -2 yy eq?" please" get-current forth-wordlist eq?"; \ --- tester -- \ 2 basic scopes outside scope s1 s{ s1 definitions 1 constant x 10 constant y 100 constant z }s definitions outside scope s2 s{ s2 definitions 20001 constant xx 20010 constant yy 20100 constant zz }s definitions : in-s1 please" ( in-s1) x 1 eq? y 10 eq? z 100 eq? 11 t eq? " ; : in-s2 please" ( in-s2) 20001 xx eq? 20010 yy eq? 20100 zz eq?" ; \ --- tester -- \ alias and extension scopes ' s1 same-scope s1' ' s1' extension-scope s1a ' s1a extension-scope s1b ' s2 extension-scope s2a ' s2a same-scope s2a' ' s2 same-scope s2' s{ s1a definitions x 1+ constant x1 12 constant y }s definitions s{ s1' definitions 11 constant t }s definitions s{ s2a definitions xx 1+ constant xx1 120 constant yy }s definitions s{ s1b definitions x1 1+ constant x2 14 constant y }s definitions : in-s1a please" ( in-s1a) x 1 eq? 2 x1 eq? y 12 eq? z 100 eq? 11 t eq?"; : in-s1b please" ( in-s1a) x 1 eq? 2 x1 eq? 3 x2 eq? y 14 eq? z 100 eq? 11 t eq?"; : in-s2a please" ( in-s2a) 20001 xx eq? 20002 xx1 eq? 120 yy eq? 20100 zz eq?"; \ --- tester -- \ testing: no nested scopes outside s{ s1 in-s1 no-s2 }s outside s{ s2 in-s2 no-s1 }s outside s{ s1' in-s1 no-s2 }s outside s{ s1a in-s1a no-s2 }s outside s{ s1b in-s1b no-s2 }s outside s{ s2a in-s2a no-s1 }s outside s{ s2a' in-s2a no-s1 }s \ --- tester -- \ testing: nested basic scopes outside s{ s1 in-s1 no-s2 s{ s1 in-s1 no-s2 }s in-s1 no-s2 }s outside s{ s1' in-s1 no-s2 s{ s1 in-s1 no-s2 }s in-s1 no-s2 }s outside s{ s2 in-s2 no-s1 s{ s1 in-s1 in-s2 }s in-s2 no-s1 }s outside s{ s1 in-s1 no-s2 s{ s2 in-s1 in-s2 }s in-s1 no-s2 }s outside s{ s2' in-s2 no-s1 s{ s1' in-s1 in-s2 }s in-s2 no-s1 }s outside s{ s1' in-s1 no-s2 s{ s2' in-s1 in-s2 }s in-s1 no-s2 }s \ --- tester -- \ testing: nested basic and extension scopes outside s{ s1a in-s1a no-s2 s{ s1 in-s1 no-s2 }s in-s1a no-s2 }s outside s{ s1 in-s1 no-s2 s{ s1a in-s1a no-s2 }s in-s1 no-s2 }s outside s{ s2a' in-s2a no-s1 s{ s2 in-s2 no-s1 }s in-s2a no-s1 }s outside s{ s2 in-s2 no-s1 s{ s2a' in-s2a no-s1 }s in-s2 no-s1 }s \ --- tester -- \ testing: nested extension scopes outside s{ s1a in-s1a no-s2 s{ s1a in-s1a no-s2 }s in-s1a no-s2 }s outside s{ s1b in-s1b no-s2 s{ s1b in-s1b no-s2 }s in-s1b no-s2 }s outside s{ s2a in-s2a no-s1 s{ s2a in-s2a no-s1 }s in-s2a no-s1 }s outside s{ s2a in-s2a no-s1 s{ s2a' in-s2a no-s1 }s in-s2a no-s1 }s outside s{ s2a' in-s2a no-s1 s{ s2a in-s2a no-s1 }s in-s2a no-s1 }s outside s{ s2a' in-s2a no-s1 s{ s2a' in-s2a no-s1 }s in-s2a no-s1 }s outside s{ s1a in-s1a no-s2 s{ s2a' in-s2a in-s1a }s in-s1a no-s2 }s outside s{ s1b in-s1b no-s2 s{ s2a' in-s2a in-s1b }s in-s1b no-s2 }s outside s{ s2a' in-s2a no-s1 s{ s1a in-s2a in-s1a }s in-s2a no-s1 }s outside s{ s2a' in-s2a no-s1 s{ s1b in-s2a in-s1b }s in-s2a no-s1 }s outside s{ s1a in-s1a no-s2 s{ s1b in-s1b no-s2 }s in-s1a no-s2 }s outside s{ s1a in-s1a no-s2 s{ s2a' in-s2a in-s1a s{ s1b in-s2a in-s1b }s in-s2a in-s1a }s in-s1a no-s2 }s outside .( tests passed) cr [THEN] cr .( RI-of-choice=) RI-of-choice . cr \ ====================================== \ end of file |
From: ruvim <ru...@us...> - 2015-12-31 01:10:39
|
Update of /cvsroot/spf/devel/~pinka/spf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3040 Modified Files: os-detection.f Log Message: UPD spf os-detection -- mention OS-TYPE for search Index: os-detection.f =================================================================== RCS file: /cvsroot/spf/devel/~pinka/spf/os-detection.f,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- os-detection.f 18 Apr 2014 17:43:29 -0000 1.4 +++ os-detection.f 31 Dec 2015 01:10:36 -0000 1.5 @@ -104,6 +104,11 @@ \ what about OS-ABI or OS-KERNEL ? +: OS-TYPE ( -- d-txt-name ) OS-NAME ; \ alias + \ What variant should be preferred? + \ Cons: the phrase OS-TYPE TYPE sounds ambiguous ;) + \ In any case, this name should be mentioned here for search. + : IS-OS-BRANCH ( d-txt-family -- flag ) OS-BRANCH EQUAL ; : IS-OS-FAMILY ( d-txt-family -- flag ) OS-FAMILY EQUAL ; |
From: ruvim <ru...@us...> - 2015-12-28 01:28:47
|
Update of /cvsroot/spf/samples/ans In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17512 Modified Files: chess.f Log Message: FIX ans chess -- bugfix in NOTFOUND Index: chess.f =================================================================== RCS file: /cvsroot/spf/samples/ans/chess.f,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- chess.f 25 Jan 2004 13:45:24 -0000 1.3 +++ chess.f 28 Dec 2015 01:28:44 -0000 1.4 @@ -101,7 +101,7 @@ THEN R> BASE ! ELSE - THROW + 2DROP THROW THEN ELSE RDROP RDROP THEN |
From: ruvim <ru...@us...> - 2015-12-27 00:18:05
|
Update of /cvsroot/spf/lib In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24793/lib Modified Files: SPF.ERR Log Message: fix typo Index: SPF.ERR =================================================================== RCS file: /cvsroot/spf/lib/SPF.ERR,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- SPF.ERR 27 Dec 2015 00:14:54 -0000 1.2 +++ SPF.ERR 27 Dec 2015 00:18:03 -0000 1.3 @@ -161,7 +161,7 @@ -2009 Library not found -2010 Procedure not found -2011 Unknown vocabulary --2301 macroopt: ¥¯à¨¥¬«¨¬ë© OP0 ¯¥à¥¤ ¢ë¯®«¥¨¥¬ SetOP +-2301 macroopt: ¥¯à¨¥¬«¥¬ë© OP0 ¯¥à¥¤ ¢ë¯®«¥¨¥¬ SetOP 0xC0000001L UNSUCCESSFUL 0x00000000L WAIT_0 0x00000080L ABANDONED_WAIT_0 |
From: ruvim <ru...@us...> - 2015-12-27 00:14:56
|
Update of /cvsroot/spf/lib In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24636/lib Modified Files: SPF.ERR SPF.eng.ERR Log Message: fix incorrect initialization of macroopt, add protection Index: SPF.ERR =================================================================== RCS file: /cvsroot/spf/lib/SPF.ERR,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- SPF.ERR 15 Nov 2006 19:42:35 -0000 1.1 +++ SPF.ERR 27 Dec 2015 00:14:54 -0000 1.2 @@ -161,6 +161,7 @@ -2009 Library not found -2010 Procedure not found -2011 Unknown vocabulary +-2301 macroopt: ¥¯à¨¥¬«¨¬ë© OP0 ¯¥à¥¤ ¢ë¯®«¥¨¥¬ SetOP 0xC0000001L UNSUCCESSFUL 0x00000000L WAIT_0 0x00000080L ABANDONED_WAIT_0 Index: SPF.eng.ERR =================================================================== RCS file: /cvsroot/spf/lib/SPF.eng.ERR,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- SPF.eng.ERR 15 Nov 2006 19:42:35 -0000 1.1 +++ SPF.eng.ERR 27 Dec 2015 00:14:54 -0000 1.2 @@ -161,6 +161,7 @@ -2009 Library not found -2010 Procedure not found -2011 Unknown vocabulary +-2301 macroopt: unacceptable OP0 before executing SetOP 0xC0000001L UNSUCCESSFUL 0x00000000L WAIT_0 0x00000080L ABANDONED_WAIT_0 |
From: ruvim <ru...@us...> - 2015-12-26 19:25:39
|
Update of /cvsroot/spf/src In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv11861 Modified Files: tc_spf.F Log Message: bugfix, remove duplicate SetOP in +LOOP ; see also compiler/spf_immed_loop.f # +LOOP Index: tc_spf.F =================================================================== RCS file: /cvsroot/spf/src/tc_spf.F,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- tc_spf.F 8 Feb 2012 18:25:17 -0000 1.31 +++ tc_spf.F 26 Dec 2015 19:25:37 -0000 1.32 @@ -700,8 +700,7 @@ ELSE 4 - 0F C, 81 C, , \ jno near THEN SetOP - - SetOP 0x0C24648D , \ lea esp, 0xC [esp] + 0C24648D , \ lea esp, 0xC [esp] *DP@ SWAP ! ; IMMEDIATE |
From: ruvim <ru...@us...> - 2015-12-26 14:11:05
|
Update of /cvsroot/spf/src In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31536 Modified Files: spf_init.f Log Message: remove obsolete workaround for some macroopt issue Index: spf_init.f =================================================================== RCS file: /cvsroot/spf/src/spf_init.f,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- spf_init.f 9 Mar 2012 05:21:42 -0000 1.51 +++ spf_init.f 26 Dec 2015 14:11:03 -0000 1.52 @@ -203,7 +203,6 @@ : (INIT) [THEN] SetOP - HERE OP0 OpBuffSize + ! NATIVE-LINES 0 TO H-STDLOG CONSOLE-HANDLES |
From: Andrey C. <sp...@us...> - 2015-12-04 16:32:53
|
Update of /cvsroot/spf/devel/~ac/lib/lin/lang/python In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv2233/python Log Message: Directory /cvsroot/spf/devel/~ac/lib/lin/lang/python added to the repository |
From: Andrey C. <sp...@us...> - 2015-12-04 16:23:02
|
Update of /cvsroot/spf/devel/~ac/lib/lin/mime In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv1875 Modified Files: mail-decode.f Log Message: inline parts Index: mail-decode.f =================================================================== RCS file: /cvsroot/spf/devel/~ac/lib/lin/mime/mail-decode.f,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- mail-decode.f 4 Oct 2012 00:21:04 -0000 1.28 +++ mail-decode.f 4 Dec 2015 16:22:59 -0000 1.29 @@ -354,7 +354,7 @@ USER uAllowMpAlt VARIABLE vCalendarRenderer -: MessageHtml { mp s \ tf_dq tf_db tf_pl -- addr u } +: MessageHtml { mp s \ tf_dq tf_db tf_pl istext -- addr u } \ Âíèìàíèå! Ïðè íå-windows-1251 êîäèðîâêàõ ñîîáùåíèå ïåðåêîäèðóåòñÿ íà \ ìåñòå (íî êîäèðîâêà â çàãîëîâêå íå ìåíÿåòñÿ), ïîýòîìó äâàæäû äëÿ îäíîãî mp @@ -372,8 +372,13 @@ IF mp mpSubTypeAddr @ mp mpSubTypeLen @ S" alternative" COMPARE-U 0= IF uMpAltCnt 1+! THEN mp mpParts @ s RECURSE 2DROP uMpAltCnt 0! - ELSE mp mpTypeAddr @ mp mpTypeLen @ 2DUP - S" text" COMPARE-U 0= ROT ROT S" message" COMPARE-U 0= OR + ELSE mp mpTypeAddr @ mp mpTypeLen @ + 2DUP + S" text" COMPARE-U 0= ROT ROT + S" message" COMPARE-U 0= + OR DUP -> istext + mp mpCdispLen @ 0= AND + mp mpCdispAddr @ mp mpCdispLen @ S" inline" SEARCH NIP NIP istext AND OR IF mp mpBodyAddr @ mp mpBodyLen @ @@ -453,7 +458,7 @@ " </table>{CRLF}" s S+ s DUP _LASTMSGHTML ! STR@ ; -: MessageHtml2 { mp s \ tf_dq tf_db tf_pl -- addr u } +: MessageHtml2 { mp s \ tf_dq tf_db tf_pl istext -- addr u } \ Âíèìàíèå! Ïðè íå-windows-1251 êîäèðîâêàõ ñîîáùåíèå ïåðåêîäèðóåòñÿ íà \ ìåñòå (íî êîäèðîâêà â çàãîëîâêå íå ìåíÿåòñÿ), ïîýòîìó äâàæäû äëÿ îäíîãî mp @@ -469,8 +474,13 @@ \ " <tr><td>" s S+ mp mpIsMultipart @ mp mpIsMessage OR mp mpParts @ AND IF mp mpParts @ s RECURSE 2DROP - ELSE mp mpTypeAddr @ mp mpTypeLen @ 2DUP - S" text" COMPARE-U 0= ROT ROT S" message" COMPARE-U 0= OR + ELSE mp mpTypeAddr @ mp mpTypeLen @ + 2DUP + S" text" COMPARE-U 0= ROT ROT + S" message" COMPARE-U 0= + OR DUP -> istext + mp mpCdispLen @ 0= AND + mp mpCdispAddr @ mp mpCdispLen @ S" inline" SEARCH NIP NIP istext AND OR IF mp mpBodyAddr @ mp mpBodyLen @ |
From: Andrey C. <sp...@us...> - 2015-12-04 15:39:16
|
Update of /cvsroot/spf/devel/~ac/lib/lin/sql In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32564 Modified Files: sqlite3.f Log Message: ÐополниÑелÑнÑй конÑÑÐ¾Ð»Ñ Ð¾Ñибок. Index: sqlite3.f =================================================================== RCS file: /cvsroot/spf/devel/~ac/lib/lin/sql/sqlite3.f,v retrieving revision 1.45 retrieving revision 1.46 diff -u -d -r1.45 -r1.46 --- sqlite3.f 23 Sep 2011 11:02:33 -0000 1.45 +++ sqlite3.f 4 Dec 2015 15:39:13 -0000 1.46 @@ -202,6 +202,7 @@ db3_exec_CNT 1+! ms@ -> tick BEGIN addr u sqh db3_prepare -> ppStmt -> pzTail + addr u + C@ 0<> IF ." DB3 command corrupted (prepare). [" addr u TYPE ." ]" CR THEN ppStmt db3_bind TRUE 0 -> i @@ -214,6 +215,7 @@ DROP 100 PAUSE \ ^ waitcnt 1+! REPEAT \ waitcnt DB3_MAX_WAIT @ = IF ." db3_exec:maxwait:" addr u TYPE CR 30114 THROW THEN + addr u + C@ 0<> IF ." DB3 command corrupted (step)." CR THEN DUP 1 SQLITE_ROW WITHIN IF ppStmt ['] db3_fin CATCH ?DUP IF NIP NIP DB3_DEBUG @ IF ." DB3_FIN_failed" DUP . THEN THEN @@ -226,6 +228,7 @@ WHILE i 1+ -> i i par ppStmt xt EXECUTE \ âîçâðàùàåò ôëàã ïðîäîëæåíèÿ + addr u + C@ 0<> IF ." DB3 command corrupted (execute)." CR THEN REPEAT DB3_DEBUG @ @@ -236,7 +239,17 @@ THEN ppStmt db3_fin - pzTail ?DUP IF ASCIIZ> ELSE S" " THEN -> u -> addr + addr u + C@ 0<> IF ." DB3 command corrupted (fin)." CR THEN + pzTail ?DUP IF + addr u + C@ 0<> + IF . DROP " DB3 command corrupted (tail)." CR S" " + ELSE + DUP addr u OVER + 1+ WITHIN 0= + IF DROP ." DB3 comand tail isn't in range." CR S" " + ELSE ASCIIZ> THEN + THEN + ELSE S" " THEN + -> u -> addr u 3 < UNTIL ms@ tick - db3_exec_TICKS +! ; |
From: ruvim <ru...@us...> - 2015-12-01 14:53:46
|
Update of /cvsroot/spf/devel/~pinka/model/trans In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31388 Modified Files: trans.err Log Message: FIX model trans -- typo in error message Index: trans.err =================================================================== RCS file: /cvsroot/spf/devel/~pinka/model/trans/trans.err,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- trans.err 13 May 2012 02:34:14 -0000 1.4 +++ trans.err 1 Dec 2015 14:53:43 -0000 1.5 @@ -7,4 +7,4 @@ -5011 The element can not be postponed -5012 The element can only be postponed -5021 T-PAT The given mode of a template instantiation is unsupported --5321 Semantics is not found for given element in it's context +-5321 Semantics is not found for given element in its context |
From: ruvim <ru...@us...> - 2015-10-01 14:47:39
|
Update of /cvsroot/spf/devel/~pinka/lib/win In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv32167 Modified Files: file-link.utf8.f Log Message: FIX lib win file-link.utf8 -- missed null terminator Index: file-link.utf8.f =================================================================== RCS file: /cvsroot/spf/devel/~pinka/lib/win/file-link.utf8.f,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- file-link.utf8.f 1 Oct 2015 12:11:49 -0000 1.1 +++ file-link.utf8.f 1 Oct 2015 14:47:37 -0000 1.2 @@ -24,7 +24,7 @@ : COPY-FILE-HARDLINK ( d-src d-trg -- ior ) \ works only for regular files - DUP 2* RBUF UTF8>UTF16 2SWAP DUP 2* RBUF UTF8>UTF16 2SWAP + 1+ DUP 2* RBUF UTF8>UTF16 2SWAP 1+ DUP 2* RBUF UTF8>UTF16 2SWAP DROP NIP \ ASCIIZ 0 -ROT CreateHardLinkW ERR @@ -32,7 +32,7 @@ : COPY-FILE-SYMLINK ( d-src d-trg -- ior ) \ works only for regular files - DUP 2* RBUF UTF8>UTF16 2SWAP DUP 2* RBUF UTF8>UTF16 2SWAP + 1+ DUP 2* RBUF UTF8>UTF16 2SWAP 1+ DUP 2* RBUF UTF8>UTF16 2SWAP DROP NIP \ ASCIIZ 0 -ROT CreateSymbolicLinkW ERR |
From: ruvim <ru...@us...> - 2015-10-01 12:11:51
|
Update of /cvsroot/spf/devel/~pinka/lib/win In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24457 Added Files: file-link.utf8.f Log Message: ADD lib win -- file-link.utf8.f --- NEW FILE: file-link.utf8.f --- REQUIRE [UNDEFINED] lib/include/tools.f REQUIRE UTF8>UTF16 ~pinka/lib/win/utf16.f REQUIRE RBUF ~pinka/spf/rbuf.f [UNDEFINED] CreateHardLinkW [IF] WINAPI: CreateHardLinkW kernel32.dll [THEN] ( BOOL WINAPI CreateHardLink( __in LPCTSTR lpFileName, __in LPCTSTR lpExistingFileName, __reserved LPSECURITY_ATTRIBUTES lpSecurityAttributes ) [UNDEFINED] CreateSymbolicLinkW [IF] WINAPI: CreateSymbolicLinkW kernel32.dll [THEN] ( BOOLEAN WINAPI CreateSymbolicLink __in LPTSTR lpSymlinkFileName, __in LPTSTR lpTargetFileName, __in DWORD dwFlags ) : COPY-FILE-HARDLINK ( d-src d-trg -- ior ) \ works only for regular files DUP 2* RBUF UTF8>UTF16 2SWAP DUP 2* RBUF UTF8>UTF16 2SWAP DROP NIP \ ASCIIZ 0 -ROT CreateHardLinkW ERR ; : COPY-FILE-SYMLINK ( d-src d-trg -- ior ) \ works only for regular files DUP 2* RBUF UTF8>UTF16 2SWAP DUP 2* RBUF UTF8>UTF16 2SWAP DROP NIP \ ASCIIZ 0 -ROT CreateSymbolicLinkW ERR ; \ The name and the stack is in a manner of the COPY-FILE, COPY-FILE-OVER, etc |
From: ruvim <ru...@us...> - 2015-10-01 11:46:32
|
Update of /cvsroot/spf/devel/~pinka/lib/win In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv23266 Modified Files: utf16.f Log Message: ADD lib win utf16 -- converting for UTF8 Index: utf16.f =================================================================== RCS file: /cvsroot/spf/devel/~pinka/lib/win/utf16.f,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- utf16.f 14 Jun 2013 05:55:19 -0000 1.1 +++ utf16.f 1 Oct 2015 11:46:30 -0000 1.2 @@ -28,3 +28,23 @@ \ m.b.: ANSI>W and W>ANSI ? \ see also: ~ac/lib/win/utf8.f + + + +: UTF8>UTF16 ( d-txt1 d-buf1 -- d-buf2 ) \ AKA Wide char + OVER >R + SWAP 2SWAP SWAP + OVER 0= IF 2DROP 2DROP R> 0 EXIT THEN + 0 ( flags ) 65001 ( CP_UTF8 ) MultiByteToWideChar + DUP ERR THROW + 2* R> SWAP +; + +: UTF16>UTF8 ( d-txt1 d-buf1 -- d-buf2 ) + 2>R 0 0 2SWAP + 2/ SWAP R> R@ 2SWAP + OVER 0= IF 2DROP 2DROP R> 0 EXIT THEN + 0 ( flags ) 65001 ( CP_UTF8 ) WideCharToMultiByte + DUP ERR THROW + R> SWAP +; |
From: ruvim <ru...@us...> - 2015-09-06 21:27:08
|
Update of /cvsroot/spf/devel/~pinka/model/data In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3017 Modified Files: zstack.L1.dynamic.f.xml Log Message: UPD model data zstack -- use unique exception codes Index: zstack.L1.dynamic.f.xml =================================================================== RCS file: /cvsroot/spf/devel/~pinka/model/data/zstack.L1.dynamic.f.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- zstack.L1.dynamic.f.xml 24 Mar 2010 19:33:29 -0000 1.1 +++ zstack.L1.dynamic.f.xml 6 Sep 2015 21:27:06 -0000 1.2 @@ -22,8 +22,8 @@ <cell name="Z9"/> <def name="?ZP" ds=" -- "> - Z0 @ ZP@ ULT <if> ABORT </if> - ZP@ Z9 @ ULT <if> ABORT </if> + Z0 @ ZP@ ULT <if> -6004 THROW <rem> Z stack underflow </rem></if> + ZP@ Z9 @ ULT <if> -6003 THROW <rem> Z stack overflow </rem></if> </def> <slot> limit zbuf </slot> |
From: ruvim <ru...@us...> - 2015-09-06 21:25:17
|
Update of /cvsroot/spf/devel/~pinka/spf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv2930 Modified Files: debug-throw.f Log Message: UPD spf debug-throw -- wrap for ABORT as well Index: debug-throw.f =================================================================== RCS file: /cvsroot/spf/devel/~pinka/spf/debug-throw.f,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- debug-throw.f 28 Sep 2009 10:46:38 -0000 1.6 +++ debug-throw.f 6 Sep 2015 21:25:14 -0000 1.7 @@ -2,6 +2,8 @@ \ Ïîäêëþ÷àòü, êîãäà íåïîíÿòíî, â êàêîì ìåñòå èñêëþ÷åíèå ïðîèñõîäèò: +\ see also: throw-dump.f + : THROW_ORIG THROW ; : THROW DUP 0= IF THROW EXIT THEN @@ -20,3 +22,7 @@ THROW ; + +: ABORT + -1 THROW +; |
From: ruvim <ru...@us...> - 2015-08-08 20:35:36
|
Update of /cvsroot/spf/devel/~pinka/model/protocol/http/headers-parse In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv20717/headers-parse Modified Files: request-accept.f.xml Log Message: FAC model protocol http headers-parse request-accept -- rename bad name Index: request-accept.f.xml =================================================================== RCS file: /cvsroot/spf/devel/~pinka/model/protocol/http/headers-parse/request-accept.f.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- request-accept.f.xml 8 Aug 2015 14:42:09 -0000 1.2 +++ request-accept.f.xml 8 Aug 2015 20:35:34 -0000 1.3 @@ -21,7 +21,7 @@ </def> -<def name="accept-language-first" ds=" -- d-lang "> +<def name="get-accept-language-first" ds=" -- d-lang "> <rem> en-us,en;q=0.5 </rem> <rem> en,ru;q=0.5 </rem> |
From: ruvim <ru...@us...> - 2015-08-08 14:42:11
|
Update of /cvsroot/spf/devel/~pinka/model/protocol/http/headers-parse In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv4102/headers-parse Modified Files: request-accept.f.xml Log Message: FIX model protocol http headers-parse -- 'http' qualifier must not be used here Index: request-accept.f.xml =================================================================== RCS file: /cvsroot/spf/devel/~pinka/model/protocol/http/headers-parse/request-accept.f.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- request-accept.f.xml 22 Nov 2013 21:45:24 -0000 1.1 +++ request-accept.f.xml 8 Aug 2015 14:42:09 -0000 1.2 @@ -17,7 +17,7 @@ </def> <def name="is-accept-type" ds=" d-type -- flag "> - `Accept http::h@ 2SWAP CONTAINS-ACCEPT-TYPE + `Accept h@ 2SWAP CONTAINS-ACCEPT-TYPE </def> @@ -25,7 +25,7 @@ <rem> en-us,en;q=0.5 </rem> <rem> en,ru;q=0.5 </rem> - `Accept-Language http::h@ + `Accept-Language h@ `, SPLIT <if> 2DROP </if> `; SPLIT <if> 2DROP </if> |
From: ruvim <ru...@us...> - 2015-08-08 14:33:10
|
Update of /cvsroot/spf/devel/~pinka/model/protocol/http In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3719 Modified Files: read-basic.f.xml Log Message: FAC model protocol http -- move the check of header folding Index: read-basic.f.xml =================================================================== RCS file: /cvsroot/spf/devel/~pinka/model/protocol/http/read-basic.f.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- read-basic.f.xml 23 Dec 2013 00:30:21 -0000 1.9 +++ read-basic.f.xml 8 Aug 2015 14:33:07 -0000 1.10 @@ -24,10 +24,9 @@ <def name="read-headers" ds=" -- "> next-line? <unless><exit/></unless><!-- no more data --> DUP <unless> 2DROP <exit/></unless><!-- end of headers reached --> - TEST-HEAD-WHITE <if><logS>TEST-HEAD-WHITE</logS> `#400 STHROW </if><!-- don't support a multiple lines value (see 4.2 Message Headers) --> <rem> TODO: static buffer for the whole HTTP header </rem> - parse-header? <unless><logS>parse-header</logS> `#400 STHROW </unless><!-- header name is not recognize, bad request --> - <again/> + parse-header? <if><again/></if> + <logS>error, parse-header</logS> `#400 STHROW <!-- bad header format, bad request --> </def> </g> |
From: ruvim <ru...@us...> - 2015-08-08 14:33:09
|
Update of /cvsroot/spf/devel/~pinka/model/protocol/http/headers-parse In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3719/headers-parse Modified Files: storage.f.xml Log Message: FAC model protocol http -- move the check of header folding Index: storage.f.xml =================================================================== RCS file: /cvsroot/spf/devel/~pinka/model/protocol/http/headers-parse/storage.f.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- storage.f.xml 23 Oct 2011 12:20:18 -0000 1.2 +++ storage.f.xml 8 Aug 2015 14:33:07 -0000 1.3 @@ -41,7 +41,11 @@ </rem> <def name="parse-header?" ds=" a u -- a u false | true "> - `: SPLIT DUP <unless><exit/></unless> DROP FINE-HEAD 2SWAP h! TRUE + `: SPLIT <return-false/> FINE-HEAD 2SWAP OVER >R h! R> B@ 0x20 UGT + <rem> + Header line must not start with whitespace (namely 0x20 or 0x09 by the spec). + Note that multiple lines value (line folding) is deprecated by rfc7230 # 3.2.4 + </rem> </def> <def name="has-header" ds=" a u -- flag "> |
From: ruvim <ru...@us...> - 2015-08-06 15:08:49
|
Update of /cvsroot/spf/devel/~pinka/lib In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13551 Modified Files: sockets-ext.f Log Message: FFA lib win sockets-ext -- minor refactoring, add WRITE-SOCKET-FILE-PART Index: sockets-ext.f =================================================================== RCS file: /cvsroot/spf/devel/~pinka/lib/sockets-ext.f,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- sockets-ext.f 14 Jun 2013 01:52:57 -0000 1.7 +++ sockets-ext.f 6 Aug 2015 15:08:47 -0000 1.8 @@ -1,4 +1,6 @@ +REQUIRE [UNDEFINED] lib/include/tools.f REQUIRE ReadSocket ~ac/lib/win/winsock/SOCKETS.F +REQUIRE OPEN-FILE-SHARED-DELETE ~ac/lib/win/file/share-delete.f : READOUT-SOCK ( a u1 h -- a u2 ior ) \ on likeness READOUT-FILE >R OVER SWAP R> ( a a h1 h ) @@ -14,9 +16,22 @@ \ -- â áàçîâîì ~ac/lib/win/winsock/SOCKETS.F -REQUIRE PutFileTr ~ac/lib/win/winsock/transmit.f +[UNDEFINED] TransmitFile [IF] + WINAPI: TransmitFile mswsock.dll +[THEN] +\ see also: ~ac/lib/win/winsock/transmit.f -: WRITE-SOCK-FILE ( h sock -- ior ) PutFileTr ; +: WRITE-SOCKET-FILE ( h sock -- ior ) \ m.b. WRITE-SOCKET-FILE-ENTIRELY + 2>R 0 0 0 0 0 2R> TransmitFile + IF 0 EXIT THEN WSAGetLastError +; +: WRITE-SOCKET-FILE-PART ( u h sock -- ior ) \ m.b. WRITE-SOCKET-FILE-PARTIALLY + 2>R >R 0 0 0 0 R> 2R> TransmitFile + IF 0 EXIT THEN WSAGetLastError + \ the file position is changed only in case it was not repositioned yet after open +; + +: WRITE-SOCK-FILE ( h sock -- ior ) WRITE-SOCKET-FILE ; \ file (data to send) should not be larger than 2,147,483,646 bytes \ TODO: \ Workstation and client versions of Windows [...] limiting the number of concurrent TransmitFile operations @@ -35,7 +50,6 @@ ; \ just aliases: -: WRITE-SOCKET-FILE ( h sock -- ior ) WRITE-SOCK-FILE ; : WRITE-SOCKET-FILENAME ( d-filename sock -- ior ) WRITE-SOCK-FILENAME ; ( -- discussion |
From: ruvim <ru...@us...> - 2015-08-05 00:14:20
|
Update of /cvsroot/spf/devel/~pinka/lib/win In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv20382 Added Files: file-info-size.f Log Message: ADD lib win file-info-size -- reliable version of FILENAME-SIZE with support for symlinks --- NEW FILE: file-info-size.f --- \ Reliably determine a file size \ get the size of a target file in case of symlink \ 2015-08-05 REQUIRE FILENAME-SYMLINK ~pinka/lib/win/file-info-symlink.f : FILENAME-SIZE ( d-txt-filename -- d-size | 0 0 ) \ it may throw ERROR_ACCESS_DENIED at the least 0. 2SWAP \ size is zero if the file is not exists LAMBDA{ ( 0 0 addr u data ) -ROT >R >R >R 2DROP R@ nFileSizeLow T@ R@ nFileSizeHigh T@ [ /CELL 8 < 0= ] [IF] 32 LSHIFT OR 0 [THEN] \ recombination in case of 64bits system 2DUP D0= IF R@ dwFileAttributes T@ FILE_ATTRIBUTE_REPARSE_POINT AND IF R@ dwReserved0 T@ IO_REPARSE_TAG_SYMLINK = IF \ file is symlink 2DROP RDROP R> R> R/O OPEN-FILE-SHARED THROW DUP >R FILE-SIZE THROW R> CLOSE-FILE THROW EXIT THEN THEN THEN RDROP RDROP RDROP } FOR-FILE1-PROPS ; \ TODO: throw error in case of the file is not found #maybe \ see also: ~ac/lib/win/file/filesize.f |
From: ruvim <ru...@us...> - 2015-06-26 21:08:50
|
Update of /cvsroot/spf/devel/~pinka/spf In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv20330/spf Modified Files: string-equal.f Log Message: FAC model forthproc -- renaming, 'EQUALS' as verb should be in the same form as 'CONTAINS' Index: string-equal.f =================================================================== RCS file: /cvsroot/spf/devel/~pinka/spf/string-equal.f,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- string-equal.f 13 May 2007 18:35:52 -0000 1.1 +++ string-equal.f 26 Jun 2015 21:08:48 -0000 1.2 @@ -1,12 +1,22 @@ \ 2006, 2007 -: CEQUAL ( c-addr1 u1 c-addr2 u2 -- flag ) \ counts in chars +REQUIRE NAMING ~pinka/spf/compiler/native-wordlist.f + +: CEQUALS ( c-addr1 u1 c-addr2 u2 -- flag ) \ counts in chars DUP 3 PICK <> IF 2DROP 2DROP FALSE EXIT THEN COMPARE 0= ; -: EQUAL ( c-addr1 u1 c-addr2 u2 -- flag ) \ counts in addres units (bytes) +: EQUALS ( c-addr1 u1 c-addr2 u2 -- flag ) \ counts in addres units (bytes) DUP 3 PICK <> IF 2DROP 2DROP FALSE EXIT THEN \ 2>R >CHARS 2R> >CHARS COMPARE 0= ; + +( The idea: + 'EQUALS' as verb should be in the same form as 'STARTS-WITH', 'ENDS-WITH', 'CONTAINS' +) + +\ aliases for back compatibility +S" EQUAL" ' EQUALS NAMING +S" CEQUAL" ' CEQUALS NAMING |