Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #7975

Re: LatestXT

From Bernd Paysan <bernd.paysan@gmx.de>
Newsgroups comp.lang.forth
Subject Re: LatestXT
Date 2011-12-12 13:22 +0100
Organization 1&1 Internet AG
Message-ID <jc4rle$qtr$1@online.de> (permalink)
References (12 earlier) <HJqdnedGLvCe43nTnZ2dnUVZ_qidnZ2d@supernews.com> <jc24ie$30h$1@dont-email.me> <y7ednUSrys06hHjTnZ2dnUVZ_t6dnZ2d@supernews.com> <jc3oak$1uh$1@dont-email.me> <k8GdnflhfvKq6njTnZ2dnUVZ_gKdnZ2d@supernews.com>

Show all headers | View raw


Elizabeth D. Rather wrote:
> Moreover, if you're advocating permitting colon definitions to nest,
> that's a whole massive can of worms for which rules need to be defined
> that will cover ITC, DTC, compile-to-code, and optimizing compilers in
> some transparently consistent way.  The mind boggles.

It's actually not that bad.  The implementations of [: ;] (nesting 
unnamed definitions) are a few lines, and to make them work in VFX 
requires a little bit other platform specific code than in bigForth or 
Gforth. No big difference, only a small difference.

The way to go is to use AHEAD ... THEN to jump over the allocated memory 
area of the nested function.  And then to save and restore all the 
internal state necessary for the compiler to proceed - that's the LATEST 
variable or something similar, and some internal state of the locals.  
And in VFX you have to tell the inliner, that this function should not 
be inlined.

Stephen and I had some discussion about this sort of nesting a while 
ago, and there are other places where you want to put some random data 
inside a definition, similar to a string, but not identical - the i18n 
wordset has this localized string constant, which is an opaque type, and 
a sort-of database entry.

The IMHO "right" factors for this would be a word which postpones the 
AHEAD and saves the compiler state, and another word which restores the 
compiler state and postpones the THEN, let's call it save[ and ]restore 
(both non-immediate, they are only building blocks). So

: [:  save[ :noname ;
: ;]  postpone ; >r ]restore r> postpone Literal ; immediate

could be defined portably, just as putting a string would be portable 
with

: s"  save[ [char] " parse tuck here swap move here swap dup allot
      >r >r ]restore  r> postpone literal r> postpone literal ;
      immediate

Most of the time, named definitions are better, though.

-- 
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/

Back to comp.lang.forth | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-09 02:42 +0000
  Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-09 03:43 -0600
    Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-09 13:12 +0000
    Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-09 13:26 +0000
      Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-09 12:41 -0600
        Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-10 12:24 +0000
          Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-10 12:04 -0600
            Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 11:02 +0000
              Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-11 12:21 -0600
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-12 17:35 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-13 05:19 -0600
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-13 15:12 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-13 11:55 -0600
          Re: LatestXT Krishna Myneni <krishna.myneni@ccreweb.org> - 2011-12-15 16:30 -0800
            Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-16 17:11 +0000
              Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-16 16:15 -0800
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-17 03:22 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-17 15:34 +0000
                Re: LatestXT Krishna Myneni <krishna.myneni@ccreweb.org> - 2011-12-17 08:04 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-17 17:20 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-17 12:38 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-18 04:01 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-17 22:06 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-18 11:47 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-18 08:51 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-19 01:14 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-18 18:59 -0800
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-18 04:40 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-18 11:31 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-18 06:21 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-18 12:55 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-19 03:27 -0600
                Re: LatestXT Krishna Myneni <krishna.myneni@ccreweb.org> - 2011-12-18 07:21 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-19 01:02 +0000
                Re: LatestXT Krishna Myneni <krishna.myneni@ccreweb.org> - 2011-12-18 17:32 -0800
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-17 09:43 -0800
                Re: LatestXT Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-12-19 20:40 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-17 09:38 -0800
                Re: LatestXT Mark Wills <markrobertwills@yahoo.co.uk> - 2011-12-18 01:08 -0800
                Re: LatestXT Mark Wills <markrobertwills@yahoo.co.uk> - 2011-12-18 01:38 -0800
                Re: LatestXT Coos Haak <chforth@hccnet.nl> - 2011-12-18 13:13 +0100
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-18 08:55 -0800
      Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-09 09:36 -1000
      Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-10 03:24 +0000
        Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-09 20:12 -0800
        Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-09 18:15 -1000
          Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-10 10:18 +0000
            Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-10 11:39 +0000
              Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-10 16:31 +0000
                Re: LatestXT Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-10 23:03 +0100
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-11 02:34 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-10 18:01 -1000
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-11 09:46 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-11 03:55 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-11 11:35 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-11 10:59 -1000
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 02:19 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-11 17:38 -1000
                Re: LatestXT Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-12 13:22 +0100
                Re: LatestXT stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-12 10:34 +0000
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 12:32 +0000
                Re: LatestXT stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-12 14:55 +0000
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 16:18 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-12 09:09 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 17:51 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-12 12:03 -0600
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-12 10:51 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-13 12:16 +0000
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-13 15:11 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-13 08:00 -1000
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-12 18:18 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-11 13:26 -0800
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-12 03:51 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 11:14 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-12 05:37 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 12:54 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-11 11:05 -0800
                Re: LatestXT Josh Grams <josh@qualdan.com> - 2011-12-11 23:25 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-11 16:58 -0800
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-12 17:21 +0000
                Re: LatestXT Josh Grams <josh@qualdan.com> - 2011-12-12 21:50 +0000
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-13 16:44 +0000
                Re: LatestXT Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2011-12-13 22:13 +0000
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-13 11:46 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-13 04:28 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-14 05:40 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-13 21:24 -1000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-14 04:05 -0600
                Re: LatestXT Mark Wills <markrobertwills@yahoo.co.uk> - 2011-12-20 03:48 -0800
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-20 08:59 -0600
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-12 03:21 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-11 17:52 -1000
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-12 12:41 +0000
                Re: LatestXT Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-12 15:00 +0100
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-12 09:37 -0800
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 10:43 +0000
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 10:21 +0000
                Re: LatestXT Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-12 12:58 +0100
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-11 03:35 -0600
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 10:47 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-12 03:54 -0600
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-12 17:20 +0000
                Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-12 11:53 -0600
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-10 14:21 -0800
                Re: LatestXT Arnold Doray <thinksquared@gmail.com> - 2011-12-11 02:37 +0000
                Re: LatestXT BruceMcF <agila61@netscape.net> - 2011-12-11 11:13 -0800
                Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 11:25 +0000
                Re: LatestXT "Elizabeth D. Rather" <erather@forth.com> - 2011-12-11 08:55 -1000
        Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-10 02:49 -0600
          Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-10 12:06 +0000
            Re: LatestXT Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-10 12:11 -0600
          Re: LatestXT Josh Grams <josh@qualdan.com> - 2011-12-10 12:33 +0000
      Re: LatestXT Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-12-10 18:52 +0000
        Re: LatestXT anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 10:50 +0000

csiph-web