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


Groups > comp.lang.forth > #56858 > unrolled thread

polyForth multitasker question

Started by"HAA" <someone@microsoft.com>
First post2017-04-08 20:53 +1000
Last post2017-04-10 07:42 -1000
Articles 20 on this page of 151 — 21 participants

Back to article view | Back to comp.lang.forth


Contents

  polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-08 20:53 +1000
    Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-08 12:29 -0500
      Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-10 09:50 +1000
        Re: polyForth multitasker question David Schultz <abuse@127.0.0.1> - 2017-04-09 19:25 -0500
          Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-10 10:52 +1000
            Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-10 08:58 -0500
              Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-15 10:39 +1000
          Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-11 11:12 +1000
            Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-10 18:22 -0700
              Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-11 12:17 +1000
            Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-11 03:10 -0500
        Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-09 14:37 -1000
          Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-09 18:05 -0700
            Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-09 15:50 -1000
            Re: polyForth multitasker question Lars Brinkhoff <lars.spam@nocrew.org> - 2017-04-10 07:47 +0200
          Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-10 12:20 +1000
          Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-10 09:11 +0100
            Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-10 04:20 -0500
              Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-10 10:53 +0100
                Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-10 11:24 +0100
                Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-11 12:05 +1000
                  Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-11 14:27 +0100
                    Re: polyForth multitasker question minforth@arcor.de - 2017-04-11 07:08 -0700
                      Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-11 18:06 -0700
                        Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-11 18:58 -0700
                          Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-12 13:57 -0700
                            Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-12 18:02 -0700
                              Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-12 19:47 -0700
                                Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-12 21:22 -0700
                                  Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-13 02:57 -0700
                                Re: polyForth multitasker question minforth@arcor.de - 2017-04-12 23:17 -0700
                                  Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-13 00:13 -0700
                                    Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-13 09:43 -1000
                                      Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-13 19:34 -0700
                                        Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-13 19:57 -1000
                                          Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-14 02:45 -0400
                                            Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-13 21:28 -1000
                                              Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-14 07:53 +0000
                                                Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 01:44 -0700
                                                  Re: polyForth multitasker question minforth@arcor.de - 2017-04-14 02:01 -0700
                                                    Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 11:28 -0700
                                                    Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-14 16:23 -0400
                                                Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-13 22:46 -1000
                                                  Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-14 11:31 +0000
                                                    Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 11:23 -0700
                                                    Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-14 10:06 -1000
                                                Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-14 08:13 -0500
                                                  Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-14 14:12 +0000
                                                    Re: polyForth multitasker question pahihu <pahihu@gmail.com> - 2017-04-14 09:30 -0700
                                                      Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-15 08:46 +0000
                                                        Re: polyForth multitasker question pahihu <pahihu@gmail.com> - 2017-04-15 13:07 -0700
                                                          Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-15 17:27 -0700
                                                            Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-15 18:18 -0700
                                                          Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-17 13:53 +0000
                                                    Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-14 11:34 -0500
                                                      Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-14 11:31 -0700
                                                        Re: polyForth multitasker question Julian Fondren <julian.fondren@gmail.com> - 2017-04-14 12:14 -0700
                                                          Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-14 12:46 -0700
                                                            Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-14 12:48 -0700
                                                          Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-14 12:50 -0700
                                                          Re: polyForth multitasker question albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-15 14:39 +0200
                                                            Re: polyForth multitasker question Julian Fondren <julian.fondren@gmail.com> - 2017-04-15 11:48 -0700
                                                        Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-14 22:07 +0100
                                                      Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-15 16:47 +0000
                                                        Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-15 11:36 -1000
                                                          Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-15 17:07 -0700
                                                            Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-15 14:17 -1000
                                                              Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-15 18:27 -0700
                                                                Re: polyForth multitasker question Ron Aaron <rambamist@gmail.com> - 2017-04-16 06:53 +0300
                                                                  Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-15 22:00 -0700
                                                                    Re: polyForth multitasker question Ron Aaron <rambamist@gmail.com> - 2017-04-16 08:59 +0300
                                                                  Re: polyForth multitasker question lehs <skydda.barnen@gmail.com> - 2017-04-15 22:19 -0700
                                                          Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-15 17:26 -0700
                                                          Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-16 09:10 -0500
                                                            Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-16 09:13 -1000
                                                          Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-16 16:28 +0000
                                                            Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-16 09:27 -1000
                                                              Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-16 14:45 -0700
                                                                Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-16 17:50 -1000
                                                              Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-17 12:13 +0000
                                                                Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-17 13:27 -0700
                                                                Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-18 03:49 -0500
                                                                  Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-18 13:47 +0100
                                                                    Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-18 14:30 -0500
                                                            Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-16 20:58 -0700
                                                          Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-18 11:47 +1000
                                                            Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-17 19:19 -0700
                                                              Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-18 04:34 -0500
                                                                Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-19 02:00 -0700
                                                              Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-19 18:10 +1000
                                                                Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-19 01:41 -0700
                                                                  Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-19 21:38 +1000
                                                                Re: polyForth multitasker question Lars Brinkhoff <lars.spam@nocrew.org> - 2017-04-19 10:56 +0200
                                                                Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-19 07:22 -0500
                                                            Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-17 20:10 -0700
                                                              Re: polyForth multitasker question stephen@mpeforth.com (Stephen Pelc) - 2017-04-18 09:35 +0000
                                                                Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-18 08:01 -0700
                                                                  Re: polyForth multitasker question Julian Fondren <julian.fondren@gmail.com> - 2017-04-18 09:03 -0700
                                                                  Re: polyForth multitasker question Cecil Bayona <cbayona@cbayona.com> - 2017-04-18 11:07 -0500
                                                                Re: polyForth multitasker question Cecil Bayona <cbayona@cbayona.com> - 2017-04-18 10:59 -0500
                                                                Re: polyForth multitasker question "HAA" <someone@microsoft.com> - 2017-04-19 19:13 +1000
                                                        Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-15 17:36 -0700
                                                          Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-16 16:27 +0000
                                                        Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-16 04:32 -0500
                                                    Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-14 10:15 -1000
                                                Re: polyForth multitasker question albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-15 13:07 +0200
                                                  Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-17 15:13 +0000
                                          Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 01:36 -0700
                                            Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-13 22:48 -1000
                                            Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-14 16:36 -0400
                                              Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 14:55 -0700
                                                Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-14 15:27 -0700
                                                  Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-14 23:45 +0100
                                                    Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-16 21:13 -0700
                                                      Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-17 16:57 +0100
                                                        Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-17 20:08 -0700
                                                Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-14 20:29 -0400
                                                  Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-14 15:34 -1000
                                                  Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 19:43 -0700
                                                    Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-14 23:03 -0400
                                                      Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-14 23:50 -0700
                                                        Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-15 03:55 -0400
                                                          Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-15 01:38 -0700
                                                            Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-15 11:50 -0400
                                                        Re: polyForth multitasker question john <anon@example.com> - 2017-04-15 12:03 +0100
                                                      Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-15 12:41 +0000
                                                        Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-15 12:14 -0400
                                                          Re: polyForth multitasker question Paul Rubin <no.email@nospam.invalid> - 2017-04-15 17:32 -0700
                                                            Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-15 20:41 -0400
                                                          Re: polyForth multitasker question anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-17 14:57 +0000
                                                    Re: polyForth multitasker question hughaguilar96@gmail.com - 2017-04-14 20:45 -0700
                                                      Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-14 23:56 -0400
                                                  Re: polyForth multitasker question albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-15 14:32 +0200
                                                    Re: polyForth multitasker question rickman <gnuarm@gmail.com> - 2017-04-15 12:05 -0400
                                                Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-15 04:10 -0500
                                  Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-13 03:19 -0700
                                    Re: polyForth multitasker question Alex <alex@rivadpm.com> - 2017-04-13 15:46 +0100
                                      Re: polyForth multitasker question foxaudioresearch@gmail.com - 2017-04-14 11:37 -0700
                                    Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-13 09:48 -1000
                                Re: polyForth multitasker question Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-13 05:37 -0500
                        Re: polyForth multitasker question minforth@arcor.de - 2017-04-11 22:12 -0700
                          Multitasking with Forth processors Lars Brinkhoff <lars.spam@nocrew.org> - 2017-04-12 07:39 +0200
                            Re: Multitasking with Forth processors Paul Rubin <no.email@nospam.invalid> - 2017-04-11 22:58 -0700
                              Re: Multitasking with Forth processors rickman <gnuarm@gmail.com> - 2017-04-12 03:00 -0400
                                Re: Multitasking with Forth processors albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-12 12:18 +0200
                                  Re: Multitasking with Forth processors rickman <gnuarm@gmail.com> - 2017-04-12 17:11 -0400
                            Re: Multitasking with Forth processors foxaudioresearch@gmail.com - 2017-04-12 13:50 -0700
                              Re: Multitasking with Forth processors "Elizabeth D. Rather" <erather@forth.com> - 2017-04-12 13:30 -1000
                            Re: Multitasking with Forth processors Jan Coombs <jenfhaomndgfwutc@murmic.plus.com> - 2017-04-14 12:20 +0100
                              Re: Multitasking with Forth processors rickman <gnuarm@gmail.com> - 2017-04-14 16:47 -0400
              Re: polyForth multitasker question "Elizabeth D. Rather" <erather@forth.com> - 2017-04-10 07:42 -1000

