From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/3953 Path: news.gmane.org!not-for-mail From: Paul Sokolovsky Newsgroups: gmane.linux.lib.musl.general Subject: Squirrel - no-bloat scripting language with sane syntax and semantics Date: Sat, 24 Aug 2013 00:11:18 +0300 Message-ID: <20130824001118.5be5b3d7@x34f> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1377292292 17551 80.91.229.3 (23 Aug 2013 21:11:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 23 Aug 2013 21:11:32 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-3957-gllmg-musl=m.gmane.org@lists.openwall.com Fri Aug 23 23:11:36 2013 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1VCydp-0005sr-QK for gllmg-musl@plane.gmane.org; Fri, 23 Aug 2013 23:11:33 +0200 Original-Received: (qmail 1593 invoked by uid 550); 23 Aug 2013 21:11:33 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 1585 invoked from network); 23 Aug 2013 21:11:32 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mime-version:content-type :content-transfer-encoding; bh=FcsBi8WPwQ3M1h9D9fPFrRcx6I3Gc0xJZgvVsDx6zwk=; b=MsX08hXmKL28hQCELxf9GX1mj4a17GO1oaM4v22MWZsCsxPF1lzLVIUDHPScM85yr9 kiumeXkTmOw00L1n8WMIoH5oin+0C8Qp2wheQtLlmXLX5dgfGdTK1VJapADEgFJtjDPp djcOj6ncw1iR2KTmPMwRhtJrGR/mo563RZJWPUpjJcKu5imTCHytK8hMQAmi7zr7XMw3 XZIo4GzzrlVCHa9vDePEdvVV9SD08kRP7nWbOl4FSOhdJIlhPMWIIdeOEYCAP98DelFm g0CC7+qUVGUMeAeYjv71C0Sny0gaBH+yvGEL3vAQitiiVmJTTNQeihIQjv2cJCi3yhFk GRpw== X-Received: by 10.14.1.131 with SMTP id 3mr2004730eed.57.1377292281283; Fri, 23 Aug 2013 14:11:21 -0700 (PDT) X-Mailer: Claws Mail 3.9.1 (GTK+ 2.24.10; i686-pc-linux-gnu) Xref: news.gmane.org gmane.linux.lib.musl.general:3953 Archived-At: 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. 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. 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. 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). 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, 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 ;-). Example no-nonsense script written in (general-purpose) Squirrel: ========== fin = file(vargv[1], "r") fout = file(vargv[2], "w") prefix = "sq" while (l = fin.readline()) { if (l.find("/*stdlib*/")) prefix = "sqstd" if (!l.find("(*")) continue toks = split(l, "()") sym = toks[1].slice(1) fout.write("#define " + prefix + "_" + sym + " (sqapi->" + sym + ")\n") } ========== -- Best regards, Paul mailto:pmiscml@gmail.com