Hi,

This will be fixed by using the alternative bytecode set, likely in the
next few weeks in Pharo 6 alpha/beta. Basically control flow messages
(ifTrue:, to:do:, etc.) cannot have too many statements in their blocks
(ifTrue: argument, to:do: second arguments, etc) or the compiler can't
compile them due to bytecode set encoding limitation. The new bytecode set
is encoded differently and allows such code to be compiled.

As a temporary solution, you need to split your code in multiple methods to
lower the number of statements inside blocks inside control flow messages.

Sorry for the annoyance. We're working on integrating a solution and we
believe that this will be integrated in Pharo 6 in the next few weeks.

Regards,

Clement

On Wed, Dec 7, 2016 at 4:14 PM, Davide Varvello via Pharo-dev <
[email protected]> wrote:

>
>
> ---------- Forwarded message ----------
> From: Davide Varvello <[email protected]>
> To: [email protected]
> Cc:
> Date: Wed, 7 Dec 2016 07:14:35 -0800 (PST)
> Subject: genJumpLong: distance index 1043 is out of range -1024 to 1023
> Hi,
>
> Sometimes (and also today) after formatting and saving a method, an Error
> is
> thrown.
> Following a chunk of PharoDebug.log
>
> TIA
> Davide
>
>
> ---------------------
> THERE_BE_DRAGONS_HERE
> Error: genJumpLong: distance index 1043 is out of range -1024 to 1023
> 7 December 2016 4:21:53.0426 pm
>
> VM: Mac OS - intel - 1096 - CoInterpreter
> VMMaker.oscog-HolgerHansPeterFreyther.1880 uuid:
> 16138eb3-2390-40f5-a6c8-15f0494936f8 Sep 30 2016
> StackToRegisterMappingCogit VMMaker.oscog-HolgerHansPeterFreyther.1880
> uuid:
> 16138eb3-2390-40f5-a6c8-15f0494936f8 Sep 30 2016
> https://github.com/pharo-project/pharo-vm.git Commit:
> 06744effac0f0aa3b4b32e17636448f9d51d6707 Date: 2016-09-30 08:40:43 +0200
> By:
> GitHub <[email protected]> Jenkins build #603
>
> Image: Pharo5.0 [Latest update: #50763]
>
> OpalEncoderForV3PlusClosures(Object)>>error:
>         Receiver: an OpalEncoderForV3PlusClosures
>         Arguments and temporary variables:
>                 aString:        'genJumpLong: distance index 1043 is out
> of range -1024 to 1023'
>         Receiver's instance variables:
>                 stream:         an IRBytecodeGenerator
>                 position:       nil
>                 rootNode:       nil
>                 blockExtentsToLocals:   nil
>
>
> OpalEncoderForV3PlusClosures(OpalBytecodeEncoder)>>
> outOfRangeError:index:range:to:
>         Receiver: an OpalEncoderForV3PlusClosures
>         Arguments and temporary variables:
>                 string:         'distance'
>                 index:  1043
>                 rangeStart:     -1024
>                 rangeEnd:       1023
>         Receiver's instance variables:
>                 stream:         an IRBytecodeGenerator
>                 position:       nil
>                 rootNode:       nil
>                 blockExtentsToLocals:   nil
>
>
> OpalEncoderForV3PlusClosures(OpalEncoderForV3)>>genJumpLong:
>         Receiver: an OpalEncoderForV3PlusClosures
>         Arguments and temporary variables:
>                 distance:       1043
>         Receiver's instance variables:
>                 stream:         an IRBytecodeGenerator
>                 position:       nil
>                 rootNode:       nil
>                 blockExtentsToLocals:   nil
>
>
> OpalEncoderForV3PlusClosures(OpalEncoderForV3)>>genJump:
>         Receiver: an OpalEncoderForV3PlusClosures
>         Arguments and temporary variables:
>                 distance:       1043
>         Receiver's instance variables:
>                 stream:         an IRBytecodeGenerator
>                 position:       nil
>                 rootNode:       nil
>                 blockExtentsToLocals:   nil
>
>
>
> --
> View this message in context: http://forum.world.st/
> genJumpLong-distance-index-1043-is-out-of-range-1024-to-
> 1023-tp4926103.html
> Sent from the Pharo Smalltalk Developers mailing list archive at
> Nabble.com.
>
>
>

Reply via email to