Page 5 of 8 — ← Prev page 1 2 3 4 [5] 6 7 8  Next page →


#57501

FromPaul Rubin <no.email@nospam.invalid>
Date2017-04-17 13:27 -0700
Message-ID<87tw5mhj9h.fsf@nightsong.com>
In reply to#57487
anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
> Let's look at an example: the STM32F746ZG is certainly no PC CPU.  It
> has an ARM Cortex-M7 MCU with 1 Mbyte Flash, 216 MHz CPU, 320KB RAM,
> etc., and it includes 4KB of instruction and 4KB of data cache

With that much ram I'd probably run something like Micropython instead
of Forth no matter how well the multitasker worked.  What I wonder
whether something like Erlang could run on a chip like that.  The
current BEAM VM wants tens of MB, and there was an attempt to write a
smaller one (Gluon) that used 1-2MB.  But I think it could be done much
smaller in a Forth-like manner, with a shared heap, or maybe the
possibility of having a few smaller heaps for higher priority processes.
BEAM minimizes latency by having a separate heap for each process.  I
don't know what Gluon did.

There's a new Feather-like board that uses a Cortex-M4 with a cache:

http://www.digikey.com/en/product-highlight/m/maxim-integrated/max32630-rapid-development-platform

It has 2MB of program flash, 512K of ram, 8k I-cache, various sensors,
Bluetooth, and a microsd slot.  The CPU has no MMU but I think the cpu
it might have some memory protection, so it could run multiple processes
with some memory shuffling and still surely beat old Unix systems.

[toc] | [prev] | [next] | [standalone]


#57539

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2017-04-18 03:49 -0500
Message-ID<XqudnTgKhrSDTmjFnZ2dnUU7-UnNnZ2d@supernews.com>
In reply to#57487
Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
> Actually MS cannot be the only word where more tasks are associated
> with the same interrupt.  A similar problem must have occured with
> BLOCK.  I.e., several tasks wanting to read from disk with BLOCK.  How
> was that solved?

The device has a lock.  The owner of the lock is awoken when I/O is
complete.

> One answer is the soulful approach of declaring the design good ex
> cathedra, and saying "Don't do that" for all cases where it has
> disadvantages.  This means that Forth is limited not just to embedded
> MCUs, but to slow and very limited MCUs.
>
> Another answer is to recognize that the design does not scale, and be
> prepared to provide something more scalable when it is needed.

That is the right answer.

> And in some cases, one might implement a more scalable approach
> proactively, and may then have something that you can use as a
> marketing argument for new users, as Erlang did with it's scalable
> multi-tasking.

Erlang's developers did not design their scalable lightweight
scheduler proactively because they thought it might be needed one day.
They did it when there was a definite need to create thousands of
concurrent processes in order to control telephone switches.  Your own
example defeats your argument.

Andrew.

[toc] | [prev] | [next] | [standalone]


#57544

FromAlex <alex@rivadpm.com>
Date2017-04-18 13:47 +0100
Message-ID<od51n0$gfm$1@dont-email.me>
In reply to#57539
On 4/18/2017 09:49, Andrew Haley wrote:
> Anton Ertl<anton@mips.complang.tuwien.ac.at>  wrote:
>> Actually MS cannot be the only word where more tasks are associated
>> with the same interrupt.  A similar problem must have occured with
>> BLOCK.  I.e., several tasks wanting to read from disk with BLOCK.  How
>> was that solved?
> The device has a lock.  The owner of the lock is awoken when I/O is
> complete.
> 

