interesting slowness (not important, just an FYI)

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

interesting slowness (not important, just an FYI)

Squeak - Dev mailing list
Hi Folks.

I am in the process of verifying what Unifont stuff appears in squeak/xterm and in web on Brave (chromium) / Edge (runs on Linux now) per: http://menmachinesmaterials.com/UnicodeRangeBrowser

Ok, on the Squeak side, I am doing a mass Do on the following:


(16r000020  asCharacter to:16r00007F asCharacter) editWithLabel:'Basic Latin'.
(16r0000A0  asCharacter to:16r0000FF asCharacter) editWithLabel:'Latin-1 Supplement'.
(16r000100  asCharacter to:16r00017F asCharacter) editWithLabel:'Latin Extended-A'.
(16r000180  asCharacter to:16r00024F asCharacter) editWithLabel:'Latin Extended-B'.
(16r000250  asCharacter to:16r0002AF asCharacter) editWithLabel:'IPA Extensions'.
(16r0002B0  asCharacter to:16r0002FF asCharacter) editWithLabel:'Spacing Modifier Letters'.
(16r000300  asCharacter to:16r00036F asCharacter) editWithLabel:'Combining Diacritical Marks'.
(16r000370  asCharacter to:16r0003FF asCharacter) editWithLabel:'Greek and Coptic'.
(16r000400  asCharacter to:16r0004FF asCharacter) editWithLabel:'Cyrillic'.
(16r000500  asCharacter to:16r00052F asCharacter) editWithLabel:'Cyrillic Supplementary'.
(16r000530  asCharacter to:16r00058F asCharacter) editWithLabel:'Armenian'.
(16r000590  asCharacter to:16r0005FF asCharacter) editWithLabel:'Hebrew' .
(16r000600  asCharacter to:16r0006FF asCharacter) editWithLabel:'Arabic' .
(16r000700  asCharacter to:16r00074F asCharacter) editWithLabel:'Syriac' .
(16r000780  asCharacter to:16r0007BF asCharacter) editWithLabel:'Thaana' .
(16r000900  asCharacter to:16r00097F asCharacter) editWithLabel:'Devanagari'.
(16r000980  asCharacter to:16r0009FF asCharacter) editWithLabel:'Bengali'.
(16r000A00  asCharacter to:16r000A7F asCharacter) editWithLabel:'Gurmukhi'.
(16r000A80  asCharacter to:16r000AFF asCharacter) editWithLabel:'Gujarati'.
(16r000B00  asCharacter to:16r000B7F asCharacter) editWithLabel:'Oriya'.
(16r000B80  asCharacter to:16r000BFF asCharacter) editWithLabel:'Tamil'.
(16r000C00  asCharacter to:16r000C7F asCharacter) editWithLabel:'Telugu'.
(16r000C80  asCharacter to:16r000CFF asCharacter) editWithLabel:'Kannada'.
(16r000D00  asCharacter to:16r000D7F asCharacter) editWithLabel:'Malayalam'.
(16r000D80  asCharacter to:16r000DFF asCharacter) editWithLabel:'Sinhala'.
(16r000E00  asCharacter to:16r000E7F asCharacter) editWithLabel:'Thai'.
(16r000E80  asCharacter to:16r000EFF asCharacter) editWithLabel:'Lao'.
(16r000F00  asCharacter to:16r000FFF asCharacter) editWithLabel:'Tibetan'.
(16r001000  asCharacter to:16r00109F asCharacter) editWithLabel:'Myanmar'.
(16r0010A0  asCharacter to:16r0010FF asCharacter) editWithLabel:'Georgian'.
(16r001100  asCharacter to:16r0011FF asCharacter) editWithLabel:'Hangul Jamo'.
(16r001200  asCharacter to:16r00137F asCharacter) editWithLabel:'Ethiopic'.
(16r0013A0  asCharacter to:16r0013FF asCharacter) editWithLabel:'Cherokee'.
(16r001400  asCharacter to:16r00167F asCharacter) editWithLabel:'Unified Canadian Aboriginal Syllabics'.
(16r001680  asCharacter to:16r00169F asCharacter) editWithLabel:'Ogham'.
(16r0016A0  asCharacter to:16r0016FF asCharacter) editWithLabel:'Runic'.
(16r001700  asCharacter to:16r00171F asCharacter) editWithLabel:'Tagalog'.
(16r001720  asCharacter to:16r00173F asCharacter) editWithLabel:'Hanunoo'.
(16r001740  asCharacter to:16r00175F asCharacter) editWithLabel:'Buhid'.
(16r001760  asCharacter to:16r00177F asCharacter) editWithLabel:'Tagbanwa'.
(16r001780  asCharacter to:16r0017FF asCharacter) editWithLabel:'Khmer'.
(16r001800  asCharacter to:16r0018AF asCharacter) editWithLabel:'Mongolian'.
(16r001900  asCharacter to:16r00194F asCharacter) editWithLabel:'Limbu'.
(16r001950  asCharacter to:16r00197F asCharacter) editWithLabel:'Tai Le'.
(16r0019E0  asCharacter to:16r0019FF asCharacter) editWithLabel:'Khmer Symbols'.
(16r001D00  asCharacter to:16r001D7F asCharacter) editWithLabel:'Phonetic Extensions'.
(16r001E00  asCharacter to:16r001EFF asCharacter) editWithLabel:'Latin Extended Additional'.
(16r001F00  asCharacter to:16r001FFF asCharacter) editWithLabel:'Greek Extended'.
(16r002000  asCharacter to:16r00206F asCharacter) editWithLabel:'General Punctuation'.
(16r002070  asCharacter to:16r00209F asCharacter) editWithLabel:'Superscripts and Subscripts'.
(16r0020A0  asCharacter to:16r0020CF asCharacter) editWithLabel:'Currency Symbols'.
(16r0020D0  asCharacter to:16r0020FF asCharacter) editWithLabel:'Combining Diacritical Marks for Symbols'.
(16r002100  asCharacter to:16r00214F asCharacter) editWithLabel:'Letterlike Symbols'.
(16r002150  asCharacter to:16r00218F asCharacter) editWithLabel:'Number Forms'.
(16r002190  asCharacter to:16r0021FF asCharacter) editWithLabel:'Arrows'.
(16r002200  asCharacter to:16r0022FF asCharacter) editWithLabel:'Mathematical Operators'.
(16r002300  asCharacter to:16r0023FF asCharacter) editWithLabel:'Miscellaneous Technical'.
(16r002400  asCharacter to:16r00243F asCharacter) editWithLabel:'Control Pictures'.
(16r002440  asCharacter to:16r00245F asCharacter) editWithLabel:'Optical Character Recognition'.
(16r002460  asCharacter to:16r0024FF asCharacter) editWithLabel:'Enclosed Alphanumerics'.
(16r002500  asCharacter to:16r00257F asCharacter) editWithLabel:'Box Drawing'.
(16r002580  asCharacter to:16r00259F asCharacter) editWithLabel:'Block Elements'.
(16r0025A0  asCharacter to:16r0025FF asCharacter) editWithLabel:'Geometric Shapes'.
(16r002600  asCharacter to:16r0026FF asCharacter) editWithLabel:'Miscellaneous Symbols'.
(16r002700  asCharacter to:16r0027BF asCharacter) editWithLabel:'Dingbats'.
(16r0027C0  asCharacter to:16r0027EF asCharacter) editWithLabel:'Miscellaneous Mathematical Symbols-A'.
(16r0027F0  asCharacter to:16r0027FF asCharacter) editWithLabel:'Supplemental Arrows-A'.
(16r002800  asCharacter to:16r0028FF asCharacter) editWithLabel:'Braille Patterns'.
(16r002900  asCharacter to:16r00297F asCharacter) editWithLabel:'Supplemental Arrows-B'.
(16r002980  asCharacter to:16r0029FF asCharacter) editWithLabel:'Miscellaneous Mathematical Symbols-B'.
(16r002A00  asCharacter to:16r002AFF asCharacter) editWithLabel:'Supplemental Mathematical Operators'.
(16r002B00  asCharacter to:16r002BFF asCharacter) editWithLabel:'Miscellaneous Symbols and Arrows'.
(16r002E80  asCharacter to:16r002EFF asCharacter) editWithLabel:'CJK Radicals Supplement'.
(16r002F00  asCharacter to:16r002FDF asCharacter) editWithLabel:'Kangxi Radicals'.
(16r002FF0  asCharacter to:16r002FFF asCharacter) editWithLabel:'Ideographic Description Characters'.
(16r003000  asCharacter to:16r00303F asCharacter) editWithLabel:'CJK Symbols and Punctuation'.
(16r003040  asCharacter to:16r00309F asCharacter) editWithLabel:'Hiragana'.
(16r0030A0  asCharacter to:16r0030FF asCharacter) editWithLabel:'Katakana'.
(16r003100  asCharacter to:16r00312F asCharacter) editWithLabel:'Bopomofo'.
(16r003130  asCharacter to:16r00318F asCharacter) editWithLabel:'Hangul Compatibility Jamo'.
(16r003190  asCharacter to:16r00319F asCharacter) editWithLabel:'Kanbun'.
(16r0031A0  asCharacter to:16r0031BF asCharacter) editWithLabel:'Bopomofo Extended'.
(16r0031F0  asCharacter to:16r0031FF asCharacter) editWithLabel:'Katakana Phonetic Extensions'.
(16r003200  asCharacter to:16r0032FF asCharacter) editWithLabel:'Enclosed CJK Letters and Months'.
(16r003300  asCharacter to:16r0033FF asCharacter) editWithLabel:'CJK Compatibility'.
(16r003400  asCharacter to:16r004DBF asCharacter) editWithLabel:'CJK Unified Ideographs Extension A'.
(16r004DC0  asCharacter to:16r004DFF asCharacter) editWithLabel:'Yijing Hexagram Symbols'.
(16r004E00  asCharacter to:16r009FFF asCharacter) editWithLabel:'CJK Unified Ideographs'.
(16r00A000  asCharacter to:16r00A48F asCharacter) editWithLabel:'Yi Syllables'.
(16r00A490  asCharacter to:16r00A4CF asCharacter) editWithLabel:'Yi Radicals'.
(16r00AC00  asCharacter to:16r00D7AF asCharacter) editWithLabel:'Hangul Syllables'.
(16r00D800  asCharacter to:16r00DB7F asCharacter) editWithLabel:'High Surrogates'.
(16r00DB80  asCharacter to:16r00DBFF asCharacter) editWithLabel:'High Private Use Surrogates'.
(16r00DC00  asCharacter to:16r00DFFF asCharacter) editWithLabel:'Low Surrogates'.
(16r00E000  asCharacter to:16r00F8FF asCharacter) editWithLabel:'Private Use Area'.
(16r00F900  asCharacter to:16r00FAFF asCharacter) editWithLabel:'CJK Compatibility Ideographs'.
(16r00FB00  asCharacter to:16r00FB4F asCharacter) editWithLabel:'Alphabetic Presentation Forms'.
(16r00FB50  asCharacter to:16r00FDFF asCharacter) editWithLabel:'Arabic Presentation Forms-A'.
(16r00FE00  asCharacter to:16r00FE0F asCharacter) editWithLabel:'Variation Selectors'.
(16r00FE20  asCharacter to:16r00FE2F asCharacter) editWithLabel:'Combining Half Marks'.
(16r00FE30  asCharacter to:16r00FE4F asCharacter) editWithLabel:'CJK Compatibility Forms'.
(16r00FE50  asCharacter to:16r00FE6F asCharacter) editWithLabel:'Small Form Variants'.
(16r00FE70  asCharacter to:16r00FEFF asCharacter) editWithLabel:'Arabic Presentation Forms-B'.
(16r00FF00  asCharacter to:16r00FFEF asCharacter) editWithLabel:'Halfwidth and Fullwidth Forms'.
(16r00FFF0  asCharacter to:16r00FFFF asCharacter) editWithLabel:'Specials'.
(16r010000  asCharacter to:16r01007F asCharacter) editWithLabel:'Linear B Syllabary'.
(16r010080  asCharacter to:16r0100FF asCharacter) editWithLabel:'Linear B Ideograms'.
(16r010100  asCharacter to:16r01013F asCharacter) editWithLabel:'Aegean Numbers'.
(16r010300  asCharacter to:16r01032F asCharacter) editWithLabel:'Old Italic'.
(16r010330  asCharacter to:16r01034F asCharacter) editWithLabel:'Gothic'.
(16r010380  asCharacter to:16r01039F asCharacter) editWithLabel:'Ugaritic'.
(16r010400  asCharacter to:16r01044F asCharacter) editWithLabel:'Deseret'.
(16r010450  asCharacter to:16r01047F asCharacter) editWithLabel:'Shavian'.
(16r010480  asCharacter to:16r0104AF asCharacter) editWithLabel:'Osmanya'.
(16r010800  asCharacter to:16r01083F asCharacter) editWithLabel:'Cypriot Syllabary'.
(16r01D000  asCharacter to:16r01D0FF asCharacter) editWithLabel:'Byzantine Musical Symbols'.
(16r01D100  asCharacter to:16r01D1FF asCharacter) editWithLabel:'Musical Symbols'.
(16r01D300  asCharacter to:16r01D35F asCharacter) editWithLabel:'Tai Xuan Jing Symbols'.
(16r01D400  asCharacter to:16r01D7FF asCharacter) editWithLabel:'Mathematical Alphanumeric Symbols'.
(16r020000  asCharacter to:16r02A6DF asCharacter) editWithLabel:'CJK Unified Ideographs Extension B'.
(16r02F800  asCharacter to:16r02FA1F asCharacter) editWithLabel:'CJK Compatibility Ideographs Supplement'.
(16r0E0000  asCharacter to:16r0E007F asCharacter) editWithLabel:'Tags'.

