Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1377423273.2737.120@driftwood>
Date: Sun, 25 Aug 2013 04:34:33 -0500
From: Rob Landley <rob@...dley.net>
To: musl@...ts.openwall.com
Cc: Paul Sokolovsky <pmiscml@...il.com>
Subject: Re: Squirrel - no-bloat scripting language with sane syntax
 and semantics

On 08/23/2013 04:11:18 PM, Paul Sokolovsky wrote:
> Hello,
> 
> I apologize if this message can be considered off-topic. However, my
> reading thru mailing list archive showed that there's favorable
> attitude to generic no-bloat stuff, so I hope this message may be of
> interest to some readers.

We have a list of random packages in the musl wiki, but I stopped  
paying attention to it when people started adding GNU projects to it. I  
don't understand what it's for at that point.

> I'd like to draw attention to small very high level (meaning that
> there's native support for lists and maps) language "Squirrel",
> http://squirrel-lang.org/ . It compiles below 300K (dynamic linking)
> with -O2 and can be gotten under 200K with -Os -flto (sizes are for
> i386). It uses C-like syntax, so should be a quick start for many  
> folks.

Normally people use lua for this, which has around 100k of interpreter.

The downside of lua is it doesn't have a full standard posix C binding  
library. (It has a nonstandard one you can add on, but when I looked at  
writing a busybox clone in it, I needed to install something like 7  
packages to get all the libraries I needed. Then again, most people  
aren't implementing their own "ifconfig", "mount", and "taskset"...)

I note that lua is heavily used in the gaming industry, half of World  
of Warcraft is written in it, for example.

> The language was created in 2003, and now at 3.0.4, but it's mostly
> one-man project, and the maintainer is not interested in its usage
> beyond "embed in C/C++ application" pattern.

So he's been doing it for 10 years and nobody's heard about it.

> After some poking around
> for alternative small scripting languages and even considering writing
> web apps in C++, I gave up and decided to take solution of the "last
> mile" problem myself - to turn it into standalone general-purpose
> language, so it was suitable for arbitrary applications and wide
> audience (which means resolving few warts the original language does
> have).

Back in the Fidonet days I downloaded a list of 2500 programming  
languages. The vast majority of them were one person projects, often  
some graduate student who did it as a class project.

(Heck, I wrote one myself back in 1991 when I was first getting into C.  
I did a bytecode interpreter with an assembler for the bytecode; didn't  
have a libc because the interpreter had bytecodes for things like "open  
file".)

> What I have done so far is at
> https://github.com/pfalcon/squirrel-modules and
> https://github.com/pfalcon/squirrel-lang/tree/squirrel3-pfalcon . So,
> if you ever dreams of sane unbloated scripting language,

It's called lua. (Ken Thompson has similar dreams for go, but I'm not  
convinced.)

> please give it
> a try. And of course, I couldn't lead it to general-purposed'ness
> myself, so if you find the idea neat, please consider joining the
> effort ;-).

Python is now at least two incompatible languages. I've seen  
applications implemented in standalone PHP, games written in Ruby, more  
than one attempt to come up with an embedded subset of perl, at least  
three special purpose lithp engines, javascript used outside the  
browser _or_ server, more languages repurposing Java's Virtual Machine  
than I can track, people still doing new stuff in tcl for some reason,  
my ubuntu install has Haskell presumably because of some dependency,  
OpenFirmware is implemented in fourth so that's still around...

I note that this is off the top of my head. (I'm off in a corner of the  
university out of the range of wireless signal, replying into my outbox  
queue.)

> Example no-nonsense script written in (general-purpose) Squirrel:

There was a fun gallery of decss implementations written in various  
languages a decade and change ago. I vaguely recall he had a couple  
hundred, although a lot of those were things like cobol and pascal and  
fortran and visual basic that we can only _hope_ are dead now...

Rob

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.