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


Groups > comp.lang.forth > #13180

Re: ?EXEC

Newsgroups comp.lang.forth
From Albert van der Horst <albert@spenarnc.xs4all.nl>
Subject Re: ?EXEC
Date 2012-06-22 20:34 +0000
Message-ID <m61d5n.4zi@spenarnc.xs4all.nl> (permalink)
Organization Dutch Forth Workshop
References <m5oer1.l31@spenarnc.xs4all.nl> <jrvvcd$853$1@online.de> <4fe445d5.175973121@192.168.0.50> <97-dnWNi04BM0HnSnZ2dnUVZ8nydnZ2d@supernews.com>

Show all headers | View raw


In article <97-dnWNi04BM0HnSnZ2dnUVZ8nydnZ2d@supernews.com>,
Andrew Haley  <andrew29@littlepinkcloud.invalid> wrote:
>Stephen Pelc <stephenXXX@mpeforth.com> wrote:
>> On Thu, 21 Jun 2012 22:15:08 +0200, Bernd Paysan <bernd.paysan@gmx.de>
>> wrote:
>>
>>>Maybe.  There are however quite a lot of Forths out there which fail
>>>postponetest.fs, and they have production code running on it.  I had
>>>quite some troubles with VFX Forth with Postpone, and I was "the only
>>>one" who used strange things where Stephen's source inliner failed.  The
>>>tests required to break that weren't even part of test/postpone.fs, it
>>>would be something like
>>
>> 1) I did not write the source inliner. It was MPE's, not Stephen's.
>> 2) The source inliner is dead! Long live the tokeniser!
>
>He'll never let it go.  :-)
>
>>>Yes.  But the question is whether postponetest really tests something
>>>that is worth testing.  It tests whether postpone is able to preserve
>>>the compilation semantics of its postponed words in interpretation
>>>state.
>>
>> POSTPONE had no common practice at the time it was introduced.
>> 18 years later we still have trouble with it.
>>
>> By comparison, CATCH and THROW had plenty of common practice, albeit
>> in other languages. It has caused no trouble.
>>
>> The lesson is not to standardise a solution until it has been
>> exhaustively evaluated. However, POSTPONE is a mess we have to
>> cope with until we have a proper model of xt's and Forth compilation
>> that allows for modern techniques. Once we have a model we can try
>> it and define a sensible word set. STATE POSTPONE and IMMEDIATE
>> may be casualties of this process in 20 years time.
>
>I'm very nervous about suggesting this, but here goes:
>
>I've been thinking the opposite.  Maybe the problem with some of the
>modern techniques is that they're exposed to the programmer; they're
>too shallow.  Perhaps the right solution is to let the Forth compiler
>generate tokens (just like a very trad Forth) and then let the
>optimizing compiler run over them.  Let IMMEDIATE do what it used to
>do.  Get rid of other ways of creating words that execute at compile
>time.  Let FIND do what it used to do.  Etc., etc...
>
>This is probably worthy of a workshop at EuroFORTH.

This ressembles an old idea of mine. Start with a very simple
indirect threaded Forth, with headers that allow for extra
information. A single one cell flag field goes a long way in
32 bits and 64 bits Forth.
I've added stack information to a version of ciforth, based on
analysis of the lowest (code) words. Then one can optimise away dead
code and execute all code that results in compile time constants,
meanwhile doing inlining. Then inline the assembler code and peephole
that.
See
    http://home.hccnet.nl/a.w.m.van.der.horst/forthlecture5.html

The main thing is that we want to exhaust all optimisation possibilities
on the higher level before we look at low level aspects.

(Related: an experiment with an editor that show stack effect.)

The most dramatic results I expect in the use of generic tools like
a quicksort that works with execution tokens:

: my-sort ['] my-swap ['] my-compare qsort ;

At a certain point this collapses to
<constant xt> execute
which can be replaced by xt, which can be inlined etc.
This all happens even before all words like DUP and >R are replaced
by their code sequences, where there will be a lot of POP's and
PUSHES that cancel.

>
>Andrew.

Groetjes Albert

--
-- 
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- being exponential -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

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


Thread

