Scribble examples fail to use `+` correctly
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 30/100
- Issue 类型
- 缺陷
- 描述清晰度
- 需要澄清
- 活跃度
- 停滞
调研方向
使用 scribble/examples 和 demo 宏重现 Scribble 示例,然后检查 scribble-lib/scribble/racket.rkt 第 1272 行附近的代码及其对 syntax-span 的使用。比较带 quote 和 syntax-quote 的 #%provide 形式,并确定为什么组合会产生 #f;完成的标准是报告中的示例不再引发 + contract violation。
由索引模型根据 Issue 内容生成。
描述
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.
- 主要语言
- Racket
- 星标
- 250
- 派生
- 102
- 平均合并
- 11 天 9 小时
- 30 天内合并 PR
- 2
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
racket/scribble 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
-
难度 3/5 1-2 天 新手友好度 74/100
-
难度 4/5 3-5 天 新手友好度 35/100
-
难度 3/5 1-2 天 新手友好度 55/100
-
难度 4/5 3-5 天 新手友好度 35/100
相似的 Issue
-
difficulty: easy documentation
难度 2/5 1-3 小时 新手友好度 70/100
维护者通常 1 天内回复
-
SQLAlchemy 2.0 cleanup: drop_all bind, dead metadata.bind, sql_query read-only可能已有人在做 @dr-rodriguez 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
astrodbtoolkit/AstrodbKit#112 ·
-
难度 1/5 1 小时以内 新手友好度 62/100
-
难度 1/5 1 小时以内 新手友好度 70/100
-
documentation good first issue
难度 2/5 1-3 小时 新手友好度 82/100
imaaiagent/fumi#3 ·