Well, today I announced GLBCC. I've kind of hinted at it before but
I guess I should explain in a little more detail here.
GLBCC stands for GNU/Liberty Basic Compiler Collection. LBPP is a part
of this suite. The rest of the suite is composed of the Mingw port of
GCC, some binutils, the Mingw runtime environment, and the GLBCC front
end program.
The GLBCC program will act as the interface for the entire system. It
will take a .bas file name as input and run the rest of the programs in
order to generate an executable application. The Mingw library is
actually public domain so there is no licensing issues at all anymore.
I am planning right now for GLBCC to be written in LB. LBPP is
currently just about strong enough to support this. In fact, all that
needs to be done is for the CommandLine$ system variable to be populated
at context initialization, and for the RUN statement to be written (I am
planning on just making a system() call and ignoring the keyword).
This is basic outline of the LB program:
1) Examine Platform$ variable to determine if we are running Linux or
Windows
2) Initial the proper pathnames to the various applications for each
operating system
3) Examine the CommandLine$ variable to determine what files to read in
and write to
4) If we are on Linux, then check for a target option too to see if we
are targeting Windows
5) If the CommandLine$ was blank, pop up a file dialog to get a file
name
6) Run LBPP on the bas file to generate a C file
7) Run GCC to generate an object file from the C file
8) Determine what libraries and link the object file to generate an
executable
9) Clean up the C and object file
Throughout steps 6-9, diagnostic advice will pop up depending on when/if
the compile fails at any point. This is more a future task than
anything else.
The whole system will be distribute in two ways. There will be a
package that contains all the required tools and libraries for both
Linux and Windows so that the environment will automagically be
configured. There will also be a seperate GCC + Mingw package and a
standalone LBPP package. This way, updates can be made to LBPP without
the need to redistribute the entire package.
This should bring the compiler to the entire community. Right now, my
focus is on providing this package and doing a serious update on the
website to provides tons of info for users since there seems to be quite
a bit of confusion about this project.
If this was a C compiler, I would probably ignore the confusion and just
code, but the a BASIC compiler suite needs to be user-friendly enough so
that it can actually be used by BASIC programmers.
So, if anyone wants to help right now, these are the areas I'm focusing
on. There is also a great need for future Windows C
programmers/testers. I can easily compile Windows code but running it
is actually quite a difficult process since I don't have ready access to
a Windows machine. What would be great is there were people would were
able to test the Windows version of this.
So that's that and I'm terribly tired so I'm gonna hit the hay. It's
been a long day and I have to get up for work tomorrow. I am very happy
about the way this project is going and also very happy about the
response it's getting. I have a feeling that GLBCC is going to be a big
deal once everything comes together.
BTW: I choose to use GNU/Liberty Basic Compiler Collection since a good
deal of the compiler suite comes from GNU. I divided it with a / to
seperate the two projects as to not infer that this is an offical
GNU project. I don't think I want to turn the copyright over to GNU so
I don't have any plans of trying to get GNU to accept this as an
official GNU project. Besides, GNU already has a basic language -
GnomeBasic. RMS always gets pissed though when Linux is not referred to
as GNU/Linux since it uses so much GNU stuff. Of course, when doesn't
RMS get pissed :)
Regards,
Anthony
|