[Sawfish] Re: Porting Sawfish to Racket

[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]


Yesterday, Laurent wrote:
> 
> So I started a new project from scratch (
> https://github.com/Metaxal/RWind/ ), which is currently in a minimal
> but usable state (for testing purposes). Even though it's not
> Sawfish, it's aimed at being very similar to it (extensibility,
> scripting in Scheme, console, etc.), but of course its current state
> is nowhere near Sawfish.

One thing to be careful with is the size of the racket executable,
which can be a significant point in a WM.

(Otherwise, I'd love to hack on something like that if I had any real
time...  That, and the tendency of WMs to become a blackhole that
magically sucks your time away.  Maybe if you get to a point that I
can use it as my WM, I'll start hacking things in a natural way.)


6 hours ago, POMPEE William wrote:
> 
> Why do you think starting from scratch cost less than porting
> Sawfish to Racket?

Having a different language is in almost all cases something that gets
embedded in code to such a point that it takes a huge effort to move
such code to a different language.  Witness Emacs, where after years
of plans to port it to Scheme (and XEmacs planning to move to CL)
eventually resorted to adding a lexical scope feature to Elisp instead
of such a port...


> Why do you think that a project Racket dependent is better than
> being based on Rep?

IMO, any "real" language would be better -- the main problem of rep is
that practically speaking it was developed as a single-application
language, and has stayed this way.  Meanwhile, the language itself is
a combination of features that makes it hard to learn: it is kind of a
scheme, but with some elisp-like features on one hand, and with a
decent-looking module system on the other (but still sticks to bad
defmacros).  It might be that it could see a brighter future, but
without any active work on it, it is unlikely to happen.


> From a language point of view Guile seems to be the only Scheme
> interpreter currently bound to GTK+.

At some point in the past I mentioned the fact that Racket has a large
C++ part that deals with GUI, and that this was about to change.
These days we are well after that change, and Racket uses GTK for its
GUI implementation on Linux (and on Windows, as an option).  This
means that the code is certainly stable enough and robust, at least
since it's being used by *many* people.


> I don't think it's really relevant to switch from a Scheme-like
> interpreter to something else without gain in portability.

I don't know what makes you think that, but if anything, Racket is
*way* more Scheme-like than Rep...


6 hours ago, Laurent wrote:
> 
> Starting from scratch seemed to me a better option, because I don't
> know sufficiently the internals of Sawfish and Rep. I played with
> both of them a little, and I'm pretty sure Rep's lack of error
> checking and reporting would make any porting attempt a hell. There
> are slight but important differences between Rep and Racket (and
> quite probably with other Schemes) for the core (see the wikia page
> I cited above), and possibly heavy differences in the libraries,
> like threads, gui, etc.

BTW, another direction is to try and build enough support for rep-like
features to the point where you can run sawfish code.  But given the
subtle-but-important differences, this is likely to be very hard --
and I completely agree that the extremely bad state of debugging in
rep will really not help.


>     Why do you think that a project Racket dependent is better than
>     being based on Rep?
> 
> Racket (like other Schemes, and unlike Rep) is a very mature Scheme,
> with lots of functionalities, a very helpful and responsive
> community. It is heavily tested and has a very good development
> design (e.g., automatic testing with thousands of tests before each
> release to avoid regressions).

("Thousands of tests" is an underestimate...  We have thousands of
test *files*, and with the number of different platforms and different
running configuration, and with people running their own tests, I
think that it's safe to say that the number of tests that are involved
in a release are somewhere in the millions.)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

-- 
Sawfish ML


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/