1. 11
  1.  

  2. 2

    Nice! Do you have any idea how slow you are compared to the standard Self VM or the same code on Python?

    Also does RPython give you multiple OS threads or goes it have a GIL like CPython?

    I found your notes on general differences between tinySelf and the original Self - they look very much like changes I’ve thought about before which probably means they’re genuine pain points in the current Self syntax.

    When you talk about using ; as a cascade operator do you mean like in Smalltalk 80, ie

    a b: 2; c: 4.           ==>.       a b: 2.  a c: 4.
    

    or a true cascade ie

    a b: 2; c: 4.           ==>.       (a b: 2) c: 4.
    

    Which is what Tim Budd did for his Little Smalltalk and is IMO much better ;)

    1. 1

      Nice! Do you have any idea how slow you are compared to the standard Self VM or the same code on Python?

      Right now still too much slow. This takes ~700ms: simple_while_benchmark.self (where whileTrue is not a primitive and is defined here: stdlib.tself). Both Self and Python was significantly faster on my computer, if I remember it correctly, something around 20ms or less.

      Also does RPython give you multiple OS threads or goes it have a GIL like CPython?

      It should be without GIL, as it transcompiles to <backend> (currently C). I have no idea how threads work. They should, but I wasn’t using them yet and instead implemented my own light-weight multitasking.

      When you talk about using ; as a cascade operator do you mean like in Smalltalk 80, ie

      Yeah, like in Smalltalk. We actually had this conversation in Self maillist a few years ago and I remembered it when I was writing the parser, but when I thought about it, I use first pattern much more often than second. I think it would be best to support both with different syntax, but I didn’t yet thought of any character that would be useful and meaningful.