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


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

Memoizing recursive words

Started byArnold Doray <thinksquared@gmail.com>
First post2011-12-03 19:07 +0000
Last post2011-12-08 03:37 -0600
Articles 20 on this page of 187 — 17 participants

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


Contents

  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 →


#8243 — Re: Quotations [Was: return address manipulation]

FromBruceMcF <agila61@netscape.net>
Date2011-12-20 06:34 -0800
SubjectRe: 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]


#8109 — Re: Quotations [Was: return address manipulation]

FromBruceMcF <agila61@netscape.net>
Date2011-12-15 10:22 -0800
SubjectRe: 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]


#8112 — Re: Quotations [Was: return address manipulation]

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2011-12-15 12:44 -0600
SubjectRe: 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]


#8147 — Re: Quotations [Was: return address manipulation]

Fromanton@mips.complang.tuwien.ac.at (Anton Ertl)
Date2011-12-16 17:27 +0000
SubjectRe: 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]


#8108 — Re: Quotations [Was: return address manipulation]

FromBruceMcF <agila61@netscape.net>
Date2011-12-15 09:33 -0800
SubjectRe: 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]


#8113 — Re: Quotations [Was: return address manipulation]

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2011-12-15 12:52 -0600
SubjectRe: 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]


#8115 — Re: Quotations [Was: return address manipulation]

FromBruceMcF <agila61@netscape.net>
Date2011-12-15 11:07 -0800
SubjectRe: 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]


#8132 — Re: Quotations [Was: return address manipulation]

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2011-12-16 03:16 -0600
SubjectRe: 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]


#8138 — Re: Quotations [Was: return address manipulation]

FromBruceMcF <agila61@netscape.net>
Date2011-12-16 08:10 -0800
SubjectRe: 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]


#8150 — Re: Quotations [Was: return address manipulation]

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2011-12-16 12:38 -0600
SubjectRe: 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]


#8139 — Re: Quotations [Was: return address manipulation]

FromBruceMcF <agila61@netscape.net>
Date2011-12-16 08:13 -0800
SubjectRe: 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]


#8151 — Re: Quotations [Was: return address manipulation]

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2011-12-16 12:43 -0600
SubjectRe: 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]


#8177 — Re: Quotations [Was: return address manipulation]

FromSieur de Bienville <morrimichael@gmail.com>
Date2011-12-17 15:35 -0800
SubjectRe: 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]


#8222 — Re: Quotations [Was: return address manipulation]

FromRoelf Toxopeus <rt4all@notthis.hetnet.nl>
Date2011-12-19 20:40 +0100
SubjectRe: 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]


#8230 — Re: Quotations [Was: return address manipulation]

FromSieur de Bienville <morrimichael@gmail.com>
Date2011-12-19 13:41 -0800
SubjectRe: 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]


#8362 — Re: Quotations [Was: return address manipulation]

FromMark Wills <markrobertwills@yahoo.co.uk>
Date2011-12-27 07:30 -0800
SubjectRe: 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]


#8363 — Re: Quotations [Was: return address manipulation]

Fromanton@mips.complang.tuwien.ac.at (Anton Ertl)
Date2011-12-27 16:21 +0000
SubjectRe: 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]


#8372 — Re: Quotations [Was: return address manipulation]

FromBernd Paysan <bernd.paysan@gmx.de>
Date2011-12-27 20:55 +0100
SubjectRe: 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]


#8375 — Re: Quotations [Was: return address manipulation]

FromAndrew Haley <andrew29@littlepinkcloud.invalid>
Date2011-12-27 14:42 -0600
SubjectRe: 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]


#8378 — Re: Quotations [Was: return address manipulation]

FromBernd Paysan <bernd.paysan@gmx.de>
Date2011-12-27 22:58 +0100
SubjectRe: 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