Wiki improvements

Forum for discussion about the documentation project.
Post Reply
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

SARG wrote: Nov 06, 2022 19:08 I send you an invit.
I have already tested it, but I do not like !
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

fxm wrote: Aug 22, 2018 12:51
fxm wrote:Other subject: A potential new article #17 ?

About:
  • How to use implicit / overload New([]) and Delete([]) operators in a polymorphic context
    (viewtopic.php?t=25286)
I already wrote a thread around that topic and I highlighted the cases of bad functioning when calling the Delete([]) operator in a subtype polymorphic context. I also wrote a bug report and a small note in documentation about that, proposing also a workaround.

Perhaps I could develop all this in an article, adding in a first part the normal and successful use of these operators in less complex cases (simpler UDT):
  • 17. How to Use Implicit / Overload New([]) and Delete([]) FB Operators with Simple UDT up to Subtype Polymorphism
    • implicit New ... implicit Delete,
    • Implicit New[] ... implicit Delete[],
    • placement New ... Destructor call on member,
    • overload New ... overload Delete,
    • overload New[] ... overload Delete[].
Maybe this article is a bit too technical (especially in its second part) to interest a significant number of people.
For my own person, the only interest I see there is to reorder on paper (and therefore in my mind) all the information that I have accumulated by doing lots of tests in this area (from the simplest configurations to the most complex).

@Jeff,

Now that there is a 'Technical Articles' section in the Programmer's Guide, perhaps such an article ('How to Use Implicit / Overload New([]) and Delete([]) Operators with Simple UDT up to Subtype Polymorphism') could now fit in there, and avoid burying in the depths of the forum information about such not working features, but also with the possible workarounds ?
(I just moved the How to use implicit / overload New([]) and Delete([]) operators in a polymorphic context thread from General to Documentation forum anyway)
coderJeff
Site Admin
Posts: 4082
Joined: Nov 04, 2005 14:23
Location: Ontario, Canada
Contact:

Re: Wiki improvements

Post by coderJeff »

fxm wrote: Nov 28, 2022 13:42 @Jeff,

Now that there is a 'Technical Articles' section in the Programmer's Guide, perhaps such an article ('How to Use Implicit / Overload New([]) and Delete([]) Operators with Simple UDT up to Subtype Polymorphism') could now fit in there, and avoid burying in the depths of the forum information about such not working features, but also with the possible workarounds ?
Just reading through that article on the forum and it contains a lot of good information. Sounds good to me to add to the technical articles.
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

coderJeff wrote: Nov 28, 2022 15:52 Just reading through that article on the forum and it contains a lot of good information. Sounds good to me to add to the technical articles.
Agreed, but it will not be immediate because all this information would deserve to be reorganized and reformulated (from the simplest to the most complex) in order to be more easily accessible by less advanced users.
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

Now that there are since mid 2019 (compared to mid 2018, date of these threads) two articles added to the Programmer's Guide, in the 'User Defined Types' section:
- New and Delete
- Inheritance Polymorphism
I think that the new article 'Use Implicit / Overload New([]) and Delete([]) Operators with Inheritance Polymorphism' to be created in the 'Technical Articles' section of the Programmer's Guide must be mostly focused on the array-version of the New and Delete operators versus inheritance polymorphism.
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

This documentation page is now available (in first full version) in the Programmer's Guide (Technical Articles):
Use Implicit / Overload New([]) and Delete([]) Operators with Inheritance Polymorphism
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

fxm wrote: Dec 01, 2022 8:04 This documentation page is now available (in first full version) in the Programmer's Guide (Technical Articles):
Use Implicit / Overload New([]) and Delete([]) Operators with Inheritance Polymorphism

@SARG,

Thank you for your daily build of documentation.
So I was able to quickly finalize my last article above, while checking its formatting for a '.chm' file.
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

I have updated the documentation according to the latest commits of Dec 5 ("add fastcall calling convention" for one), ahead of the availability of a corresponding fbc build:
- KeyPgFastcall → fxm [new page 'Fastcall']
- CompilerOptz → fxm [added link to 'Fastcall' page]
- CatPgProcedures → fxm [added link to 'Fastcall' page]
- CatPgFunctIndex → fxm [added link to 'Fastcall' page]
- CatPgFullIndex → fxm [added link to 'Fastcall' page]
- PrintToc → fxm [added link to 'Fastcall' page]
- KeyPgThiscall → fxm [added link to 'Fastcall' page]
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

fxm wrote: Dec 01, 2022 8:04 This documentation page is now available (in first full version) in the Programmer's Guide (Technical Articles):
Use Implicit / Overload New([]) and Delete([]) Operators with Inheritance Polymorphism

