[fpc-pascal] Default properties first draft

Ben Grasset operator97 at gmail.com
Sat Oct 20 23:37:03 CEST 2018

AFAIK you need to submit a ".patch" file with your changes against the most
recent trunk revision to the bugtracker (with the category set to "patch",
obviously.) I doubt it'll get considered seriously or looked at at all
otherwise. For what it's worth, I did do a checkout of your branch and then
a merge to get everything fully up to date, and when I went to do a
full-tree build (compiler, RTL, everything) it raised a nonsensical error
in the FCL-XML package in the "dom-html.pp" file, complaining that a call
to GetItem for one of the list classes there didn't have enough parameters
(which is not true.)

That function was being read from through a property, so it seems like you
may possibly have broken something somewhere.

On Fri, Oct 19, 2018 at 12:01 PM Ryan Joseph <ryan at thealchemistguild.com>

> I finally finished what I think is first draft of default properties.
> Since it already took me so much time to just get the basics of the
> compiler figured out I thought I’d post this commit from GitHub and ask if
> I did anything seriously wrong or stupid. There are multiple ways I could
> approach this problem but I may have not achieved it a proper way
> considering the architecture of the compiler, which I admittedly don’t
> understand well.
> How should I present for consideration at this stage? If anyone on the
> compiler team can look at the commit to tell me anything that would be
> helpful, or let me know if you need this in some other form that you could
> actually compile (I understand the compiler uses svn but I only know git).
> I have some demos of the basics mostly working but I have
> questions/problems I wasn’t able to solve on my own.
> https://github.com/genericptr/freepascal/commit/e2992620e2e85d1100f60d13472571b8ebbf0bac
> Here’s an example test in case people forgot what this was about.
> ======================================================================
> program default_property_test_16;
> uses
>         fgl;
> type
> generic TAuto<T> = record
>     m_object: T;
>     property obj: T read m_object; default;
>     class operator Initialize(var a: TAuto);
>     class operator Finalize(var a: TAuto);
>   end;
> type
>   TObjectAuto = specialize TAuto<TObject>;
>   TStringList = specialize TFPGList<String>;
>   TStringListAuto = specialize TAuto<TStringList>;
> class operator TAuto.Initialize(var a: TAuto);
> begin
>   a.m_object := T.Create;
> end;
> class operator TAuto.Finalize(var a: TAuto);
> begin
>   a.m_object.Free;
> end;
> var
>         list: TStringListAuto;
>         str: string;
>         i: integer;
> begin
>         list.Add('foo');
>         list.Add('bar');
>         for str in list do
>                 writeln(str);
>         for i := 0 to list.count - 1 do
>                 writeln(list[i]);
> end.
> Regards,
>         Ryan Joseph
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20181020/7e65fc30/attachment.html>

More information about the fpc-pascal mailing list