[Gambas-user] Release of gambas2 1.9.11
Thomas Hawkins
cornmaster at ...626...
Wed Jul 6 20:14:32 CEST 2005
Sounds good. :)
By any chance is the installer working in Fedora Core 4 (GCC4) without all
the workarounds? I still have not got Gambas working yet....and I'm dying to
give it a try. :)
Thanks
On 7/6/05, Benoit Minisini <gambas at ...1...> wrote:
>
> Hi,
>
> Here is a big important release of the development version.
>
> Many new syntaxes and features were added to the compiler and the
> interpreter,
> the bytecode has changes, and so ALL PROJECTS MUST BE *ENTIRELY*
> RECOMPILED!
>
> I apologize for the inconvenience, but I think it's worth it :-)
>
> Here are the changes, with some explanations when needed:
>
> * You can instanciate objects at variable declaration with any expression
> now.
>
> Now you can type things like:
>
> DIM Matrix AS NEW Float[3, 3]
> PUBLIC MyObject AS NEW MyObject(GetParam(), Len(TheName))
> ...
>
> * Functions can take a variable number of arguments now.
>
> Just use three points at the end of the argument list:
>
> SUB MyPrintf(sFormat AS String, ...)
> ...
> END
>
> Use the Param class to access additional arguments (see below).
>
> * You can use the '_unknown' special method now.
>
> Declare it this way:
>
> PUBLIC FUNCTION _unknown(...) AS Variant
> ...
> END
>
> Use the Param class to get the name of the called method.
>
> *A new syntax 'IF ... AND IF ...'. The second test is not done if the
> first is
> false.
>
> You can type now:
>
> IF Test1 AND IF Test2 THEN ...
>
> The Test2 is never evaluated if Test1 is FALSE, contrary to 'IF Test1 AND
> Test2'
>
> You can use more than two AND IF of course.
>
> * A new syntax 'IF ... OR IF ...'. The second test is not done if the
> first is
> true.
>
> The same syntax than previously, but with OR.
>
> * A new syntax 'CASE ... TO ...', to test the match to an interval of
> values.
>
> You can type now:
>
> SELECT Value
> CASE 1 TO 10
> PRINT "1 TO 10"
> CASE 11 TO 20, 25
> PRINT "11 TO 20 or 25"
> END SELECT
>
> * New C-style assignment operators: +=, -=, *=, /=, \=, &=, &/=.
>
> Now you can type:
>
> i += 1 instead of i = i + 1
> And so on...
>
> * The DIRECT keyword has been removed. Now use 'OPEN ... FOR INPUT |
> OUTPUT'
> to open a file in buffered mode and 'OPEN ... FOR READ | WRITE' to open a
> file in direct mode.
>
> * The BIG and LITTLE keywords have been removed. Now use the new ByteOrder
> property of the Strem class.
>
> * A new syntax for EXEC or SHELL: 'EXEC|SHELL ... TO aString' executes the
> command, waits for its termination, and returns the process output to the
> specified string. The syntax defined in 1.9.10 has been removed.
>
> * WAIT is not implicite anymore in the EXEC or SHELL command.
>
> * Now ambiguous expressions are detected, and raise an error.
>
> * A new operator '==', to compare strings by ignoring their case.
> Interpreter
>
> PRINT "Gambas" == "gambas" returns TRUE
>
> * System.Home was definitely replaced by User.Home.
>
> * System.User was definitely replaced by User.Name <http://User.Name>.
>
> * The class ".Stream" has been renamed as "Stream".
>
> Be careful component developers! :-)
>
> * A new class, Param, to get extra arguments, and information about a call
> to
> the _unknown method.
>
> Param.Count returns the number of extra arguments.
> Param[i] returns the i-th argument as a variant.
> Param.Unknown returns the name of the unknown method.
>
> * A new property, Stream.ByteOrder, to set the byte order of a stream.
>
> Now, instead of using BIG or LITTLE with OPEN, you must write:
>
> hStream.ByteOrder = gb.LittleEndian / gb.BigEndian.
>
> Note that you can do that for any type of stream!
>
> * A new property, User.Id <http://User.Id>, returns the user id of the
> current process.
>
> * Application.Args is now enumerable.
>
> Now you can type:
>
> FOR EACH sArg in Application.Args
> ...
> NEXT
>
> * Formatting currency is possible now, by specifying gb.Currency (or
> gb.International to use the international currency symbol) as second
> argument
> of Format$().
>
> In France:
>
> PRINT Format$(10000.50, gb.Currency)
> 10 000,50 €
>
> PRINT Format$(10000.50, gb.International)
> 10 000,50 FRF
>
> In US: (tell me if I am wrong)
>
> PRINT Format$(10000.50, gb.Currency)
> $ 10,000.50
>
> PRINT Format$(10000.50, gb.International)
> USD 10,000.50
>
> * New mathematical functions: Exp2, Exp10, Log2, Cbr, Expm, Logm, Atan2,
> Ang,
> Hyp, Mag.
>
> Exp2(x) = 2 ^ x
> Exp10(x) = 10 ^ x
> Log2(x) = Log(x) / Log(2)
> Cbr(x) = x ^ (1/3)
> Expm(x) = Exp(x) - 1 with good precision when x -> 1
> Logp(x) = Log(x + 1) with good precision when x -> 0
>
> Atan2(x, y) = Atan(y / x)
> Ang(x, y) = Atan(x / y)
> Hyp(x, y) = Sqr(x^2 + y^2)
> Mag(x, y) = Hyp(x, y)
>
> * New conversion functions: DConv$(), for converting from system charset
> to
> desktop charset, and SConv$() for doing the contrary.
>
> * New date functions: DateAdd() and DateDiff(). They were backported from
> the
> vb component and the syntax was modified.
>
> DateAdd(Date AS Date, Period AS Integer, Interval AS Integer)
> adds to Date a specified number (Interval) of Period.
>
> Period can be:
>
> - gb.Second
> - gb.Minute
> - gb.Hour
> - gb.Day
> - gb.WeekDay
> - gb.Week
> - gb.Month
> - gb.Quarter
> - gb.Year
>
> DateDiff(Date1 AS Date, Date2 AS Date, Period AS Integer)
> returns the number of Period that leads from Date1 to Date2, Date2 being
> excluded.
>
> * A new function, RDir(), to read the contents of a directory recursively.
>
> It has the same syntax than Dir(). Try it!
>
> * A new storage class, List.
>
> Here is a little chart for comparing Array, List and Collection.
>
> Array Collection List
>
> Indexed by integer string integer
> Inserting can be slow (1) slow immediate
> Deleting can be slow (1) slow immediate
> Accessing immediate fast can be slow (2)
>
> (1) The array is shrinked or expanded as needed, every 16 insertion or
> deletion.
>
> (2) The list of elements must be traversed. Accessing the next or previous
> element is immediate.
>
> * Adding or substracting little integers is now optimized: about 5 times
> faster.
>
> * Calling functions with a fixed number of arguments, without needing to
> convert the arguments is optimized: about 4 times faster.
>
> * A new drawing method in the QT component, Draw.Zoom, for drawing a
> zoomed
> version of an Image.
>
> * A new video capture component named 'gb.v4l' made by Daniel Campos. It
> is
> based on Video4Linux.
>
> * The CGI Gambas program that manages the new documentation is distributed
> with the source so that people can translate it.
>
> That's all :-) Please read the changelog for a list of bug fixes and other
> changes.
>
> ENJOY IT!
>
> --
> Benoit Minisini
> mailto:gambas at ...1...
>
>
> -------------------------------------------------------
> SF.Net <http://SF.Net> email is sponsored by: Discover Easy Linux
> Migration Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&opclick
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20050706/01d7652e/attachment.html>
More information about the User
mailing list