On Mon, Aug 11, 2003 at 08:31:42PM +0400, Yaroslav Rastrigin wrote:
> Build process was converted to autoconf/automake. Despite heated duscussion 
> here some time ago about necessity and usability of this solution, conversion 
> proved itself quite straightforward, easy and generally useful.  

I finally decided to give trswm a try and, hah, immediately ran into
problems with autoconf that would be easy to fix in a Makefile but I have
no idea how to fix in an autoconf script and figure most users wouldn't 
either be able to do so: the script can't figure out Lua version and fails
(debian has all this lua50, liblua50 and so on).

BTW, I also finally made a link from Ion's home page to to the TrsWM page.

One more thing, you say on the web page 

        I want to say, however, that current Ion development path
        - "rewrite WM using Lua" do not seems entirely correct to me.
        Back in time, Sawfish was almost entirely written in some kind
        of Lisp, and, while absolutely tunable and easily modifieable, 
        was not very well suited for usage on slow systems due to 
        unacceptibly slow (for WM) execution sometimes.
        
First of all, the WM is not entirely being rewritten in Lua, only the 
bindings go completely through Lua and some non-WM features are implemented
in Lua; the core WM functionality is pure C except for using Lua's hashes
for some things, but nowhere that would be performance-critical. True, 
I haven't tried the latest Ion on a slow machine. (I have an old zipslack
installation on a 486 laptop, but I'd need to  upgrade everything starting
from libtool and am to lazy to start setting up ppp or a floppy disk rally.)
A few people have said it is still impressively fast despite all the Lua, 
but I don't know what computers they were using. I haven't even experienced
the occasional garbage collection and Lua 5.1 should feature an incremental
collector further increasing efficiency. Found man pages are cached in a 
weak table and do quite fast get collected because after a while the 
completions take long thanks to a find /usr/man etc. so GC does happen.. 
I should probably use a cache file, one more feature that does not belong
in the C wm core but as an easily strippable extension script. Of course
some would say that this should be done completely as an external program
and WM should only manage windows and in part they're right, but there's
a _lot_ more work to that than allowing the queries that are nevertheless
needed for window management operations to be used for other tasks as well.

There was somewhere a performance comparison of a few scripting languages, 
I'm not sure if it included a variant of LISP, but did include perl/python 
and Lua fared very well. There seem to be some other tests at
<http://www.bagley.org/~doug/shootout/> (or maybe they're an extension of
the ones I saw earlier as I can't find anything else) and Lua 4.0 (5.0
should be more efficient in some aspects) most of the time seems to 
perform much better than e.g. Guile. (I don't know which Lisp/scheme/
whatever sawfish used/s.)

Of course the memory usage with Lua can become huge with some
completions, but if you're on a really low-end computer, you probably
don't want man-page or file completions and such and the nice thing is
that all such superfluous queries and completions can be rather easily
removed being implemented in Lua to strip Ion down without removing
queries alltogether. (Of course one could just not load the query
module at all.)

-- 
Tuomo

Reply via email to