?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-15 20:40 +0000
  Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-16 11:14 +1000
  Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-16 07:10 -0700
    Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-17 03:01 +0000
      Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-17 13:36 +1000
      Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-17 12:27 +0000
        Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-17 20:45 +0000
          Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-18 13:31 +0000
            Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-18 18:29 +0000
              Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-18 08:01 -1000
              Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-19 14:09 +0000
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-19 10:51 -0500
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-19 16:04 +0000
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-19 12:45 -0500
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-20 10:50 +0000
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-20 07:10 -0500
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-20 12:47 +0000
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-19 22:52 +0000
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-20 10:59 +0000
                Defining Compilation Behaviour - was Re: ?EXEC JennyB <jennybrien@googlemail.com> - 2012-06-21 04:58 -0700
                Re: Defining Compilation Behaviour - was Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-21 15:44 +0000
            Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-19 02:11 +0200
              Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-18 14:45 -1000
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-19 10:48 +0000
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-19 15:53 +0000
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-19 23:00 +0000
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-20 11:09 +0000
                Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-20 07:39 -0700
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-20 15:32 +0000
                Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-21 11:24 -0700
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-20 22:43 +0000
                Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-21 21:39 +0200
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-22 02:33 -0500
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-22 11:12 +0000
                Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-22 21:34 +0200
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-24 14:58 +0000
                Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-24 23:53 +0200
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-19 15:43 +0000
              Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-19 14:52 +0000
                Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-21 22:15 +0200
                Re: ?EXEC stephenXXX@mpeforth.com (Stephen Pelc) - 2012-06-22 10:32 +0000
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-22 05:49 -0500
                Alternatives to S" and TO (was: ?EXEC) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-22 15:19 +0000
                Re: Alternatives to S'' and TO mhx@iae.nl (Marcel Hendrix) - 2012-06-22 20:37 +0200
                Re: Alternatives to S'' and TO anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-23 14:46 +0000
                Re: Alternatives to S" and TO (was: ?EXEC) BruceMcF <agila61@netscape.net> - 2012-06-22 12:32 -0700
                Re: Alternatives to S" and TO Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-23 03:07 -0500
                Re: Alternatives to S" and TO anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-23 13:32 +0000
                Re: Alternatives to S" and TO Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-24 08:50 -0500
                Re: Alternatives to S" and TO anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-24 15:39 +0000
                Re: Alternatives to S" and TO Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-25 04:49 -0500
                Re: Alternatives to S" and TO BruceMcF <agila61@netscape.net> - 2012-06-25 07:17 -0700
                Re: Alternatives to S" and TO Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-25 10:13 -0500
                Re: Alternatives to S" and TO (was: ?EXEC) Alex McDonald <blog@rivadpm.com> - 2012-06-23 16:01 -0700
                Re: Alternatives to S" and TO (was: ?EXEC) Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-24 01:59 +0200
                Re: Alternatives to S" and TO (was: ?EXEC) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-24 13:21 +0000
                Re: Alternatives to S" and TO (was: ?EXEC) Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-24 16:50 +0000
                Re: Alternatives to S" and TO (was: ?EXEC) Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-27 23:30 +0200
                Re: Alternatives to S" and TO (was: ?EXEC) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-24 13:15 +0000
                Re: Alternatives to S" and TO (was: ?EXEC) Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-24 16:47 +0000
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-22 20:34 +0000
                Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-22 21:46 +0200
                Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-22 10:16 -1000
                Re: ?EXEC Bernd Paysan <bernd.paysan@gmx.de> - 2012-06-22 22:43 +0200
                Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-22 11:18 -1000
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-23 13:50 +0000
      Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-17 10:41 -0700
  Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-17 12:52 +0000
    Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-17 08:03 -1000
      Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-18 15:06 +1000
        Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-17 20:31 -1000
          Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-21 13:07 +1000
            Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-21 14:00 +0000
              Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-21 07:51 -0700
              Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-21 15:39 +0000
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-21 20:28 +0000
                Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-28 14:22 +1000
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-28 04:00 -0500
            Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-21 16:09 +0000
            Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-21 11:51 -0500
              Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-21 11:21 -0700
                Re: ?EXEC Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-06-22 01:42 -0500
                Re: ?EXEC "Elizabeth D. Rather" <erather@forth.com> - 2012-06-21 21:47 -1000
                Re: ?EXEC anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-06-22 15:10 +0000
                Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-22 20:39 +0000
                Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-22 12:47 -0700
                Re: ?EXEC BruceMcF <agila61@netscape.net> - 2012-06-22 12:53 -0700
        Re: ?EXEC stephenXXX@mpeforth.com (Stephen Pelc) - 2012-06-21 08:39 +0000
          Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-23 15:36 +1000
            Re: ?EXEC stephenXXX@mpeforth.com (Stephen Pelc) - 2012-06-23 10:58 +0000
              Re: ?EXEC "Ed" <invalid@nospam.com> - 2012-06-25 14:26 +1000
                Re: ?EXEC stephenXXX@mpeforth.com (Stephen Pelc) - 2012-06-25 08:37 +0000
      Re: ?EXEC Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-06-18 10:34 +0000
  Re: ?EXEC Coos Haak <chforth@hccnet.nl> - 2012-06-18 17:47 +0200
    Re: ?EXEC Coos Haak <chforth@hccnet.nl> - 2012-06-18 17:49 +0200
  Re: ?EXEC jacko <jackokring@gmail.com> - 2012-06-22 15:43 -0700

csiph-web