|
|
As we predicted many years ago, version 3 of the REBOL programming language has finally been open sourced, under the Apache 2 licence. REBOL originally constituted our main cross-platform strategy, but we are now also free to use it in the Syllable base platform, which should not contain closed parts.
So far, REBOL 3 ran on Syllable Desktop using the Linux version of the interpreter library. Now its source code compiles natively on Syllable, and we have integrated it in our build system. To compile REBOL and start it, enter the following commands in the terminal. You need the latest version of Builder. On Syllable Desktop 0.6.7, do:
build update
build log
package unregister Builder
package register Builder
build REBOL-Core--current
build install REBOL-Core--current
r3
On Syllable Server, install the newer Builder package. Then do:
s build update
build log
build get REBOL-Core--current
Install the binary version of REBOL 3 in the REBOL-Core--current/make/ subdirectory as r3-make . Then from the parent directory again:
build REBOL-Core--current
build install REBOL-Core--current
r3
We now have the choice between the interpreted REBOL language and the compiled Red language. We have already contributed a bridge between them, that allows to write REBOL extensions in the Red/System language. Previously, REBOL 3 extensions needed to be developed in C, which has proven unpopular. This currently requires a development branch of Red on Windows, but this will be extended to Syllable.
|
|
|
Today marks the tenth anniversary of the first release of Syllable Desktop, then plainly called Syllable 0.4.0. The original website and announcement are gone, and many other circumstances of the time have changed quite dramatically. We are happy that Syllable is still here - which, judging by comparable ventures, is a feat to be proud of.
We would like to celebrate by presenting the port of most of the Enlightenment E17 graphics stack to Syllable Desktop. The screenshot shows a 3D animation in the Evas canvas engine. (It shows tearing because the animation runs close to full speed and Syllable does not lock the display when making a screenshot. This is not present in the actual display.)
The Enlightenment Foundation Libraries constitute a cross-platform application framework, from a graphics engine up to a widget set and a desktop environment. The stack is modularised into more than ten packages, so we can use only what we need. We have ported most of the stack but not the desktop and not yet the widget set.
The Evas canvas is a scene graph rendering engine. It does not just draw bitmaps, or even vectors, but handles such elements as objects. Because it knows where they are, it can redraw and therefore move and otherwise manipulate them at will. The screenshot shows three Evas squares objects in a stacking order that can be changed.
On top of the canvas engine is the Edje layout engine. It can do all sorts of manipulations on its layout objects, including 3D transformations. The screenshot shows a text in a rectangle, transformed in a 3D perspective that can be changed and animated.
A number of subsystems that are common in other open source projects have been ported to Syllable Desktop to support Enlightenment. Font rendering is done by FreeType, which Syllable already used, and font management by FontConfig. Other libraries that Enlightenment supports can be ported in the future, such as FriBidi for right-to-left text and Harfbuzz for font shaping of languages with complex glyph interactions.
Enlightenment is an integrated stack. It can be programmed at a high level, for example in the Edje layout engine, but lower levels can be addressed when needed. The engine is consistent across these levels. Events and graphics effects are propagated through this stack until they reach their proper destination. The screenshot shows an Edje layout object programmed to swallow user interface events.
This graphics stack is running on top of the SDL subsystem in Syllable. Therefore, it is currently limited to a single window per application. In the future, a native Syllable backend could be written for Enlightenment. We have ported the latest version of Enlightenment, the new E17 from a month ago. In this, Evas doesn't have a specific SDL backend anymore, but integrates through its generic memory buffer backend. In a similar way, Evas could already be used in a native Syllable C++ application.
We hope to port the E17 widget set Elementary in the future, which reached version 1.0 only a few months ago, to complete this cross-platform application framework. We already have it working on Syllable Server. It is built on top of the Edje layout engine, so widgets can be manipulated in the same ways as Edje and Evas objects.
The screenshot shows an example of how a slider widget can simply be programmed on top of Edje.
|
|
|
Red/System 0.2.5 has been released. It now has proper support for initialisation of the standard C library, for Red/System programs or other libraries that use it. This has been developed in collaboration between the Red and Syllable projects. Other platforms got by without it so far, but on Syllable Desktop, Red/System programs that use the C library required a workaround until now. The screenshot shows Red/System reading a web page, through the cURL networking library (demo source).
Red celebrated its first birthday at the third Red Developers Conference. Bindings that were developed over the past year can now be used unmodified on Syllable Desktop. Videos were made introducing Red/System and the bindings. This screenshot shows the C library (Fibonacci source, see the .reds file) and SQLite (demo source) bindings. The Mandelbrot demo (source) relies on the new floating point support that was released earlier. The SQLite database binding requires the new Syllable Desktop test release, which fixes support for recent SQLite versions and includes the latest one.
The other bindings also work on older versions of Syllable. They were written by us and contributed to the Red project. The goal is to make sure that native and cross-platform Red programs will be able to run on Syllable Desktop. The bindings work on Syllable Desktop, Syllable Server, and other platforms. Red/System is currently implemented in REBOL 2. Therefore, the Red/System compiler doesn't run on Syllable Desktop yet, but Syllable programs can be cross-compiled from other systems. We developed the bindings on Syllable Server. Here is an example of a simple paint program running on the SDL multimedia library (demos source).
Finally, for now, here is an example of playing audio through SDL.
|
|
|
We made a new web site for the Red & REBOL DevCon coming weekend. It is now on-line here. The conference will include a fair number of Syllable topics, as well.
|
|
|
At the Ides of February, we have released a new Syllable Desktop development version. It is based on the previous Syllable 0.6.7 development build, with many fixes and additions made to it. At the time of writing, there are no known cases where this version functions worse than Syllable 0.6.6, so it is safe to install it instead of 0.6.6.
We are interested to hear about any problems with it, especially if you can find any regressions compared to Syllable 0.6.6.
|
|
|
We were recently asked to do an interview for IDG. The article is now published as the top story on TechWorld Australia. There is a summary article, written by Rohan Pearce. We congratulate Rohan on his new position as the editor of TechWorld. He was kind enough to publish the full interview, as well. The articles are even discussed on Slashdot.
|
|
|
Red/System, the low-level C class Red dialect for systems programming, in which the high-level, dynamic Red language will be written, has reached beta status after only half a year of development. It now supports using dynamic libraries on Syllable. For that, the generator for the ELF backend needed to be extended.
We have already contributed two library bindings to the Red project: an almost complete binding with the standard C library at the ANSI C level, and a high performance binding for the ZeroMQ messaging system. These libraries can now be used from Red/System programs, providing good coverage for basic programming needs and advanced communication programming. A network server and its messaging client are quite easy.
Initially, the Red/System compiler required the graphical REBOL/View version of REBOL, but it has been freed from that dependency, so REBOL/Core is now sufficient. The result is that the compiler can now run on Syllable Server. Installation instructions are here. Cross-compiling is trivially easy with Red. For example, the canonical demo program can be compiled for Syllable Desktop on Syllable Server like this:
rebol -s rsc.r -t Syllable %/path/to/tests/hello.reds
You can cross-compile a Windows program from Syllable Server like this:
rebol -s rsc.r -t MSDOS %/path/to/tests/hello.reds
|
|
|
Anthony has made and published a new version of Transferrer, our FTP client application. He has made a number of fixes to the functionality and the appearance, and has integrated work from contributors. The application is not done yet, but it is becoming usable for your downloading pleasure, and your uploads if you are so inclined.
Remember, Transferrer is our community project, so you can help creating it, and we supply extra facilities to support you.
|
|
|
Those who have followed our REBOL & Boron conference in February know that Nenad Rakocevic, previously of Cheyenne fame, introduced his new REBOL like programming language there. It's called Red, it's BSD licensed and we are proud to announce that Red programs now run on Syllable Desktop. This is the demo program in the screenshot. Syllable is the third Red target platform, after Windows and Linux.
Contrary to REBOL and Boron, Red is a compiled language. Its name hints at the goal to offer a reduced REBOL dialect that is suitable for compilation, while still being as much like REBOL as possible. The new language is currently being bootstrapped in an ingenious way. The demo program is not written in Red yet, but in Red/System, yet another REBOL like dialect. Red/System is a low level language comparable to C, with similar capabilities. The project is less than half a year old and has been public for a mere three months, but the design and implementation of Red/System are already nearing completion. After that, it will be used to implement the higher level Red language.
Red/System already has several interesting properties. It is a complete compiler toolchain, including a native code generator and a static linker. It is tiny and does not need the huge GCC or the GNU linker. It was ported to Syllable in a collaboration with the REBOL community by making its ELF executable format suitable for Syllable's own in-kernel loader and adapting the embedded kernel syscalls. The compiler is currently written in REBOL 2, which means it must be run on one of the REBOL 2 platforms: Linux, FreeBSD, OpenBSD, Mac or Windows. However, Red/System can trivially be used as a cross-compiler, so Syllable programs can now be cross-developed from those platforms. Once the Red language is implemented, the compiler will be ported from REBOL to Red. It will then also run on Syllable itself, and it will be possible to use Syllable to cross-develop for other Red platforms. Eventually, a JIT compiler will be added, opening even more possibilities with dynamic compilation.
|
|
|
![[Screenshot]](documentation/introduction/images/sIDE-1-200x160.png) sIDE, Sourcery and Layout Editor
More
Screenshots
Try REBOL & Boron Online

![[Newsletter]](http://web.syllable.org/magazines/SDN/2007/2/SDN-2007-2-180x251.jpg)
Read
Newsletter #2 |