Update:
- ProPgUseNewDelete → fxm [added 'Use Placement New([]) operator with inheritance polymorphism (sub-type polymorphism)' paragraphs]
- ProPgUseNewDelete → fxm [added warning when using the virtual operator '[]' in a context of inheritance polymorphism (sub-type polymorphism)]
Kwabbernoot
Posts: 79
Joined: Apr 19, 2010 18:23
Location: NL

Re: Wiki improvements

Post by Kwabbernoot »

FileSetEof and FileFlush is missing in the File I/O Functions.
Can it be added?
https://www.freebasic.net/wiki/CatPgFile
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

These 2 keywords were rather added to the page of another catalog 'Operating System Functions', with other similar ones like 'FILEATTR', 'FILECOPY', 'FILEDATETIME', 'FILEEXISTS', 'FILELEN'.
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

changelog.txt (Version 1.10.0):
- add '-z no-retinflts' command line option for code generation. This option disables returning some structures (types) in floating point registers. This is a work-around for different handling of structs returned by value on different tool chains / targets.

- CompilerOptz → fxm [added compiler option 'no-retinflts']
SARG
Posts: 1599
Joined: May 27, 2005 7:15
Location: FRANCE

Re: Wiki improvements

Post by SARG »

@fxm
As usually building the chm file there are some warnings.

HHC3004: Warning: ProPgMtCriticalSectionsFAQ.html : The HTML tag "==" is not a valid HTML tag (it does not begin with an alphanumeric character).
HHC3004: Warning: ProPgMtCriticalSectionsFAQ.html : The HTML tag "==" is not a valid HTML tag (it does not begin with an alphanumeric character).

This time I looked at them more precisely and one of the problem comes from ' <==> ' used twice in ProPgMtCriticalSections.html
' Thread#0 XOR + <==> Thread#1

EDITED

ProPgConstantExpressions
HHC3004: Warning: ProPgConstantExpressions.html : The HTML tag "=, " is not a valid HTML tag (it does not begin with an alphanumeric character).
HHC3004: Warning: ProPgConstantExpressions.html : The HTML tag ", " is not a valid HTML tag (it does not begin with an alphanumeric character).

this line : '=, <>, <=, >=, <, >'

Bit, BitReset, BitSet, HiByte, HiWord, LoByte, LoWord
+, -, *, /, \, ^, Mod, Shl, Shr
=, <>, <=, >=, <, >


TutUsingLibs
The HTML tag "= FMOD_VERSION THENErrorQuit "FMOD version " + ST..." is not a valid HTML tag (it does not begin with an

this line : 'IF FSOUND_GetVersion <= FMOD_VERSION THEN'


There are other notes but harder to say exactly where they are. However it seems always related when '<' or '>' are used.

Code: Select all

HHC1000: Note: DevSelectCase.html : An empty HTML tag has been used.
HHC1000: Note: DevSelectCase.html : An empty HTML tag has been used.
HHC1000: Note: DevSelectCase.html : An empty HTML tag has been used.
HHC1000: Note: DevSelectCase.html : An empty HTML tag has been used.
HHC1000: Note: DevSelectCase.html : An empty HTML tag has been used.

HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtConditionalVariables.html : An empty HTML tag has been used.

HHC1000: Note: ProPgMtCriticalSections.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtCriticalSections.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtCriticalSections.html : An empty HTML tag has been used.

HHC1000: Note: ProPgMtCriticalSectionsFAQ.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtCriticalSectionsFAQ.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtCriticalSectionsFAQ.html : An empty HTML tag has been used.
HHC1000: Note: ProPgMtCriticalSectionsFAQ.html : An empty HTML tag has been used.

HHC1000: Note: ProPgConstantExpressions.html : An empty HTML tag has been used.

HHC1000: Note: ProPgObjectRtti.html : An empty HTML tag has been used.
HHC1000: Note: ProPgObjectRtti.html : An empty HTML tag has been used.
fxm
Moderator
Posts: 11561
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: Wiki improvements

Post by fxm »

Thanks SARG.

For these HTML warnings, I do not see what I can do about it?

On the other hand, I notice that only the 64-bit fbc.exe was built this time. Is there a reason?
SARG
Posts: 1599
Joined: May 27, 2005 7:15
Location: FRANCE

Re: Wiki improvements

Post by SARG »

fxm wrote: Jan 27, 2023 12:50 For these HTML warnings, I do not see what I can do about it
Me too :D
As I don't how you create the pages I can't say if there is a way. Maybe a special tag exists disabling the normal tags.
fxm wrote: Jan 27, 2023 12:50 On the other hand, I notice that only the 64-bit fbc.exe was built this time. Is there a reason?
No real reason. Fixed right now.
Post Reply