[mono-vb] Re: [Mono-devel-list] MSVB conversion from C# to Mbas status

Manjula G H M mmanjula@novell.com
Thu, 10 Mar 2005 00:43:49 -0700


This is a MIME message. If you are reading this text, you may want to 
consider changing to a mail reader or gateway that understands how to 
properly handle MIME multipart messages.

--=__Part5A793AA5.1__=
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello,

We are able to hack and support default parameter values in mono's
Microsoft.VisualBasic.dll finally !!!

Ankit Jain has come up with script  (details below in fwd mail) and
this is the final step of http://www.gnomebangalore.org/?q=node/view/498

what Jambu had mentioned in his blog.

Will be avaliable in SVN after through testing and fixing bugs in
monodis and ilasm(mono).

Please fell free to pass your comments.

Thanks
Manjula

>>> Ankit Jain <radical@gmail.com> 03/10/05 9:57 AM >>>
Hi,

Attached files:

fixup4.pl : Given a .il file, it will output the fixed-up .il on
stdout.
Usage: 
$ ./fixup4.pl vb.il > vb-fixed.il

fixit : This actually, given a .dll disasm's it, runs the fixup script
on it and assembles it back.
Usage:
$ fixit vb.dll vb-fixed.dll 

gacit : Takes a Microsoft.VisualBasic.dll, signs it, removes the
original Microsoft.VisualBasic.dll from gac, and adds this new one to
the gac.

usage:

$ gacit Microsoft.VisualBasic.dll 

gacit and fixit are probably not fit for checkin, cos you would wanna
do this stuff in the makefile.

Right now it works only with .net ilasm.exe and ildasm.exe . There are
some bugs in monodis and ilasm(mono) which i'll try to fix now.

Some details of this are avail on my blog :
http://mono-nosip.blogspot.com 

BTW, the perl script is written more as a "C" program than as a slick
perl thing.. heh am no perl regular!

Regards,
Ankit

-- 
Blog :
Mono hacking : http://mono-nosip.blogspot.com 
Personal : http://www.corewars.org/radical




>>> Jambunathan K <kjambunathan.devel@gmail.com> 02/22/05 5:41 PM >>>
Dennis


Just some trivial heads up on some things that you might want to keep
a watch on ;-)

1) C# has no notion of Modules. And most of the MSVB namespace is
composed of Modules. (Class Status page should help here. Just look
for all classes that have an extra private constructor defined ....)

2) C# has no notion of DefaultParameters. There is a new Attribute
(Mono specific attribute) that I added to all methods that take
default parameter values. Link to my earlier blog
http://www.gnomebangalore.org/?q=node/view/498 has all the required
info on this front.

> 3) At some point I will (should ;)) make test cases for related mbas
issues.

You might want to make use of the Mainsoft test cases in MSVB
directory to assess the immediate progress.

Cheers,
Jambunathan K.





--=__Part5A793AA5.1__=
Content-Type: application/octet-stream; name="fixit"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="fixit"

IyEvYmluL2Jhc2gKI1VzYWdlIDogZml4aXQgPGRsbF90b19maXg+IDxmaXhlZF9kbGxfbmFtZT4K
CkZJWFVQX1NDUklQVD0uL2ZpeHVwNC5wbApESVNBU009aWxkYXNtLmV4ZQpESVNBU01fRkxBR1M9
L3RleHQKSUxBU009aWxhc20uZXhlCklMQVNNX0ZMQUdTPS9kbGwKCmlmIFsgJCMgLW5lIDIgXTt0
aGVuCgllY2hvICJVc2FnZTogJDAgPGRsbF90b19maXg+IDxmaXhlZF9kbGxfbmFtZT4iCglleGl0
IDEKZmkKCgokRElTQVNNICRESVNBU01fRkxBR1MgJDEgPiB0bXAuaWwKJEZJWFVQX1NDUklQVCB0
bXAuaWwgPiB0bXAyLmlsCgokSUxBU00gJElMQVNNX0ZMQUdTIHRtcDIuaWwKcm0gdG1wLmlsIHRt
cDIuaWwKbXYgdG1wMi5ETEwgJDIK

--=__Part5A793AA5.1__=
Content-Type: application/octet-stream; name="fixup4.pl"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="fixup4.pl"