When I do it en-masse, Squeak slows to a crawl.  I am going to give it a few hours to see what happens...Workspaces are starting to appear.

The limited number of individual doits work as fast as always.

just a heads up, nothing to get concerned about.

cordially,

t




Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

Squeak - Dev mailing list
I narrowed it down to one range...


(16r010000  asCharacter to:16r01007F asCharacter) editWithLabel:'Linear B Syllabary'.


This is with the various Unifont installed.

It displays pretty well in the browser


I can inspect the WideString by inspecting

(16r010000  asCharacter to:16r01007F asCharacter)

When I click on "self" of the inspector, the image freezes up.

hmmmm.

Well, I can click through the individual elements and see if they match with what is displayed on the web page and then find the element that hangs the image and voila--theoretically speaking of course.





Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

Squeak - Dev mailing list

TTCFontDescription at: 65537  is throwing an Error: subscript is out of bounds: 65537.


So, that is where I investigate next.


back later.


---- On Sat, 06 Feb 2021 11:29:47 -0500 gettimothy via Squeak-dev <[hidden email]> wrote ----

I narrowed it down to one range...


(16r010000  asCharacter to:16r01007F asCharacter) editWithLabel:'Linear B Syllabary'.


This is with the various Unifont installed.

It displays pretty well in the browser


