[Glass] recompiling a package

Dale Henrichs via Glass glass at lists.gemtalksystems.com
Wed Feb 18 11:57:20 PST 2015


Upon further review I assume that you need a way to extract the classes 
in a package? I can add that as an argument, along with an option for 
getting classes in a project ... I can ship you an update to the script 
if you'd like ...

The class list variant should work in an old version of tODE ... 
extracting classes from packages and/or projects might cause me to use 
some pretty recent code ...

Let me know, if you need further script help ... I can probably write 
something at a pretty low level if needed ...

Dale

On 2/18/15 11:20 AM, Dale Henrichs wrote:
> Paul,
>
> Here's a tODE shell script (`touch sh repairClasses`) that takes a 
> list of classes and should do the moral equivalent of "add a space to 
> iv list":
>
> [ :topez :objIn :tokens :command :commandNode |
>   | opts args |
>   "for help: ./repairClasses -h"
>   command
>     getOptsMixedLongShort:
>       {#('help' $h #'none').
>       #('classes' nil #'required')}
>     optionsAndArguments: [ :options :operands |
>       opts := options.
>       args := operands ].
>   opts
>     at: 'help'
>     ifAbsent: [
>       opts
>         at: 'classes'
>         ifPresent: [ :classNameList |
>           | classes |
>           classes := Set new.
>           (classNameList findTokens: '')
>             do: [ :className | (Smalltalk at: className) ifNotNil: [ 
> :cl | classes add: cl ] ].
>           GsDeployer
>             deploy: [ classes do: [ :cls | cls asClassDefinition 
> createClass ] ] ] ]
>     ifPresent: [ :ignored |
>       TDManPage
>         viewManPage:
>           'NAME
>   repairClasses - repairClasses sript utility template
> SYNOPSIS
>   repairClasses [-h|--help]
>                 --classes=`<class-name-list>`
> DESCRIPTION
> EXAMPLES
>   ./repairClasses -h
>   ./repairClasses --classes=`TDClassDefinitionClient TDMcClassDefinition`
> '
>         topez: topez ] ]
>
> Just run the following with your list of class names:
>
>   ./repairClasses --classes=`TDClassDefinitionClient TDMcClassDefinition`
>
> This happened because GLASS/GsDevKit didn't create the classes 
> correctly in the first place ... presumably there were some errors 
> during the load? I'd like to find out if possible.
>
> Dale
>
> On 2/18/15 10:15 AM, Paul DeBruicker via Glass wrote:
>> Hi -
>>
>>
>> I've loaded a Monticello package into GemStone 3.1.0.6 using tODE and 
>> the class hierarchy is broken.  Some subclasses of some classes don't 
>> know that they're subclasses and so method lookup is broken for those 
>> subclasses.  If I put a space in the #instVarNames: portion of the 
>> class definition and save it the class hierarchy is restored.
>>
>>
>> Is there a way to do that for all classes in the package from a script?
>>
>>
>> thanks
>>
>> Paul
>> _______________________________________________
>> Glass mailing list
>> Glass at lists.gemtalksystems.com
>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>



More information about the Glass mailing list