[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

question on the opaque syntax object debate



Andre, thank you for your work on the hygienic macros SRFI.

I'm excited to see the unification which allows the standard list
procedures (CAR, CDR, CONS) to work on syntax objects while retaining
hygiene.

I view this advance in the state of the art as similar to the
innovation of unifying control abstractions by providing
CALL-WITH-CURRENT-CONTINUATION.

I see in the email archives that this feature is controversial.  From
the discussion I understand the following:

    PLT Scheme provides extensive functionality in retaining and
    manipulating syntax location information through the use of opaque
    syntax objects.

    The SRFI proposal also provides for associating location
    information with syntax.  However, there is a burden to the
    implementor.  For the location information to be garbage
    collected, the Scheme implementation would need to provide either
    weak pointers, the ability to have a pair subtype that contained
    location information, or generic procedures.

What is not clear to me from the discussion is whether:

   A) The SRFI proposal provides the the ability to carry syntax
      location information which is just as comprehensive and
      featureful as PLT Scheme.

or,

   B) While the SRFI proposal provides the ability to carry syntax
      location information, PLT Scheme is able to provide features
      through the use of opaque syntax objects that the SRFI proposal
      can not.

Thus my question is: does PLT Scheme have syntax location features
that this SRFI proposal is not able to provide?

Thank you,

Andrew Wilcox