{"id":211,"date":"2016-04-08T11:48:11","date_gmt":"2016-04-08T11:48:11","guid":{"rendered":"http:\/\/arnoldvanhofwegen.com\/blog\/?p=211"},"modified":"2016-04-08T19:34:22","modified_gmt":"2016-04-08T19:34:22","slug":"world-programming-language-a-new-release","status":"publish","type":"post","link":"https:\/\/arnoldvanhofwegen.com\/blog\/world-programming-language-a-new-release\/","title":{"rendered":"World Programming Language a new release"},"content":{"rendered":"<p>Our friend John Niclasen has released a new version of his Rebol inspired World language.<\/p>\n<p>The release is a major alpha release with lots of new stuff incl. non-blocking networking by implementing libevent.<br \/>\nThe 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. <\/p>\n<p>Where can you find the goodies? Aside from the blog on <a href=\"http:\/\/world-lang.org\" target=\"_blank\">World-lang.org<\/a> that lags behind because of the hard work on World and his thesis, you can find the github repository <a href=\"https:\/\/github.com\/Geomol\/World\" target=\"_blank\">here<\/a>.<\/p>\n<p>From the changelog:<br \/>\nchangelog:<\/p>\n<p>19-Mar-2016<br \/>\n&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>&#8211; Added support for calling functions with refinements within contexts (path compiling)<br \/>\n&#8211; Added support for values of type struct! to POKE of vectors of pointers<br \/>\n&#8211; Added support for TO integer! <handle><br \/>\n&#8211; Added support for TO handle! <vector><br \/>\n&#8211; Added support for parsing sub-blocks of type any-block! using INTO keyword in PARSE rules<br \/>\n&#8211; Changed naming of functions AND&#8217;\/OR&#8217;\/XOR&#8217; to AND?\/OR?\/XOR? in %cortex.w<br \/>\n&#8211; Changed TO string! NONE to return empty string &#8220;&#8221;<br \/>\n&#8211; Changed SEND to treat values of type paren! and any-path! as single values<br \/>\n&#8211; Changed SEND to return the MESSAGE argument<br \/>\n&#8211; Changed SEND to give error, if MESSAGE argument is of type none!<br \/>\n&#8211; Fixed bug in SEND \/ RECEIVE regarding typecheck and memory handling<br \/>\n&#8211; Changed TO binary! of a value of type tuple!<br \/>\n&#8211; Changed tab-completion at prompt for paths to end on &#8220;\/&#8221;<br \/>\n&#8211; Changed tab-completion back to use FIND instead of FIND\/CASE (Let&#8217;s see, how it goes.)<br \/>\n&#8211; Added support for any-word! as CONTEXT argument to BIND (had word! before)<br \/>\n&#8211; Reimplemented REDUCE to support multitasking when reducing blocks<br \/>\n&#8211; Fixed bug related to context creation and block binding<br \/>\n&#8211; Fixed bug related to creation of new (local) variables in tasks<br \/>\n\t(They will be local, even if same variable wasn&#8217;t found in main task.)<br \/>\n&#8211; Fixed bug related to TRY and compiling<br \/>\n&#8211; Fixed bug related to EXIT in scripts outside any function,<br \/>\n\twhen scripts are executed with DO from within a function<br \/>\n&#8211; Fixed bug when calling routing with NONE argument for pointers (treated as NULL)<br \/>\n&#8211; Fixed bug with FIND&#8217; <string> <bitset>, where string wasn&#8217;t updated<br \/>\n&#8211; Added new mezzanine HOLD (somehow similar to ALSO in Rebol)<br \/>\n&#8211; Added more tests<\/p>\n<p>Changes related to networking:<\/p>\n<p>&#8211; Changed OPEN from a native to a mezzanine in %cortex.w<br \/>\n&#8211; Added native OPEN-PORT<br \/>\n&#8211; Removed TCP and LISTEN port types from AGGREGATE argument for PICK<br \/>\n&#8211; Removed TCP port type from VALUE argument for COPY<br \/>\n&#8211; Added TCP and LISTEN port types to SOURCE argument for READ<br \/>\n&#8211; Added \/PART refinement to READ (to be used with socket ports)<br \/>\n&#8211; Added \/LINES refinement to READ (to be used with socket ports)<br \/>\n&#8211; Added \/LINES refinement to LENGTH? (to be used with socket ports)<br \/>\n&#8211; Removed port! from SERIES argument for INSERT<br \/>\n&#8211; Added port! to DESTINATION argument for WRITE<br \/>\n&#8211; Added \/PART refinement to WRITE (to be used with socket ports)<br \/>\n&#8211; Changed system\/schemes\/socket to system\/schemes\/tcp<br \/>\n&#8211; Moved system\/schemes definitions from internal to %cortex.w<br \/>\n&#8211; Changed system\/schemes from a context! to a map! datatype<br \/>\n&#8211; Added scheme actors for MAKE port! <url> and READ <url><br \/>\n&#8211; Added simple HTTP read actor (very basic functionalty)<\/p>\n<p>&#8211; Other minor additions, changes, and bug fixes<\/p>\n<p>A new port added in this release for 64-bit Windows. Is it build with MinGW-64-bit and MSYS2.<\/p>\n<p>About all 64-bit versions (Mac OS X, Linux64 and Win64):<br \/>\nWorld was first developed as 32-bit, and I moved to 64-bit development years ago.<br \/>\nBut as this is still alpha release, and I focus on implementing all the functions and getting the whole thing stable,<br \/>\nsome datatypes don&#8217;t utilize 64-bit adressing completely. This will be addressed in future releases.<\/p>\n<p>As John says about his use of World:<br \/>\n&#8220;I am using world myself every day now. At university I use world to read scientific data,<br \/>\nplot graphs exporting as PDF, and do calculations.<br \/>\nI am also using world in a new project including SDL, OpenGL, GLSL, and audio.<\/p>\n<p>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.<\/p>\n<p>If you see any problems, let me know.&#8221;<\/p>\n<p>John thank you for all this news and please keep up all the good work!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A view on the world programming language as a new release has seen light. <a href=\"https:\/\/arnoldvanhofwegen.com\/blog\/world-programming-language-a-new-release\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"gallery","meta":{"footnotes":""},"categories":[5],"tags":[29],"_links":{"self":[{"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/posts\/211"}],"collection":[{"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/comments?post=211"}],"version-history":[{"count":2,"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/posts\/211\/revisions"}],"predecessor-version":[{"id":214,"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/posts\/211\/revisions\/214"}],"wp:attachment":[{"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/media?parent=211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/categories?post=211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arnoldvanhofwegen.com\/blog\/wp-json\/wp\/v2\/tags?post=211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}