No current-load-relative-directory in expander
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 38/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Área
- developer-experience, devtools
Línea de trabajo
Empieza con el reproducer de require/phantom y la llamada a current-load-relative-directory; después compara su valor durante la expansión en segundo plano de DrRacket, en el REPL de Racket y con raco make. Se considera terminado cuando el caso de DrRacket ya no produce #f para este uso o evita de otro modo la violación de contrato indicada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
It seems like (current-load-relative-directory) is unavailable during background expansion and no working REPL loaded, while the code runs and compiles just fine from the command line:
#lang racket
(require (for-syntax syntax/parse/pre
compiler/cm-accomplice))
(define-syntax (require/phantom stx)
(syntax-parse stx
[(_ relpath:string)
(register-external-module (path->complete-path (syntax-e #'relpath)
(current-load-relative-directory)))
#'(begin)]))
(require/phantom "test.rkt")
#|
Welcome to DrRacket, version 8.15.0.12 [cs].
Language: racket, with debugging [custom]; memory limit: 128 MB.
. . ../../racket/gitdev/racket/collects/syntax/wrap-modbeg.rkt:46:4: path->complete-path: contract violation
expected: (and/c (or/c path-string? path-for-some-system?) complete-path?)
given: #f
>
|#
Here, (current-load-relative-directory) returns #f in DrRacket but not in Racket REPL:
● [Jan10 20:47:44] $ racket
Welcome to Racket v8.15.0.12 [cs].
> (enter! "phantom-require.rkt")
"phantom-require.rkt">
During compilation, (current-load-relative-directory) also returns the load path:
● [Jan10 20:47:54] $ raco make -v phantom-require.rkt
"phantom-require.rkt":
making #<path:....../phantom-require.rkt>
[output to "compiled/phantom-require_rkt.zo"]
● [Jan10 20:48:04] $ raco make -v phantom-require.rkt
"phantom-require.rkt":
making #<path:....../test.rkt>
test.rkt:(syntax-local-phase-level 0)
making #<path:....../phantom-require.rkt>
[output to "compiled/phantom-require_rkt.zo"]
● [Jan10 20:48:06] $
- Lenguaje dominante
- Racket
- Estrellas
- 517
- Forks
- 102
- Merge medio
- 8 h 52 min
- PR fusionados (30 d)
- 1
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de racket/drracket
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
check-syntax
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
Todos los issues de racket/drracket
Issues similares
-
[Bug]: Device screenshot fails with 500 on iPhone Duo (Xcode 27.2): serve-sim calls simctl without --displayPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
pingdotgg/t3code#24900 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
jrblevin/markdown-mode#960 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
vercel-labs/agent-skills#348 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NanmiCoder/dsh-agent-teams#289 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
FinanceFlash/unvibecode#273 ·