#, Message Pattern (Parser>>pattern:inContext:)

Lantz Rowland lantz at aabysgallery.com
Mon Dec 11 08:18:40 UTC 2000


My Squeak image has decided that #, (#comma) is not a valid message 
anymore. I hope that someone has an idea or a line of attack on this, as I 
would like to see the mystery solved.

   Squeakers ...  I have a problem...
        Still flying ... but I just noticed the wings are missing.

The Issue
   #, is not being considered a valid Message pattern by the Parser
       There 6 Implementations including SequenceableCollection

   I didn't touch it. No really! I was not even looking down there.

       Parser>>pattern:inContext:
           "hereType = #comma"
           "cs: 2402ColanFreeSyntax dan 4/5/2000"

     My only recent change to a Squeak class is a fix I submitted to list 
Dec 1st
         Morph>>buildDebugMenu:

     I've been working with my own subclasses mostly in Network-Kernel , 
Mysql-Driver and Morph-*

   #, was definitely working in my image prior to Dec 1st
     - prior to Dec 1st 2000
         Version stamp on one of my messages
         I was building a string with #, to send to Transcript
         Proof that #, was working on Nov 30th

     - prior to cs 2989TmfFixes-ar
         I had promoted the project with the Nov30 change to top of Changes
         Then did the upgrade that brought in 2989 and the others since then

Observations
   This seems to be only a Parser Issue and not compiled Methods
     'Print '  Nothing more expected ->, 'It' .

   Can not save any method trying to use a #, message

   The Recent Versions Browser acts different than other method browsers
     It does not complain about syntax errors, with or without diffs showing
     I have not yet tried saving a change through this browser

   Change Sorters get Very Confused displaying a method with a SyntaxError
     Must close the Change Sorter window first
     Then the SyntaxError windows

   Lotsa Senders of #, <chuckle> Lots!


ChangeSet 2989 through 3077
   I can not see any real obvious candidate as causing this.

   NewSymbolTable (3045-3051) changes seem the most ... scary.

   ParseScript (2991,3004) relate to Syntax but they seem constrained to Morph


Current plans
   I'll keep studying the ChangeList and Parser and Symbol code
   I have not yet started backing out ChangeSets
   I will start to rebuild a new 2.9a image

= = = = = = = = = = = = = = = = = = = =
=== Details ===

SyntaxError selecting SequenceableCollection>>,
   Message pattern expected ->, otherCollection
     [Complaint that #comma is not a valid message pattern --zL ]

   Same SyntaxError occurs with all Implementors of #,
     Implementors of , [6]
       Abstract Sound , {composition}
           LastChg: nil
       Exception class , {exceptionSelector}
           LastChg: 6/4/1999
       ExceptionSet , {exceptionSelector}
           LastChg: 6/4/1999
       RunArray . {copying}
           LastChg: nil
       SequenceableCollection , {copying}
           LastChg: 1/6/1998
       SequentialSound , {composition}
           LastChg: nil
   = = = = = = = = = = = = = = = = = = = =

=== Parser - Syntax Error Stack ===
   SyntaxError class>>errorInClass:withCode:doitFlag:
   Parser>>notify:at:
   Parser>>expected:
       "Ok ... expected: uses #comma to build the notify:at string"
       "^ self notify: aString End of block expected ->,
         ' expected' at: hereMark + requestorOffset "
       "However, the #comma is another SyntaxError ... <sigh>
         I believe that the compiled method is actually working fine."

   Parser>>pattern:inContext:
     "hereType = #comma"
     "cs: 2402ColanFreeSyntax dan 4/5/2000"
   Parser>>method:context:encoder:
   [] in Parser>>parse:class:noPattern:context:notifying:ifFail:
   BlockContext>>on:do:
   Parser>>parse:class:noPattern:context:notifying:ifFail:
   Compiler>>format:noPattern:ifFail:
   Compiler>>format:in:notifying:decorated:
   [] in MessageSet>>selectedMessage
     "Preferences browseWithPrettyPrint == true"
   MessageSet class>>parse:toClassAndSelector:
   MessageSet>>setClassAndSelectorIn:
   MessageSet>>selectedMessage
     "class = SequenceableCollection  selector = #, "
   MessageSet>>messageListIndex:
   PluggableListMorph>>changeModelSelection:
   PluggableListMorph>>setSelectedMorph:
   PluggableListMorph>>mouseUp:onItem:
   EventHandler>>send:to:withEvent:fromMorph:
   EventHandler>>mouseUp:fromMorph:
   = = = = = = = = = = = = = = = = = = = =

=== Parser - Object ===
   SyntaxError class>>errorInClass:withCode:doitFlag:

     Instance variables (Scanner):
       source:   a ReadStream
       mark:   3
       hereChar:   $
       aheadChar:   $
       token:   'otherCollection'
       tokenType:   #word
       currentComment:   nil
       buffer:   a WriteStream
       typeTable:   #(#xBinary "Snip a bunch of entries -- zL"
         #rightParenthesis #xBinary #xBinary #comma #xBinary #period
         "Snip till end -- zL"
         #xBinary)

     Instance variables (Parser):
       here:   #,
       hereType:   #comma
       hereMark:   1
       prevToken:   0
       prevMark:   1
       encoder:   {an Encoder}
       requestor:   nil
       parseNode:   nil
       failBlock:   [] in Compiler>>format:noPattern:ifFail:
       requestorOffset:   0
       tempsMark:   nil
       doitFlag:   false

   = = = = = = = = = = = = = = = = = = = =
=== SqueakVersionInfo ===
   Smalltalk version .
     "=> 'Squeak2.9alpha of 16 June 2000' "
   Smalltalk lastUpdateString .
     "=> 'latest update: #3077' "
   Smalltalk vmVersion .
     "=> 'Squeak2.9alpha of 13 June 2000 [latest update: #2944]' "
   Smalltalk platformName .
     "=> 'Win32' "
   = = = = = = = = = = = = = = = = = = = =

Please let me know either by the list or direct if you have any questions 
or thoughts.

Thanks,
   Lantz
--
   Lantz Rowland <lantz at aabysgallery.com>  PgpKey: 0x67E5DFA5
   Think Different!    Think YottaHertz!
   zL - Lantz's Scriptible Web <http://Lantz.EditThisPage.com/>
----------------------------------------------------------------------





More information about the Squeak-dev mailing list