Hi, I read this: http://www.freepascal.org/docs-html/ref/refse10.html "Support for assigning values to typed constants is controlled by the {$J} directive: it can be switched off, but is on by default (for Turbo Pascal compatibility). Initialized variables are always allowed." Then I read this: http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/compdirswriteabletypedconstants_xml.html "In early versions of Delphi and Object Pascal, typed constants were always writeable, corresponding to the {$J+} state. Old source code that uses writeable typed constants must be compiled in the {$J+} state, but for new applications it is recommended that you use initialized variables and compile your code in the {$J-} state." I think we should follow Delphi in this case. Typed constant should not be writeable by default. That's what a constant should be. The old behavior is a flaw. At least let {$J-} be the default for {$MODE DELPHI} and {$MODE OBJFPC}. What do you think?
–Mr Bee
Mailing lists / fpc-pascal / 2016-02
{$J} default setting for today
5 messages · 4 people ·
- JJonas Maebe 2
- BBart 1
- GGraeme Geldenhuys 1
- MMr Bee 1
Reply by email Subscribe to this list Your subscription
Read-only archive. Use j and k to move between messages.
Mr Bee wroteI think we should follow Delphi in this case. Typed constant should not be writeable by default. That's what a constant should be. The old behavior is a flaw. At least let {$J-} be the default for {$MODE DELPHI} and {$MODE OBJFPC}
Yes please, break a ton of existing projects.
Bart
Hi, I read this: http://www.freepascal.org/docs-html/ref/refse10.html "Support for…
Mr Bee wrote 6 lines
I think we should follow Delphi in this case. Typed constant should not
be writeable by default. That's what a constant should be. The old
behavior is a flaw. At least let {$J-} be the default for {$MODE DELPHI}
and {$MODE OBJFPC}.
What do you think?
It can maybe be changed for {$mode delphiunicode}
Jonas
Yes please, break a ton of existing projects. Bart
Bart wroteYes please, break a ton of existing projects.
Yes, then they can finally fix there code and use global variables instead.
If it was originally implemented for Turbo Pascal compatibility, why is it enabled for ObjFPC and Delphi modes?
Regards,
- Graeme -
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/
My public PGP key: http://tinyurl.com/graeme-pgp
Graeme Geldenhuys wroteIf it was originally implemented for Turbo Pascal compatibility, why is it enabled for ObjFPC and Delphi modes?
Because original Delphi versions also had {$j+} by default.
Jonas
