[squeak-dev] loading Telnet 301 into 3.10.2-7179-basic bombs reading SimpleTextMorph-fixed.bdf

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[squeak-dev] loading Telnet 301 into 3.10.2-7179-basic bombs reading SimpleTextMorph-fixed.bdf

Greg A. Woods; Planix, Inc.
When loading Telnet 301 into 3.10.2-7179-basic a question box is  
opened asking if a more suitable font should be generated.  Upon  
answering "Yes" I get the following error:

UndefinedObject(Object)>>error:
UndefinedObject(Object)>>errorNonIntegerIndex
UndefinedObject(Object)>>at:put:
BDFFontReader>>readAttributes
BDFFontReader>>read
StrikeFont>>readBDFFromFile:name:
StrikeFont class>>newFromBDFFile:name:
SimpleTextMorph class>>initializeFonts
SimpleTextMorph class>>initialize
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
Compiler class>>evaluate:for:notifying:logged:
Compiler class>>evaluate:for:logged:
Compiler class>>evaluate:logged:
[] in MultiByteFileStream(PositionableStream)>>fileInAnnouncing:  
{[val := (self peekFor: $!)     ifTrue: [(Compiler evaluate: self  
nextChunk l...]}
BlockContext>>on:do:
[] in MultiByteFileStream(PositionableStream)>>fileInAnnouncing:  
{[:bar |  [self atEnd]   whileFalse: [bar value: self position.    
self skipS...]}
[] in ProgressInitiationException>>defaultMorphicAction {[result :=  
workBlock value: progress]}
BlockContext>>ensure:
ProgressInitiationException>>defaultMorphicAction


index: #STARTFONT
value: #('2.1')

"#STARTFONT" does not answer true to #isNumber thus the error is thrown.


It looks like BDFFontReader>>readAttributes doesn't know how to read  
the "SimpleTextMorph-fixed.bdf" file that was actually downloaded to  
be used.  Perhaps some format change occurred?

--
                                        Greg A. Woods; Planix, Inc.
                                        <[hidden email]>




PGP.sig (193 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [fixish] loading Telnet 301 into 3.10.2-7179-basic bombs reading SimpleTextMorph-fixed.bdf

Tim Johnson

On Dec 5, 2008, at 12:03 PM, Greg A. Woods; Planix, Inc. wrote:

> When loading Telnet 301 into 3.10.2-7179-basic a question box is  
> opened asking if a more suitable font should be generated.  Upon  
> answering "Yes" I get the following error:

Well first I tried loading Telnet 301 in using SqueakMap, but that  
didn't work (utf8 error...?).  Filing in the two changesets worked  
though.

Backtracing the stack, it seems that the instance variable #properties  
of BDFFontReader never gets initialized.  Adding a stupid line
  "properties ifNil: [properties := Dictionary new]." to the beginning  
of BDFFontReader>>read seems to fix the problem... my guess is that  
some class-side constructor is bypassing the instance's #initialize  
method...?  Figuring out where and fixing that would probably be the  
true fix.

Executing 'TeletypeWindow open' now brings up a teletype window and  
seems to have the correct font.  Trying to access the application menu  
for the window though brings up another DNU... StrikeFontSet(Object)  
doesNotUnderstand: #isMonospaced.

- TimJ



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [fixish] loading Telnet 301 into 3.10.2-7179-basic bombs reading SimpleTextMorph-fixed.bdf

Tim Johnson

On Dec 5, 2008, at 1:58 PM, Tim Johnson wrote:

>
> On Dec 5, 2008, at 12:03 PM, Greg A. Woods; Planix, Inc. wrote:
>
>> When loading Telnet 301 into 3.10.2-7179-basic a question box is  
>> opened asking if a more suitable font should be generated.  Upon  
>> answering "Yes" I get the following error:
>
> Well first I tried loading Telnet 301 in using SqueakMap, but that  
> didn't work (utf8 error...?).  Filing in the two changesets worked  
> though.
>
> Backtracing the stack, it seems that the instance variable  
> #properties of BDFFontReader never gets initialized.  Adding a  
> stupid line
> "properties ifNil: [properties := Dictionary new]." to the beginning  
> of BDFFontReader>>read seems to fix the problem... my guess is that  
> some class-side constructor is bypassing the instance's #initialize  
> method...?  Figuring out where and fixing that would probably be the  
> true fix.
>
> Executing 'TeletypeWindow open' now brings up a teletype window and  
> seems to have the correct font.  Trying to access the application  
> menu for the window though brings up another DNU...  
> StrikeFontSet(Object)  doesNotUnderstand: #isMonospaced.

Doing some Googling shows that this is not at all new.  However, I  
cannot find anything in Mantis about it.

http://www.google.com/search?q=StrikeFont+%23isMonospaced    (I'm  
ignoring the Amiga Pascal code :) )

The mailing list post shows that the problems have been investigated  
as far back as 2003 but for some reason no fixes have been created or  
committed.  Also to be found is more IRC commentary about Universes  
and Telnet in particular.  IRC sure does seem to be the hip place to be!

- TimJ


Reply | Threaded
Open this post in threaded view
|

Re: Re: [squeak-dev] [fixish] Re: loading Telnet 301 into 3.10.2-7179-basic bombs reading SimpleTextMorph-fixed.bdf

Greg A. Woods; Planix, Inc.

On 5-Dec-2008, at 3:29 PM, Tim Johnson wrote:
>
> Doing some Googling shows that this is not at all new.  However, I  
> cannot find anything in Mantis about it.

That's a whole other issue -- it would sure be nice if the "mail out  
bug report" button actually sent a nice clean and formatted text  
report to both a special "bugs" mailing list, and directly into the  
bug reporting system.  Having to jump out into a whole other world to  
report bugs, and without even any good tools to create formatted  
detailed bug reports, makes it a whole lot harder to do.  I really  
don't like web-only interfaces for anything either, and especially not  
bug tracking systems.  Well formatted plain text with full e-mail  
gateways seems to make the best foundation for such systems, and web  
interfaces can be built on top as desired.  GNATS is a good example.

--
                                        Greg A. Woods; Planix, Inc.
                                        <[hidden email]>




PGP.sig (193 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [fixish] Re: loading Telnet 301 into 3.10.2-7179-basic bombs reading SimpleTextMorph-fixed.bdf

Tim Johnson
>
> On 5-Dec-2008, at 3:29 PM, Tim Johnson wrote:
> >
> > Doing some Googling shows that this is not at all new.  However,
> I  
> > cannot find anything in Mantis about it.
>
> That's a whole other issue -- it would sure be nice if the "mail
> out  
> bug report" button actually sent a nice clean and formatted text  
> report to both a special "bugs" mailing list, and directly into the
>
> bug reporting system.  Having to jump out into a whole other world
> to  
> report bugs, and without even any good tools to create formatted  
> detailed bug reports, makes it a whole lot harder to do.  I really  
> don't like web-only interfaces for anything either, and especially
> not  
> bug tracking systems.  Well formatted plain text with full e-mail  
> gateways seems to make the best foundation for such systems, and
> web  
> interfaces can be built on top as desired.  GNATS is a good example.

I don't know anything about bug-reporting from a professional's perspective, but from a
user's perspective what you say makes sense.  It seems there ought to be a bugs@ address,
and that users should not have to jump through so many hoops to "properly" report bugs.  
Would a volunteer monitor the bugs@ address, or would it be entirely mechanized?  

Anyway, I have tried going through proper channels to fix the BDFFontReader class.  We'll see
where that goes.  Turns out the bug was brought up a year ago on the mailing list [1] and yet
I could not find anything in Mantis about it.  Yes, nothing in Mantis, despite the problem
being brought up on the mailing list... with a basic and easy fix.  Lack of ownership probably
pays a big part in this...?

My Mantis report, #0007241, is at [2].  I guess that since I did not provide unit tests to
provoke the failure, as well as unit tests to prove my fix, that my report will not go anywhere.  
Hopefully I guess wrong.

Problem / fix:  It seems BDFFontReader class>>#new calls #basicNew which is what keeps
the #initialize from being called.  I propose removing BDFFontReader class>>#new as a fix.

- TimJ

[1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2007-September/121011.html
[2] http://bugs.squeak.org/view.php?id=7241

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] 3.11 Contributions Workflow Example

keith1y
TimJ,

hello, I will use your fix as an example of how to contribute fixes to 3.11

Step 1:
=====
Add an installer script to the bug report page, so that folks can easily
load your fix into any image.

to your report: http://bugs.squeak.org/view.php?id=7241

I added the following note:

"fix begin"
Installer bug: 7241 fix: 'BDFFontReader class.tcj.1.cs'.
"fix end"

Step 2:
=====
Load "LevelPlayingField" and "Tasks" package into an image of your choice.

HTTPSocket httpFileIn: 'installer.pbwiki.com/f/LPF.st'.
Installer install: 'Tasks'.

Find the class ReleaseAfterSqueak310 and find a suitable place for your
fix. You can add your own method for your own fixes, or you can adopt
one that is already provided. For example:


ReleaseAfterSqueak310-#fixesMotherOfFontIssues
     
    "Mother Page: http://bugs.squeak.org/view.php?id=6570 "

    ^ self dependingOn: {
   
        self fixIfUnstable: '7071: Key values from Input Method are not
converted correctly on new Unicode Windows VM'.

       "ADD YOUR FIX HERE"

       self fixIfUnstable: '7421 BDFFontReader doesn't call #initialize'.

    }

Explanation:

    #fixIfUnstable: is a task that will run when generating an unstable
(i.e. alpha release).
 
    Other options are:

        #fix: (for fixes that are to be added to the "stable"
test-candidate)
        #fixOneDay: (to register the existence of a fix, but is perhaps
not ready for any image yet)

Fixes are recorded as dependencies of a task. They may be set to depend
upon each other. Sake will automatically load fixes in the order
prescribed by the dependencies, and will not load one fix twice.

This means that different packages/modules can be worked upon
independently, and specifying dependencies can help in theory.

Step 3:
=====

Update your fix to include the "mother page" (6750) as its parent.

Step 4:
=====

Save the 'Tasks' package back to squeaksource, with a reasonable comment.

The [hidden email] mailing list will be sent a mail
with your change highlighted for all interested to see and comment on.

The release mailing list for detailed discussion is
[hidden email] and of course there is the squeak irc
channel.

Step 5:
=====
Wait for "Bob the Builder" to automatically build an image for you to
download.

or:

If you want to manually generate the "a test candidate" image execute:

ReleaseAfterSqueak310Unstable taskGenerate run

Step 6
=====

You will find your fix, documented with the full mantis report on the
instance side of

ReleaseAfterSqueak310

Hope this makes some sense

best regards

Keith