Mantis Bugtracker
  

Viewing Issue Advanced Details Jump to Notes ] View Simple ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0007133 [Squeak] Compiler crash always 07-23-08 00:41 02-06-11 23:48
Reporter akuhn View Status public  
Assigned To leves
Priority normal Resolution fixed Platform
Status closed   OS
Projection none   OS Version
ETA none Fixed in Version 4.1 Product Version
  Product Build
Summary 0007133: CompiledMethod#getSourceFor:In: crashed for non-standard method signatures
Description If a class refines Behavior#compilerClass with a custom compiler, the method CompiledMethod#getSourceFor:In: will crash because it does not take into account that methods may contain non-standard source code.

In particular it is the piece of code in CompiledMethod#getSourceFor:In: that tries to replace selectors in the source code if they are different that given in the method dictionary.

As a solution I suggest to just not doing any selector-magic when a class has a custom compiler.
Steps To Reproduce
Additional Information To reproduce

1. Subclass Compiler and make it accept methods like 'Foo foo: Bar bar ^bar' (eg by removing all uppercase words from the to be compiler sources).
2. Make a class which uses the new compiler as its compiler.
3. Make a method with above content.
4. compile fine, but ...
5. crashed when IDE calls CompiledMethod#getSourceFor:In:
Attached Files

- Relationships

- Notes
(0013861 - 188 - 212 - 212 - 212 - 212 - 212)
nicolas cellier
09-07-10 19:10

#getSourceFor:in: class changed in trunk 4.1
The new version exploits trailer. Is this problematic ?

Otherwise, subclass can also provide its own #getSourceFor:in:
What do you think ?
 
(0013901 - 227 - 227 - 227 - 227 - 227 - 227)
leves
11-06-10 06:08

The old Traits implementation shared methods between traits and classes. If a method was renamed in a class or a trait, then the name was changed in #getSourceFor:in:. Since methods are no longer shared, this problem is solved.
 

- Issue History
Date Modified Username Field Change
07-23-08 00:41 akuhn New Issue
09-07-10 19:10 nicolas cellier Note Added: 0013861
09-07-10 19:10 nicolas cellier Status new => feedback
11-06-10 06:08 leves Status feedback => resolved
11-06-10 06:08 leves Fixed in Version  => 4.1
11-06-10 06:08 leves Resolution open => fixed
11-06-10 06:08 leves Assigned To  => leves
11-06-10 06:08 leves Note Added: 0013901
02-06-11 23:48 leves Status resolved => closed


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
43 total queries executed.
34 unique queries executed.
Powered by Mantis Bugtracker