I can inspect the WideString by inspecting

(16r010000  asCharacter to:16r01007F asCharacter)

When I click on "self" of the inspector, the image freezes up.

hmmmm.

Well, I can click through the individual elements and see if they match with what is displayed on the web page and then find the element that hangs the image and voila--theoretically speaking of course.








Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

darth-cheney

Hi Tim,

On Sat, Feb 6, 2021 at 12:15 PM gettimothy via Squeak-dev <[hidden email]> wrote:

TTCFontDescription at: 65537  is throwing an Error: subscript is out of bounds: 65537.


So, that is where I investigate next.
 
This is the same issue I had last year. I am not sure my diagnosis was correct (see this thread, especially the final message), but from what I recall TTF uses so-called GSUB records to render code points above 65536 or something, and that the implementation of TTF in Squeak is not set up to handle such records. I might be wrong about that though.

--
Eric


Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

David T. Lewis
In reply to this post by Squeak - Dev mailing list
On Sat, Feb 06, 2021 at 12:15:07PM -0500, gettimothy via Squeak-dev wrote:

> TTCFontDescription at: 65537?? is throwing an Error: subscript is out of bounds: 65537.
>
>
> So, that is where I investigate next.
>
>
> back later.
>
>
>
> ---- On Sat, 06 Feb 2021 11:29:47 -0500 gettimothy via Squeak-dev <mailto:[hidden email]> wrote ----
>
>
> I narrowed it down to one range...
>
>
>
>
>
> (16r010000?? asCharacter to:16r01007F asCharacter) editWithLabel:'Linear B Syllabary'.
>