More generally, since disk devices do not have I/O locks (for reference, 
the SATA specification 
http://www.t13.org/documents/uploadeddocuments/docs2006/d1699r3f-ata8-acs.pdf):

Access to a device is through adding an I/O request on a queue. The 
owner of the queue entry can be asked to be notified when the queue 
entry has been serviced. At its simplest, the request is removed from 
the queue and the task wait is signalled when the I/O is complete (which 
has the effect of moving the task from the wait list to the ready list).

There may be many queues, since disks are often fronted by controllers 
that have ports (with queues) to disks (which have their own queues).

-- 
Alex

[toc] | [prev] | [next] | [standalone]


#57564

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2017-04-18 14:30 -0500
Message-ID<pb2dnVOYwcz89GvFnZ2dnUU7-ImdnZ2d@supernews.com>
In reply to#57544
Alex <alex@rivadpm.com> wrote:
> On 4/18/2017 09:49, Andrew Haley wrote:
>> Anton Ertl<anton@mips.complang.tuwien.ac.at>  wrote:
>>> Actually MS cannot be the only word where more tasks are associated
>>> with the same interrupt.  A similar problem must have occured with
>>> BLOCK.  I.e., several tasks wanting to read from disk with BLOCK.  How
>>> was that solved?
>> The device has a lock.  The owner of the lock is awoken when I/O is
>> complete.
> 
> More generally, since disk devices do not have I/O locks (for reference, 
> the SATA specification 
> http://www.t13.org/documents/uploadeddocuments/docs2006/d1699r3f-ata8-acs.pdf):

Sorry, to be clear:

The lock is a Forth lock, i.e. a structure in memory.  It's nothing to
do with SATA.  When a task needs to access the disk, it acquires the
lock (and thus the exclusive access to the device), starts the I/O,
and STOPs.  When the completion interrupt happens, the task which is
owner of the lock is awakened and the lock is released.

Andrew.

[toc] | [prev] | [next] | [standalone]


#57473

Fromhughaguilar96@gmail.com
Date2017-04-16 20:58 -0700
Message-ID<8b9404e5-f35a-4bff-9f61-48920050ba1b@googlegroups.com>
In reply to#57456
On Sunday, April 16, 2017 at 10:46:11 AM UTC-7, Anton Ertl wrote:
> "Elizabeth D. Rather" <erather@forth.com> writes:
> >On 4/15/17 6:47 AM, Anton Ertl wrote:
> >> Makes me wonder why waiting for I/O is optimized in this way, but
> >> waiting for the timer is not.
> >
> >Because you can't set a processor clock to interrupt you 10 seconds and 
> >5 minutes from now, it ticks at whatever rate it ticks.
> 
> Even the old C-64 has chips that could be set up to generate
> interrupts after some time.  Microcontrollers also have such things; I
> presented the case of the MSP 430 which can set up a clock to wake it
> up after some time, and it can go to sleep in the mean time (stopping
> the CPU clock until then).  I am sure other microcontrollers have
> similiar things.

> Forth had good publicity in the 1980s.  That's how I learned about
> Forth.  Why is there no longer any publicity?

Because Elizabeth Rather declared herself to be the "leading expert" of the Forth community, and some of the Forth community (yourself) accepted ANS-Forth as their standard effectively accepting Elizabeth Rather as their "leading expert."

So, you are to blame for Forth having only bad publicity --- because you accepted ANS-Forth as the Forth standard --- you allowed an idiot marketing-genius to be your "leading expert" apparently because you were desperately in need of a leader.

[toc] | [prev] | [next] | [standalone]


#57521

From"HAA" <someone@microsoft.com>
Date2017-04-18 11:47 +1000
Message-ID<od3r9r$1ope$1@gioia.aioe.org>
In reply to#57391
Elizabeth D. Rather wrote:
> On 4/15/17 6:47 AM, Anton Ertl wrote:
> > ...
> > Sure, it may get you a prize at a demo coding contest.  In the rest of
> > the world, sorry, this is not worth much.
>
> The problem is not that the "rest of the world" doesn't like what we're
> doing, it's because they don't know about it except a faint perception
> that it's a hobbyist toy.
>
> Cheers,
> Elizabeth

This is an old chestnut.  Forth has been supplying the world with 'professional'
systems for 40 years and has produced an ANSI Standard.  The world wasn't
interested.  It's time to stop blaming ignorance, hobbyists and dissidents for
Forth's woes.  Just maybe Forth isn't the first and last word in programming
and the 'rest of the world' has its own destiny.


[toc] | [prev] | [next] | [standalone]


#57524

FromPaul Rubin <no.email@nospam.invalid>
Date2017-04-17 19:19 -0700
Message-ID<87vaq2foez.fsf@nightsong.com>
In reply to#57521
"HAA" <someone@microsoft.com> writes:
> This is an old chestnut.  Forth has been supplying the world with
> 'professional' systems for 40 years and has produced an ANSI Standard.
> The world wasn't interested.  It's time to stop blaming ignorance,
> hobbyists and dissidents for Forth's woes.  Just maybe Forth isn't the
> first and last word in programming and the 'rest of the world' has its
> own destiny.

I dunno.... Replace the word Forth with Lisp throughout that paragraph
and see how it sounds.  All those great things Forth aficionados say
about Forth are really true about Lisp.  Who am I to say they're not
also true about Forth?

[toc] | [prev] | [next] | [standalone]


#57540

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2017-04-18 04:34 -0500
Message-ID<WJKdna7THOURQGjFnZ2dnUU7-anNnZ2d@supernews.com>
In reply to#57524
Paul Rubin <no.email@nospam.invalid> wrote:
> "HAA" <someone@microsoft.com> writes:
>> This is an old chestnut.  Forth has been supplying the world with
>> 'professional' systems for 40 years and has produced an ANSI Standard.
>> The world wasn't interested.  It's time to stop blaming ignorance,
>> hobbyists and dissidents for Forth's woes.  Just maybe Forth isn't the
>> first and last word in programming and the 'rest of the world' has its
>> own destiny.
> 
> I dunno.... Replace the word Forth with Lisp throughout that paragraph
> and see how it sounds.  All those great things Forth aficionados say
> about Forth are really true about Lisp.  Who am I to say they're not
> also true about Forth?

Indeed.  Forth and Lisp inhabit sweet spots (local maxima, perhaps) in
the space of programming languages, and are both influential.  I find
it remarkable how often I meet programmers and discover that they are
Forth enthusiasts, and I suspect that Forth has profoundly affected
the way they think.  It's hard to know that for sure, of course.

Andrew.

[toc] | [prev] | [next] | [standalone]


#57589

FromPaul Rubin <no.email@nospam.invalid>
Date2017-04-19 02:00 -0700
Message-ID<87r30oepr0.fsf@nightsong.com>
In reply to#57540
Andrew Haley <andrew29@littlepinkcloud.invalid> writes:
> Indeed.  Forth and Lisp inhabit sweet spots (local maxima, perhaps) in
> the space of programming languages, and are both influential.

You've probably seen Paul Graham's article about the Blub Paradox (if
not, web search should find it quickly) where he describes Lisp as the
top of an infinite tower of conceivable languages, and therefore the One
Language To Rule Them All.  And of course, yes, it -is- at the top of an
infinite tower just the way he says, but really in math that's just
called a limit ordinal, and there are infinitely more beyond it.  I.e.
Haskellers know that Lisp is just another Blub, and so on.  So that's an
alternate analogy to a local maximum.  I can see a case for Forth being
the same way.

> I find it remarkable how often I meet programmers and discover that
> they are Forth enthusiasts, and I suspect that Forth has profoundly
> affected the way they think.  It's hard to know that for sure, of
> course.

I haven't been that deeply engrossed in Forth so far, but I do feel like
I've gotten something out of it that way.

[toc] | [prev] | [next] | [standalone]


#57586

From"HAA" <someone@microsoft.com>
Date2017-04-19 18:10 +1000
Message-ID<od763h$sr2$1@gioia.aioe.org>
In reply to#57524
Paul Rubin wrote:
> "HAA" <someone@microsoft.com> writes:
> > This is an old chestnut.  Forth has been supplying the world with
> > 'professional' systems for 40 years and has produced an ANSI Standard.
> > The world wasn't interested.  It's time to stop blaming ignorance,
> > hobbyists and dissidents for Forth's woes.  Just maybe Forth isn't the
> > first and last word in programming and the 'rest of the world' has its
> > own destiny.
>
> I dunno.... Replace the word Forth with Lisp throughout that paragraph
> and see how it sounds.  All those great things Forth aficionados say
> about Forth are really true about Lisp.  Who am I to say they're not
> also true about Forth?

AFAIK Forth and Lisp have little in common - unless Lisp is as equally
unpopular as Forth, has been characterized more by schism than
concensus, whose users either have unrealistic expectations of the
language or an irrational belief in their own genius to provide it.


[toc] | [prev] | [next] | [standalone]


#57587

FromPaul Rubin <no.email@nospam.invalid>
Date2017-04-19 01:41 -0700
Message-ID<87vaq0eqmg.fsf@nightsong.com>
In reply to#57586
"HAA" <someone@microsoft.com> writes:
> AFAIK Forth and Lisp have little in common - unless Lisp is as equally
> unpopular as Forth, has been characterized more by schism than
> concensus, whose users either have unrealistic expectations of the
> language or an irrational belief in their own genius to provide it.

Yep, that's Lisp all right.  You might like this:

  http://www.shenlanguage.org/lambdassociates/htdocs/blog/bipolar.htm

Still, some mighty powerful systems have been written in Lisp.  

[toc] | [prev] | [next] | [standalone]


#57591

From"HAA" <someone@microsoft.com>
Date2017-04-19 21:38 +1000
Message-ID<od7i9p$1lte$1@gioia.aioe.org>
In reply to#57587
Paul Rubin wrote:
> "HAA" <someone@microsoft.com> writes:
> > AFAIK Forth and Lisp have little in common - unless Lisp is as equally
> > unpopular as Forth, has been characterized more by schism than
> > concensus, whose users either have unrealistic expectations of the
> > language or an irrational belief in their own genius to provide it.
>
> Yep, that's Lisp all right.  You might like this:
>
>   http://www.shenlanguage.org/lambdassociates/htdocs/blog/bipolar.htm
>
> Still, some mighty powerful systems have been written in Lisp.

Now you've got me interested :)

I must admit it was a little suspicious gavino should be frequenting
Forth and Lisp groups.  It now makes perfect sense.


[toc] | [prev] | [next] | [standalone]


#57588

FromLars Brinkhoff <lars.spam@nocrew.org>
Date2017-04-19 10:56 +0200
Message-ID<86d1c8rd0m.fsf@molnjunk.nocrew.org>
In reply to#57586
HAA wrote:
> AFAIK Forth and Lisp have little in common

Long history.
Most popular somwhere around 1980.
Unfamiliar syntax.
Allows exotic identifiers.
Conventionally uses hyphen as a word delimiter in long identifiers.
(Usually) no type declarations.
Extensible syntax (actually programmable).
Comfortable metaprogramming.
Interactive and incremental development.
Resident symbol table.
Intermingles load time, compile time, and run time.
Many diverse dialects.
Light-weigh data structure with single method.
Linked lists play a central role.
Favours small procedures.
Multiple return values.
Used as a secret weapon.
Used as a scapegoat.
Attracts fanatics.
Attracts trolls.
Special-purpose hardware implementations.
Standardised 1994.
Vocal minority rejects standard.

[toc] | [prev] | [next] | [standalone]


#57595

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2017-04-19 07:22 -0500
Message-ID<o82dncFv5P88y2rFnZ2dnUU7-K3NnZ2d@supernews.com>
In reply to#57586
HAA <someone@microsoft.com> wrote:
> Paul Rubin wrote:
>> "HAA" <someone@microsoft.com> writes:
>> > This is an old chestnut.  Forth has been supplying the world with
>> > 'professional' systems for 40 years and has produced an ANSI Standard.
>> > The world wasn't interested.  It's time to stop blaming ignorance,
>> > hobbyists and dissidents for Forth's woes.  Just maybe Forth isn't the
>> > first and last word in programming and the 'rest of the world' has its
>> > own destiny.
>>
>> I dunno.... Replace the word Forth with Lisp throughout that paragraph
>> and see how it sounds.  All those great things Forth aficionados say
>> about Forth are really true about Lisp.  Who am I to say they're not
>> also true about Forth?
> 
> AFAIK Forth and Lisp have little in common - unless Lisp is as equally
> unpopular as Forth, has been characterized more by schism than
> concensus, whose users either have unrealistic expectations of the
> language or an irrational belief in their own genius to provide it.

As languages, they have a fair bit in common.  Forth was influenced by
LISP and by Burroughs Algol machines.  The "everything is a function"
maps quite neatly onto "everything is a word", as does the simplicity
of the base language.  One language uses Polish notation, the other
Reverse Polish.  Moore: "At MIT, John McCarthy taught an incredible
course on LISP. That was my introduction to recursion, and to the
marvelous variety of computer language. Wil Baden has noted that LISP
is to Lambda Calculus as Forth is to Lukasewcleicz Postfix."

It all fits.

Andrew.

[toc] | [prev] | [next] | [standalone]


#57530

Fromhughaguilar96@gmail.com
Date2017-04-17 20:10 -0700
Message-ID<fa9aa249-42f5-4de3-a3f5-78d6486f1d5b@googlegroups.com>
In reply to#57521
On Monday, April 17, 2017 at 6:48:48 PM UTC-7, HAA wrote:
> Elizabeth D. Rather wrote:
> > On 4/15/17 6:47 AM, Anton Ertl wrote:
> > > ...
> > > Sure, it may get you a prize at a demo coding contest.  In the rest of
> > > the world, sorry, this is not worth much.
> >
> > The problem is not that the "rest of the world" doesn't like what we're
> > doing, it's because they don't know about it except a faint perception
> > that it's a hobbyist toy.
> >
> > Cheers,
> > Elizabeth
> 
> This is an old chestnut.  Forth has been supplying the world with 'professional'
> systems for 40 years and has produced an ANSI Standard.  The world wasn't
> interested.  It's time to stop blaming ignorance, hobbyists and dissidents for
> Forth's woes.  Just maybe Forth isn't the first and last word in programming
> and the 'rest of the world' has its own destiny.

Nobody has ever written a commercial program in ANS-Forth --- ANS-Forth is crippleware --- ANS-Forth's purpose was to hold the Forth community down at the novice level capable of only writing toy programs.

All commercial Forth programs have been non-standard.

Also, I don't really believe in "destiny" --- the world is what we make of it.

[toc] | [prev] | [next] | [standalone]


#57541

Fromstephen@mpeforth.com (Stephen Pelc)
Date2017-04-18 09:35 +0000
Message-ID<58f5dcd4.70465526@news.eternal-september.org>
In reply to#57530
On Mon, 17 Apr 2017 20:10:50 -0700 (PDT), hughaguilar96@gmail.com
wrote:

>Nobody has ever written a commercial program in ANS-Forth

That's a lie. Sure, you can wriggle, but the fact is that one of MPE's
customers ships a Forth appplication containing 1.2 million lines of
Forth source code. The application is built on VFX Forth, an ANS
Forth. 

There are other apps built on other ANS Forths.

Stephen

-- 
Stephen Pelc, stephenXXX@mpeforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691
web: http://www.mpeforth.com - free VFX Forth downloads

[toc] | [prev] | [next] | [standalone]


#57549

Fromhughaguilar96@gmail.com
Date2017-04-18 08:01 -0700
Message-ID<af3c4b78-47fd-4dad-a020-40f12fb33b70@googlegroups.com>
In reply to#57541
On Tuesday, April 18, 2017 at 2:35:03 AM UTC-7, Stephen Pelc wrote:
> On Mon, 17 Apr 2017 20:10:50 -0700 (PDT), hughaguilar96@gmail.com
> wrote:
> 
> >Nobody has ever written a commercial program in ANS-Forth
> 
> That's a lie. Sure, you can wriggle, but the fact is that one of MPE's
> customers ships a Forth appplication containing 1.2 million lines of
> Forth source code. The application is built on VFX Forth, an ANS
> Forth. 
> 
> There are other apps built on other ANS Forths.

This reminds me of when I said that CREATE DOES> was inefficient because it requires storing constants at compile-time then fetching them from memory at run-time rather, and you argued that it was efficient. But you didn't show your code! You only showed the disassembly of the machine-code generated. Finally I pressured you into showing your code, and it was not ANS-Forth --- VFX has a non-standard declaration that the user puts in to indicate that particular values comma'd after CREATE are non-mutable and can be treated as constants for efficiency.

You're standard trick (pun intended) is to claim that VFX is ANS-Forth, and that ANS-Forth is a valid standard. This is a lie. ANS-Forth was purposely crippled to make in incapable of supporting commercial programs. This was done for the purpose of preventing the Forth community from competing against Forth Inc. and MPE --- if they write a Forth system capable of supporting commercial programs (as I did with MFX) you denounce them as being non-standard wanna-bees --- but you routinely abandon ANS-Forth compatibility in your own programs, then you lie afterward saying that your programs are ANS-Forth (most likely, your 1.2 million line program has over 1 million lines of code that are not ANS-Forth and are actually impossible to write in ANS-Forth). You are using your position as a Forth-200x committee member to bully the Forth community --- force them to say that you are an ANS-Forth expert --- force them to ignore the fact that you abandon ANS-Forth compatibility gratuitously, while denouncing anybody else as non-standard when they fail to strictly adhere to ANS-Forth's idiotic and pointless restrictions.

Elizabeth Rather has repeatedly said that the purpose of ANS-Forth was not portable programs, but rather "portable programmers." ANS-Forth is crippleware. It is useful only as an educational tool --- students can write toy programs and learn the basics of Forth (how DUP and SWAP etc. work). Then the students become portable, in the sense that they qualify to upgrade to VFX (but this requires them to pay you hundreds of dollars) --- they already know basic Forth so they don't have to be taught this on the job --- companies are tired of hiring C programmers to write Forth code and then having them spend a month on the payroll struggling to learn how DUP and SWAP work --- ANS-Forth (and especially Gforth) solve this problem by allowing the students to learn this basic stuff first, before they get hired, but also by preventing them from competing against MPE with Gforth because Gforth is purposely crippled to make it non-competitive and safe. 

ANS-Forth is all about telling people what they can't do. ANS-Forth is all about preventing Forth programmers from writing commercial programs. ANS-Forth's only purpose is to hold the Forth community down at the level of the beginning student who is struggling to learn how the data-stack works and is only capable of writing toy programs. Elizabeth Rather is like an evil kindergarten teacher who enjoys teaching the kindergarten class so much that she refuses to allow the students to graduate. The students remain in kindergarten as they become adolescents, still learning how to count to 10. The students remain in kindergarten into adulthood, still learning how to write simplistic and useless code such as this:

: ARRAY ( n -- )   CREATE DUP , CELLS ALLOT
    DOES> ( n -- a)   SWAP OVER @ OVER < OVER
       1 < OR ABORT" Out of Range" CELLS + ;

Eventually the students are old and gray (all ANS-Forth programmers are over 40 years old today) and they are still in kindergarten.

Here is a snippet from a document that I'm writing:
---------------------------------------------------------------------------

Stephen Pelc says:
"Writing portable code is an egoless discipline."

This is the same Stephen Pelc that we find posting VFX-specific code on comp.lang.forth:
In this thread: https://groups.google.com/forum/#!topic/comp.lang.forth/oXXQAGDKP7w

On Thursday, April 2, 2015 at 10:07:52 AM UTC-7, Stephen Pelc wrote:
> On Wed, 1 Apr 2015 13:40:52 -0700 (PDT), hughaguilar96@gmail.com
> wrote:
> >So how do you write SYNONYM so that it can make a synonym of an immediate word?
>
> The VFX source code is:
>
> : SynComp,	\ xt --
> \ Compile a child of SYNONYM.
>   >body @ compile,
> ;
>
> : Synonym	\ "<new-name>" "<curdef>" --
> \ *G Create a new definition which redirects to an existing one.
> \ ** Normal dictionary searches for *\i{<new-name>} will return
> \ ** the xt of *\i{<curdef>}.
>   create
>     hide ' reveal dup , immediate?
>     if  immediate  endif
>     ['] SynComp, set-compiler
>     $010 latest set-bit			\ set header's alias bit
>   interp>
>     @ execute
> ;
>
> For some words you may have to RTFM.
>
> Stephen

Cynical readers will notice that this code is not ANS-Forth. When Stephen Pelc (Forth-200x committee member) tells the plebian (Hugh Aguilar) to RTFM (Read The F'ing Manual), he is referring to the VFX manual. All of that code is VFX-specific. Stephen Pelc is trying to trap the VFX users into relying on vendor-specific code so they won't be able to port their code to competitor's ANS-Forth compilers --- vendor lock-in, of course, is what the standard is supposed to prevent!

Alert readers will also notice this code has a bug in it. If SYNONYM is used to make a synonym of a word defined with CREATE and then >BODY is used on the synonym, >BODY will not return the body-address of the original word. I have read on comp.lang.forth that VFX has a new version that fixes this bug. I haven't bothered to download the new version however, so I haven't verified this. The more important problem is that Stephen Pelc is refusing to acknowledge the existence of the disambiguifiers and he is insisting that a word such as SYNONYM "requires carnal knowledge."

On Thursday, April 2, 2015 at 11:42:55 PM UTC-7, Stephen Pelc wrote:
> On Thu, 2 Apr 2015 19:18:04 -0700 (PDT), hughaguilar96@gmail.com
> wrote:
> >This is not ANS-Forth code --- I don't want to RTFM because I don't want to
> > become an expert on VFX --- I'm already an expert on ANS-Forth.
>
> You asked a tech-support question about VFX. I answered it pointing
> out that your initial assumption (how IF works) was wrong.
>
> The code illustrates precisely why SYNONYM is defined the way it is
> defined - because it requires carnal knowledge. If you want to know
> how SYNONYM works:
>   "So how do you write SYNONYM so that it can make a synonym of an
>   immediate word?"
> then do not complain when you are told.
>
> Stephen

My assumption about IF was that it was immediate. This is sometimes right (SwiftForth) and sometimes wrong (VFX). The ambiguity of ANS-Forth, however, is meta-wrong --- ambiguity such as this is absurd --- ANS-Forth is a standard that doesn't standardize.

Being an ANS-Forth programmer is all about "can't" --- ANS-Forth expertise seems to consist primarily of telling people what they can't do, which is what Stephen Pelc is telling me --- Albert van der Horst also tells me that I can't write SYNONYM in ANS-Forth:

On Saturday, April 11, 2015 at 4:56:31 PM UTC-7, hughag...@gmail.com wrote:
> On Friday, April 3, 2015 at 3:48:32 AM UTC-7, Albert van der Horst wrote:
> > We already have been over this. You can't define SYNONYM in ISO Forth.
> > It requires carnal knowledge. So how would you call some one who still
> > tries?
>
> I would use the term "programmer" to describe such a person.

Given the disambiguifiers provided earlier, SYNONYM is trivial to write in ANS-Forth (a.k.a. ISO-Forth). This code requires the novice-package (for FIELD and { and some other minor code), but everything in the novice-package is ANS-Forth, so this code is ANS-Forth too:
-------------------------------------------------------------------------------------------------------

: :synonym { xt flg str wid -- }            \ FLG is 1 for immediate and -1 for non-immediate
    str wid :name
    flg 1 = if      xt lit,  execute,  ;,  immediate        exit then
    flg -1 = if     xt compile,  ;,                         exit then
    true abort" *** :SYNONYM given an invalid xt ***" ;

: :synonym-fast-check ( -- )
    state @ 0= abort" *** a word created by :SYNONYM-FAST can't be used in interpretive mode ***" ;

: :synonym-fast { xt flg str wid -- }       \ FLG is 1 for immediate and -1 for non-immediate
    str wid :name
    flg 1 = if      xt lit,  execute,  ;,  immediate                exit then
    flg -1 = if     postpone :synonym-fast-check
                    xt lit,  postpone compile,  ;,  immediate       exit then
    true abort" *** :SYNONYM-FAST given an invalid xt ***" ;

: 'find ( -- xt flg )                       \ stream: name                  \ FLG is 1 for immediate and -1 for non-immediate
    bl word find  dup 0= abort" *** 'FIND couldn't find the word ***" ;

: synonym { wid | new -- }                  \ stream: new-name old-name     \ the new word is compiled into the WID word-list
    bl word hstr to new
    'find  new  wid :synonym
    new dealloc ;

: synonym-fast { wid | new -- }             \ stream: new-name old-name     \ the new word is compiled into the WID word-list
    bl parse <hstr> to new
    'find  new  wid :synonym-fast
    new dealloc ;

\ :SYNONYM-FAST generates faster executing code than :SYNONYM but the words can't be used in interpretive mode.
\ This may not be necessary with a good optimizing compiler, but I'm not aware of any at this time.

1234512345 constant alias-id                \ an arbitrary number used to identify alias'd definitions

0
    w field alias.xt                        \ this should be the first field so the DOES> portion of ALIAS will be fast (no addition needed)
    w field alias.adr                       \ the address of the body, used to identify alias'd definitions
    w field alias.id                        \ the constant ALIAS-ID,   used to identify alias'd definitions
constant alias-struct

: alias ( wid -- )                          \ stream: new-name old-name     \ the new word is compiled into the WID word-list
    get-current  swap set-current  create  set-current
        here >r  alias-struct allot
        'find 1 = if  immediate  then   r@ alias.xt !
        r@                              r@ alias.adr !
        alias-id                        r@ alias.id !
        rdrop
    does>
        alias.xt @  execute ;

\ ALIAS does the same thing as SYNONYM but has the advantage that >BODY will work on it.
\ It is slower executing though (especially under SwiftForth in which CREATE DOES> words are very inefficient).

: >body ( xt -- adr )
    >body >r
    r@ alias.adr @  r@ = if  r@ alias.id @  alias-id = if                   \ is this an alias'd word?
        r> alias.xt @  >body  exit then then                                \ return the body of the original word
    r> ;                                                                    \ return the body of this word

\ Note that >BODY still has an undefined result if used on a word that wasn't defined with CREATE or isn't an alias of such a word.

-------------------------------------------------------------------------------------------------------

Given the disambiguifiers, the impossible becomes easy!

One of the reasons why I continue to program in ANS-Forth, although I consider ANS-Forth to be utterly retarded, is that doing the impossible is great fun --- it is just funny as heck to have self-proclaimed ANS-Forth experts tell me that something is impossible, and then do it anyway --- why doesn't everybody see the humor in this?

Also note that my SYNONYM SYNONYM-FAST and ALIAS are more useful than Stephen Pelc's SYNONYM because I allow the user to set the word-list that his synonym will go into --- this is sometimes useful --- use GET-CURRENT if you want to just go into the current word-list.

[toc] | [prev] | [next] | [standalone]


#57554

FromJulian Fondren <julian.fondren@gmail.com>
Date2017-04-18 09:03 -0700
Message-ID<e23963a6-d2bf-42b3-bdc0-c50ecd1823ff@googlegroups.com>
In reply to#57549
On Tuesday, April 18, 2017 at 10:02:00 AM UTC-5, hughag...@gmail.com wrote:
> This reminds me

  \ Hughbot Shitposting Routine 2.4.1.1
  \ execute when a wild claim is directly refuted
  : weeping-shotgun ( -- )
    poster count hate-library dup if
       new-reply add-all touchup send
    else drop 1 bitterness +! then fume ;

Your MPE database is lacking a lot of your usual Tom Clancy material.

> SYNONYM is trivial to write in ANS-Forth
...
> 1234512345 constant alias-id                \ an arbitrary number used to identify alias'd definitions
...
> : >body ( xt -- adr )
>     >body >r
>     r@ alias.adr @  r@ = if  r@ alias.id @  alias-id = if                   \ is this an alias'd word?
>         r> alias.xt @  >body  exit then then                                \ return the body of the original word
>     r> ;                                                                    \ return the body of this word
> \ Note that >BODY still has an undefined result if used on a word that wasn't defined with CREATE or isn't an alias of such a word.
...

Sane person: You can't bake a pound cake without eggs.

Hugh: oh yeah? *makes something with tofu and almond milk*

Sane person: ... that's not a pound cake.

Hugh: it's better. it has less fat than your ANSI (or ISO) pound cake.

Sane person: I WANT THE FAT. I WANT A POUND CAKE.

Hugh: yeah whatever. You people in the audience believe me, right?
Even though I'm blatantly discarding the vital context of Sane person's
words (like the definitions of those words), haven't I refuted his
claim? Haven't I? ... you guys take me seriously, right? Will it help
if I repeat this claim a hundred times, long after everyone has gotten
tired of reminding me of what a pound cake is? Please? If you say I've
convinced you then I'll walk away to the other side of the platform
and I'll take my aroma with me. Oh, thank you very much. God bless.

> Also note that my SYNONYM SYNONYM-FAST and ALIAS are more useful than Stephen Pelc's SYNONYM because I allow the user to set the word-list that his synonym will go into

Also note that this is ridiculous cargo-culting of an internal
SwiftForth word, that Forth's search order words are perfectly capable
of selecting wordlists for new definitions, and that the only value of
this feature for Hugh's own code is that he has as many GET-CURRENTs
as he has uses of words with the feature. A sane person might see such
repetition and want to change up some factors to get rid of it, but
for Hugh this would be an act of vile treachery against :NAME

[toc] | [prev] | [next] | [standalone]


#57555

FromCecil Bayona <cbayona@cbayona.com>
Date2017-04-18 11:07 -0500
Message-ID<od5ddj$qhn$1@dont-email.me>
In reply to#57549
On 4/18/2017 10:01 AM, hughaguilar96@gmail.com wrote:
> On Tuesday, April 18, 2017 at 2:35:03 AM UTC-7, Stephen Pelc wrote:
>> On Mon, 17 Apr 2017 20:10:50 -0700 (PDT), hughaguilar96@gmail.com
>> wrote:
>>
>>> Nobody has ever written a commercial program in ANS-Forth
>>
>> That's a lie. Sure, you can wriggle, but the fact is that one of MPE's
>> customers ships a Forth appplication containing 1.2 million lines of
>> Forth source code. The application is built on VFX Forth, an ANS
>> Forth.
>>
>> There are other apps built on other ANS Forths.
> 
> This reminds me of when I said that CREATE DOES> was inefficient because it requires storing constants at compile-time then fetching them from memory at run-time rather, and you argued that it was efficient. But you didn't show your code! You only showed the disassembly of the machine-code generated. Finally I pressured you into showing your code, and it was not ANS-Forth --- VFX has a non-standard declaration that the user puts in to indicate that particular values comma'd after CREATE are non-mutable and can be treated as constants for efficiency.
> 
> You're standard trick (pun intended) is to claim that VFX is ANS-Forth, and that ANS-Forth is a valid standard. This is a lie. ANS-Forth was purposely crippled to make in incapable of supporting commercial programs. This was done for the purpose of preventing the Forth community from competing against Forth Inc. and MPE --- if they write a Forth system capable of supporting commercial programs (as I did with MFX) you denounce them as being non-standard wanna-bees --- but you routinely abandon ANS-Forth compatibility in your own programs, then you lie afterward saying that your programs are ANS-Forth (most likely, your 1.2 million line program has over 1 million lines of code that are not ANS-Forth and are actually impossible to write in ANS-Forth). You are using your position as a Forth-200x committee member to bully the Forth community --- force them to say that you are an ANS-Forth expert --- force them to ignore the fact that you abandon ANS-Forth compatibility gratuitously, while denouncing anybody else as non-standard when they fail to strictly adhere to ANS-Forth's idiotic and pointless restrictions.
> 
> Elizabeth Rather has repeatedly said that the purpose of ANS-Forth was not portable programs, but rather "portable programmers." ANS-Forth is crippleware. It is useful only as an educational tool --- students can write toy programs and learn the basics of Forth (how DUP and SWAP etc. work). Then the students become portable, in the sense that they qualify to upgrade to VFX (but this requires them to pay you hundreds of dollars) --- they already know basic Forth so they don't have to be taught this on the job --- companies are tired of hiring C programmers to write Forth code and then having them spend a month on the payroll struggling to learn how DUP and SWAP work --- ANS-Forth (and especially Gforth) solve this problem by allowing the students to learn this basic stuff first, before they get hired, but also by preventing them from competing against MPE with Gforth because Gforth is purposely crippled to make it non-competitive and safe.
> 
> ANS-Forth is all about telling people what they can't do. ANS-Forth is all about preventing Forth programmers from writing commercial programs. ANS-Forth's only purpose is to hold the Forth community down at the level of the beginning student who is struggling to learn how the data-stack works and is only capable of writing toy programs. Elizabeth Rather is like an evil kindergarten teacher who enjoys teaching the kindergarten class so much that she refuses to allow the students to graduate. The students remain in kindergarten as they become adolescents, still learning how to count to 10. The students remain in kindergarten into adulthood, still learning how to write simplistic and useless code such as this:
> 
> : ARRAY ( n -- )   CREATE DUP , CELLS ALLOT
>      DOES> ( n -- a)   SWAP OVER @ OVER < OVER
>         1 < OR ABORT" Out of Range" CELLS + ;
> 
> Eventually the students are old and gray (all ANS-Forth programmers are over 40 years old today) and they are still in kindergarten.
> 
> Here is a snippet from a document that I'm writing:
> ---------------------------------------------------------------------------
> 
> Stephen Pelc says:
> "Writing portable code is an egoless discipline."
> 
> This is the same Stephen Pelc that we find posting VFX-specific code on comp.lang.forth:
> In this thread: https://groups.google.com/forum/#!topic/comp.lang.forth/oXXQAGDKP7w
> 
> On Thursday, April 2, 2015 at 10:07:52 AM UTC-7, Stephen Pelc wrote:
>> On Wed, 1 Apr 2015 13:40:52 -0700 (PDT), hughaguilar96@gmail.com
>> wrote:
>>> So how do you write SYNONYM so that it can make a synonym of an immediate word?
>>
>> The VFX source code is:
>>
>> : SynComp,	\ xt --
>> \ Compile a child of SYNONYM.
>>    >body @ compile,
>> ;
>>
>> : Synonym	\ "<new-name>" "<curdef>" --
>> \ *G Create a new definition which redirects to an existing one.
>> \ ** Normal dictionary searches for *\i{<new-name>} will return
>> \ ** the xt of *\i{<curdef>}.
>>    create
>>      hide ' reveal dup , immediate?
>>      if  immediate  endif
>>      ['] SynComp, set-compiler
>>      $010 latest set-bit			\ set header's alias bit
>>    interp>
>>      @ execute
>> ;
>>
>> For some words you may have to RTFM.
>>
>> Stephen
> 
> Cynical readers will notice that this code is not ANS-Forth. When Stephen Pelc (Forth-200x committee member) tells the plebian (Hugh Aguilar) to RTFM (Read The F'ing Manual), he is referring to the VFX manual. All of that code is VFX-specific. Stephen Pelc is trying to trap the VFX users into relying on vendor-specific code so they won't be able to port their code to competitor's ANS-Forth compilers --- vendor lock-in, of course, is what the standard is supposed to prevent!
> 
> Alert readers will also notice this code has a bug in it. If SYNONYM is used to make a synonym of a word defined with CREATE and then >BODY is used on the synonym, >BODY will not return the body-address of the original word. I have read on comp.lang.forth that VFX has a new version that fixes this bug. I haven't bothered to download the new version however, so I haven't verified this. The more important problem is that Stephen Pelc is refusing to acknowledge the existence of the disambiguifiers and he is insisting that a word such as SYNONYM "requires carnal knowledge."
> 
> On Thursday, April 2, 2015 at 11:42:55 PM UTC-7, Stephen Pelc wrote:
>> On Thu, 2 Apr 2015 19:18:04 -0700 (PDT), hughaguilar96@gmail.com
>> wrote:
>>> This is not ANS-Forth code --- I don't want to RTFM because I don't want to
>>> become an expert on VFX --- I'm already an expert on ANS-Forth.
>>
>> You asked a tech-support question about VFX. I answered it pointing
>> out that your initial assumption (how IF works) was wrong.
>>
>> The code illustrates precisely why SYNONYM is defined the way it is
>> defined - because it requires carnal knowledge. If you want to know
>> how SYNONYM works:
>>    "So how do you write SYNONYM so that it can make a synonym of an
>>    immediate word?"
>> then do not complain when you are told.
>>
>> Stephen
> 
> My assumption about IF was that it was immediate. This is sometimes right (SwiftForth) and sometimes wrong (VFX). The ambiguity of ANS-Forth, however, is meta-wrong --- ambiguity such as this is absurd --- ANS-Forth is a standard that doesn't standardize.
> 
> Being an ANS-Forth programmer is all about "can't" --- ANS-Forth expertise seems to consist primarily of telling people what they can't do, which is what Stephen Pelc is telling me --- Albert van der Horst also tells me that I can't write SYNONYM in ANS-Forth:
> 
> On Saturday, April 11, 2015 at 4:56:31 PM UTC-7, hughag...@gmail.com wrote:
>> On Friday, April 3, 2015 at 3:48:32 AM UTC-7, Albert van der Horst wrote:
>>> We already have been over this. You can't define SYNONYM in ISO Forth.
>>> It requires carnal knowledge. So how would you call some one who still
>>> tries?
>>
>> I would use the term "programmer" to describe such a person.
> 
> Given the disambiguifiers provided earlier, SYNONYM is trivial to write in ANS-Forth (a.k.a. ISO-Forth). This code requires the novice-package (for FIELD and { and some other minor code), but everything in the novice-package is ANS-Forth, so this code is ANS-Forth too:
> -------------------------------------------------------------------------------------------------------
> 
> : :synonym { xt flg str wid -- }            \ FLG is 1 for immediate and -1 for non-immediate
>      str wid :name
>      flg 1 = if      xt lit,  execute,  ;,  immediate        exit then
>      flg -1 = if     xt compile,  ;,                         exit then
>      true abort" *** :SYNONYM given an invalid xt ***" ;
> 
> : :synonym-fast-check ( -- )
>      state @ 0= abort" *** a word created by :SYNONYM-FAST can't be used in interpretive mode ***" ;
> 
> : :synonym-fast { xt flg str wid -- }       \ FLG is 1 for immediate and -1 for non-immediate
>      str wid :name
>      flg 1 = if      xt lit,  execute,  ;,  immediate                exit then
>      flg -1 = if     postpone :synonym-fast-check
>                      xt lit,  postpone compile,  ;,  immediate       exit then
>      true abort" *** :SYNONYM-FAST given an invalid xt ***" ;
> 
> : 'find ( -- xt flg )                       \ stream: name                  \ FLG is 1 for immediate and -1 for non-immediate
>      bl word find  dup 0= abort" *** 'FIND couldn't find the word ***" ;
> 
> : synonym { wid | new -- }                  \ stream: new-name old-name     \ the new word is compiled into the WID word-list
>      bl word hstr to new
>      'find  new  wid :synonym
>      new dealloc ;
> 
> : synonym-fast { wid | new -- }             \ stream: new-name old-name     \ the new word is compiled into the WID word-list
>      bl parse <hstr> to new
>      'find  new  wid :synonym-fast
>      new dealloc ;
> 
> \ :SYNONYM-FAST generates faster executing code than :SYNONYM but the words can't be used in interpretive mode.
> \ This may not be necessary with a good optimizing compiler, but I'm not aware of any at this time.
> 
> 1234512345 constant alias-id                \ an arbitrary number used to identify alias'd definitions
> 
> 0
>      w field alias.xt                        \ this should be the first field so the DOES> portion of ALIAS will be fast (no addition needed)
>      w field alias.adr                       \ the address of the body, used to identify alias'd definitions
>      w field alias.id                        \ the constant ALIAS-ID,   used to identify alias'd definitions
> constant alias-struct
> 
> : alias ( wid -- )                          \ stream: new-name old-name     \ the new word is compiled into the WID word-list
>      get-current  swap set-current  create  set-current
>          here >r  alias-struct allot
>          'find 1 = if  immediate  then   r@ alias.xt !
>          r@                              r@ alias.adr !
>          alias-id                        r@ alias.id !
>          rdrop
>      does>
>          alias.xt @  execute ;
> 
> \ ALIAS does the same thing as SYNONYM but has the advantage that >BODY will work on it.
> \ It is slower executing though (especially under SwiftForth in which CREATE DOES> words are very inefficient).
> 
> : >body ( xt -- adr )
>      >body >r
>      r@ alias.adr @  r@ = if  r@ alias.id @  alias-id = if                   \ is this an alias'd word?
>          r> alias.xt @  >body  exit then then                                \ return the body of the original word
>      r> ;                                                                    \ return the body of this word
> 
> \ Note that >BODY still has an undefined result if used on a word that wasn't defined with CREATE or isn't an alias of such a word.
> 
> -------------------------------------------------------------------------------------------------------
> 
> Given the disambiguifiers, the impossible becomes easy!
> 
> One of the reasons why I continue to program in ANS-Forth, although I consider ANS-Forth to be utterly retarded, is that doing the impossible is great fun --- it is just funny as heck to have self-proclaimed ANS-Forth experts tell me that something is impossible, and then do it anyway --- why doesn't everybody see the humor in this?
> 
> Also note that my SYNONYM SYNONYM-FAST and ALIAS are more useful than Stephen Pelc's SYNONYM because I allow the user to set the word-list that his synonym will go into --- this is sometimes useful --- use GET-CURRENT if you want to just go into the current word-list.
> 

I thought one of the great things about Forth is the ability to enhance 
itself and even redefine built in words. So in that sense VFX Forth is 
not breaking any Forth rules, it's taking advantage of Forth 
capabilities, that is also called freedom to build Forth as one desires. 
One is also free to not use the extensions provided if one so desires.

On the other hand many here seem to be very selective and against when 
some propose enhancements to Forth but gloss over enhancements by MPE 
and Forth Inc. Not quite fair either so I ignore their input as grossly 
biased.

-- 
Cecil - k5nwa

[toc] | [prev] | [next] | [standalone]


#57553

FromCecil Bayona <cbayona@cbayona.com>
Date2017-04-18 10:59 -0500
Message-ID<od5cuu$orv$1@dont-email.me>
In reply to#57541
On 4/18/2017 4:35 AM, Stephen Pelc wrote:
> On Mon, 17 Apr 2017 20:10:50 -0700 (PDT), hughaguilar96@gmail.com
> wrote:
> 
>> Nobody has ever written a commercial program in ANS-Forth
> 
> That's a lie. Sure, you can wriggle, but the fact is that one of MPE's
> customers ships a Forth appplication containing 1.2 million lines of
> Forth source code. The application is built on VFX Forth, an ANS
> Forth.
> 
> There are other apps built on other ANS Forths.
> 
> Stephen
> 

I read about that program some time back and we talked on the phone 
today about it, if it's the same its a program used by construction 
companies to create job estimates and manage very large construction 
projects, a very impressive product.

-- 
Cecil - k5nwa

[toc] | [prev] | [next] | [standalone]


Page 5 of 8 — ← Prev page 1 2 3 4 [5] 6 7 8  Next page →

Back to top | Article view | comp.lang.forth


csiph-web