Hello,
I've been working on a vb compiler for some time now as a hobby and it is
is currently able to compile simple files
correctly. The compiler needs some work in order to be usable, but nothing
that can't be overcome.
My compiler has the following characteristics:
- It is written in vb, but it does currently not compile itself (I don't
know if it runs on mono, I tried to use as
little as possible of the vb runtime in the compiler, but it is completely
impossible not to use it).
- It supports all vb 8 features (except the My namespace for the moment),
including generics.
- The parser is hand written, and is feature-complete (unless the My
feature requires changes in the parser, but I
don't think so).
Major todos:
- Practically no errors are reported, and no error recovery is implemented
either.
- Implicit and explicit conversions.
- Debug (pdb) file generation.
I created a sourceforge project some time ago for the compiler
(http://sourceforge.net/projects/vbnc) and some old
code is available in cvs (http://cvs.sourceforge.net/viewcvs.py/vbnc/),
but this code is not at all close to the
state of the compiler now. If you are interested in having a look at it I
can upload the current code to svn,
though it may take some time since I have to look through it for things
that are not supposed to be made public.
I can try to adopt the compiler so that it can be used by the Mono project
(including implementing missing
functionality in the vb runtime), though I am not quite sure how much work
would be needed. Anyway I'd love to do
this as a Google Summer of Code project, if possible!
Best regards
Rolf Bjarne Kvinge
On Thu, 20 Apr 2006 15:52:09 +0200, Miguel de Icaza <[EMAIL PROTECTED]>
wrote:
Hey,
Yesterday I met with Rafael and we discussed a bit what we wanted to
do with Mono's VB compiler.
The situation is that today's VB compiler is based on a fork of mcs
circa 2002. And although some of the improvements to mcs made it into
mbas, they were not all incorporated.
To make things worse, the new VB.NET supports generics. So we are
wondering whether it would not be a better idea to start a fresh fork
from gmcs (along the same proposal that Jambunathan had a year or so
ago) and implement VB that way. Lets call this effort "mbas2".
The idea would be to go in chunks: we could integrate individual
commits that were done to the old mbas tree, and determine one by one
whether it applies to mbas2.
Maybe not all of the code can be salvaged, but if we can get even
40% of the old code migrated into the new tree it would be a big plus.
Now, this might be insane, because once I was talking to someone on
the VB.NET team and when I told them how mbas was written he said "I did
not think that VB.NET could be implemented that way". Maybe our
approach is completely busted, but I do not know enough about VB.NET to
know. I just know that if the original mbas idea made sense, we should
probably start from scratch.
Now, since we are already too close to 1.2, we should probably
develop this on a separate tree, to avoid breaking the build of
"mono/mcs", so it should be another top level module in the Mono
repository. And we should probably also kill "mcs/bmcs" (at least we
could retrieve the few patches that were done there).
Miguel.
_______________________________________________
Mono-vb mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-vb
--
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.385 / Virus Database: 268.5.1/327 - Release Date: 28/04/2006
_______________________________________________
Mono-vb mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/mono-vb