On 24-04-16 21:35, stepharo wrote:


Le 24/4/16 à 12:10, Hilaire a écrit :
Hi Nicolai,

http://smalltalkhub.com/#!/~HilaireFernandes/DrGeo

You can't use the installation procedure described in the wiki, because
Pharo5 also got stuck when loading a dependent package (gettext package
to name it).
From where do you load gettext because I can have a look.
Your work is important to me :)

It is a simple, but annoying problem. A symbol with whitespace between the
# and the literal is no longer accepted by RBScanner>scanLiteral

scanLiteral
    "Do not allow whitespace between # and the literal."

    "Do not allow number literals after the #"

    self step.
    characterType = #alphabetic
        ifTrue: [ ^ self scanSymbol ].
    characterType = #binary
        ifTrue:
            [ ^ (self scanBinary: RBLiteralToken)
                stop: self previousStepPosition ].
    currentCharacter = $'
        ifTrue: [ ^ self scanStringSymbol ].
    (currentCharacter = $( or: [ currentCharacter = $[ ])
        ifTrue: [ ^ self scanLiteralArrayToken ].
    "Accept multiple #."
    currentCharacter = $#
        ifTrue: [ ^ self scanLiteral ].
    ^ self scanError: 'Expecting a literal type'

vs

scanLiteral
    self step.
    self stripSeparators.
    characterType = #alphabetic
        ifTrue: [ ^ self scanSymbol ].
    characterType = #binary
ifTrue: [ ^ (self scanBinary: RBLiteralToken) stop: self previousStepPosition ].
    currentCharacter = $'
        ifTrue: [ ^ self scanStringSymbol ].
    (currentCharacter = $( or: [ currentCharacter = $[ ])
        ifTrue: [ ^ self scanLiteralArrayToken].
    "Accept some strange literals like '#1', '# species' and '##species:'"
    characterType = #digit
        ifTrue: [ ^ self scanNumber ].
    currentCharacter = $#
        ifTrue: [ ^ self scanLiteral ].
    ^self scanError: 'Expecting a literal type' translated.

The problem is that recovering from that while loading code asks for
rather well-developed debugging skills... It is faster to just load the code
in an old Pharo image, fix it there and commit a new version

Stephan


Reply via email to