I have already tested it, but I do not like !
Wiki improvements
Re: Wiki improvements
fxm wrote: ↑Aug 22, 2018 12:51Maybe this article is a bit too technical (especially in its second part) to interest a significant number of people.fxm wrote:Other subject: A potential new article #17 ?
About: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.
- How to use implicit / overload New([]) and Delete([]) operators in a polymorphic context
(viewtopic.php?t=25286)
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[].
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)
Re: Wiki improvements
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 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 ?
Re: Wiki improvements
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.
Re: Wiki improvements
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.
- 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.
Re: Wiki improvements
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
Use Implicit / Overload New([]) and Delete([]) Operators with Inheritance Polymorphism
Re: Wiki improvements
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.
Re: Wiki improvements
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]
- 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]
Re: Wiki improvements
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)]
-
- Posts: 80
- Joined: Apr 19, 2010 18:23
- Location: NL
Re: Wiki improvements
FileSetEof and FileFlush is missing in the File I/O Functions.
Can it be added?
https://www.freebasic.net/wiki/CatPgFile
Can it be added?
https://www.freebasic.net/wiki/CatPgFile
Re: Wiki improvements
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'.
Re: Wiki improvements
changelog.txt (Version 1.10.0):
- CompilerOptz → fxm [added compiler option 'no-retinflts']
- 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']
Re: Wiki improvements
@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.
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.
Re: Wiki improvements
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?
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?
Re: Wiki improvements
Me too
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.
No real reason. Fixed right now.