Update of /cvsroot/win32forth/win32forth-stc/src
In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv16864/win32forth-stc/src
Modified Files:
primhash.f
Added Files:
Class.f
Log Message:
gah: Bugfix to primhash plus partial class support (only allows BYTES type and object IVARS; no INT DINT SHORT or BYTE yet).
--- NEW FILE: Class.f ---
\ $Id: Class.f,v 1.1 2007/04/24 09:00:17 georgeahubert Exp $
\ --------------------------- Change Block -------------------------------
\
\ arm 15/08/2005 22:56:45
\ First version 0.1 STC based kernel
\
\
\
\ ------------------------- End Change Block -----------------------------
\
\ Experimental: a fully optimising, STC based, ANS Forth compliant kernel
\
\ Copyright [c] 2005 by Alex McDonald (alex at rivadpm dot com)
\ Dirk Busch (dirk at win32forth.org)
\ George Hubert (georgeahubert at yahoo.co.uk)
\ The original Win32Forth system was public domain; this kernel (and
\ currently the kernel alone) is GPL. Although the basic structure of
\ Win32Forth and many of its capabilities are employed in this code, most
[...1492 lines suppressed...]
: GetMethod { \ m0cfa -- -<method: object>- m0cfa } \ W32F Class
\ *G Return the xt of method. Used in interpretive mode or to create parsing words.
@word _msgFind 1 <> abort" Undefined Method"
TRUE to get-reference? \ tell do_message to return method
depth >r
execute to m0cfa \ execute do_message
depth r> <
if 0 \ if it was a class, object is NULL
then to obj-save m0cfa ;
: [GetMethod] ( compiling:- -<method: object>- -- ) ( runtime:- -- m0cfa ) \ W32F Class
\ *G Compile the xt of the method as a literal into the current definition. Compile only.
state @ >r postpone [
GetMethod r> if ] then
Postpone Literal ; Immediate
IN-APPLICATION
only forth also definitions
Index: primhash.f
===================================================================
RCS file: /cvsroot/win32forth/win32forth-stc/src/primhash.f,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** primhash.f 18 Apr 2007 09:13:04 -0000 1.2
--- primhash.f 24 Apr 2007 09:00:16 -0000 1.3
***************
*** 336,344 ****
: lit>OP ( n -- )
(comp-only) compilation> drop
! >r macro[ mov OP [UP], # r> ]macro ;
: lit+OP ( n -- )
(comp-only) compilation> drop
! >r macro[ add OP [UP], # r> ]macro ;
in-previous
--- 336,344 ----
: lit>OP ( n -- )
(comp-only) compilation> drop
! >r macro[ mov OP [UP], dword # r> ]macro ;
: lit+OP ( n -- )
(comp-only) compilation> drop
! >r macro[ add OP [UP], r@ 127 > if dword then # r> ]macro ;
in-previous
***************
*** 416,420 ****
then ;
))
! IN-APPLICATION
--- 416,422 ----
then ;
))
!
! in-previous
!
|