Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The last thing one knows in constructing a work is what to put first. -- Blaise Pascal


devel / comp.lang.postscript / PostScript Ideas Worth Resurrecting

SubjectAuthor
* PostScript Ideas Worth ResurrectingLawrence D'Oliveiro
`* Re: PostScript Ideas Worth ResurrectingDavid Newall
 `* Re: PostScript Ideas Worth ResurrectingLawrence D'Oliveiro
  `- Re: PostScript Ideas Worth ResurrectingLawrence D'Oliveiro

1
PostScript Ideas Worth Resurrecting

<us12kp$2bna6$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10066&group=comp.lang.postscript#10066

  copy link   Newsgroups: comp.lang.postscript
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.postscript
Subject: PostScript Ideas Worth Resurrecting
Date: Sun, 3 Mar 2024 05:42:49 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 21
Message-ID: <us12kp$2bna6$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 3 Mar 2024 05:42:49 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1df16df39307445c7cddc792d9e0afb1";
logging-data="2481478"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ZS0LcLR5ldTHw3L25Ylpi"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:iHXPpHFyEyISxdV+0JV/6Y1Wmzg=
 by: Lawrence D'Oliv - Sun, 3 Mar 2024 05:42 UTC

PostScript, both as a language and as a graphics API, are just museum
pieces now.

Nevertheless, there were some interesting ideas in the language part, that
are still worth looking at. For example, executable arrays are basically
functions as first-class objects. This is key to implementing control
constructs (both conditional and looping) as straight built-in functions,
with no special syntax of their own.

But these “function” objects do have some deficiencies: no (simple)
support for reentrant local variables, and no lexical binding. Fix these
up, and you have a much more useful language.

I have been playing off and on with a toy implementation of a PostScript
variant with these characteristics. While I was at it, I added some stack-
safety features to try to make stack-based programming less confusing and
error-prone.

I also got as far as implementing Python-style generator functions. But I
think I might replace that in favour of something more ambitious, namely
Scheme-style continuations.

Re: PostScript Ideas Worth Resurrecting

<3f1e7e13-10d3-4952-bc00-d10a5a1d4e40@davidnewall.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10075&group=comp.lang.postscript#10075

  copy link   Newsgroups: comp.lang.postscript
Message-ID: <3f1e7e13-10d3-4952-bc00-d10a5a1d4e40@davidnewall.com>
Date: Tue, 26 Mar 2024 16:11:07 +1100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: PostScript Ideas Worth Resurrecting
Content-Language: en-US
Newsgroups: comp.lang.postscript
References: <us12kp$2bna6$1@dont-email.me>
To: Lawrence D'Oliveiro <ldo@nz.invalid>
From: ghostscr...@davidnewall.com (David Newall)
In-Reply-To: <us12kp$2bna6$1@dont-email.me>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
NNTP-Posting-Host: news.ausics.net
Organization: Ausics - https://newsgroups.ausics.net
Lines: 19
X-Complaints: abuse@ausics.net
Path: i2pn2.org!i2pn.org!news.bbs.nz!news.ausics.net!not-for-mail
 by: David Newall - Tue, 26 Mar 2024 05:11 UTC

On 3/3/24 16:42, Lawrence D'Oliveiro wrote:
> But these “function” objects do have some deficiencies: no (simple)
> support for reentrant local variables, and no lexical binding. Fix these
> up, and you have a much more useful language.

% p1 p2 p3 f - % demonstrate local variables and recursive parameters
/f {
6 dict begin
/p3 exch def
/p2 exch def
/p1 exch def
/l1 (value) def
/l2 (value) def
/l3 (value) def
...
end
} def

No?

Re: PostScript Ideas Worth Resurrecting

<uttpe5$1l948$3@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10079&group=comp.lang.postscript#10079

  copy link   Newsgroups: comp.lang.postscript
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.postscript
Subject: Re: PostScript Ideas Worth Resurrecting
Date: Tue, 26 Mar 2024 06:19:49 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <uttpe5$1l948$3@dont-email.me>
References: <us12kp$2bna6$1@dont-email.me>
<3f1e7e13-10d3-4952-bc00-d10a5a1d4e40@davidnewall.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 26 Mar 2024 07:19:49 +0100 (CET)
Injection-Info: dont-email.me; posting-host="90291ef565d63fc237f28fce5133db79";
logging-data="1746056"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19bLoJDFM8+Lz5Vb7p2tro0"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:wYo2jWrdkj5+dsylr6QbSqRL4mw=
 by: Lawrence D'Oliv - Tue, 26 Mar 2024 06:19 UTC

On Tue, 26 Mar 2024 16:11:07 +1100, David Newall wrote:

> On 3/3/24 16:42, Lawrence D'Oliveiro wrote:
>
>> But these “function” objects do have some deficiencies: no (simple)
>> support for reentrant local variables, and no lexical binding. Fix
>> these up, and you have a much more useful language.
>
> % p1 p2 p3 f - % demonstrate local variables and recursive parameters
> /f {
> 6 dict begin
> /p3 exch def
> /p2 exch def
> /p1 exch def
> /l1 (value) def
> /l2 (value) def
> /l3 (value) def ...
> end
> } def
>
> No?

Notice I said “reentrant”?

Re: PostScript Ideas Worth Resurrecting

<utvad5$2b27a$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10081&group=comp.lang.postscript#10081

  copy link   Newsgroups: comp.lang.postscript
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ldo...@nz.invalid (Lawrence D'Oliveiro)
Newsgroups: comp.lang.postscript
Subject: Re: PostScript Ideas Worth Resurrecting
Date: Tue, 26 Mar 2024 20:15:33 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <utvad5$2b27a$1@dont-email.me>
References: <us12kp$2bna6$1@dont-email.me>
<3f1e7e13-10d3-4952-bc00-d10a5a1d4e40@davidnewall.com>
<uttpe5$1l948$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 26 Mar 2024 20:15:34 +0100 (CET)
Injection-Info: dont-email.me; posting-host="90291ef565d63fc237f28fce5133db79";
logging-data="2459882"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18e/7aAJRUWmbhz9TAh6dXc"
User-Agent: Pan/0.155 (Kherson; fc5a80b8)
Cancel-Lock: sha1:wgJRXkJ6AM26ina3TJ3N3/smPnE=
 by: Lawrence D'Oliv - Tue, 26 Mar 2024 20:15 UTC

On Tue, 26 Mar 2024 06:19:49 -0000 (UTC), I wrote:

> On Tue, 26 Mar 2024 16:11:07 +1100, David Newall wrote:
>
>> On 3/3/24 16:42, Lawrence D'Oliveiro wrote:
>>
>>> But these “function” objects do have some deficiencies: no (simple)
>>> support for reentrant local variables, and no lexical binding. Fix
>>> these up, and you have a much more useful language.
>>
>> % p1 p2 p3 f - % demonstrate local variables and recursive parameters
>> /f {
>> 6 dict begin
>> /p3 exch def
>> /p2 exch def
>> /p1 exch def
>> /l1 (value) def
>> /l2 (value) def
>> /l3 (value) def ...
>> end
>> } def
>>
>> No?
>
> Notice I said “reentrant”?

Sorry, that is of course reentrant. But it does dynamic binding, not
lexical.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor