Was there a bug embedding srcloc's in compiled code in BC 8.5 (that was resolved in roughly 8.9)?

Working on some Qi things, we noticed the following error in BC 8.5: Fix marshalling issue · drym-org/qi@c09b926 · GitHub

raco setup: error: during making for <pkgs>/qi-test/tests
raco setup:   write: cannot marshal value that is embedded in compiled code
raco setup:     value: (srcloc #<path:/home/runner/work/qi/qi/qi-lib/flow/extended/forms.rkt> 61 2 1500 20)
raco setup:     compiling: <pkgs>/qi-test/tests/compiler/rules.rkt
raco setup: error: during making for <pkgs>/qi-test/tests/compiler/rules
raco setup:   write: cannot marshal value that is embedded in compiled code
raco setup:     value: (srcloc #<path:/home/runner/work/qi/qi/qi-lib/flow/core/normalize.rkt> 74 7 2297 22)

The docs mention that 7.0 allowed this embedding (1.4 The Printer); indeed, I found the commit to be b13f723ac6 (serialize srclocs in bytecode; change expander to keep srclocs, 2018-06-26).

I haven't searched for a relevant bug or fix in the commit logs or issues, though.


I ask because, if there is such a bug, it might be worth updating the documentation note to mention that BC versions 8.5–8.8 don't accept this.

2 Likes