coderJeff wrote:If I can make a suggestion...
Add a section for "Platform Differences" to Identifier Rules and move all the warnings and notes there. Then link there from Sub/Function or where ever.
Now the real question is:
Can something be done for the compiler to emit intelligible error messages under such special configurations (due to the user's choice of symbols under certain circumstances), rather than experiencing errors from the assembler, or more obscure runtime errors or simply buggy results?
coder Jeff
I tried a while ago to build fbide from source.
One has to get the exact mingw and the exact dev-c++ and the exact wx widgets. (looks like)
I used the makefile provided with a different mingw (can't remember, 4xx something), I nearly got there.
I was going to do away with tolower() in the run.cpp (I think that was the file).
It was all on XP at the time.
I think fbide is still the most popular one (Could be wrong these days)
coderJeff wrote:I think there was also notes about local variables and goto labels for LT* named symbols. Also there was a forum post about 'KS' or something on linux that conflicted with a public symbol in ncurses or termcap (or something).
Do you have more information on this subject and/or links to the forum?
@fxm double thanks :
- report of incorrect adding in the list.
- update of documentation
fxm wrote:Can something be done for the compiler to emit intelligible error messages under such special configurations (due to the user's choice of symbols under certain circumstances), rather than experiencing errors from the assembler, or more obscure runtime errors or simply buggy results?
I agree especially for problems during the execution.
Because FreeBASIC supports online assembler (with several possible formats), it does not seem contradictory to me that it outputs error messages when there is a name conflict between assembler symbols (of the one used) and the user symbols in the Basic code part.
fxm wrote:Added __FB_OPTIMIZE__ intrinisic define:
- KeyPgDdfboptimize → fxm [new page '__FB_OPTIMIZE__']
- CatPgDddefines → fxm [added link to new page '__FB_OPTIMIZE__']
- CatPgFullIndex → fxm [added link to new page '__FB_OPTIMIZE__']
- CatPgFunctIndex → fxm [added link to new page '__FB_OPTIMIZE__']
- PrintToc → fxm [added link to new page '__FB_OPTIMIZE__']
Thank you fxm!
dodicat wrote:regarding the __FB_OPTIMIZE__ , I really thought that the request was for being able to set an optimisation level in the code and not necessarily the command line.
#lang "fb"
#optimize "-Wc O3"
Or something.
This would be nice for fbide users everywhere.
Nah that is what I was asking for. It also just makes sense from an consistency point of view. We have __FB_VECTORIZE__ and __FB_FPMODE__: we should have __FB_OPTIMIZE__ too. Although being able to set compiler flags from within a source file would be nice. I'm sure it would run into complications when compiling multi-file projects though.
dodicat wrote:coder Jeff
I tried a while ago to build fbide from source.
One has to get the exact mingw and the exact dev-c++ and the exact wx widgets. (looks like)
I used the makefile provided with a different mingw (can't remember, 4xx something), I nearly got there.
I was going to do away with tolower() in the run.cpp (I think that was the file).
It was all on XP at the time.
I think fbide is still the most popular one (Could be wrong these days)
For what it’s worth, I cleaned up the code a little, and got it to compile on Ubuntu 12.04 a few years ago: viewtopic.php?t=12380#p256528
fxm wrote:Now the real question is:
Can something be done for the compiler to emit intelligible error messages under such special configurations (due to the user's choice of symbols under certain circumstances), rather than experiencing errors from the assembler, or more obscure runtime errors or simply buggy results?
Seems simple enough. I will try starting with a reserved word list and an error message.
Note: By declaring a type (directly or indirectly) as Extends Zstring (in addition to defining a suitable Cast operator only), this promotes it fully compatible even with Strptr/Sadd, Lset/Rset, and Select Case, but currently not yet with the built in functions Val/Valint/Vallng/Valuint/Valunlg and Left/Right.
- KeyPgExtendsZstring → fxm [fully compatibility with string functions since fbc version 1.09]
- KeyPgExtendsWstring → fxm [fully compatibility with string functions since fbc version 1.09]
Thanks.
Done:
- KeyPgExtendsZstring → fxm [updated comment in second example about compatibility with 'Right()']
- CatPgPreProcess → fxm [corrected link to '$INCLUDE]