Opened 9 years ago

#712 new defect

errors when *save-source-locations* is nil

Reported by: gz Owned by: gz
Priority: normal Milestone:
Component: Compiler Version: trunk
Keywords: Cc:

Description

From gb:

When the port was first coming up, there were lots of bugs (mostly functions that I hadn't yet defined) in the REPL, the reader, and elsewhere. Some of the source-location recording stuff either had its own bugs or seemed to make debugging the other stuff harder; I conditionally disabled *SAVE-SOURCE-LOCATIONS*, and that either made things more tractable or kept me from worrying about it so that I could address the unrelated bugs.

Since things got more usable, I've seen source info in disassembly (both for things defined in FASL files and in the REPL) and have seen the other familiar effects of the source-location stuff, so I'd more or less forgotten that I'd changed the default value of that variable.

Running the test suite, I've seen some CCL-specific tests (at least one, but I suspect that a few others) fail because:

  • the test compiled a file which contained constructs that generated compiler warnings
  • FCOMP-SIGNAL-OR-DEFER-WARNINGs notes that some compiler-warning object has an empty COMPILER-WARNING-SOURCE-NOTE attribute, so it creates one.
  • the newly-created SOURCE-NOTE has its START-POS and END-POS set to *FCOMP-STREAM-POSITION*, which is NIL at this point; MAKE-SOURCE-NOTE errors out, and the test fails.

Setting *SAVE-SOURCE-LOCATIONS* to T before running the test keeps this failure from happening.

I don't understand this stuff very well, but if setting *SAVE-SOURCE-LOCATIONS* to NIL is an otherwise reasonable thing to do, it presumably shouldn't lead to errors in signaling compiler warnings.

Change History (0)

Note: See TracTickets for help on using tickets.