racket / racket/redex

judgment-holds output positions with metafunction calls

Open
#276 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Racket
Stars
112
Forks
42
PR merge metrics
No merged PRs in 30d

Description

In the code block below, the first two calls to judgment-holds fail, but the third one succeeds. They should probably all succeed.

[define-language LC]

[define-judgment-form LC
  #:mode [J1 I O]
  [----
   [J1 any_1 any_1]]]

[define-metafunction LC
  M : any -> any
  [[M any] any]]

[define-judgment-form LC
  #:mode [J2 I]
  [[J1 any_1 [M any_1]]
   ----
   [J2 any_1]]]

[define-judgment-form LC
  #:mode [J3 I I]
  [[J1 any_1 any_2]
   ----
   [J3 any_1 any_2]]]

[judgment-holds [J1 1 [M 1]]]
[judgment-holds [J2 1]]
[judgment-holds [J3 1 [M 1]]]

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the reproduction in the issue and inspect how judgment-holds processes metafunction calls and output positions. The fix is complete when all three judgment-holds expressions succeed consistently; no source files or tests are named in the report.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.