[Gambas-user] Structure support in Gambas 3

Fabien Bodard gambas.fr at ...626...
Thu May 27 12:33:11 CEST 2010


Le 27 mai 2010 00:51, Benoît Minisini <gambas at ...1...> a écrit :
> Hi,
>
> I have just committed a new big internal change for Gambas 3 in revision
> #2970: structure support.
>
> It is not 100% finished, must most of the useful parts are there. If that
> crashes your program - I will be amazed if it won't :-) - you know where to
> knock.
>
> How does it work?
>
> To define a structure, you must declare it inside a class or a module that
> way:
>
>        Public Struct <StructName>
>          <Var1> As <Type1>
>          <Var2> As <Type2>
>        End Struct
>
> A structure is always public (at the moment).
>
> A structure is a class, with only public members that are actually variables.
>
> You can embed a structure inside an object that way:
>
>        Private <ClassVariable> As Struct <StructName>
>
> Note the 'Struct' keyword inserted before <StructName>.
>
> An embedded structure is not an object on its own. Its data is allocated
> inside the object where it is declared. Like a "static array" (that should be
> named "embedded array" actually). Note that you cannot make an "embedded
> array" of static structures.
>
> You can embed a structure inside another structure (logical, as a structure is
> a class). That way, you can create russian dolls if you like. Here is a stupid
> example:
>
>        Public Struct Car
>                Model As String
>                Registration As String
>                MaxSpeed As Float
>        End Struct
>
>        Public Struct Person
>                Name As String
>                Age As Integer
>                BirthDate As Date
>                FirstCar As Struct Car
>                SecondCar As Struct Car
>        End Struct
>
> Passing structures to extern functions is not correctly supported at the
> moment, but it will.
>
> That revision has another change: objects that do not raise events do not
> allocate an internal event management structure for nothing anymore. That
> saves 4 pointers (16 bytes on a 32 bits system) on each object, but I'm not
> 100% sure I didn't do that misuse of memory ressources for nothing, so you may
> have a crash.
>
> Now Fabien has just gb.report to finish, and I we will be able to release an
> alpha version of Gambas 3. :-)
>
i need users test it to say me what are there needs..


> But don't panic, there are a dozen of little things to do yet before the final
> release... The main thing are the package manager (I want it to be sure that
> it works correctly for the release, and I will need help for that), and the
> ability to release incremental versions of Gambas (3.1, 3.2...) that won't be
> just bug fixes like in the 2.x versions.
>
> Enjoy it.
>
> --
> Benoît Minisini
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>




More information about the User mailing list