scripting
Weight (or: Vlerq progress)
2020-02-15
It takes time to pull stuff in, and to set things up.
I'm often amazed by how much apps do when starting
up. Even Tclkit suffers from this - here's
a listing of the contents of a 4.4 Mb starkit,
using sdx:
Here's the same with vqx, which I'm using to try things out in Vlerq these days:
Tclkit is 2.8 Mb, with Tcl/Tk and Metakit inside, and has to open/launch the sdx starkit. Vqx is a 0.2 Mb standalone app with Lua and Vlerq embedded - it implements lsk as follows:
In all fairness, there are many years of experimentation and learning between the two - the above code is considerably streamlined over what I did in sdx. As is Vlerq w.r.t. Metakit.
Here's the same with vqx, which I'm using to try things out in Vlerq these days:
Tclkit is 2.8 Mb, with Tcl/Tk and Metakit inside, and has to open/launch the sdx starkit. Vqx is a 0.2 Mb standalone app with Lua and Vlerq embedded - it implements lsk as follows:
In all fairness, there are many years of experimentation and learning between the two - the above code is considerably streamlined over what I did in sdx. As is Vlerq w.r.t. Metakit.
Jitters
2020-02-01
LuaJIT is a small just-in-time
system for Lua. It's amazingly effective,
because you can just run your code with it and
everything simply goes faster (3..5
times is what I see). I have not run into any
issues whatsoever. None. Quite a feat, IMO.
Now there's a road map for LuaJIT 2.x, and it promises to become considerably better still. Wow.
I'm very happy to use Lua inside Vlerq now. Performance matters a lot across the scripting <-> C boundary, because one of the things you want to do is perform brute-force selection using custom conditional code, and being able to use a scripting language for those conditions is tremendously useful. I can now think about taking a condition (even from Tcl, just parse and translate to Lua), and using it in C-based brute-force loops. With LuaJIT, that gets compiled to machine code, and since the loops are usually very simple and totally repetitive, chances are that LuaJIT can figure out static datatype-info right on.
Just in case you think I've now joined the church of Lua, and abandoned all others: not so. All I do is use Lua as internal scripting language. At this stage it is also my test environment, to avoid complexity, but once the Vlerq core is sufficiently complete I intend to embed the whole kaboodle into whatever language makes sense. IOW, Lua is my systems scripting language.
i'm soooo tired of "faith-based" language communities. Lua, Python, Ruby, Tcl, whatever. All everyone seems to be doing is defending/protecting their own turf. So many missed opportunities, so little synergy. What an utter waste of human resources.
Now there's a road map for LuaJIT 2.x, and it promises to become considerably better still. Wow.
I'm very happy to use Lua inside Vlerq now. Performance matters a lot across the scripting <-> C boundary, because one of the things you want to do is perform brute-force selection using custom conditional code, and being able to use a scripting language for those conditions is tremendously useful. I can now think about taking a condition (even from Tcl, just parse and translate to Lua), and using it in C-based brute-force loops. With LuaJIT, that gets compiled to machine code, and since the loops are usually very simple and totally repetitive, chances are that LuaJIT can figure out static datatype-info right on.
Just in case you think I've now joined the church of Lua, and abandoned all others: not so. All I do is use Lua as internal scripting language. At this stage it is also my test environment, to avoid complexity, but once the Vlerq core is sufficiently complete I intend to embed the whole kaboodle into whatever language makes sense. IOW, Lua is my systems scripting language.
i'm soooo tired of "faith-based" language communities. Lua, Python, Ruby, Tcl, whatever. All everyone seems to be doing is defending/protecting their own turf. So many missed opportunities, so little synergy. What an utter waste of human resources.
Akismet
2007-05-31
Setting wikit free
2007-04-10
With the Tcl'ers Wiki getting a new home
real soon now, I'm setting the sources of the
underlying "wikit" engine free. A starkit with
the latest (and probably last) changes from me
is available for download.
Do whatever you like with it - all I ask is that credits to me as original author be kept in the sources, at least for those files from which substantial portions are being (re)used. Hopefully others will have as much fun with this code as I had when coming up with all this, many years ago!
Do whatever you like with it - all I ask is that credits to me as original author be kept in the sources, at least for those files from which substantial portions are being (re)used. Hopefully others will have as much fun with this code as I had when coming up with all this, many years ago!
LuaJIT
2006-11-11
Tcl/Tk Conference
2006-09-29
FWIW, I'll
be presenting a paper about Vlerq and Ratcl at
the Tcl/Tk conference in Chicago
next month. Am
very much looking forward to it!
Tcl/Tk
2006-09-26
Dynamic languages
2006-09-11
Wow,
the
Dynamic Languages Symposium 2006 looks like
a heck
of a
conference! Too bad I can't make it (there really is
no way) ...
Brne
2006-08-21
Christian
Neukirchen's
Brne is the first mention I've
ever seen of anyone working on something even
remotely similar to Vlerq.
Wee.. so maybe there are some more lost souls chasing the same dream on this planet after all! Wonderful, I need to get in touch with that guy...
Update - more details.
Wee.. so maybe there are some more lost souls chasing the same dream on this planet after all! Wonderful, I need to get in touch with that guy...
Update - more details.
Vlerq lives
2006-06-21
The Vlerq research
project, which aims to supercede Metakit one day
has undergone a dramatic transformation these
past weeks.
I have completely rewritten the code as a C extension for Tcl, re-using many ideas and insights but also adding some new ones, and the result has shattered many of my prior assumptions. The new code is a fraction of MK's C++ code base, about 75% C and 25% Tcl, and it looks like it is turning into an incredibly good fit for Tcl.
The big surprise for me was the enormous simplification and speed increase which means Vlerq now outperforms MK's highly tuned code in many cases, often by a factor 2..3, and I confidently predict that this is not the end of it either.
I have completely rewritten the code as a C extension for Tcl, re-using many ideas and insights but also adding some new ones, and the result has shattered many of my prior assumptions. The new code is a fraction of MK's C++ code base, about 75% C and 25% Tcl, and it looks like it is turning into an incredibly good fit for Tcl.
The big surprise for me was the enormous simplification and speed increase which means Vlerq now outperforms MK's highly tuned code in many cases, often by a factor 2..3, and I confidently predict that this is not the end of it either.
Scripting
2006-05-01
Here is
some
source code in a blog
entry about decoding "tar" archive headers, which IMO
is a good example of how different languages have
their own way of expressing logic (Ruby in this
case).
Wouldn't it be nice if there were a place where the same problem, preferably a simple-to-understand-but-not-quite-trivial-one-to-solve, were coded in different languages and all collected somewhere?
Not as a shoot-out, but to help understand just what the different styles, formatting choices, standard libraries, and conventions are. Hey, let's call it a "sleep-in", to protest against language apartheid!
I'd really like this world to move on from "mono-lingual" language-centric communities ...
Wouldn't it be nice if there were a place where the same problem, preferably a simple-to-understand-but-not-quite-trivial-one-to-solve, were coded in different languages and all collected somewhere?
Not as a shoot-out, but to help understand just what the different styles, formatting choices, standard libraries, and conventions are. Hey, let's call it a "sleep-in", to protest against language apartheid!
I'd really like this world to move on from "mono-lingual" language-centric communities ...
Vlerq 1.0
2006-03-31
I've released Vlerq
1.0 (i.e. Ratcl 1.0 + Thrive 2.23).
A bit worried about the amount of work still remaining, but nevertheless: lots and lots of progress so far. One could say I'm halfway there.
A bit worried about the amount of work still remaining, but nevertheless: lots and lots of progress so far. One could say I'm halfway there.
Synergy
2006-03-09
Could
the
Dynamic Languages Day be what I
hope it is - an attempt to bridge the gap between the
many scripting languages to emphasize and leverage
the commonality
between
them? I hope many more will come - and would have
attended had I known about this. The presentation
movies are on-line, great!
Minimal LISP
2006-02-13
MISP is a
minimal Lisp which is being described in a number of
very short and readable blog entries.
I love
it - not only
is it a delightful read, it might in fact be a great
candidate to implement on the Thrive VM.
Beyond Java
2005-11-30
If Java is
not the last word, as this
article & book suggest,
and if Ruby is the next big thing, then this is great
news for the future of scripting languages in
general. The differences between Ruby and Perl,
Python, Tcl, Lua, etc are minor, IMO.
Ruby, spot on
2005-11-27
Ignore the
title of this
presentation, it's
simply a very good list of what makes Ruby look so
attractive.
Embedded compiler
2005-11-21
Saw this on the Tcler's Wiki. I don't
know who the poster is, but most likely this is
Linux, which often has gcc installed:
Scripting with a C compiler built-in. A few years from now, most people will get their first exposure to C this way. Quite a difference from how old-timers like me had to make things work!
Wow. I've never ever used critcl before. Now I'm convinced. I didn't even know I had critcl on my system, but the above cut'n'pasted and Just Worked. Nifty.
Scripting with a C compiler built-in. A few years from now, most people will get their first exposure to C this way. Quite a difference from how old-timers like me had to make things work!
Ratcl 0.97
2005-11-15
I've
pushed out a new release of the Ratcl
relational
algebra extension for Tcl. It's a preview, nowhere
near being production-ready, but it really was long
overdue after the massive rewrite since 0.92 in
June.
Ajax
2005-09-29
Interesting how JavaScript can turn a web browser
into an advanced application framework. ZDNet has a
list
of apps, I had a quick look at
Webnote. Double-click to edit, click outside the
note to end an edit. Amazing.
A nice (Java-centric) introduction into this sort of approach can be found here.
A nice (Java-centric) introduction into this sort of approach can be found here.
Releases
2005-06-11
Been busy.
Released Ratcl 0.92
and
Metakit
2.4.9.4. The usual
frenzy: check-in, fix all version numbers, do all
builds, perform all tests, and DON'T-MESS-UP!
kind of
thing. It was long overdue.