[Cuis-dev] Siren progress and questions

Juan Vuletich juan at cuis.st
Mon Dec 12 06:41:29 PST 2022


Hi Stephen,

Apologies for being so slow in answering.

On 12/2/2022 12:17 AM, Stephen Travis Pope via Cuis-dev wrote:
>
> Hello all,
>
> 1. I have to say that I’m *loving* Cuis development (except that my 
> dislike of Morphic now borders on…).

I'm glad you like Cuis. Perhaps if you are specific on just a few of the 
worst annoyances, we try to fix them, or make them more tolerable :)

> 2. Is there a central place for documentation of the language changes 
> in Cuis, such as,
>
> { … }
> ` … `
> ::

World / Help / Terse Guide to Cuis

> (Part of the reason I was so shocked by Pharo is that I played a bit 
> in the browser and thought, “I wonder what language this is…”)
>
> (The only language extension I was ever motivated to make to Smalltalk 
> was to use “{ }" as nesting comment characters.)
>
> The main usage I find of the { … } form in Cuis is in menu creation, 
> where one sees,
>
> {#label -> 'find class... (f)'. #selector -> #findClass} asDictionary.
>
> which could more easily be written in “standard” Smalltalk-80 as,
>
> (#label -> 'find class... (f)’) , (#selector -> #findClass)
>
> using the shorthand that,
> (association, association) -> dictionary
> and,
> (dictionary, association) adds association to the dictionary.

The big difference is that the {...} form doesn't create a literal. Each 
element is evaluated, so it can be arbitrary Smalltalk code. 
Additionally, backticks $` are used to delimit Smalltalk code that is 
evaluated at compile time, actually creating a literal from _anything_. So

stuff
     | a |
     a := `{ Smalltalk size. Object withAllSubclasses collect: [ :c | c 
allInstances size ] }`

is perfectly valid, and you get an array that is created and filled at 
compile time, and stored in the method in the literal frame (like any 
other literal). These kind of facilities are not needed often, but they 
can be helpful, and simplify code by avoiding some class variables and 
initialization code.

> 3. I’d really love to hear from anyone who can get the FFI or Socket 
> back-end to work on an ARM-based Mac.  I’m having no luck at all, and 
> have checked that the app resources contain binary bundles with the 
> right external code tokens in the name list.  Could it be the loader?

Any news wrt this? Have you tried FFI or Sockets on your ARM Mac using 
Squeak? As we use the very same VM, if something works on Squeak but it 
doesn't work in Cuis, at least we have a good place to do experiments 
and look for code to integrate.

Have you tried asking in vm-dev at lists.squeakfoundation.org ?

> Thanks to the team!!!
>
> Latest image of the display list stuff is below, still no interaction 
> with the items, though the menu works…
>
> stp
>
> ——

Cheers!

-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20221212/488224d4/attachment.htm>


More information about the Cuis-dev mailing list