Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#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 5 years ago by Kon Lovett

Resolution: fixed
Status: newclosed

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

comment:2 Changed 5 years ago by sjamaan

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.

Note: See TracTickets for help on using tickets.