Prothon is pleased to announce another major release of the language, version 0.1.2, build 710 at http://prothon.org.
This release adds many new features and demonstrates the level of maturity that Prothon has reached. The next release after this one in approximately a month will be the first release to incorporate the final set of frozen Prothon 1.0 language features and will be the Alpha release. You can see the set of features still under discussion for 1.0 at the new Prothon WIKI at: http://prothon.org/wiki.
This list is not only long but the changes are mostly major features.
Changes in version 0.1.2....
- print is now a function, not a keyword - function-as-command feature allows print to be used without parens - Added prop keyword and properties feature with wildcards - Changed del_ to final_ so properties could use get_, set_, & del_ - a += b type assignments now always do a = a + b - New in-place modify operators a +! b, a -! b, a *! b, etc. - Formal parameter default values now evaluated at call time - String now stored with native 24-bit ordinal values - Split String type into seperate String and Bytes (binary) types - Split File into File and TextFile - Replaced String % operator with String.fmt() - Added cmp_ and eq_? for strings of length 1 and Ints - Added object-oriented Directory object and methods - Added TempDir and TempFile (deleted at shutdown) - Added basic DateTime object - Added WeakRef object with callback feature on obj modification - Added Slice object - getItem_, setItem_, and delItem_ now allow any object indexing - Finalization now called on shutdown - Added built-in range() generator (not list function) - Added List(iter_) constructor - Octal constant format changed from 0377 to 0o377 - Octal esc sequence changed from \0377 to \o377 - except keyword no longer allowed alone, must use "except Exception" - except syntax changed from "except exc, var" to "except exc as var" - Function formal params now introspectable via simple attribute - *args param local variable in func is now a tuple, not a list - Added immutable check to dictionary function key parameter - Added Dict.len_ and Dict.bool_? - Moved File from extension module to built-in - Changed File.stdxxx to sys.stdIn, sys.stdOut, and sys.stdErr - changed Len, Cmp, len, cmp, chr, ord to len, cmp, len_, cmp_, chr_, ord_ - changed Sys to sys, changed sys.ps1, sys.ps2 to sys.cons.ps1, sys.cons.ps2 - Changed SQLite to sqlite, OS to os, Re to re - Change symbol prefix from backtick (`var) to dollar-sign ($var) - Changed console prompt from >>> to O>> - Added many new *.pr test files - Fixed raise keyword so second arg is doc_ attribute of first - Fixed crash on printing recursive containers, now prints ... - Fixed assignment from sequences to arg lists and for statements - Fixed import in console - Fixed bug in Func constructor - Fixed bug in string.rstrip, string.strip, and string.find
Prothon is an interpreted dynamic language that takes much from Python but is not compatible with Python as it uses the simpler prototypes instead of classes. Prothon is an industrial strength language that uses native OS threads and 64-bit architecture. For a description of Prothon see the tutorial at http://prothon.org/wiki?pagename=TutorialHomePage.
Mark Hahn email: mark at prothon.org