![]() |
||||||||||||||||||||||||
Carl's REBOL Blog - Vive la REBOLution
Recent Articles:
31-Mar-2013 - R3 Graphics? [0528]How is it going on R3 open source graphics these days? Can someone post an update? Is R3 graphics running on Linux and what about Android or IOS? What about graphics rendering in DirectFB? That's great for embedded devices, and it's something I'd find useful on a weekly basis. 21-Jan-2013 - Making R3 a 3.0 [0527]Rebol R3 has been a working prototype for quite some time. It's actually quite functional, and it runs most of my website related scripts, so it's fairly reliable and stable for such things. It's the main Rebol language I use these days. Overall, R3 is a much better design that R2. As a language, it's more robust and powerful. However, as a "system" it lacks many of the features developers use in R2. Most of these are related to how R3 interfaces to the outside world. For example, launching a program with CALL needs to work more like R2. There are various other examples. So, for R3 to move forward, we need to split it up. There's the R3 "core" itself, and then there are all the special features on top of that. To make R3 core a 3.0 is not a big task. One of the main jobs left to be done is to make sure that none of the natives or mezzanines include refinements that are unused or unwanted. It is certainly fine to release 3.0, then add to it. But, we cannot release 3.0 and subtract anything from it. So, this is more of an inspection process of the current "API". Once it looks ok, I think we can label it 3.0 and move forward from there. What would be next after 3.0? It depends on how you use R3... so everyone has a different idea. There are a few improvements that can be made to some of the native functions. For example, I'd like FIND to be a bit more powerful for simple searches, even though we know that PARSE can do almost anything. It's just handy to have FIND for simple programs. There are other functions in that category also. So, those changes will roll it forward to 3.0.1 and beyond, and with open source, it need not take a lot of time to do so. In the bigger picture, "the roadmap", we've all got different goals. Personally, I really want to see graphics running on more devices, and as a result R3 GUI. For me, this is just a practical thing. I need to be able to quickly build GUI's for tools and projects. Rebol has always been optimal for that. When I say "running on more devices" I really mean my Android phone and various little Linux processors like Raspberry Pi. I'd also like to see it displaying on DirectFB. Many embedded devices don't use X windows. Another feature I'd like is a VID-to-HTML converter. That is, I'd like to be able to build web interfaces with the same easy that I use for building VID interfaces. It's quite doable, and perhaps there's already a program available? All these things are useful to me. Of course, you might have other interests. Perhaps you want better integration with a database or web server, etc. Certainly, those are possible too, but you'll need to get organized and make them happen. I'd be glad to offer advice. One other thing I should mention... I don't want R3 to be just a computer science project. It certainly has some interesting scientific features, but in the end it needs to be best at rapidly creating reliable software. We should focus on what makes R3 useful to most of us and not overdo it on features that may be conceptually/mathematically cool, but rarely used. 25-Dec-2012 - Cross-compiling Rebol for your favorite embedded board [0526]So, perhaps you found a nice gift package under the Christmas tree this year? Maybe it's a cute little embedded SoC (system-on-a-chip) board. Perhaps a Broadcom 2835 Raspberry Pi or TI OMAP Beaglebroad or Pandaboard? Cool. Of course, the first thing you'll want to do after booting the board is to get Rebol running. It's easy, here's how. To cross-compile Rebol you'll need the development toolchain and library header files for your SoC and Linux version. Usually you can download those from a website related to your specific board. Next, figure out the paths to the embedded tools and includes (header files). For example on my box:
Assuming you already setup your R3 development environment (from github.com), you can now generate fresh R3 header files for your embedded linux using your local host environment (no crosstools yet): carl@ub10:~/r3$ cd make carl@ub10:~/r3/make$ make make OS_ID=0.4.3 carl@ub10:~/r3/make$ make clean prep Note that the "make make 0.4.3" regenerates a makefile that will work for most embedded linux toolchains. (See src/tools/systems.r) You'll see the prep step rebuild the necessary R3 header files: ./r3-make -qs ../src/tools/make-headers.r ------ Building headers ... REBOL Interface Library ... Function Prototypes 698 function prototypes ... Function Argument Enums ... REBOL Constants Strings ... Now, you are ready to make R3 with your crosstools and includes: carl@ub10:~/r3/make$ make TOOLS=/opt/raspi/bin/arm-linux- INCL=~/raspi-linux/include It will take just a minute to compile and link... make[1]: Entering directory `/home/carl/r3/make' mkdir -p objs /opt/raspi/bin/arm-linux-gcc ../src/core/a-constants.c -c -DTO_LINUX -DREB_API -O2-fvisibility=hidden -I/home/carl/raspi-linux/include -I../src/include/ -o objs/a-constants.o /opt/raspi/bin/arm-linux-gcc ../src/core/a-globals.c -c -DTO_LINUX -DREB_API -O2 -fvisibility=hidden -I/home/carl/raspi-linux/include -I../src/include/ -o objs/a-globals.o ... /opt/raspi/bin/arm-linux-gcc -o r3 objs/a-constants.o objs/a-globals.o objs/a-lib.o ... /opt/raspi/bin/arm-linux-strip r3 /opt/raspi/bin/arm-linux-nm -a r3 /opt/raspi/bin/arm-linux-nm: r3: no symbols ls -l r3 -rwxrwxr-x 1 carl carl 449556 Dec 24 17:00 r3 Copy your new r3 over to your embedded system and power up Rebol. Now you've got some real power. It will run your Rebol programs identically to your other systems. You're all set to do great things. Of course, R3 open source makes this possible now. Merry Chirstmas. Enjoy.
| ||||||||||||||||||||||||
![]() | ||||||||||||||||||||||||
Updated 31-Mar-2013 - Copyright Carl Sassenrath - WWW.REBOL.COM - Edit - Blogger Source Code |