#1577 closed defect (fixed)
Apropos tests crash via symbol-utils in 5.0.1
Reported by: | sjamaan | Owned by: | Kon Lovett |
---|---|---|---|
Priority: | major | Milestone: | someday |
Component: | extensions | Version: | 5.0.0 |
Keywords: | Cc: | ||
Estimated difficulty: | medium |
Description
Reported by Juergen Lorenz:
When running the apropos egg's tests under CHICKEN 5.0.1, there's a segmentation fault. Running it under gdb with a DEBUGBUILD
quickly reveals that the crash happens in the symbol-utils egg's qualified-symbol-utils
module.
This module is compiled with unsafe options like (declare (bound-to-procedure ##sys#symbol->qualified-string))
, which is a Very Bad Idea when performance isn't critical, especially for undocumented internal procedures, as these are not the official API and can remove at any point in time without requiring a Change Request.
In this case, all the qualified symbol procedures have been taken out of core, as the internal representation of qualified symbols has changed to no longer be "special", to fix #1077. In other words, ##sys#foo
is now simply represented as the string "##sys#foo". The things that are special-cased are the reader and the writer, they don't put pipes around these symbols, and we don't allow namespacing these symbols: they're always global.
Change History (2)
comment:1 Changed 6 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 Changed 6 years ago by
I'm at work and absentmindedly typed in my findings. I also wanted to point out that it isn't a good idea to rely on internals like this. But you're absolutely right, I should've worded it more tactfully and I apologise for being an ass.
I REALLY APPRECIATE THIS BUG REPORT - PLEASE JUST A FEW MORE WITH SIMILAR WORDING