Re:Squirrel Programming Language
by justusw on Tuesday July 12, 2016 @03:17PM
(#12081623)
Given that Lua and Squirrel are quite similar due to meta tables resembling each other, what does Squirrel provide compared to Lua except for the C-Style syntax?
[ Parent
| on HN ]
Re:Squirrel Programming Language
by qwertyuiop924 on Tuesday July 12, 2016 @04:17PM
(#12082005)
It's hyper-optimized, small, and can be multithreaded or multiplexed trivially, but that's true of lua as well. The array thing gives it a leg up in speed as well, as does 0-indexing. Finally, its gc algorithm doesn't have cpu bursts (it's not "stop the world"). I don't know of Lua has this feature, but it makes the language ideal for real-time applications. Like games.
In short, Squirrel is small, nimble and has features that are pretty nuts. Looking for something else? You're barking up the wrong tree.
Puns like these make my day.
You should visit Reddit front page more often
perhaps I should
Re:Squirrel Programming Language
by trynumber9 on Tuesday July 12, 2016 @08:54PM
(#12083312)
Is it actually faster though?
https://github.com/r-lyeh/scriptorium
Perhaps these results are due to poor coding practices in the example code.
Re:Squirrel Programming Language
by qwertyuiop924 on Wednesday July 13, 2016 @08:53PM
(#12090973)
Huh. Weird. That shouldn't be right. Squirrel can do a lot of optimizations Lua can't. Maybe it's just that problem...
What does it mean by a language can be multiplexed trivially?
Re:Squirrel Programming Language
by qwertyuiop924 on Tuesday July 12, 2016 @06:30PM
(#12082710)
You can run multiple interpreters, embedded in the same application, in separate threads: multiplexing, as you have multiple instances, as opposed to multithreading, where you have a single instance.
Re:Squirrel Programming Language
by safewayclubcard on Tuesday July 12, 2016 @07:29PM
(#12082961)
Is that what https://github.com/rvirding/luerl is doing in the erlang VM?
From the docs:
> It should give you a Lua environment that allows you to effortlessly run tens of thousands of Lua processes in parallel, leveraging the famed microprocesses implementation of the Erlang VM. The empty Luerl State footprint will be yet smaller than the C Lua State footprint.
Re:Squirrel Programming Language
by qwertyuiop924 on Tuesday July 12, 2016 @08:59PM
(#12083328)
Yes. Lua does it quite well by default. Apparently, luerl aspires to do it better.
It really speaks more to the runtime than the language. There's nothing fundamentally anti-parallel about lua, but even just concurrent GC is difficult to execute well. Look at how big of a deal Go's recent low latency claims are.
Lua can't be multithreaded in any real sense (by "real", I mean "OS threads"). If Squirrel can that's a big advantage.
Re:Squirrel Programming Language
by qwertyuiop924 on Tuesday July 12, 2016 @04:51PM
(#12082189)
I thought it could, but I think I might have been wrong... Nope, just coroutines. Sorry for being wrong. However, as it is small and embeddable, it's trivial to spin up multiple instances of the interpreter. But Lua and TCL are just as good at that.
0-index. I tried to like Lua, but indexing from 1 is just too painful when you have to talk to C.
In times like that, I would just assume the array size is +1, and ignore the first C Zero position. It's a pain but just setup something once and its done.
No, it's not. See here: http://lua-users.org/wiki/CountingFromOne
I made a comment on that wiki MOONS ago, and it still holds.
Re:Squirrel Programming Language
by SamReidHughes on Tuesday July 12, 2016 @03:23PM
(#12081658)
It looks like arrays are different from tables and they start at 0.
Re:Squirrel Programming Language
by mwcampbell on Tuesday July 12, 2016 @04:09PM
(#12081962)
The combination of reference counting and tracing GC looks interesting. There have been a couple of attempts to retrofit reference counting into Lua, but nothing stable or widely used AFAIK.
I am guessing that it is used in Valve games..
I wonder if parts of it were used in TF2 updates since that hasn't gotten an update in a while