[Lazarus] New compiler options page "Additions and Overrides"

Martin lazarus at mfriebe.de
Sat Jun 8 13:13:58 CEST 2013


On 08/06/2013 11:40, Mattias Gaertner wrote:
> On Sat, 08 Jun 2013 10:35:40 +0100
> Martin <lazarus at mfriebe.de> wrote:
>
>> [...]
>> In the light of this, maybe a few ideas.
>>
>> The new grid is indeed an advantaged page. A concept that already exists
>> for the editor-mouse-setings. A page normally hidden, by a page offering
>> a few pre-defined defaults.
> It seems you mix two concepts of advantaged page here.
> AFAIK the editor-mouse-settings is rarely used. It is not rocket
> science, but it is used so seldom, that you quickly forget how it
> worked and you have to learn it again on every use.
I was talking about the advanced mouse settings. They do require a lot 
of knowledge/understanding.
The normal one is easy...

> If a user uses the features of the 'Additions and Overrides', he will
> probably use it as often as the other compiler option pages. Very
> likely more often than the 'messages' and the 'verbosity' page.
> So it is more like 'class helpers' or enumerators. Some people
> avoid them, some use them often.

Yes the usage frequency is difference. Mouse options are set once and 
never again....
Build modes (or at least certain aspects of it), are changed every once 
in a while.

Many aspects of the new page will nt be used, but by a very small 
percentage of people. For those the usage frequency is equal to that of 
the (advanced) mouse opts.

> Michael's point was that casual/normal users do not want build modes at
> all.
I think differently:

A majority of users want an easy to use debug/release build mode. And it 
should be possible to set it up / edit it with very little effort.

Further:
With the problems that GDB causes on some systems, it is very important 
to be able to set all packages to the same debug type (and this may for 
some users be stabs, for others dwarf, and yet others it may be no debug 
info on packages.)

>> 3) Having pre defined buildmodes, there could be a simplified page, with
>> common options (like the mouse opts). Those would probably all be stored
>> in the lpi (the place I guess beginners would expect it, as all the
>> other options go there too). So there could be things (all acting o the
>> currunt B.M>, as do all other chek-boxes)) like:
>> - add/strip debug to/from ALL packages
>> - set optimization (0..3) to all packages
>> - define ( -dSYMBOL) for all packages
>> - set option for all packages
> If you mean adding all the compiler options pages in the
> environment options: -1
No I did not mean that.

I meant adding a simplified page in the project options, that allows to 
control a subset of the new functionality (very much like the mouse is a 
subset of the advanced mouse)

>> - modify out-dir for all packages (maybe this should be automated, using
>> the build mode name, or some unique id derived from it)
>>
>> Not sure, maybe, instead of "all packages" the user can select.
> Can? Must! Some packages need their fixed output directories.
Then this is not an option for the simplified page. Not something the 
less experienced user can decide.


>> like the mouse-opts, this would create the correct advanced settings.
>> (Though in the xml, it is stored as the 2pre defined setting)
>>
>> One thing this can do, is it can force setting on packages. This can not
>> be (easily) done with the other options.
> Forcing arbitrary options on packages is dangerous. The GUI should not
> invite to do such things. The new page allows this, but the comments
> in this long thread made me confident that normal users will think
> twice before using it.
> Dangerous options should be hard to set.
Ok. but that is a matter of selecting the correct subset, for the 
simplified package

"debug type info" should be an option that a user may force on any package.

"optimization level" most likely too.

"removal of -Criot / run time checks" (NOTE removal, NOT adding) should 
be save in most cases (to be honest, a package that requires it to be 
set would at least be suspicious... That is, it can probably be 
constructed, but as for real live...)






More information about the Lazarus mailing list