lambda-py icon indicating copy to clipboard operation
lambda-py copied to clipboard

Changes in PLT Redex breaks the reduction relations

Open Kraks opened this issue 7 years ago • 2 comments

Hi,

I'm using Racket 7.1 and trying to play with some reduction relations. However, if I simply run command racket lambdapy-reduction.rkt, the following error is raised. I guess it was due to the changes in PLT Redex.

lambdapy-reduction.rkt:244:9: reduction-relation: shortcut name may not be a non-terminal
  at: e_1
  in: (reduction-relation λπ #:domain p (--> ((in-hole E (list val_c (val ...))) ε Σ) ((in-hole E (pointer-val ref_new)) ε Σ_1) "E-List" (where (Σ_1 ref_new) (extend-store Σ (obj-val val_c (meta-list (val ...)) ())))) (--> ((in-hole E (tuple val_c (va...
  location...:
   lambdapy-reduction.rkt:244:9
  context...:
   do-raise-syntax-error
   /home/kraks/software/racket/share/pkgs/redex-lib/redex/private/reduction-semantics.rkt:660:6: try-next
   /home/kraks/software/racket/share/pkgs/redex-lib/redex/private/reduction-semantics.rkt:659:4: for-loop
   /home/kraks/software/racket/share/pkgs/redex-lib/redex/private/reduction-semantics.rkt:388:0: do-reduction-relation
   apply-transformer-in-context
   apply-transformer52
   dispatch-transformer41
   loop
   [repeats 5 more times]
   module-begin-k
   expand-module16
   expand-capturing-lifts
   expand-single
   temp74_0
   compile16
   temp68_0
   ...

Thanks!

Kraks avatar Nov 21 '18 22:11 Kraks

Thanks for reporting. I believe this is an instance of this update:

https://groups.google.com/forum/#!topic/racket-users/NMuBaVlcDAU

So the quick approach if you want to try lambda-py reductions would be to run on Racket 6.3.

I did a quick find-and-replace of e_1 and e_2 with e1 and e2 but this broke the tests, so I need to understand the semantics of this a little bit better to understand what parts of the relation to change. Let me know what your needs are – I'm in a busy end-of-quarter time for teaching so if it's OK for me to get to this in late December that would be great, but I don't want you to stall if you need this to work on 7.1 ASAP.

jpolitz avatar Nov 26 '18 06:11 jpolitz

Thanks for the reply! I understand the situation and I can use Racket 6.3 as a fallback. I'm working on a research project that models some transformations on Python programs, so make LambdaPy work with the latest version of Racket in the near future would also be great!

Thanks for the help!

Kraks avatar Nov 26 '18 17:11 Kraks