> What are the implications of this for the Types as Macros/Turnstile
stuff?

As William mentioned, he's also working on a language using the Types
as Macros approach. Alex and I have run into the same issue, but it's
always with compiled files (without compiling, requires and provides
appear to behave as expected). Unfortunately, we have not figured out
a good solution either. Could we borrow any ideas from Typed Racket
here?

> but I’d like to know if I’m relying on some sort of undefined behavior

In some sense, the entire Types as Macros approach is "undefined
behavior" :/ because we are using the expander for unintended
purposes. So thank you (and William and everyone else that has tried
it out) for diving in and helping us figure out what works and what
needs more work.

But now that we've shown that such an approach is both viable and
wanted by Racket programmers, for the rough parts where we cannot find
a good solution, the next step might be to address these issues with
contributions to the expander itself.

Just to throw them out there, other issues that I'm working on (in
addition to scopes on stx props) are:
- Better support (over stop lists) for "delimited" expansion. For
example, I often want to "fully expand an expression, but not past a
specified language".
- Better support for expanding expressions with free identifiers in a context.
- Better support for mapping stx objs back to the surface stx, in a
hygienic way.

On Wed, Dec 14, 2016 at 6:50 PM, Alexis King <lexi.lam...@gmail.com> wrote:
>> On Dec 14, 2016, at 7:14 AM, Matthew Flatt <mfl...@cs.utah.edu> wrote:
>>
>> To summarize, don't try to attach syntax objects as property values
>> like that. I know this advice sounds ironic, given that the original
>> use of properties was for syntax-valued keys like 'origin. Properties
>> like 'origin are meant to be extracted from just-expanded programs,
>> though, as opposed to used in a later compilation step. At the same
>> time, those uses of properties are why we can't just make
>> `syntax-property` reject property values that are syntax objects.
>
> What are the implications of this for the Types as Macros/Turnstile
> stuff that Stephen and Alex have been working on, given that they
> use heavily use syntax objects in syntax properties as part of
> attaching type information to identifiers? Are they doing something
> to work around this and/or using properties in a way that avoids
> this issue? Or is it likely that they’ll run into this for programs
> that span multiple modules?
>
> (Obviously, I have a personal motive for asking this question, since
> I’ve been playing with Turnstile and the techniques it uses myself.
> So far I’ve been able to write programs that span multiple modules
> without much issue, modulo an issue I asked about on this mailing
> list a month or two back, but I’d like to know if I’m relying on
> some sort of undefined behavior.)
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to