Re: [racket-dev] src-id in identifier-binding for same-module definitions

2014-07-17 Thread Sam Tobin-Hochstadt
Ah, now I know what I was doing wrong. I was using identifier-binding for references, but not for definitions. Now that I'm using it in both places, things seem to work. Thanks! Sam On Jul 17, 2014 3:08 AM, "Matthew Flatt" wrote: > Does `identifier-binding` not give you the symbol that you need?

Re: [racket-dev] src-id in identifier-binding for same-module definitions

2014-07-17 Thread Matthew Flatt
Does `identifier-binding` not give you the symbol that you need? At Wed, 16 Jul 2014 23:32:46 -0400, Sam Tobin-Hochstadt wrote: > Ok, I thought I had figured this out, but I was wrong. > > Here's what I want to be able to do: > > - take an identifier in a fully-expanded source file > - transla

Re: [racket-dev] src-id in identifier-binding for same-module definitions

2014-07-16 Thread Sam Tobin-Hochstadt
Ok, I thought I had figured this out, but I was wrong. Here's what I want to be able to do: - take an identifier in a fully-expanded source file - translate that identifier to some symbol in a predictable way - so that other references to that same (free-identifier=?) identifier get translated

Re: [racket-dev] src-id in identifier-binding for same-module definitions

2014-07-16 Thread Matthew Flatt
Yes, it can be ".2", etc. The numbers are generated as needed to create distinct names --- deterministically for a given module compilation, assuming that all macros used by expansion are deterministic. At Wed, 16 Jul 2014 07:36:50 -0400, Sam Tobin-Hochstadt wrote: > Does that mean that I can/shou

Re: [racket-dev] src-id in identifier-binding for same-module definitions

2014-07-16 Thread Sam Tobin-Hochstadt
Does that mean that I can/should just drop the .1 to get the defined name? Can it also be .2 etc? Sam On Jul 16, 2014 4:34 AM, "Matthew Flatt" wrote: > That `posn1.1` is a unreadable symbol that stands for the symbol > `posn1` plus some marks that distinguish it. > > In other words, `posn1.1` br

Re: [racket-dev] src-id in identifier-binding for same-module definitions

2014-07-16 Thread Matthew Flatt
That `posn1.1` is a unreadable symbol that stands for the symbol `posn1` plus some marks that distinguish it. In other words, `posn1.1` bridges (in an ugly way) the symbol-based world of module environments and the identifier-based world of syntax. In the future, I hope to shift module environment

[racket-dev] src-id in identifier-binding for same-module definitions

2014-07-15 Thread Sam Tobin-Hochstadt
If you take this program and fully-expand it in the macro stepper: #lang racket (struct posn (x y)) (define p1 (posn 1 2)) You see that the residual program has an application of the `posn1` function, which is the hidden constructor. And indeed, the fully-expanded program has a definition of `pos