Prothon gets major facelift in Vers. 0.1, build 532

"Mark Hahn" <[email protected]> Sat, 22 May 2004 18:23:38 -0700
Newsgroups gmane.comp.lang.prothon.announce
Message-ID <007d01c44064$9515d600$0d01a8c0@MarkVaio>
The "Perl-like" symbols are gone.  The "self" keyword is back.

Locals and globals are gone and replaced by a simple scheme that allows you
to access any local or external variable from inside a block or function
scope by name.  You may also modify any existing variable outside of the
current scope by simply prepending "outer" to the variable name as in
"outer.x = 1".  You can even do this "outer access" when the variable is in
a function that has quit running,  giving you "closures" with no need for a
special syntax.

There is a new powerful self-binding method syntax that gives you the
ability to explicitly specify the "self" to bind to a function call with
"obj.func{self}(args)".  This allows the full power of message-passing to be
used without compromising the simplicity of function calling.

There is a new tutorial that covers Prothon completely without assuming any
knowledge of Python or any other language. The Python differences page now
has links to the relevant section of this tutorial.

Many other improvements have been added in the three weeks since the last
stable release.  See http://prothon.org.

Version 0.1.0 - Build 532 - 5/21/04 - Weekly Release
- Removed symbols and capitalized globals
- added self, outer, and caller prefixes
- changed local/global scopes to scope chain
- Added obj.func{self}(args) calling syntax
- Added obj.func{self} method binding
- Added object statement
- changed special _var_ format to var_
- Added many String methods
- Support uninitialized binary objects and init_ on binary objects
- Init_ can now return new object
- Added Symbol object support as `var
- Added %x to String.mod_()
- Added Dict.len() and Len(dict)
- Added Object.unbind()
- Added Object.objId()
- Added -d command line flag to enable debug dumps
- Changed first Main module to "Main" from "Main1", second is "Main1"
- Fixed param mismatch with () and (*args, **kwargs)
- Fixed Race in Thread Startup
- Fixed bug in Dict when expanding size
- Fixed bug in nested For loops