Hi,

If your tool works in Pharo 6, you can use the other bytecode set which
supports up to 32k literals. To do so, go to:
World Menu > Settings > Compiler > Encoder
and pick SistaV1 instead of V3PlusClosures
Try to load your code. The default Pharo 6 VM supports both bytecode sets.

Alternatively you need to split your methods with many literals in multiple
methods with less literals, which is usually quite tricky to do right.

On Tue, Aug 29, 2017 at 4:52 AM, Andreas Sunardi <a.suna...@gmail.com>
wrote:

> I have written a tool (Pharo5) where user gives an input file to it, where
> the content is a smalltalk code, a DSL. I used a subclass of CodeImporter
> class to evaluate this input file.
>
> Recently my user used an input file where it hit the 256 literal limit
> (total of unique string, number, method name, etc), down in
> OpalEncoderForV3PlusClosures >> genPushLiteral:. The number seems to be
> hard coded and related to byte code generator, not something I can simply
> increase. I wasn't aware of this limitation.
>
> Before I overhaul my tool, I thought I should ask. Is there another
> alternative to evaluate a smalltalk file/script? The file is small, 27k,
> but the number of unique literals in it is > 256. Is it possible at all,
> seeing that the limit is related to byte code generator.
>
> Thank you in advance
> --
> Andreas Sunardi
>

Reply via email to