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