It's probably just a cut an paste thing in your email, but look for
a hidden unprintable character after the 16r010000 in your code. My
ascii email client is showing something there, but it is not visible
when I look at your message on gmail.

iDave


Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

Squeak - Dev mailing list
Will do later tonight. Thx


---- On Sat, 06 Feb 2021 13:43:27 -0500 [hidden email] wrote ----

On Sat, Feb 06, 2021 at 12:15:07PM -0500, gettimothy via Squeak-dev wrote:

> TTCFontDescription at: 65537?? is throwing an Error: subscript is out of bounds: 65537.
>
>
> So, that is where I investigate next.
>
>
> back later.
>
>
>
> ---- On Sat, 06 Feb 2021 11:29:47 -0500 gettimothy via Squeak-dev <mailto:[hidden email]> wrote ----
>
>
> I narrowed it down to one range...
>
>
>
>
>
> (16r010000?? asCharacter to:16r01007F asCharacter) editWithLabel:'Linear B Syllabary'.
>

It's probably just a cut an paste thing in your email, but look for
a hidden unprintable character after the 16r010000 in your code. My
ascii email client is showing something there, but it is not visible
when I look at your message on gmail.

iDave




Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

Squeak - Dev mailing list
In reply to this post by darth-cheney
Hi Eric

I will read later tonight, thx.


