Scribble examples fail to use `+` correctly
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Área
- documentation
Línea de trabajo
Reproduce el ejemplo de Scribble con scribble/examples y la macro demo; después inspecciona scribble-lib/scribble/racket.rkt alrededor de la línea 1272 y su uso de syntax-span. Compara las formas #%provide entrecomillada y entrecomillada sintácticamente, y determina por qué la composición produce #f; la tarea está terminada cuando el ejemplo indicado ya no genera la violación del contrato de +.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I'm on 8.10 [cs], the latest Debian, and am running my code using racket-mode. I have a #lang scribble/manual document that depends on scribble/examples. I'll start with the error.
; +: contract violation
; expected: number?
; given: #f
; Context (plain; to see better errortrace context, re-run with C-u prefix):
; /home/sage/.racket/share/pkgs/scribble-lib/scribble/racket.rkt:1272:26 loop
; /home/sage/.racket/share/pkgs/scribble-lib/scribble/racket.rkt:1272:26 loop
; /home/sage/.racket/share/pkgs/scribble-lib/scribble/racket.rkt:1168:0 do-syntax-ize
; /home/sage/.racket/share/pkgs/scribble-lib/scribble/racket.rkt:1272:26 loop
; /home/sage/.racket/share/pkgs/scribble-lib/scribble/racket.rkt:1272:26 loop
[...]
This @-expression from my code that raises the error. Simpler examples do not reproduce, so let's go with this for now. It appears that the (struct term:ksub term (body) #:transparent) instance fails in this exact composition, where term is just (struct term () #:transparent). I'm omitting other structure definitions to keep this at least somewhat brief.
@demo[
(define (ksub-example . xs)
(with-syntax ([(x ...) xs])
(term:ksub-parse
#'(module #%kernel '#%kernel
(#%module-begin
(#%require '#%kernel
(for-syntax '#%kernel)
(prefix : '#%kernel)
(for-syntax (prefix : '#%kernel)))
x ...)))))
(ksub-example '(#%provide (all-from '#%kernel)))
]
I use this demo macro. Let #:eval be hypothetical.
(define-syntax-rule (demo forms ...)
(examples #:eval (example-evaluator) forms ...))
If you change '(#%provide (all-from '#%kernel))) to #'(#%provide (all-from '#%kernel))), the error goes away. Since scribble-lib/scribble/racket.rkt:1272:26 makes heavy use of syntax-span, I suspect that location information disappears in some nontrivial compositions of quoted code in syntax templates.
- Lenguaje dominante
- Racket
- Estrellas
- 251
- Forks
- 101
- Merge medio
- 11 d 9 h
- PR fusionados (30 d)
- 2
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/scribble
-
In source strcut*-doc does not convert to defstruct* properly when #:constructor-name is usedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de racket/scribble
Issues similares
-
area: design documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
eyalgolan/statecraft-israel#883 ·
Los mantenedores suelen responder en 1 día
-
area:release criticality:p3 documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
registrystack/registry-stack#2085 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
Los mantenedores suelen responder en 1 día
-
[workshop-sync] workshop/side-quest-17-06-output-injection.md: stale add_comment.cjs line referencesAbiertodocumentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
githubnext/gh-aw-workshop#4679 ·
Los mantenedores suelen responder en 1 día
-
git-workflow task-4
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100