Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
Am 17.07.2015 um 11:53 schrieb Sven Barth: > > Modes are per-unit anyway. So even if the Generics.Collection would only in > this proposed mode you > would still be able to use it in other modes (at least if generics are > supported, e.g. for ISO In ISO mode the uses keyword is turned off, so you even cannot use units :) ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
In our previous episode, Maciej Izak said: > > Anyway during working on compiler if some language elements "oxygene > flavored" are not so complex and can be added "ad hoc", IMO they should be > added. I think you'll find the need for ARC or GC on every feature you implement. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
Am Friday 17 July 2015 21:23:58 schrieb Maciej Izak: litle OT: >. When Barry Kelly left company, AFAIK somewhere after XE2 times > they hired NEW compiler team in Romania to cut costs... Rudi and Nick are still active in the Newsgroups there so no hope is lost ;) They will tell us all the time that Delphi is the greatest tool on earth. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
2015-07-17 9:00 GMT+02:00 Maciej Izak : > New modern Pascal dialect is subject of this topic. > Btw. More 2009-XE2 compatibility level is minimum (best times for Delphi language when Barry Kelly was on the Embarcadero board). This is start point, and solid base to introducing new important improvements (with small exception for example for TValue from RTTI module - to perform best performance on all platforms without hacks I need to finish small MODESWITCH). Without this compatibility level I am not able to do many syntax related to new mode. That is why I am working on Generics.* and RTTI.pas and some low level patches for RTL/compiler. Anyway during working on compiler if some language elements "oxygene flavored" are not so complex and can be added "ad hoc", IMO they should be added. Providing compatible syntax with Delphi for versions later than XE2 is worst thing that we can do ever (especially compatibility with NEXTGEN crap compiler). When Barry Kelly left company, AFAIK somewhere after XE2 times they hired NEW compiler team in Romania to cut costs... Best regards Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, Jul 17, 2015 at 2:03 PM, Maciej Izak wrote: > 2015-07-17 17:44 GMT+02:00 Paul van Helden > > The world is looking for a new language. That is why we recently got > Google's Go and Apple's Swift. I believe a modern and clean dialect of > Object Pascal has a "leg-up" on both of these. > I'm newbie in pascal language, but I know for sure, that Open Source community driven by "technical" ideas shouldn't copy commercial moves. The fact that Google introduced Go and Apple introduced Swift, doesn't mean that Java or Objective-C are bad/outdated languages/frameworks. Also the fact that Google and Apple were able to inspire some interest to the new languages, adding some extra money to promoting them. Yet, it doesn't mean that FPC would be able to do the same. thanks, Dmitry ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, Jul 17, 2015 at 1:53 PM, Maciej Izak wrote: > Proposed mode is not proposed as default pascal mode. You are safe :P. You > will be able to using classic pascal forever. So what is the problem? > Is it better to spend compiler-development time to such staff as improving compiler speed, generating faster code , better debugging info generation, rather than adding more syntax features? thanks, Dmitry ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
2015-07-17 17:44 GMT+02:00 Paul van Helden > > Veteran Pascal programmer here... > > I haven't really started using it yet, but I read through the whole > Oxygene documentation the other day. (Didn't take long ;-) ) > > The Oxygene dialect is absolutely beautiful in my opinion. Lots of things > in there that I've been wanting for decades and many stupid things dropped > completely. > Nice to hear that. You are probably unique "Veteran Pascal programmer" ;) I agree with the OP that the Delphi language had become uglier and uglier. > I want a programming language that looks good when I write it. This is why > I am still using Object Pascal and not Java or C#. If FPC's only goal is > Delphi compatibility, then perhaps I won't be on this list anymore some > years from now. > > The world is looking for a new language. That is why we recently got > Google's Go and Apple's Swift. I believe a modern and clean dialect of > Object Pascal has a "leg-up" on both of these. > The Truly Truest Truth :) , especially part about Delphi Best regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
2015-07-17 19:32 GMT+02:00 Dmitry Boyarintsev : > What's the point of waiting FPC update then? > Isn't it better just to stop using FPC, convert the source code to Oxygen > and use Oxygene instead? > > When all new syntax features are added to default pascal mode, I'll have > to patch the compiler introducing {$mode retro} :) > Proposed mode is not proposed as default pascal mode. You are safe :P. You will be able to using classic pascal forever. So what is the problem? Best Regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, Jul 17, 2015 at 11:44 AM, Paul van Helden wrote: > The Oxygene dialect is absolutely beautiful in my opinion. Lots of things > in there that I've been wanting for decades and many stupid things dropped > completely. Silly example: var declarations when you need them like C. > > So will FPC "embrace the future"? Or is the project only geared toward > "veteran pascal programmers" that don't share my vision? > What's the point of waiting FPC update then? Isn't it better just to stop using FPC, convert the source code to Oxygen and use Oxygene instead? When all new syntax features are added to default pascal mode, I'll have to patch the compiler introducing {$mode retro} :) Wider variety of libraries is the solution to the language popularity. The better libraries api is the solution to "syntax limitation" problem. thanks, Dmitry ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
Am 17.07.2015 um 09:36 schrieb Michael Van Canneyt: On Fri, 17 Jul 2015, Maciej Izak wrote: 2015-07-17 9:10 GMT+02:00 Michael Van Canneyt: I think you better choose some more neutral name: GenPas or so. IMO GenPas is good name. I have my moments of inspiration ;) You are free to do so, no-one will stop you. Your work will surely be integrated. But I advise against it: The Pascal community is splintered as it is: FPC, Delphi, Oxygene. Creating another dialect will not help, because your code will only be usable in that dialect. I don't want to introduce too many new syntax elements, only best possible combination of existing dialects elements. In the new dialect we can clean up few things. The main ideas of new dialect -> less is more and KISS. Many, if not most, language constructs in the compiler are enabled/disabled through some modeswitch: {$MODESWITCH XYZ} I think that the best that can be done is make sure all dialect elements can be enabled/disabled using a modeswitch. The {$MODE XYZ} directive then just needs to set a pre-defined set of modeswitches. IMHO It will save you work if you go about it this way... Michael. Since some work is already done in this direktion and since somone, who likes another flavor better, is able to also benifit from such changes I would rekommend to work in that direction. Greets Steve ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, Jul 17, 2015 at 4:09 PM, silvioprog wrote: > > I don't know if a new dialect would be widely accepted by all developers > (specially veteran pascal programmers), but if it could become things more > practical and more productive, I would be in favor of just "{$ mode > ObjPas}". =) > > Veteran Pascal programmer here... I haven't really started using it yet, but I read through the whole Oxygene documentation the other day. (Didn't take long ;-) ) The Oxygene dialect is absolutely beautiful in my opinion. Lots of things in there that I've been wanting for decades and many stupid things dropped completely. Silly example: var declarations when you need them like C. Practical example: parallel programming built into the language as opposed to Delphi XE7/8's really ugly solutions with their "parallel library". (I can go on with examples with the OP's permission). I agree with the OP that the Delphi language had become uglier and uglier. I want a programming language that looks good when I write it. This is why I am still using Object Pascal and not Java or C#. If FPC's only goal is Delphi compatibility, then perhaps I won't be on this list anymore some years from now. The world is looking for a new language. That is why we recently got Google's Go and Apple's Swift. I believe a modern and clean dialect of Object Pascal has a "leg-up" on both of these. Now, this is related but OT: CPU-native compilation is becoming outdated just like Assembly programming did. I always used to _hate_ .NET and Java, but using a platform's own stack must surely be the future. Example: Delphi XE8 cannot produce a binary for Android on Intel Atom. With Java you would never have encountered this problem. (There are a lot of tablets currently being produced with Atom processors). So will FPC "embrace the future"? Or is the project only geared toward "veteran pascal programmers" that don't share my vision? Best regards, Paul van Helden. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, Jul 17, 2015 at 4:00 AM, Maciej Izak wrote: > New modern Pascal dialect is subject of this topic. > > Is any way to get branch for new pascal dialect and for > generics.collections improvements? For me ObjFPC is too much conservative > and Delphi after XE2 version, really sucks, so $MODE Delphi is not option. > > I think is good idea to discuss new dialect. I really like some elements > from ObjFPC, also from Delphi and from Oxygene (we can't implement pure > $MODE Oxygene but some ideas are good). To combine best of mentioned > dialects elements we need to create new $MODE. I call my new dialect > "Sparta" (yes it is related to freesparta.com) but I can change this > name. > > I have some concerns, that all my effort for new dialect even if I done > some work will be useless. > > If you wish, I can prepare some "manifest document" related to new > language dialect details. > > Let me know if there is no option for that initiative. > > Best Regards, > Maciej Izak > I don't know if a new dialect would be widely accepted by all developers (specially veteran pascal programmers), but if it could become things more practical and more productive, I would be in favor of just "{$ mode ObjPas}". =) -- Silvio Clécio My public projects - github.com/silvioprog ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
> > If delphi has a unit called "generics.collections" and then we introduce a > unit with the same name, it should have the same interface and > functionality (except where not possible due to cross-platform concerns > etc). > Same interface and functionality is priority of the library. But it's not that easy. It depends on many low level compiler details. In few cases fully compatibility is impossible. You can check how compatible it is: https://github.com/dathox/generics.collections/raw/master/GenericsCompatibilityMatrix.pdf > Extensions are possible, but they should be put in separate units so that > if Delphi extends its unit later in a different way, you can't get > conflicts. > That can be improved. Best regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
Maciej Izak wrote: 2015-07-17 15:03 GMT+02:00 Marco van de Voort: IMHO the whole point of generics.collections is that its usage is Delphi compatible. Not at all. Big part of interface is compatible. It's good designed. FPC Generics.Collections implementation is very different and extended. If delphi has a unit called "generics.collections" and then we introduce a unit with the same name, it should have the same interface and functionality (except where not possible due to cross-platform concerns etc). Extensions are possible, but they should be put in separate units so that if Delphi extends its unit later in a different way, you can't get conflicts. Jonas ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
2015-07-17 15:03 GMT+02:00 Marco van de Voort: > IMHO the whole point of generics.collections is that its usage is Delphi > compatible. Not at all. Big part of interface is compatible. It's good designed. FPC Generics.Collections implementation is very different and extended. Delphi "Generics.Collections" is inspired by C# namespace "System.Collections.Generic" and by "C5 Generic Collection Library" ( http://www.itu.dk/research/c5/ ). IMO it's like non formal standard/pattern of using of collections. best regards Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
In our previous episode, Maciej Izak said: > > Do you mean your Generics.Collections would compile only with the new mode? > > Sounds very bad to me. > > > > Using the Generics.Collections does not impose the use of {$MODE GenPas}. > > I am working on set of MODESWITCHs. As mentioned above in my previous e-mail > I mean more functional programming with less syntax. Evolution for better > usage of Generics.Collections (like smart pointers). IMHO the whole point of generics.collections is that its usage is Delphi compatible. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
2015-07-17 11:33 GMT+02:00 Juha Manninen: > Do you mean your Generics.Collections would compile only with the new mode? > Sounds very bad to me. > Using the Generics.Collections does not impose the use of {$MODE GenPas}. I am working on set of MODESWITCHs. As mentioned above in my previous e-mail I mean more functional programming with less syntax. Evolution for better usage of Generics.Collections (like smart pointers). Even smart pointers will be available in any other mode. In {$MODE GenPas} will be available additional syntax inspired by Oxygene dialect, dedicated for smart pointers: http://docs.elementscompiler.com/Platforms/Cocoa/StorageModifiers/ . best regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
@Michal, @Marco Right, I will start from set of MODESWITCHs. 2015-07-17 9:59 GMT+02:00 Marco van de Voort: > Modern is a very vague term, and more a matter of taste. But what does it actually prohibit ? Not agreeing with Delphi design choices is as old as Delphi itself. Subjective matter. Modern maybe is not proper definition. I mean more functional programming with less syntax. Evolution for better usage of Generics.Collections. IMO ObjFPC is more classic, Oxygene is modern, Delphi after XE2 is crap :) {$mode YAMPD} - Yet Another Modern Pascal Dialect ? > Not bad, but I really like {$MODE GenPas} proposed by Michael. Acronym from Generic Pascal ^^ sounds good. Eventually {$mode YAMMGPDWSP} - Yet Another More Modern Generic Pascal Dialect With Smart Pointers. best regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
Am 17.07.2015 11:33 schrieb "Juha Manninen" : > > On Fri, Jul 17, 2015 at 10:00 AM, Maciej Izak wrote: > > New modern Pascal dialect is subject of this topic. > > Do you mean your Generics.Collections would compile only with the new mode? > Sounds very bad to me. Modes are per-unit anyway. So even if the Generics.Collection would only in this proposed mode you would still be able to use it in other modes (at least if generics are supported, e.g. for ISO or Delphi7 they would need to be disabled (not yet possible) and thus you couldn't use those units of course). So I see no inherent problem with that. Regards, Sven ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, Jul 17, 2015 at 10:00 AM, Maciej Izak wrote: > New modern Pascal dialect is subject of this topic. Do you mean your Generics.Collections would compile only with the new mode? Sounds very bad to me. Juha ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
In our previous episode, Maciej Izak said: > New modern Pascal dialect is subject of this topic. Modern is a very vague term, and more a matter of taste. > Is any way to get branch for new pascal dialect and for > generics.collections improvements? For me ObjFPC is too much conservative > and Delphi after XE2 version, really sucks, so $MODE Delphi is not option. But what does it actually prohibit ? Not agreeing with Delphi design choices is as old as Delphi itself. > I think is good idea to discuss new dialect. I really like some elements > from ObjFPC, also from Delphi and from Oxygene (we can't implement pure > $MODE Oxygene but some ideas are good). To combine best of mentioned > dialects elements we need to create new $MODE. I call my new dialect > "Sparta" (yes it is related to freesparta.com) but I can change this name. {$mode YAMPD} - Yet Another Modern Pascal Dialect ? > I have some concerns, that all my effort for new dialect even if I done > some work will be useless. I would focus more on the feature themselves, and worry about grouping them into dialects later. There are escapes using {$modeswitch } anyway, and making your changes compatible with multiple modes should take precedence about creating a new dialect mode. ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On 07/17/2015 09:00 AM, Maciej Izak wrote: I think is good idea to discuss new dialect. The Code-aware String implementation could be much better than as well in Delphi as in fpc, but this only makes sense when the TStrings type (and it's descendents) and the interface to many libraries are done appropriately to that paradigm (and hence rather differently than right now). Nonetheless the user could would (in close to all instances) not need to be modified, nor would the performance be degraded in a noticeable amount. You might want to read details here: http://wiki.freepascal.org/not_Delphi_compatible_enhancement_for_Unicode_Support -Michael ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, 17 Jul 2015, Maciej Izak wrote: 2015-07-17 9:10 GMT+02:00 Michael Van Canneyt: I think you better choose some more neutral name: GenPas or so. IMO GenPas is good name. I have my moments of inspiration ;) You are free to do so, no-one will stop you. Your work will surely be integrated. But I advise against it: The Pascal community is splintered as it is: FPC, Delphi, Oxygene. Creating another dialect will not help, because your code will only be usable in that dialect. I don't want to introduce too many new syntax elements, only best possible combination of existing dialects elements. In the new dialect we can clean up few things. The main ideas of new dialect -> less is more and KISS. Many, if not most, language constructs in the compiler are enabled/disabled through some modeswitch: {$MODESWITCH XYZ} I think that the best that can be done is make sure all dialect elements can be enabled/disabled using a modeswitch. The {$MODE XYZ} directive then just needs to set a pre-defined set of modeswitches. IMHO It will save you work if you go about it this way... Michael.___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
2015-07-17 9:10 GMT+02:00 Michael Van Canneyt: > > I think you better choose some more neutral name: GenPas or so. > IMO GenPas is good name. > You are free to do so, no-one will stop you. Your work will surely be > integrated. > > But I advise against it: The Pascal community is splintered as it is: FPC, > Delphi, Oxygene. Creating another dialect will not help, because your code > will only be usable in that dialect. > I don't want to introduce too many new syntax elements, only best possible combination of existing dialects elements. In the new dialect we can clean up few things. The main ideas of new dialect -> less is more and KISS. > Listening to all these arguments, I cannot help but think: > Poor C devs. They are really backwards. One wonders how the Linux kernel > and Windows OS got where they are today. We have different opinions but thanks that, we can achieve good result. :) best regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Re: [fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
On Fri, 17 Jul 2015, Maciej Izak wrote: New modern Pascal dialect is subject of this topic. Is any way to get branch for new pascal dialect and for generics.collections improvements? For me ObjFPC is too much conservative and Delphi after XE2 version, really sucks, so $MODE Delphi is not option. I think is good idea to discuss new dialect. I really like some elements from ObjFPC, also from Delphi and from Oxygene (we can't implement pure $MODE Oxygene but some ideas are good). To combine best of mentioned dialects elements we need to create new $MODE. I call my new dialect "Sparta" (yes it is related to freesparta.com) but I can change this name. I think you better choose some more neutral name: GenPas or so. I have some concerns, that all my effort for new dialect even if I done some work will be useless. If you wish, I can prepare some "manifest document" related to new language dialect details. Let me know if there is no option for that initiative. You are free to do so, no-one will stop you. Your work will surely be integrated. But I advise against it: The Pascal community is splintered as it is: FPC, Delphi, Oxygene. Creating another dialect will not help, because your code will only be usable in that dialect. We could rather use the help to improve the Delphi mode, to make sure it is on par with Delphi. IMHO Adding more language features is not going to save pascal. Adding more libraries will be of more help. Listening to all these arguments, I cannot help but think: Poor C devs. They are really backwards. One wonders how the Linux kernel and Windows OS got where they are today. Michael.___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
[fpc-devel] New FPC language/dialect MODE, Generics.Collections and new branch
New modern Pascal dialect is subject of this topic. Is any way to get branch for new pascal dialect and for generics.collections improvements? For me ObjFPC is too much conservative and Delphi after XE2 version, really sucks, so $MODE Delphi is not option. I think is good idea to discuss new dialect. I really like some elements from ObjFPC, also from Delphi and from Oxygene (we can't implement pure $MODE Oxygene but some ideas are good). To combine best of mentioned dialects elements we need to create new $MODE. I call my new dialect "Sparta" (yes it is related to freesparta.com) but I can change this name. I have some concerns, that all my effort for new dialect even if I done some work will be useless. If you wish, I can prepare some "manifest document" related to new language dialect details. Let me know if there is no option for that initiative. Best Regards, Maciej Izak ___ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel