Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #56858 > unrolled thread
| Started by | "HAA" <someone@microsoft.com> |
|---|---|
| First post | 2017-04-08 20:53 +1000 |
| Last post | 2017-04-10 07:42 -1000 |
| Articles | 20 on this page of 151 — 21 participants |
Back to article view | Back to comp.lang.forth
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 →
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2017-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]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2017-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]
| From | Alex <alex@rivadpm.com> |
|---|---|
| Date | 2017-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]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2017-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]
| From | hughaguilar96@gmail.com |
|---|---|
| Date | 2017-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]
| From | "HAA" <someone@microsoft.com> |
|---|---|
| Date | 2017-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]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2017-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]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2017-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]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2017-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]
| From | "HAA" <someone@microsoft.com> |
|---|---|
| Date | 2017-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]
| From | Paul Rubin <no.email@nospam.invalid> |
|---|---|
| Date | 2017-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]
| From | "HAA" <someone@microsoft.com> |
|---|---|
| Date | 2017-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]
| From | Lars Brinkhoff <lars.spam@nocrew.org> |
|---|---|
| Date | 2017-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]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2017-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]
| From | hughaguilar96@gmail.com |
|---|---|
| Date | 2017-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]
| From | stephen@mpeforth.com (Stephen Pelc) |
|---|---|
| Date | 2017-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]
| From | hughaguilar96@gmail.com |
|---|---|
| Date | 2017-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]
| From | Julian Fondren <julian.fondren@gmail.com> |
|---|---|
| Date | 2017-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]
| From | Cecil Bayona <cbayona@cbayona.com> |
|---|---|
| Date | 2017-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]
| From | Cecil Bayona <cbayona@cbayona.com> |
|---|---|
| Date | 2017-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