Re: Dylan stuff

Bruce Mitchener <[email protected]>
Newsgroups gmane.comp.lang.dylan.gwydion.devel
Message-ID <CA+esKjOKRn1Dehj0JsVOmybEeMd4OfwmNG_dO3sFwKgaCA5kNw@mail.gmail.com>
Some comments below ...

---------- Forwarded message ----------

> From: mikel evins <[email protected]>
> Date: Fri, Jan 11, 2013 at 2:30 PM
> Subject: Re: Dylan stuff
> To: Bruce Mitchener <[email protected]>
> Cc: mikel evins <[email protected]>
>
>
>
> On Jan 10, 2013, at 1:29 AM, Bruce Mitchener wrote:
>
> > I thought about dropping you a note this week, but figured I'd give you
> a bit more time. :)
> >
> > Looking forward to hearing more soon. :)
>
> My machine is in the midst of the 3-stage-bootstrap at the moment,
> currently building the coff-builder. If it finishes happily, then I'm good
> to go on the basic build.
>
> I've read through the grammar; I didn't immediately notice any great
> mysteries.
>
> The first question on my mind is: how do we decide exactly what the
> current grammar of an s-expression-based Dylan should be? I don't think I
> can just recapitulate the circa-1992 Dylan I used; for one thing, it lacked
> certain features the OpenDylan now has--for example, the s-expression Dylan
> had macros, but they were defmacro-style macros written in Common Lisp,
> using Leibniz, the modified MCL on which the Apple Dylan compier was
> implemented. For another thing, the language has obviously evolved further
> since then, and I have to assume that I'll find features in the current
> OpenDylan that were not in Apple Dylan, and that therefore had no
> corresponding syntax.
>
> So the question is, what should I use as a standard for the S-expression
> syntax? I'm guessing the process is something like: start by looking for a
> syntax in Andrew's 1992 reference manual that corresponds to the current
> infix syntax; if I find one, and it suitably matches the current semantics
> without problems, use that. If there are new features to take into account,
> or if there's a mismatch for some other reason, attempt to find a
> minimally-disruptive modification to the syntax that reconciles with the
> current language; if that fails, ask you and the other maintainers and
> users of the language what seems to you to be the right solution.
>
> If we're lucky, an obvious or at least uncontroversial s-expression
> version of the current syntax will be clear. Failing that, we can hope that
> a lot of the corner cases can be easily resolved by a little discussion.
>
> That leaves places where we'll have to do actual design work for the
> S-expression syntax. I don't mind doing that work, but I don't want to
> unilaterally impose any of my idiosyncracies on the language without
> running them by the current users.
>
> So if you or others have input about how to decide what the revived
> s-expression syntax looks like, either now or later, I'd be very interested
> to hear it.
>

There's also Ralph: https://github.com/turbolent/ralph

Ralph compiles a prefix-Dylan-like language to JavaScript. It lacks
multiple inheritance and multimethods however.

I just pulled out my copy of the prefix-Dylan book and ran into some
questions.

In modern Dylan, we have "define [adjectives]
(class|function|method|generic-function)" ... but the usage in prefix Dylan
doesn't support having adjectives.  We use the adjectives for various
things: controlling sealing, inlining, abstract vs concrete, primary,
thread-local variables, etc.

Ralph seems to follow prefix-Dylan in that area.

Looking at PLOT3, it seems like David Moon has dealt at least partially
with this (although examples aren't abundant) with his annotations. That
said, it isn't clear to me how that would map into an s-expression syntax
either. :)

Are you suggesting that at least initially, we use a syntax like:

(define sealed class <foo> (... superclasses...)
 (slot ...)
 ...)

An alternative might be:

(define-class <foo> (... superclasses...)
  :sealed
 (slot ...)
 ...)

Where annotations / adjectives are prefixed with a ':' and placed at some
conventional location?

I don't know myself ... I think having some solid examples might be useful.

More below ...


>
> ---------- Forwarded message ----------
> From: mikel evins <[email protected]>
> Date: Fri, Jan 11, 2013 at 2:35 PM
> Subject: Re: Dylan stuff
> To: Bruce Mitchener <[email protected]>
> Cc: mikel evins <[email protected]>
>
>
>
> On Jan 11, 2013, at 1:30 AM, mikel evins wrote:
>
> > So if you or others have input about how to decide what the revived
> s-expression syntax looks like, either now or later, I'd be very interested
> to hear it.
>
> Oh, and lest I forget, another obvious question is: do I make a Lisp-style
> reader that supports reader macros, or do I implement the s-expression
> syntax using a grammar file like the one used for the infix syntax?
>
> My own preference would be to write a Lisp-style reader that uses
> readtables and reader macros. The Lisp reader is not something I would give
> up without some regret; it's just too darn handy.
>
> On the other hand, if the existing Dylan community is dead-set on having
> both syntaxes defined in the same way, I will comply.
>

I'm open in this area and I don't think that I have a strong opinion either
way.

 - Bruce

_______________________________________________
hackers mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/hackers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.