IyEvdXNyL2Jpbi9wZXJsIC13CiRmaWxlID0gJEFSR1ZbMF07Cm9wZW4gKE9SSUcsICRmaWxlKTsK
CndoaWxlICgkbGluZSA9IDxPUklHPikgewoJaWYgKCAkbGluZSA9fiAvKFwuY3VzdG9tIGluc3Rh
bmNlIHZvaWQpKGNsYXNzfCAuKikoTWljcm9zb2Z0XC5WaXN1YWxCYXNpY1wuQ29tcGlsZXJTZXJ2
aWNlc1wuX19EZWZhdWx0QXJndW1lbnRWYWx1ZUF0dHJpYnV0ZTo6XC5jdG9yKSguKikvKSB7IAoK
CQlAdHlwZSA9IHNwbGl0ICgvWygpXS8sICQ0KTsKCQlpZiAoJHR5cGVbMV0gPX4gL3N0cmluZy8p
IHsKCQkJQHN0ciA9IHNwbGl0ICgvIC8sICR0eXBlWzNdKTsKCQkJJHNpemUgPSBoZXggJHN0ciBb
M107CgkJCQoJCQlpZiAoJHNpemUgPT0gMCl7CgkJCQlwcmludCAoIj1cIlwiXG4iKTsKCQkJfWVs
c2lmICgkc2l6ZSA9PSAyNTUpIHsKCQkJCXByaW50ICgiPSBudWxscmVmXG4iKTsKCQkJfWVsc2V7
CQoJCQkJcHJpbnQgIiA9IGJ5dGVhcnJheSAoICI7CgkJCQlwcmludCBMT0cgIiA9IGJ5dGVhcnJh
eSAoICI7CgkJCQlmb3IgKCRpID0gNDsgJGkgPCBAc3RyIC0gMjsgJGkgKyspIHsKCQkJCQkJcHJp
bnQgJHN0ciBbJGldIC4gIiAwMCAiOwoJCQkJCQlwcmludCBMT0cgJHN0ciBbJGldIC4gIiAwMCAi
OwoJCQkJfQoJCQkJcHJpbnQgTE9HICIwMCAwMCApXG4iOwoJCQkJcHJpbnQgIjAwIDAwIClcbiI7
CgkJCX0KCQl9ZWxzaWYgKCR0eXBlIFsxXSA9fiAvb2JqZWN0Lyl7CgkJCSNDaGVjayBmb3IgbnVs
bCwgRWcuIENvbGxlY3Rpb24uQWRkIG1ldGhvZAkJCQoJCQlAc3RyID0gc3BsaXQgKC8gLywgJHR5
cGVbM10pOwoJCQkkc2l6ZSA9IGhleCAkc3RyIFszXTsKCgkJCWlmICgkc2l6ZSA9PSAxNCAmJiBo
ZXggJHN0ciBbNF0gPT0gMjU1KSB7CgkJCQkjMHgwRSgxNCkgLSBTdHJpbmcKCQkJCXByaW50ICIg
PSBudWxscmVmXG4iOwoJCQl9ZWxzZXsKCQkJCXByaW50ICI9ICIgLiAkdHlwZSBbMV0gLiIoMHgi
OwoJCQkKCQkJCUBzdHIgPSBzcGxpdCAoLyAvLCAkdHlwZVszXSk7CgkJCQlmb3IgKCRpID0gQHN0
ciAtIDIgLTE7ICRpID49IDQ7JGkgLS0pIHsKCQkJCQlwcmludCAkc3RyIFskaV0gOwoJCQkJfQoK
CQkJCXByaW50ICIpXG4iOwoJCQl9CgkJfWVsc2lmICgkdHlwZSBbMV0gPX4gL2Jvb2wvKSB7CgkJ
CUBzdHIgPSBzcGxpdCAoLyAvLCAkdHlwZVszXSk7CgkJCWlmICgkc3RyIFszXSA9PSAwMSkgewoJ
CQkJcHJpbnQgIj0gYm9vbCh0cnVlKVxuIjsJCgkJCX1lbHNlIHsKCQkJCXByaW50ICI9IGJvb2wo
ZmFsc2UpXG4iOwkKCQkJfQoJCX1lbHNlIHsKCQkJcHJpbnQgIj0gIiAuICR0eXBlIFsxXSAuIigw
eCI7CgkJCQoJCQlAc3RyID0gc3BsaXQgKC8gLywgJHR5cGVbM10pOwoJCQlmb3IgKCRpID0gQHN0
ciAtIDIgLTE7ICRpID49IDM7JGkgLS0pIHsKCQkJCQkJcHJpbnQgJHN0ciBbJGldIDsKCQkJCX0K
CgkJCXByaW50ICIpXG4iOwoJCX0KCX1lbHNlewoJCXByaW50ICRsaW5lOwoJfQp9CgpjbG9zZSAo
T1JJRyk7Cg==

--=__Part5A793AA5.1__=
Content-Type: application/octet-stream; name="gacit"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gacit"

IyEvYmluL2Jhc2gKI1NpZ25zIGFuZCBhZGRzIHRoZSBzcGVjaWZpZWQgZGxsIHRvIGdhYwoKRExM
PU1pY3Jvc29mdC5WaXN1YWxCYXNpYwpLRVlfUEFUSD0kSE9NRS9tb25vLXMvbWNzL2NsYXNzL21v
bm8uc25rCgppZiBbICQjIC1uZSAxIF07dGhlbgoJZWNobyAiVXNhZ2U6ICQwIDxkbGxfbmFtZT4i
CglleGl0IDEKZmkKCmVjaG8gZ2FjdXRsIC11ICR7RExMfQpnYWN1dGlsIC11ICR7RExMfQplY2hv
IHNuIC1SICQxICRLRVlfUEFUSApzbiAtUiAkMSAkS0VZX1BBVEgKZWNobyBnYWN1dGlsIC1pICR7
RExMfS5kbGwKZ2FjdXRpbCAtaSAke0RMTH0uZGxsCg==

--=__Part5A793AA5.1__=--