Some typo in new draft Zhu Zihao (19 Aug 2026 12:55 UTC)
Re: Some typo in new draft Marc Nieper-Wißkirchen (04 Sep 2026 19:15 UTC)
Re: Some typo in new draft Arthur A. Gleckler (05 Sep 2026 00:02 UTC)
Re: Some typo in new draft Marc Nieper-Wißkirchen (05 Sep 2026 06:32 UTC)

Re: Some typo in new draft Marc Nieper-Wißkirchen 04 Sep 2026 19:14 UTC

Hi Zihao,

Thank you for reading the updated draft.  All three points are indeed
typos. ("(p)" can be valid syntax, but not in this case.)

Arthur, can you make the three tiny corrections directly, or do you
need a patch?

Marc

Am Mi., 19. Aug. 2026 um 16:33 Uhr schrieb Zhu Zihao <xxxxxx@163.com>:
>
> Hi, Marc.
>
> I found some typo in the updated draft.
>
> 1. In section 4.3 "Using the cfg form", The code example follows the
> text "The backward control flow passes through the branch CFG term
> before the defer expression is evaluated. It invokes finish with the
> result of (+ x 3), and the corresponding CFG term binds the CFG variable
> y to that result, 5."
>
>   (let ([x 1] [y 2])
>     (cfg
>         (branch ([(e1) (return)]
>                  [(e2) (return [x 3])])
>           (if (odd? y) (e1) (e2)))
>       (+ x 10)
>
> Missing two right parenthese in the last line "(+ x 10)", it should be
> "(+ x 10)))"
>
> 2. Also in section 4.3, The example follows text "In the example above,
> there is a (statically possible) control-flow path from the entry block
> to the first return CFG term that does not pass through a definition of
> the CFG variable x. Compare with the following two examples:"
>
>   (let ([x 1] [y 2])
>     (cfg
>         (branch ([(e1) (return [x #f])]
>                  [(e2) (return [x 3])])
>           (if (odd? y) (e1) (e2)))
>       (+ x 10)
>
> Ditto, The last line also missed two right parethese (should be "(+ x
> 10)))"
>
> 3. In section 5.3 "CFG Expressions", The last code example
>
>   (let ([x 'outer] [y 'outer])
>     (cfg (let* ([c (permute ([p (finally ([y 'inner])
>                                     (let ([a x]) (go p)))])
>                        (return [a a]))])
>            (permute/tail ([(p) (finally ([b y])
>                                  (let ([x 'inner]) (go p)))])
>              (go c)))
>       (list a b)))
>
>
> The label "(p)" in "permute/tail" seems to be a syntax error, since
> "(label)" is the syntax for free labels defined by "define-cfg-label",
> maybe you mean "p"?
>
> --
> Retrieve my PGP public key:
> 执行下列命令以获取我的 PGP 公有密钥:
>
>   gpg --recv-keys B3EBC086AB0EBC0F45E0B4D433DB374BCEE4D9DC
>
> Zihao / 閱卜錄