6 ms·
Your minimalist core feature and flexible extension strategy sounds very appealing. I can identify having this impulse after doing things with Rust but fantasi
by sebastianconcpt 4y ago
Your minimalist core feature and flexible extension strategy sounds very appealing.
I can identify having this impulse after doing things with Rust but fantasizing about a LISP cousin: Smalltalk.
Now that you mentioned Go it is a more natural thing to try due to its garbage collection already done there. Thanks por pointing that out.
What restrains me a bit of starting any effort in this direction is Pharo's current performance:
Time microsecondsToRun: [ 100 factorial ].
"86"
- igouy 4y agoPlease spell-out whether you are restrained by how-good or how-bad you consider current performance to be.
- sebastianconcpt 4y ago86 microseconds is an order of magnitude better than what was benchmaked here but maybe other bechmarks aren't as good. Said that, I do not want to sunk time into trying to improve something, only to find out tha it will perform worst. Maybe the compromise is to try to do a minimal proof of concept only manually transpilig a couple of objects from Smaltalk to Go and measure that?
- igouy 4y agoWell, we don't seem to have any information about the hardware used, so it's going to be a sketchy comparison. In any case, shouldn't your measurement be made the same way John Jacobsen seems to have made measurements — $ time ./bin/visual ./image/visualnc64.im -nogui -doit "Stdout nextPutAll: 100 factorial printString; cr. ObjectMemory quit" 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 real 0m0.616s user 0m0.452s sys 0m0.161s
- sebastianconcpt 4y agoI've ran that on 64bits Pharo 7 in a mid 2015 mac book pro and it measures only the time taken for the factorial (excluding system startup/shutdown). By the way, I'm not recognizing that command, I'm curious, what smalltalk is that you're using there?
- igouy 4y ago$ cat fact.st Stdio stdout nextPutAll: 100 factorial printString; nextPut: Character lf.! SmalltalkImage current snapshot: false andQuit: true! $ time bin/pharo --headless Pharo10-SNAPSHOT-64bit-502addc.image fact.st 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000 real 0m0.350s user 0m0.303s sys 0m0.049s
- igouy 4y ago> I've ran that on… I don't think we know about the hardware used for the other measurements — so sketchy comparison. > … excluding system startup/shutdown… Why would you do that when the other measurements included startup/shutdown? https://github.com/eigenhombre/l1/ https://github.com/eigenhombre/l1/ > … not recognizing that command… Cincom Smalltalk, VisualWorks® 8.3 run with `time` from a terminal window command line, like the other measurements.