The new tutorial

http://felix-lang.org/web/nutut/intro/intro_index.fdoc

is going well. However if you want the latest version you have to run

webserver

and use 

http://localhost:1234/

My access to felix-lang.org is restricted by poor connections.
Builds stop due to loss of ssh link up to 20 times on a bad day.
It takes a long time to build Felix on the small slice, run the tests,
and install everything, which updates the website.

Also command line access is hard. Rackspace is in Dallas, TX, USA.
I am in Sydney, OZ. The speed of light creates significant impediments
to command line editing :) Not to mention buffering in routers on the way.

The build with the latest Makefile succeeded on the site, it uses
Ubuntu 12.4 LTS or something, using fairly recent gcc.
My personal comp is an old MacBook Pro, I'm using clang 3.3 (svn).
Sorry for the build hassles. The first new "client" for a while turned
out to be a packager not a user or developer, and the build system
wasn't set up to handle that very well, so I have refactored the build
process a bit, which of course introduced some bugs. Thanks for
your help and patience (esp Mike and Alexander). I hope it's working now.

The project needs a release manager. Once people start packaging
it makes sense to split the fast moving development head off from
designated releases. I have no idea how to manage git branches,
however that's the least of the issues. Cutting a release means
scheduling, feature freeze, testing, release candidates, and building
on multiple platforms (including Windows).

We also desperately need a dedicated Windows dev. Shayne helped
get the system working on Windows. Thanks Shayne! Esp. considering
Shayne normally runs Linux and had to dig up and old box, and the
process was mediated using Facebook chat :)

Felix, and the build system, are designed to be "write once run anywhere".
This includes core stuff like threading and high performance asynchronous
socket I/O, but it had been quite a while since any Windows development
had been done when we took on this task.

The new tutorial tract is bottom up. It starts by describing how to bind
to C/C++ instead of treating Felix as an abstract language.

I am finding it much easier to gradually introduce features this way.
Probably because much of the design of Felix is generated by the
requirements of making C/C++ bindings.

For example the "indeterminate evaluation strategy" drops directly
and obviously out of considering C bindings like:

        fun add: int * int -> int = "$1+$2";

as both macros (lazy evaluation = substitution) and functions like C
(eager evaluation). The compiler can evaluate

        var x = add (1,add(2,3));

as either

        int x = 1 + (2 + 3)

or as

        int tmp = 2 + 3;
        int x = 1 + tmp;

as it sees fit. This seems reasonable: pure substitution gives the C++ compiler
more information without extensive data flow analysis so is likely to be faster,
however the "unravelled" form could be better if expressions get big and you
want readable outputs, or, if you have common sub-expressions to eliminate.

In addition a sequence of assignments:

        var x = 1;
        var y = 2;
        var z = 3;
        var tmp = y + z;
        var result = x + tmp;

can be "re-ravelled" to give

        var result = (1 + (2 + 3));

and allow the C++ compiler to do constant folding to eliminate the computation
entirely. It pretty obvious the evaluation strategy doesn't matter much here.
[Are you SURE? What about overflow?]

Anyhow the point is that I find explaining how and why things happen
easier from the bottom up.

--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612 
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to