If you have time, what is "the font stack" in Squeak?

I know via the font import tool that 'something' is stored in image.
how do we view that something?

The TTC stack....is that the intermediarry between the in image font something and the tools that want to use it?

Thx for your time




---- On Sat, 06 Feb 2021 13:21:06 -0500 [hidden email] wrote ----


Hi Tim,

On Sat, Feb 6, 2021 at 12:15 PM gettimothy via Squeak-dev <[hidden email]> wrote:

TTCFontDescription at: 65537  is throwing an Error: subscript is out of bounds: 65537.


So, that is where I investigate next.
 
This is the same issue I had last year. I am not sure my diagnosis was correct (see this thread, especially the final message), but from what I recall TTF uses so-called GSUB records to render code points above 65536 or something, and that the implementation of TTF in Squeak is not set up to handle such records. I might be wrong about that though.

--
Eric



Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

darth-cheney
Hi Tim,

On Sat, Feb 6, 2021 at 2:44 PM gettimothy <[hidden email]> wrote:

If you have time, what is "the font stack" in Squeak?

I know via the font import tool that 'something' is stored in image.
how do we view that something?

The TTC stack....is that the intermediarry between the in image font something and the tools that want to use it?

Thx for your time

I am really not familiar enough with it all to say anything definitively, and I don't know as much about fonts generally as I should. My understanding is that the "normal" fonts are StrikeFonts, which is a bitmap font format (I think?) The TTC stuff is a kind of extension of the default font management classes, but I'm not exactly sure how they fit together. As you've probably found, poking around those classes and trying to piece together what's happening takes a lot of time. Sorry if this is not much help!
--
Eric


Reply | Threaded
Open this post in threaded view
|

Re: interesting slowness (not important, just an FYI)

Squeak - Dev mailing list
Thx Eric.

I will continue to poke. I will keep you informed as I find stuff.

cheers,

t



---- On Sat, 06 Feb 2021 16:12:43 -0500 Eric Gade <[hidden email]> wrote ----

Hi Tim,

On Sat, Feb 6, 2021 at 2:44 PM gettimothy <[hidden email]> wrote:

If you have time, what is "the font stack" in Squeak?

I know via the font import tool that 'something' is stored in image.
how do we view that something?

The TTC stack....is that the intermediarry between the in image font something and the tools that want to use it?

Thx for your time

I am really not familiar enough with it all to say anything definitively, and I don't know as much about fonts generally as I should. My understanding is that the "normal" fonts are StrikeFonts, which is a bitmap font format (I think?) The TTC stuff is a kind of extension of the default font management classes, but I'm not exactly sure how they fit together. As you've probably found, poking around those classes and trying to piece together what's happening takes a lot of time. Sorry if this is not much help!
--
Eric



Reply | Threaded
Open this post in threaded view
|

More Fonts digging

Squeak - Dev mailing list
In reply to this post by Squeak - Dev mailing list
Hi Eric.

I am building a Dia diagram of the Font's stuff and beginning to get some insights.


It looks like TTFontDescription is the holder of the glyphs for a font that is stored in squeak. (memory? image?).

There is a parallel construct TTFileDescription that does similar stuff, but off of the file system.

Let's stick with TTFontDescription....

Browse TTFontDescription class  and trow in an "inspect" as below....
descriptionNamed: descriptionName
Descriptions inspect.
^ Descriptions detect: [:f | f first name = descriptionName] ifNone: [Default].

I added that Descriptions inspect. It shows a Set.
Browsing that set, I was able to pick one of the entries in the Set. 
The entries are very important as they hold the guts of the fonts.: TTFontDescription.

Pick one in the entries in the set and send it the message 'first name'

You can then plug that into the descriptionNamed and see the TTFontDescription (There is a similar class TTFileDescription)

I have Unifont installed so I send the message:

TTFontDescription descriptionNamed:'Unifont'

per the name gleaned from above.

In the TTCFontDescription, there is a
glyphTable and a bunch of glyphs.


So, this looks like the bloody guts where the error occurs...maybe.

Investigating this, I learned something. Glyphs are not "Pictures" that are plopped into a space on a "screen" rather, they are instructions for drawing a figure.
How it is done, I do not know yet.


cheers,

t