Summary

Apropos tests crash via symbol-utils in 5.0.1

Metadata

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.

Changes and comments

[2019-01-16 16:02:45 UTC] kon changed status from new to closed

[2019-01-16 16:02:45 UTC] kon set resolution to fixed

[2019-01-16 16:02:45 UTC] kon wrote:

I REALLY APPRECIATE THIS BUG REPORT - PLEASE JUST A FEW MORE WITH SIMILAR WORDING

[2019-01-16 16:13:03 UTC] sjamaan wrote:

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.