Is FreeBasic still continued to develop?
Sure, compilation is way faster and takes lots less memory, so it may be useful to some users.
Also because we won't include gcc in Windows and DOS (too big package, IMO), so making it obligatory to users to first download and install MinGW and to configure it (set env. variable) would turn new users away from FB. In Linux and OS X (in future) that wouldn't be a problem though.
At the moment the test suite can't be even built using the gcc emitter, so there are a lot of things do to yet - and then we can try to get FB to rebuilt itself, what is never a simple task.
Also because we won't include gcc in Windows and DOS (too big package, IMO), so making it obligatory to users to first download and install MinGW and to configure it (set env. variable) would turn new users away from FB. In Linux and OS X (in future) that wouldn't be a problem though.
At the moment the test suite can't be even built using the gcc emitter, so there are a lot of things do to yet - and then we can try to get FB to rebuilt itself, what is never a simple task.
-
- Posts: 453
- Joined: Dec 24, 2005 2:32
- Location: WA - USA
- Contact:
[popeye]John Spikowski wrote:Victor,
Do you feel at this point in time that a Basic compiler that generates custom ASM code is a fatal effort moving forward? (like PowerBASIC)
Will Windows play a secondary role with FreeBASIC moving forward?
John
I've had all I can stands, I can't stands no more!
++spinach
COCK PUNCH!
[/popeye]
@John
Maybe I didn't understand you, but didn't v1ctor just answer your questions? He just said that ASM emission won't be removed, because it would be a barrier-to-entry for casual programmers on Windows.
If by 'Windows playing a secondary role' you mean 'Windows generally failing to be a place for serious crossplatform development' then I guess the answer is yes? :P IMHO, of course. Linux users would really not need to worry about gcc being installed.
lol@Dr_D, as usual ;p
Oh and, great work v1ctor. I think I have something in my eye.....
Maybe I didn't understand you, but didn't v1ctor just answer your questions? He just said that ASM emission won't be removed, because it would be a barrier-to-entry for casual programmers on Windows.
If by 'Windows playing a secondary role' you mean 'Windows generally failing to be a place for serious crossplatform development' then I guess the answer is yes? :P IMHO, of course. Linux users would really not need to worry about gcc being installed.
lol@Dr_D, as usual ;p
Oh and, great work v1ctor. I think I have something in my eye.....
-
- Posts: 453
- Joined: Dec 24, 2005 2:32
- Location: WA - USA
- Contact:
So the emitter will not generate any C code the FreeBASIC user can have access to in it's journey to it's binary executable format?Maybe I didn't understand you, but didn't v1ctor just answer your questions? He just said that ASM emission won't be removed, because it would be a barrier-to-entry for casual programmers on Windows.
What I meant by Windows taking a secondary role is that open source normally plants it's roots with an open source environment. I think Classic FB's original goal was to be a open source QuickBasic and PowerBASIC alternative. Linux wasn't even an option in those days.
Again, not sure what you mean here. If you mean "easily human-readable C code" then the answer will be 'no' for anything of moderate complexity. However, you can use the same compilation option to preserve the intermediate C code as you can use to preserve the intermediate ASM (-R now I believe; it changed since I was active)John Spikowski wrote:So the emitter will not generate any C code the FreeBASIC user can have access to in it's journey to it's binary executable format?
Well, Windows does have MinGW. The C emitter changes nothing for the casual user, but for someone willing to install MinGW for access to GCC optimizations (or cross-compilation, God help them...) they'll have that option as well.John Spikowski wrote:What I meant by Windows taking a secondary role is that open source normally plants it's roots with an open source environment. I think Classic FB's original goal was to be a open source QuickBasic and ProwerBASIC alternative. Linux wasn't even an option in those days.
Hi, Victor, nice to see you again at the command!
I have tried the SVN version with gcc 3.4.5 with some prime sieve using a bit array .To me it did a code marginally slower an bigger than the version using GAS, i think it's not an important result as I guess my version of gcc is not updated tuned and the version of FB in SVN is a test one.
What worried to me was gcc stopping with errors that fbc did'nt catch, for example a comparison pointer - integer passes fbc but stops gcc. The problem is gcc issues the error with a line numer in the c listing you have to relate to the original fb listing. I can guess two ways to solve it: one is putting the original FB lines as comments in the c listing, another one is to make FB more rigid so nothing that could annoy gcc can pass.
I have tried the SVN version with gcc 3.4.5 with some prime sieve using a bit array .To me it did a code marginally slower an bigger than the version using GAS, i think it's not an important result as I guess my version of gcc is not updated tuned and the version of FB in SVN is a test one.
What worried to me was gcc stopping with errors that fbc did'nt catch, for example a comparison pointer - integer passes fbc but stops gcc. The problem is gcc issues the error with a line numer in the c listing you have to relate to the original fb listing. I can guess two ways to solve it: one is putting the original FB lines as comments in the c listing, another one is to make FB more rigid so nothing that could annoy gcc can pass.
-
- Posts: 1706
- Joined: May 27, 2005 6:34
- Location: Cambodia, Thailand, Lao, Ireland etc.
- Contact:
I would think the second must be the case, just as it is with the ASM emitter.Antoni wrote:Hi, Victor, nice to see you again at the command!
I have tried the SVN version with gcc 3.4.5 with some prime sieve using a bit array .To me it did a code marginally slower an bigger than the version using GAS, i think it's not an important result as I guess my version of gcc is not updated tuned and the version of FB in SVN is a test one.
What worried to me was gcc stopping with errors that fbc did'nt catch, for example a comparison pointer - integer passes fbc but stops gcc. The problem is gcc issues the error with a line numer in the c listing you have to relate to the original fb listing. I can guess two ways to solve it: one is putting the original FB lines as comments in the c listing, another one is to make FB more rigid so nothing that could annoy gcc can pass.
I will try the C emitter tomorrow and see how it looks on Linux, but I am sure there is lots of work left to complete.
Garvan
Well, if I'm evil, I could state it like this:cha0s wrote:@John
ws playing a secondary role' you mean 'Windows generally failing to be a place for serious crossplatform development' then I guess the answer is yes? :P IMHO, of course. Linux users would really not need to worry about gcc being installed.
On Linux, base installs are free of gcc, but contain the libc runtime in one version. GCC means installaling is an free additional package of the vendor but with dependancies (binutils etc)
On Windows, the base install is free of MSVC, but contains the msvcrt runtime in several versions. MSVC is a free additional package from the same vendor. (VS express or platform SDK)
On OS X, the base install is free of gcc, but contain the runtime in several versions. The compiler (binutils) means installing one free additional package (XCode) from the same vendor
So where is this gigantic difference now?
The only differences I can see is that Linux allows the packages to install during install time, while the others need to do it afterwards, but that Linux fragments the build tools over multiple packages, while OS X and Windows have just one. Another one is that Linux generally doesn't install libc's to keep older programs running.
Antoni, yeah, there shouldn't be ever a single warning at the gcc side, that's the idea. There are many things to do yet, like getting the test suit to build, plus bootstrapping the compiler in -gen gcc mode.
Otherwise FB would be just a dumb/lazy translator, like most (all?) BASIC to C translators out there.
Otherwise FB would be just a dumb/lazy translator, like most (all?) BASIC to C translators out there.
-
- Posts: 453
- Joined: Dec 24, 2005 2:32
- Location: WA - USA
- Contact:
In English an adjective generally only has bearing on the noun following it. Which, in this case, is "translator", not to the whole sentence that describes the whole process.John Spikowski wrote:If allowing C (includes and source) withing Basic code is dumb then I need to look up the word in the dictionary again. :-)Otherwise FB would be just a dumb/lazy translator, like most (all?) BASIC to C translators out there.
dumb/lazy translator = One to one BASIC line to C equivalent. No higher level code optimizations, code constructs, or implementations.John Spikowski wrote:If allowing C (includes and source) withing Basic code is dumb then I need to look up the word in the dictionary again. :-)Otherwise FB would be just a dumb/lazy translator, like most (all?) BASIC to C translators out there.
-Vince
I just did a test with the SVN version (thanks Imortis) and found this issue (using pelles C not GCC) so I'm not sure that's a bug.
Gives the following code :
By the way, is it possible to use (easily) Pelles C or an other compiler ?
And why not open a special topic (sticky) on the gcc emitter.
Code: Select all
Type ttest1
aint As Integer
bus As ushort
End Type
Code: Select all
typedef struct _TTEST1 {; <--- 'the ";" generates an error
#line 0 "test1.bas"
integer AINT;
#line 0 "test1.bas"
ushort BUS;
#line 0 "test1.bas"
} TTEST1;
And why not open a special topic (sticky) on the gcc emitter.