Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #7710 > unrolled thread
| Started by | Arnold Doray <thinksquared@gmail.com> |
|---|---|
| First post | 2011-12-03 19:07 +0000 |
| Last post | 2011-12-08 03:37 -0600 |
| Articles | 20 on this page of 187 — 17 participants |
Back to article view | Back to comp.lang.forth
Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-03 19:07 +0000
Re: Memoizing recursive words "A. K." <akk@nospam.org> - 2011-12-04 13:21 +0100
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-04 14:20 +0000
Re: Memoizing recursive words Josh Grams <josh@qualdan.com> - 2011-12-04 16:03 +0000
Re: Memoizing recursive words "A. K." <akk@nospam.org> - 2011-12-04 17:25 +0100
Re: Memoizing recursive words BruceMcF <agila61@netscape.net> - 2011-12-04 10:51 -0800
Re: Memoizing recursive words "Elizabeth D. Rather" <erather@forth.com> - 2011-12-04 12:50 -1000
Re: Memoizing recursive words BruceMcF <agila61@netscape.net> - 2011-12-04 15:40 -0800
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-05 11:17 +0000
Re: Memoizing recursive words "Elizabeth D. Rather" <erather@forth.com> - 2011-12-04 08:24 -1000
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-04 19:14 +0000
Re: Memoizing recursive words BruceMcF <agila61@netscape.net> - 2011-12-04 12:09 -0800
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-05 04:00 +0000
Re: Memoizing recursive words BruceMcF <agila61@netscape.net> - 2011-12-07 12:41 -0800
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-05 11:04 -0600
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-06 07:24 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-06 04:02 -0600
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-06 08:03 +0000
Re: Memoizing recursive words stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-06 10:46 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-06 04:54 -0600
Re: Memoizing recursive words Hans Bezemer <thebeez@xs4all.nl> - 2011-12-08 00:08 +0100
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-06 12:36 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-06 10:28 -0600
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-06 16:32 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-06 10:40 -0600
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-06 16:51 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-06 12:03 -0600
Re: Memoizing recursive words Hans Bezemer <thebeez@xs4all.nl> - 2011-12-07 23:55 +0100
Re: Memoizing recursive words Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-07 01:06 +0100
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-07 03:37 -0600
Re: Memoizing recursive words stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-07 10:36 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-07 06:23 -0600
Re: Memoizing recursive words stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-07 13:50 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-07 11:49 -0600
Re: Memoizing recursive words anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-08 15:36 +0000
Re: Memoizing recursive words anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-08 16:15 +0000
Re: Memoizing recursive words Albert van der Horst <albert@spenarnc.xs4all.nl> - 2011-12-10 17:23 +0000
Re: Memoizing recursive words stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-10 17:34 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-10 11:43 -0600
return address manipulation (was: Memoizing recursive words) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-07 13:29 +0000
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-07 11:55 -0600
Re: return address manipulation Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-08 00:03 +0100
Re: return address manipulation BruceMcF <agila61@netscape.net> - 2011-12-07 15:11 -0800
Re: return address manipulation Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-08 01:52 +0100
Re: return address manipulation Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2011-12-08 11:12 +0000
Re: return address manipulation Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-08 18:04 +0100
Re: return address manipulation anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-08 15:51 +0000
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-08 12:17 -0600
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-13 13:07 -0600
Re: return address manipulation Alex McDonald <blog@rivadpm.com> - 2011-12-13 13:37 -0800
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-14 03:45 -0600
Re: return address manipulation Alex McDonald <blog@rivadpm.com> - 2011-12-14 01:58 -0800
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-14 04:09 -0600
Re: return address manipulation "Elizabeth D. Rather" <erather@forth.com> - 2011-12-14 10:43 -1000
Re: return address manipulation Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-14 14:08 +0100
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-14 09:18 -0600
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-14 09:48 -0600
Re: return address manipulation Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-14 23:24 +0100
Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 04:50 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 07:45 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-15 15:48 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 08:08 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 10:44 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 09:07 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-15 17:16 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 09:44 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-15 17:55 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 10:13 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-16 17:24 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 11:25 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 09:40 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 12:11 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 19:01 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-16 03:14 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-16 07:54 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-16 16:58 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-17 09:58 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-19 14:36 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-19 12:49 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-20 02:55 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-20 06:34 -0800
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 10:22 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 12:44 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-16 17:27 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 09:33 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 12:52 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-15 11:07 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-16 03:16 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-16 08:10 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-16 12:38 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-16 08:13 -0800
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-16 12:43 -0600
Re: Quotations [Was: return address manipulation] Sieur de Bienville <morrimichael@gmail.com> - 2011-12-17 15:35 -0800
Re: Quotations [Was: return address manipulation] Roelf Toxopeus <rt4all@notthis.hetnet.nl> - 2011-12-19 20:40 +0100
Re: Quotations [Was: return address manipulation] Sieur de Bienville <morrimichael@gmail.com> - 2011-12-19 13:41 -0800
Re: Quotations [Was: return address manipulation] Mark Wills <markrobertwills@yahoo.co.uk> - 2011-12-27 07:30 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-27 16:21 +0000
Re: Quotations [Was: return address manipulation] Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-27 20:55 +0100
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-27 14:42 -0600
Re: Quotations [Was: return address manipulation] Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-27 22:58 +0100
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-27 16:43 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-30 12:00 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-30 06:09 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-30 13:23 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-30 08:13 -0600
Re: Quotations [Was: return address manipulation] mhx@iae.nl (Marcel Hendrix) - 2011-12-30 16:48 +0200
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-30 16:36 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2011-12-30 15:16 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-31 14:00 +0000
Re: Quotations [Was: return address manipulation] Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-01-01 12:22 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-01 06:09 -0600
Re: Quotations [Was: return address manipulation] mhx@iae.nl (Marcel Hendrix) - 2012-01-01 14:17 +0200
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-01 09:50 -0600
Re: Quotations [Was: return address manipulation] Bernd Paysan <bernd.paysan@gmx.de> - 2012-01-01 18:15 +0100
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-01 11:48 -0600
Re: Quotations [Was: return address manipulation] Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-01-02 11:19 +0000
Re: Quotations [Was: return address manipulation] mhx@iae.nl (Marcel Hendrix) - 2012-01-01 14:02 +0200
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-01 09:37 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-02 14:30 +0000
Re: Quotations [Was: return address manipulation] Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-01-03 13:28 +0000
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2012-01-01 13:35 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-02 14:14 +0000
Re: Quotations [Was: return address manipulation] Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-01-03 12:04 +0000
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-31 14:19 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-31 11:46 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-02 13:47 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-02 10:19 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-03 09:08 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-03 04:47 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-03 16:55 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-03 11:28 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-04 14:52 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-04 09:54 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-04 17:28 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-04 12:10 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2012-01-03 10:09 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-04 17:14 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-04 11:26 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-04 17:49 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-04 12:11 -0600
Re: Quotations [Was: return address manipulation] BruceMcF <agila61@netscape.net> - 2012-01-04 12:59 -0800
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-05 16:46 +0000
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-03 16:34 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-03 11:40 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-04 15:03 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-01-04 12:01 -0600
Re: Quotations [Was: return address manipulation] Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2012-01-04 21:02 +0000
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-01-05 16:38 +0000
Re: Quotations [Was: return address manipulation] Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2012-01-07 14:27 +0000
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-30 11:33 +0000
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-30 11:53 +0000
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-16 17:18 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-16 13:16 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-19 15:01 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-15 10:40 -0600
Re: Quotations [Was: return address manipulation] anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-22 16:21 +0000
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-22 11:40 -0600
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-26 13:01 -0600
Re: Quotations [Was: return address manipulation] Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-27 03:54 -0600
Re: Quotations [Was: return address manipulation] Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-15 20:11 +0100
Quotations (was: return address manipulation) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-14 15:27 +0000
Re: Quotations Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-14 09:50 -0600
Re: Quotations Bernd Paysan <bernd.paysan@gmx.de> - 2011-12-14 22:38 +0100
Re: Quotations Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2011-12-14 23:03 +0000
Re: Quotations anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-15 15:56 +0000
Re: return address manipulation stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-09 14:48 +0000
Re: return address manipulation anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-09 16:35 +0000
Re: return address manipulation BruceMcF <agila61@netscape.net> - 2011-12-09 10:18 -0800
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-09 12:36 -0600
Re: return address manipulation BruceMcF <agila61@netscape.net> - 2011-12-09 12:07 -0800
Re: return address manipulation anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-10 12:37 +0000
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-10 11:49 -0600
Re: return address manipulation BruceMcF <agila61@netscape.net> - 2011-12-10 10:06 -0800
Re: return address manipulation Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-10 12:37 -0600
Re: return address manipulation BruceMcF <agila61@netscape.net> - 2011-12-10 11:28 -0800
Re: return address manipulation "Elizabeth D. Rather" <erather@forth.com> - 2011-12-09 08:39 -1000
Re: return address manipulation anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-10 12:34 +0000
Re: return address manipulation BruceMcF <agila61@netscape.net> - 2011-12-10 06:39 -0800
Re: return address manipulation anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-11 11:30 +0000
Re: Memoizing recursive words stephenXXX@mpeforth.com (Stephen Pelc) - 2011-12-06 17:18 +0000
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-07 14:30 +0000
Re: Memoizing recursive words anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-07 15:33 +0000
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-07 17:09 +0000
Re: Memoizing recursive words anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2011-12-07 17:26 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-07 12:08 -0600
Re: Memoizing recursive words Arnold Doray <thinksquared@gmail.com> - 2011-12-08 00:05 +0000
Re: Memoizing recursive words Andrew Haley <andrew29@littlepinkcloud.invalid> - 2011-12-08 03:37 -0600
Page 5 of 10 — ← Prev page 1 … 3 4 [5] 6 7 … 10 Next page →
| From | BruceMcF <agila61@netscape.net> |
|---|---|
| Date | 2011-12-20 06:34 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <d287b0c3-34c4-4ff4-b80c-bbd23477fd92@n6g2000vbg.googlegroups.com> |
| In reply to | #8237 |
On Dec 20, 3:55 am, Andrew Haley <andre...@littlepinkcloud.invalid> wrote: > BruceMcF <agil...@netscape.net> wrote: > > On Dec 19, 9:36?am, an...@mips.complang.tuwien.ac.at (Anton Ertl) > > wrote: > >> >It would seem to suffice to have an operator to create a > >> >new instance xt from a base definition xt. > > >> That's in the line of thought of having a separate syntax for closures > >> (instead of just refering to outer locals in quotation. > > > After working out what was the big deal of referring to outer locals > > in quotation, which I didn't at first see, what I was thinking was > > it would be able to split it into two parts: specifying before the > > locals are first created which outer locals are *able to* be used in > > quotation, and then allocating those as a dynamic memory frame when > > cloning the base quotation xt. > > Then when the local is originally created, its not created as a > > reference to a stack frame, its created as a reference to an > > embedded anonymous value, which is accessed with one level of > > indirection, and when the quotation xt is cloned, the embedded set > > of anynomous values are copied verbatim into the allocated frame > > which follows after the xt of the quotation in the allocated > > structure: > I think I've asked this before, but: where are these anonymous values > embedded? And where would the closure be freed? (1) In the definition (2) The xt generated directly by the quotation wouldn't be a closure ~ only the reference to a template for creating a closure by the cloning operation. The closure would be freed by the corresponding free cloned xt operation. Automatic closure generation, reference counting and garbage collection would be higher level operations built on top of the explicit clone creator and destroyer operations.
[toc] | [prev] | [next] | [standalone]
| From | BruceMcF <agila61@netscape.net> |
|---|---|
| Date | 2011-12-15 10:22 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <9cf4f483-7165-488f-8e39-37dac78d0fca@h3g2000yqa.googlegroups.com> |
| In reply to | #8102 |
On Dec 15, 12:25 pm, Andrew Haley <andre...@littlepinkcloud.invalid> wrote: > BruceMcF <agil...@netscape.net> wrote: >> Why is that? That is, with anonymous quotations of a sequence of Forth >> code, as opposed to with the programming concept of closure? > I don't understand the distinction. If the quotation has copies of > the locals in an enclosing scope, it's a closure. Not according to what I understood from what Anton said ~ AFAICT, he said it has to be able to have multiple instances. The same xt referring to multiple instances of the same definition ~ that's seems like the hard part. Mind, the same semantics I described would support multiple instances ... you'd need to have an additional level of indirection to the anonymous values, and have a word to instantiate each additional instance and presuming that instantiated the additional anonymous values in allocated memory, a word to free that instance when you are done with it. The xt created would execute the handle for the imported values than jump to the quotation code. But the first instance would have the template of anonymous values embedded within it, so they would not be allocated or freed.
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2011-12-15 12:44 -0600 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <p8ydnVht6IKR3XfTnZ2dnUVZ_r2dnZ2d@supernews.com> |
| In reply to | #8109 |
BruceMcF <agila61@netscape.net> wrote: > On Dec 15, 12:25?pm, Andrew Haley <andre...@littlepinkcloud.invalid> > wrote: >> BruceMcF <agil...@netscape.net> wrote: > >>> Why is that? That is, with anonymous quotations of a sequence of Forth >>> code, as opposed to with the programming concept of closure? > >> I don't understand the distinction. If the quotation has copies of >> the locals in an enclosing scope, it's a closure. > > Not according to what I understood from what Anton said ~ AFAICT, he > said it has to be able to have multiple instances. Well, yes, of course: every bunch of locals has its own frame. You potentially have multiple tasks, too. You certainly can't allocate them in a static buffer. Andrew.
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2011-12-16 17:27 +0000 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <2011Dec16.182752@mips.complang.tuwien.ac.at> |
| In reply to | #8109 |
BruceMcF <agila61@netscape.net> writes:
>Not according to what I understood from what Anton said ~ AFAICT, he
>said it has to be able to have multiple instances. The same xt
>referring to multiple instances of the same definition ~ that's seems
>like the hard part.
It would not be the same xt, of course. If it was the same xt, we
would have no way to tell the instances apart.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2011: http://www.euroforth.org/ef11/
[toc] | [prev] | [next] | [standalone]
| From | BruceMcF <agila61@netscape.net> |
|---|---|
| Date | 2011-12-15 09:33 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <35a7ccca-ea78-409c-8213-35810bc475be@q9g2000yqe.googlegroups.com> |
| In reply to | #8098 |
On Dec 15, 11:44 am, Andrew Haley <andre...@littlepinkcloud.invalid>
wrote:
> The latter, as discussed earlier. Capturing locals from the enclosing
> scope is not very easy, and figuring out when they may be deallocated
> is hard: I think you'd need a garbage collector or people would have
> to remember to deallocate the closure.
Why would anonymous values embedded within a definition but jumped
over have to be deallocated? After all, the *names* still can be
forgotten when the containing definition closes.
The extra machinery would seem to be rather propagating the value to
all copies of those anonymous values, if there were to be more than
one, so that if the container that generated the imported local value
modified that value, the quotation if executed separately would
execute on the correct value ... but the solution to that would be to
declare the inheritable locals up front so that the corresponding
anynomous value is created up front and used in lieu of an ordinary
volatile local.
The prior definition of locals to behave like volatile values whose
name vanish when the definition is over supports this ~ in the
ordinary locals declaration / value establishment, if the local has
already been declared to be heritable by a quotation, you use the
embedded anonymous value instead.
The *name* can still vanish when the containing definition is
completed.
So:
Defer bar1
Defer bar2
: foo {" a b "} { a b c d e f }
c ** d + e - TO a
c d * e + f - TO b
[: a b + * ;] [ a b - * ;] ;
IS bar1 IS bar2
... would see bar1 and bar2 multiply by the same factors until foo is
executed on a new set of inputs, then it would shift (ignoring the
fact that this case would be done more easily with named values
passing the factors and also that when I've run foo, I've immediately
trampled the values passed into a and b, but rather assuming that
there is some application where the technique would be of some
purpose, ).
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2011-12-15 12:52 -0600 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <p8ydnVtt6IJv3HfTnZ2dnUVZ_r2dnZ2d@supernews.com> |
| In reply to | #8108 |
BruceMcF <agila61@netscape.net> wrote: > On Dec 15, 11:44?am, Andrew Haley <andre...@littlepinkcloud.invalid> > wrote: >> The latter, as discussed earlier. Capturing locals from the enclosing >> scope is not very easy, and figuring out when they may be deallocated >> is hard: I think you'd need a garbage collector or people would have >> to remember to deallocate the closure. > > Why would anonymous values embedded within a definition but jumped > over have to be deallocated? After all, the *names* still can be > forgotten when the containing definition closes. I don't see what the names have to do with anything. You need to copy the values somewhere at runtime, so that the closure can refer to them even after the word in which they were declared has exited. > The extra machinery would seem to be rather propagating the value to > all copies of those anonymous values, if there were to be more than > one, so that if the container that generated the imported local value > modified that value, the quotation if executed separately would > execute on the correct value ... but the solution to that would be to > declare the inheritable locals up front so that the corresponding > anynomous value is created up front and used in lieu of an ordinary > volatile local. No, it makes far more sense to *copy* the locals. Modifying the locals of a word that's not executing is a nightmare scenario. Andrew.
[toc] | [prev] | [next] | [standalone]
| From | BruceMcF <agila61@netscape.net> |
|---|---|
| Date | 2011-12-15 11:07 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <67c5482d-b73a-46d0-bf31-523cf1f5c8cb@f1g2000yqi.googlegroups.com> |
| In reply to | #8113 |
On Dec 15, 1:52 pm, Andrew Haley <andre...@littlepinkcloud.invalid> wrote: > No, it makes far more sense to *copy* the locals. Modifying the > locals of a word that's not executing is a nightmare scenario. Are you assuming that because they are called locals, they are executing in a return stack frame? But isn't the reason locals are done that way because they *aren't* needed to persist beyond the lifetime of the definition being executed? If they *are* needed to persist beyond the lifetime of the definition being executed, why have the information stored there? Implement *those* locals as anonymous values. An xt would refer to a single instance, which would entail a single copy of the set of anonymous values, a new instance would be created by cloning, and result in a new xt.
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2011-12-16 03:16 -0600 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <LpWdnQpUVa7zkXbTnZ2dnUVZ_qKdnZ2d@supernews.com> |
| In reply to | #8115 |
BruceMcF <agila61@netscape.net> wrote: > On Dec 15, 1:52?pm, Andrew Haley <andre...@littlepinkcloud.invalid> > wrote: >> No, it makes far more sense to *copy* the locals. ?Modifying the >> locals of a word that's not executing is a nightmare scenario. > > Are you assuming that because they are called locals, they are > executing in a return stack frame? No, but they have to be local to that particular execution. > But isn't the reason locals are done that way because they *aren't* > needed to persist beyond the lifetime of the definition being > executed? Yes. > If they *are* needed to persist beyond the lifetime of the > definition being executed, why have the information stored there? > Implement *those* locals as anonymous values. locals *are* anonymous values. What does it mean to implement a local as an anonymous value? They can't be in the dictionary or you'd lose re-entrancy. Andrew.
[toc] | [prev] | [next] | [standalone]
| From | BruceMcF <agila61@netscape.net> |
|---|---|
| Date | 2011-12-16 08:10 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <6dcdf137-5407-4232-af76-19a69af2c254@x7g2000yqb.googlegroups.com> |
| In reply to | #8132 |
On Dec 16, 4:16 am, Andrew Haley <andre...@littlepinkcloud.invalid> wrote: locals *are* anonymous values. What does it mean to implement a > local as an anonymous value? They can't be in the dictionary or > you'd lose re-entrancy. That's why I'm asking these questions ~ the actual *behavior* that you are talking about is quite ambiguous, except when reinforced by tacit assumptions. You taking it out of being a simple quotation to this concept of closures, without saying what is the big payoff of the upgrade in complexity. Indeed, without locals, or with only local with scope local to the quotations, simple quotations are intrinsically re-entrant due to reliance on the stack. It seems to me it would be possible to generate a simple quotation, and for those that include locals in a way that does not leave them intrinsically re-entrant, to clone an instance on demand, and then executing the clone rather than the template you'd get re-entrancy back.
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2011-12-16 12:38 -0600 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <HfKdnUJVOKOMDXbTnZ2dnUVZ_sudnZ2d@supernews.com> |
| In reply to | #8138 |
BruceMcF <agila61@netscape.net> wrote: > On Dec 16, 4:16?am, Andrew Haley <andre...@littlepinkcloud.invalid> > wrote: >> locals *are* anonymous values. What does it mean to implement a >> local as an anonymous value? They can't be in the dictionary or >> you'd lose re-entrancy. > > That's why I'm asking these questions ~ the actual *behavior* that you > are talking about is quite ambiguous, except when reinforced by tacit > assumptions. > > You taking it out of being a simple quotation to this concept of > closures, without saying what is the big payoff of the upgrade in > complexity. > > Indeed, without locals, or with only local with scope local to the > quotations, simple quotations are intrinsically re-entrant due to > reliance on the stack. I agree. That's why it's probably not a good idea to allow quotations access to locals in the enclosing scope. It's quite a lot of effort for insufficient benefit. > It seems to me it would be possible to generate a simple quotation, > and for those that include locals in a way that does not leave them > intrinsically re-entrant, to clone an instance on demand, and then > executing the clone rather than the template you'd get re-entrancy > back. IMO there isn't much point: we already have a construct that creates a closure in the dictionary, and it's called DOES>. Statically- allocated locals aren't really locals in any useful sense. Andrew.
[toc] | [prev] | [next] | [standalone]
| From | BruceMcF <agila61@netscape.net> |
|---|---|
| Date | 2011-12-16 08:13 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <8df1e5b3-bdd1-4406-b444-085dd87a7543@q9g2000yqe.googlegroups.com> |
| In reply to | #8132 |
On Dec 16, 4:16 am, Andrew Haley <andre...@littlepinkcloud.invalid> wrote: Exampla gracia: > No, but they have to be local to that particular execution. Execution of what? Of the compile time behavior of [: ... ;] ? Of the runtime behavior of the word into which the quotation is compiled? Of the quotation when EXECUTE is called?
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2011-12-16 12:43 -0600 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <HfKdnX1VOKOkDHbTnZ2dnUVZ_sudnZ2d@supernews.com> |
| In reply to | #8139 |
BruceMcF <agila61@netscape.net> wrote: > On Dec 16, 4:16?am, Andrew Haley <andre...@littlepinkcloud.invalid> > wrote: > > Exampla gracia: >> No, but they have to be local to that particular execution. > > Execution of what? Of the compile time behavior of [: ... ;] ? Of the > runtime behavior of the word into which the quotation is compiled? Of > the quotation when EXECUTE is called? "13.3.1 Locals A local is a data object whose execution semantics shall return its value, whose scope shall be limited to the definition in which it is declared, and whose use in a definition shall not preclude reentrancy or recursion." I presume that, in the case of a quotation, the above phrase will have to be modified somewhat to say "A local is a data object whose execution semantics shall return its value, whose scope shall be limited to the definition *or quotation* in which it is declared, and whose use in a definition shall not preclude reentrancy or recursion." ... along with some language to make it clear that you can't refer to a local in an enclosing quotation or definition. Andrew.
[toc] | [prev] | [next] | [standalone]
| From | Sieur de Bienville <morrimichael@gmail.com> |
|---|---|
| Date | 2011-12-17 15:35 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <b49d2319-c897-4519-ab66-0df16d8d5f21@h3g2000yqa.googlegroups.com> |
| In reply to | #8115 |
On Dec 15, 1:07 pm, BruceMcF <agil...@netscape.net> wrote: > An xt would refer to a single instance, which would entail a single > copy of the set of anonymous values, a new instance would be created > by cloning, and result in a new xt. That's how Apple implemented them for Objective-C. Apple calls them Blocks though, presumably because that was the SmallTalk name for them. http://cocoawithlove.com/2009/10/how-blocks-are-implemented-and.html Note that these have some restrictions not common to most closure implementations. Use of closures greatly simplifies some common tasks in OS X, especially multitasking, but I'm not sure what advantages they would have over CREATE...DOES> even on OS X. Virtually, Michael Morris
[toc] | [prev] | [next] | [standalone]
| From | Roelf Toxopeus <rt4all@notthis.hetnet.nl> |
|---|---|
| Date | 2011-12-19 20:40 +0100 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <rt4all-980A35.20405919122011@[10.12.75.213]> |
| In reply to | #8177 |
In article <b49d2319-c897-4519-ab66-0df16d8d5f21@h3g2000yqa.googlegroups.com>, Sieur de Bienville <morrimichael@gmail.com> wrote: > On Dec 15, 1:07 pm, BruceMcF <agil...@netscape.net> wrote: > > An xt would refer to a single instance, which would entail a single > > copy of the set of anonymous values, a new instance would be created > > by cloning, and result in a new xt. > > That's how Apple implemented them for Objective-C. Apple calls them > Blocks though, presumably because that was the SmallTalk name for > them. > > http://cocoawithlove.com/2009/10/how-blocks-are-implemented-and.html > > Note that these have some restrictions not common to most closure > implementations. Use of closures greatly simplifies some common tasks > in OS X, especially multitasking, but I'm not sure what advantages > they would have over CREATE...DOES> even on OS X. Hi, wrt simplifying mulitasking for Apple. I'm not so sure blocks are the cause of this. But you could be right, of course. For every function using a block as an argument as found in Apple's dispatcher/multitasker for Grand Central Dispatch, there is a version using an 'ordinary' function-pointer as argument. AFAIK there's no preference for one or the other to be found in the header files, neither are the versions using function pointers deprecated. My take is that the dispatcher technique itself simplifies scheduling and dispatching tasks while dealing with multithreading on Apple's multi-core/processornode machines. The technique itself doesn't look to be dependant on blocks exclusively. Which is good because it simplified changing SwiftForth's POSIX based multitasker on OSX in to one using GCD. I would not have known how to do it using ObjC blocks. For a long time CarbonMacForth has closures as described in other parts of this thread. Appearently they where a favourite technique of CMF's author. I could never figure out why I should use them... ...still can't I'm afraid. groet, Roelf
[toc] | [prev] | [next] | [standalone]
| From | Sieur de Bienville <morrimichael@gmail.com> |
|---|---|
| Date | 2011-12-19 13:41 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <0edddac0-6f82-4a2a-81a2-53b1c8c25e3f@h11g2000yqd.googlegroups.com> |
| In reply to | #8222 |
On Dec 19, 1:40 pm, Roelf Toxopeus <rt4...@notthis.hetnet.nl> wrote: > Hi, wrt simplifying mulitasking for Apple. I'm not so sure blocks are > the cause of this. But you could be right, of course. [snip] > For a long time CarbonMacForth has closures as described in other parts > of this thread. Appearently they where a favourite technique of CMF's > author. I could never figure out why I should use them... > ...still can't I'm afraid. > > groet, > Roelf GCD certainly does work with functions just as well as with blocks, the way that blocks simplify multi-tasking in OS X is that, in C, it's easier to write a block than it is to write a function that takes a context. As far as I can tell, that's not true of Forth. Virtually, Michael Morris
[toc] | [prev] | [next] | [standalone]
| From | Mark Wills <markrobertwills@yahoo.co.uk> |
|---|---|
| Date | 2011-12-27 07:30 -0800 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <79641db7-60ae-427c-9165-6bc6871fbab6@z25g2000vbs.googlegroups.com> |
| In reply to | #8115 |
On Dec 15, 7:07 pm, BruceMcF <agil...@netscape.net> wrote: > On Dec 15, 1:52 pm, Andrew Haley <andre...@littlepinkcloud.invalid> > wrote: > > > No, it makes far more sense to *copy* the locals. Modifying the > > locals of a word that's not executing is a nightmare scenario. > > Are you assuming that because they are called locals, they are > executing in a return stack frame? But isn't the reason locals are > done that way because they *aren't* needed to persist beyond the > lifetime of the definition being executed? If they *are* needed to > persist beyond the lifetime of the definition being executed, why have > the information stored there? Implement *those* locals as anonymous > values. > > An xt would refer to a single instance, which would entail a single > copy of the set of anonymous values, a new instance would be created > by cloning, and result in a new xt. We, if they do indeed need to persist beyond the lifetime of the word being executed then they are global, not locals :-b
[toc] | [prev] | [next] | [standalone]
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Date | 2011-12-27 16:21 +0000 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <2011Dec27.172150@mips.complang.tuwien.ac.at> |
| In reply to | #8362 |
Mark Wills <markrobertwills@yahoo.co.uk> writes:
>We, if they do indeed need to persist beyond the lifetime of the word
>being executed then they are global, not locals :-b
"local" refers to visibility, not lifetime.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2011: http://www.euroforth.org/ef11/
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2011-12-27 20:55 +0100 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <jdd7s3$ta4$1@online.de> |
| In reply to | #8363 |
Anton Ertl wrote:
> Mark Wills <markrobertwills@yahoo.co.uk> writes:
>>We, if they do indeed need to persist beyond the lifetime of the word
>>being executed then they are global, not locals :-b
>
> "local" refers to visibility, not lifetime.
Maybe in Lisp. People think different in Forth. Gforth's locals have a
"funny" visibility when you think it from a Lisp point of view - you can
declare them anywhere you want, and they stay visible over control flow
boundaries if it is unambiguous that they are still visible, e.g.
BEGIN { foo } ... UNTIL foo
is legal. From that point of view, quotations have no right to see the
surrounding locals, because the control flow path that leads to their
execution is unknown in advance, and therefore it is entirely possible
that the local already disappeared when the quotation is called (the
local disappears when the containing word exits or reaches a control
flow join where the other path does not contain the declaration of this
local).
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
| From | Andrew Haley <andrew29@littlepinkcloud.invalid> |
|---|---|
| Date | 2011-12-27 14:42 -0600 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <loSdnYfBO_86sGfTnZ2dnUVZ_o2dnZ2d@supernews.com> |
| In reply to | #8372 |
Bernd Paysan <bernd.paysan@gmx.de> wrote:
> Anton Ertl wrote:
>
>> Mark Wills <markrobertwills@yahoo.co.uk> writes:
>>>We, if they do indeed need to persist beyond the lifetime of the word
>>>being executed then they are global, not locals :-b
>>
>> "local" refers to visibility, not lifetime.
>
> Maybe in Lisp. People think different in Forth. Gforth's locals
> have a "funny" visibility when you think it from a Lisp point of
> view - you can declare them anywhere you want, and they stay visible
> over control flow boundaries if it is unambiguous that they are
> still visible, e.g.
>
> BEGIN { foo } ... UNTIL foo
>
> is legal.
Sure, but that's very nonstandard! I don't think that you can base
any argument about how quotations should work on a nonstandard gforth
feature.
> From that point of view, quotations have no right to see the
> surrounding locals, because the control flow path that leads to
> their execution is unknown in advance, and therefore it is entirely
> possible that the local already disappeared when the quotation is
> called (the local disappears when the containing word exits or
> reaches a control flow join where the other path does not contain
> the declaration of this local).
Indeed. I think we just have to agree that quotations aren't closures
and should not be thought of as closures.
Andrew.
[toc] | [prev] | [next] | [standalone]
| From | Bernd Paysan <bernd.paysan@gmx.de> |
|---|---|
| Date | 2011-12-27 22:58 +0100 |
| Subject | Re: Quotations [Was: return address manipulation] |
| Message-ID | <jddf1j$2vp$3@online.de> |
| In reply to | #8375 |
Andrew Haley wrote:
> Bernd Paysan <bernd.paysan@gmx.de> wrote:
>> Anton Ertl wrote:
>>
>>> Mark Wills <markrobertwills@yahoo.co.uk> writes:
>>>>We, if they do indeed need to persist beyond the lifetime of the
>>>>word being executed then they are global, not locals :-b
>>>
>>> "local" refers to visibility, not lifetime.
>>
>> BEGIN { foo } ... UNTIL foo
>>
>> is legal.
>
> Sure, but that's very nonstandard! I don't think that you can base
> any argument about how quotations should work on a nonstandard gforth
> feature.
I think this is a valid argument with Anton, because this feature was
designed by Anton.
>> From that point of view, quotations have no right to see the
>> surrounding locals, because the control flow path that leads to
>> their execution is unknown in advance, and therefore it is entirely
>> possible that the local already disappeared when the quotation is
>> called (the local disappears when the containing word exits or
>> reaches a control flow join where the other path does not contain
>> the declaration of this local).
>
> Indeed. I think we just have to agree that quotations aren't closures
> and should not be thought of as closures.
And if we introduce Forth-style closures, they will have some more
explicit way to take their values.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://bernd-paysan.de/
[toc] | [prev] | [next] | [standalone]
Page 5 of 10 — ← Prev page 1 … 3 4 [5] 6 7 … 10 Next page →
Back to top | Article view | comp.lang.forth
csiph-web