World Programming Language a new release

Our friend John Niclasen has released a new version of his Rebol inspired World language.

The release is a major alpha release with lots of new stuff incl. non-blocking networking by implementing libevent.
The World language is a project that John started because R2 had been without much progression for a longer period of time. His needs are for a language that also can help him with more computational approach for the astronomy study he has picked up again, working on his thesis.

Where can you find the goodies? Aside from the blog on that lags behind because of the hard work on World and his thesis, you can find the github repository here.

From the changelog:


– Added support for calling functions with refinements within contexts (path compiling)
– Added support for values of type struct! to POKE of vectors of pointers
– Added support for TO integer!
– Added support for TO handle!
– Added support for parsing sub-blocks of type any-block! using INTO keyword in PARSE rules
– Changed naming of functions AND’/OR’/XOR’ to AND?/OR?/XOR? in %cortex.w
– Changed TO string! NONE to return empty string “”
– Changed SEND to treat values of type paren! and any-path! as single values
– Changed SEND to return the MESSAGE argument
– Changed SEND to give error, if MESSAGE argument is of type none!
– Fixed bug in SEND / RECEIVE regarding typecheck and memory handling
– Changed TO binary! of a value of type tuple!
– Changed tab-completion at prompt for paths to end on “/”
– Changed tab-completion back to use FIND instead of FIND/CASE (Let’s see, how it goes.)
– Added support for any-word! as CONTEXT argument to BIND (had word! before)
– Reimplemented REDUCE to support multitasking when reducing blocks
– Fixed bug related to context creation and block binding
– Fixed bug related to creation of new (local) variables in tasks
(They will be local, even if same variable wasn’t found in main task.)
– Fixed bug related to TRY and compiling
– Fixed bug related to EXIT in scripts outside any function,
when scripts are executed with DO from within a function
– Fixed bug when calling routing with NONE argument for pointers (treated as NULL)
– Fixed bug with FIND’ , where string wasn’t updated
– Added new mezzanine HOLD (somehow similar to ALSO in Rebol)
– Added more tests

Changes related to networking:

– Changed OPEN from a native to a mezzanine in %cortex.w
– Added native OPEN-PORT
– Removed TCP and LISTEN port types from AGGREGATE argument for PICK
– Removed TCP port type from VALUE argument for COPY
– Added TCP and LISTEN port types to SOURCE argument for READ
– Added /PART refinement to READ (to be used with socket ports)
– Added /LINES refinement to READ (to be used with socket ports)
– Added /LINES refinement to LENGTH? (to be used with socket ports)
– Removed port! from SERIES argument for INSERT
– Added port! to DESTINATION argument for WRITE
– Added /PART refinement to WRITE (to be used with socket ports)
– Changed system/schemes/socket to system/schemes/tcp
– Moved system/schemes definitions from internal to %cortex.w
– Changed system/schemes from a context! to a map! datatype
– Added scheme actors for MAKE port! and READ
– Added simple HTTP read actor (very basic functionalty)

– Other minor additions, changes, and bug fixes

A new port added in this release for 64-bit Windows. Is it build with MinGW-64-bit and MSYS2.

About all 64-bit versions (Mac OS X, Linux64 and Win64):
World was first developed as 32-bit, and I moved to 64-bit development years ago.
But as this is still alpha release, and I focus on implementing all the functions and getting the whole thing stable,
some datatypes don’t utilize 64-bit adressing completely. This will be addressed in future releases.

As John says about his use of World:
“I am using world myself every day now. At university I use world to read scientific data,
plot graphs exporting as PDF, and do calculations.
I am also using world in a new project including SDL, OpenGL, GLSL, and audio.

Using world this way let me hunt down bugs and now and then make changes to the language design as I see fit to make it brilliant.

If you see any problems, let me know.”

John thank you for all this news and please keep up all the good work!

This entry was posted in Programmeren and tagged . Bookmark the permalink.

Geef een reactie

Your email address will not be published. Required fields are marked *

Vul dit nog even in: * Time limit is exhausted. Please reload CAPTCHA.