Re: Juggling system-compilation items

Liste des GroupesRevenir à cl forth 
Sujet : Re: Juggling system-compilation items
De : krishna.myneni (at) *nospam* ccreweb.org (Krishna Myneni)
Groupes : comp.lang.forth
Date : 11. Aug 2024, 04:29:14
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v99b6a$154bp$1@dont-email.me>
References : 1
User-Agent : Mozilla Thunderbird
On 8/9/24 09:05, Ruvim wrote:
Do you know a Forth system in which the following definition for "const" is compiled but does not work as expected?
  : const ( x "<spaces>name" -- )
   depth >r          ( x )                   ( R: n.depth )
   :                 ( x colon-sys )         ( R: n.depth )
   depth r> -        ( x colon-sys n.size )  ( R: )
   n>r               ( x )                   ( R: i*x n.size )
   postpone literal  (   )                   ( R: i*x n.size )
   nr>               ( colon-sys n.size )    ( R: )
   drop              ( colon-sys )
   postpone ;        (   )
;
  t{ 123 const foo -> }t
t{ foo -> 3 }t
  Note 3.1.5.1 System-compilation types <https://forth-standard.org/standard/usage#subsubsection.3.1.5.1>
  -- Ruvim
 
In kForth, for the code above, foo returns 123 which is what I expect.
--
Krishna
=== begin code ===
: N>R           \ xn .. x1 N -- ; R: -- x1 .. xn n
\ Transfer N items and count to the return stack.
   dup                   \ xn .. x1 N N --
   begin
     dup
   while
     rot r> swap >r >r   \ xn .. N N -- ; R: .. x1 --
     1-                  \ xn .. N 'N -- ; R: .. x1 --
   repeat
   drop                  \ N -- ; R: x1 .. xn --
   r> swap >r >r
;
: NR>           \ -- xn .. x1 N ; R: x1 .. xn N --
\ Pull N items and count off the return stack.
   r> r> swap >r dup
   begin
     dup
   while
     r> r> swap >r -rot
     1-
   repeat
   drop
;
: const ( x "<spaces>name" -- )
   depth >r          ( x )                   ( R: n.depth )
   :                 ( x colon-sys )         ( R: n.depth )
   depth r> -        ( x colon-sys n.size )  ( R: )
   n>r               ( x )                   ( R: i*x n.size )
   postpone literal  (   )                   ( R: i*x n.size )
   nr>               ( colon-sys n.size )    ( R: )
   drop              ( colon-sys )
   postpone ;        (   )
;
=== end code ===
=== begin test ===
123 const foo
  ok
foo .
123  ok
=== end test ===

Date Sujet#  Auteur
9 Aug 24 * Juggling system-compilation items15Ruvim
10 Aug 24 +* Re: Juggling system-compilation items3PMF
11 Aug 24 i`* Re: Juggling system-compilation items2Ruvim
11 Aug 24 i `- Re: Juggling system-compilation items1Ruvim
10 Aug 24 +* Re: Juggling system-compilation items2mhx
11 Aug 24 i`- Re: Juggling system-compilation items1Ruvim
11 Aug 24 +- Re: Juggling system-compilation items1Krishna Myneni
11 Aug 24 `* Re: Juggling system-compilation items8Gerry Jackson
12 Aug 24  +* Re: Juggling system-compilation items2Ruvim
13 Aug 24  i`- Re: Juggling system-compilation items1Gerry Jackson
12 Aug 24  +* Re: Juggling system-compilation items3albert
13 Aug 24  i`* Re: Juggling system-compilation items2Gerry Jackson
14 Aug 24  i `- Re: Juggling system-compilation items1albert
12 Aug 24  `* Re: Juggling system-compilation items2Krishna Myneni
12 Aug 24   `- Re: Juggling system-compilation items1mhx

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal