Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002920 [Squeak] Compiler minor always 02-19-06 15:41 02-20-06 19:17
Reporter nicolas cellier View Status public  
Assigned To
Priority normal Resolution open  
Status assigned   Product Version 3.8
Summary 0002920: Compiler lack protection against bytecode limits
Description It is possible to encounter a halt in TempVariableNode>>#sizeForStorePop: when compiling a method with many declared temps (near 64), and some automated temps (like produced by to:do: optimization) making total number of args/declared temps/automated temps greater than 64 limit.

If one choose to proceed, code generation further fail with a MNU.

a TestCase showing this is attached.
Additional Information The programmer should better have an explicit message that the byte code limit is exceeded, rather than this halt.

It should be possible to enforce limitations at LeafNode:>>#code:type:. However, it's not a good place to signal the error inline (no access to requestor from here...).

I suggest rewriting code generation with exceptions, and trap these in the Parser and/or encoder so that the requestor can be notified properly.

Using exceptions also enable bytecode limitations trapping and work around. (see how VW handle too long branches for example).
Attached Files  CompilerTest.1.cs [^] (1,356 bytes) 02-19-06 15:41

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
02-19-06 15:41 nicolas cellier New Issue
02-19-06 15:41 nicolas cellier Status new => assigned
02-19-06 15:41 nicolas cellier Assigned To  => KenCausey
02-19-06 15:41 nicolas cellier File Added: CompilerTest.1.cs
02-20-06 19:17 KenCausey Assigned To KenCausey =>
02-20-06 19:17 KenCausey Category Any => Compiler

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