Just thought that I would drop a quick message to see if anyone is currently messing around with Microsofts .NET IL Assembler yet.

While I have yet to write/play any code yet I have been reading the book (Inside Microsoft .NET IL Assembler), that is if I can ever stay away while reading it.

If you have played with or are playing with this and have some sample source code (i.e. Hello World, etc) I sure would like to see it; that is if you do not mind.

-- MadPrgmr --
Posted on 2007-07-20 15:12:03 by madprgmr
The only people I know that have been dealing with MSIL programming at that level would be reversers, and I must admit I don't see much reason for dealing with MSIL assembly unless you're writing a compiler, program obfuscation, etc...
Posted on 2007-07-20 17:30:39 by f0dder

The only people I know that have been dealing with MSIL programming at that level would be reversers


I find that to a systems software engineer who spends a great deal of time triaging windows based systems that are outside of my control (i.e. customers of ours) I find that this level of knowledge at times makes the difference between identifying, isolating, repairing a systems level bug or not.  Plus, this knowledge only makes one more commercially viable.


and I must admit I don't see much reason for dealing with MSIL assembly unless you're writing a compiler, program obfuscation, etc...


Oh f0dder...how could that be?? what about keeping up-to-date on the future of development (not only for the present dominating present OS's; Vista and XP but for future OS's as well).  Like it or not, Microsoft runs the world and they are seeing to it that the old is to be phased out (Windows 2K, NT/WDM based drivers, any non 2005 .NET developed application) to make way for the new world order (VISTA, KMDF/UMDF, 2005 .NET, and <insert the latest MS thingy here>) so in order for us to keep up with how things are changing we must strive to not only solidify our knowledge in the history of things (the fundamentals of system based operations) but also expand our thinking and understanding into the latest things that the market is throwing at us (VISTA, KMDF, MSILASM, .NET 2005).

Besides, could not the same thing have been said (and probably was) about windows level assembly language development???? I mean who in the right mind would want to do such a thing as to go against the grain of the normal developmental way ;)


Posted on 2007-07-20 18:09:54 by madprgmr
MSIL is the most sad thing I can think of at the moment. Being it doomed to dominate the world xor not.

You can always learn ARM or PowerPC and migrate towards the embedded computing world, which to me seems numerically superior to the M$ world, in number of CPUs sold at least, if not $ revenues for professionals like us.

At least, I earn much more designing and making embedded hardware boards than I do writing software for Winslows..

PS: and here is my latest toy, a Tektronix AFG-3102 two channels 1 GS/s $4800 signal generator! Who needs to bore himself with MSIL? ;)
Posted on 2007-07-21 00:14:29 by Maverick

MSIL is the most sad thing I can think of at the moment. Being it doomed to dominate the world xor not.


No arguments here!  I have thought the same thing since reading page 1 of the book.


You can always learn ARM or PowerPC and migrate towards the embedded computing world, which to me seems numerically superior to the M$ world, in number of CPUs sold at least, if not $ revenues for professionals like us.


For some reason I have never really given that line of operation must thought.  The only embedded work that I do is for my current company and that is for a device that is running the H8 (not only to I do the embedded stuff for this company but I also write the windows side of things).  Other than that, the only other processors that I have been involved with (AMD does not count) was when I worked at Transmeta.



At least, I earn much more designing and making embedded hardware boards than I do writing software for Winslows..


Ah the actual designing of hardware is something that I lack (while being very comfortable with schematics and chipset specs, I do very little dabbling in the physical hardware design)


PS: and here is my latest toy, a Tektronix AFG-3102 two channels 1 GS/s $4800 signal generator! Who needs to bore himself with MSIL? ;)


Very nice!  that must be one fun toy!  As for MSIL, I wish that I did not have to bore myself with it but sadly my company has come to expect it and thusly if I wish to continue with the paycheck then I must sadly comply.


Have a great weekend and enjoy your new toy.

Posted on 2007-07-21 00:46:41 by madprgmr

As for MSIL, I wish that I did not have to bore myself with it but sadly my company has come to expect it and thusly if I wish to continue with the paycheck then I must sadly comply.

Of course you've to do primarily what brings money in
If one can earn with stuff he enjoys, even (much) better. This ain't true even for me when I do hardware design: often they ask me to design devices I don't even really like. If it was for me I'd design only FPGA based stuff, at least in this period. :)

Have a great weekend and enjoy your new toy.

Thanks, same to you!
Posted on 2007-07-21 05:26:36 by Maverick


The only people I know that have been dealing with MSIL programming at that level would be reversers

I find that to a systems software engineer who spends a great deal of time triaging windows based systems that are outside of my control (i.e. customers of ours) I find that this level of knowledge at times makes the difference between identifying, isolating, repairing a systems level bug or not.  Plus, this knowledge only makes one more commercially viable.

And I do agree, problem is that reversing quickly falls outside the domain of what we can talk about here :)



and I must admit I don't see much reason for dealing with MSIL assembly unless you're writing a compiler, program obfuscation, etc...

Oh f0dder...how could that be?? what about keeping up-to-date on the future of development (not only for the present dominating present OS's; Vista and XP but for future OS's as well).

Well, I simply don't find that programming directly at the MSIL level makes much sense. Might have to do some dotNET programming at one time or another, but I see no reason to do it at MSIL level.


Besides, could not the same thing have been said (and probably was) about windows level assembly language development???? I mean who in the right mind would want to do such a thing as to go against the grain of the normal developmental way ;)

Heh, well, I don't see much reason to do application development entirely in x86 assembly, either. Parts here and there, sure, but not full scale.
Posted on 2007-07-21 11:12:46 by f0dder
If you have played with or are playing with this and have some sample source code (i.e. Hello World, etc) I sure would like to see it; that is if you do not mind.

i have some  :)

(attachment upload doesn't work!?)
rapidshare.com/files/44592814/helloworld.7z.html

Attachments:
Posted on 2007-07-23 13:19:42 by drizz

(attachment upload doesn't work!?)


Indeed it seems it doesn't - probably the same problem that's causing avatars to malfunction. Let's get hold of spook...
Posted on 2007-07-23 14:06:07 by f0dder

i have some  :)


drizz:

Thanks a bunch! I have downloaded the code and will be looking at it shortly.

Have a great week.
Posted on 2007-07-23 17:18:28 by madprgmr
I briefly tinkered with it some time ago, too, and agree with the comments above.  MS may dominate on the desktop but, fortunately, they don't dominate the web where I currently reside. 
Posted on 2007-07-26 12:34:03 by drhowarddrfine

I briefly tinkered with it some time ago, too, and agree with the comments above.  MS may dominate on the desktop but, fortunately, they don't dominate the web where I currently reside. 


Ahh..it would be nice not to have to worry about the ever changing rules and regulations forced down my throat by MS but sadly I would like the paychecks to keep coming :) (perhaps some day I will switch to pure embedded development, using an OS that is anything but MS)
Posted on 2007-07-26 12:46:01 by madprgmr


and I must admit I don't see much reason for dealing with MSIL assembly unless you're writing a compiler, program obfuscation, etc...


Oh f0dder...how could that be??

You can't necessarily infer performance from a non-native assembly language, and it can change drastically at the drop of a hat, even without a change in hardware.

Besides, could not the same thing have been said (and probably was) about windows level assembly language development????

From a performance perspective, native assembly wins hands down on lots of stuff.

If they've got vector instructions in the MSIL assembly, maybe you could get some performance from that, but otherwise I don't see much similarity at all.
Posted on 2007-07-26 20:25:13 by hackulous
Native assembly (machine) language requires no overhead in interpretation/assembly/compilation. Everything else, does.

hackulous is right on about MSIL as it is still dependent on fairly generic compilation and optimization techniques. Some day there might be a compiler that can put shame to any hand-written routine... but I think we'll see *mainstream* processors designed around JAVA and C# before that happens.
Posted on 2007-07-26 20:38:45 by SpooK

but I think we'll see *mainstream* processors designed around JAVA and C# before that happens.

You mean JAVA and MSIL :) *nudge nudge*

Making a CPU that directly executes JAVA or MSIL code is a bit silly, imho... JIT'ers have some interesting possibilities that you don't have with traditional machine code, like detecting hotspots, adapting to the target CPU features, etc.

Yes, you can do static profiling of an app and optimize with regards to that, but usage patterns can change during program lifetime. Adapting to CPU features isn't *that* important I guess, since when you start using the more advanced instructions, you're almost always dealing with speed-critical code, and best off doing hand-written assembly.

Still, I do think JIT'ers have a lot of potential, the systems just aren't there yet, and the runtime libraries could do with some work as well (and perhaps include some native code optimizations, at least in the case of JAVA it seems that they're trying to keep the entire runtime library in java code... quite optimiztic about their JVM, I'd say :) ).
Posted on 2007-07-27 05:25:43 by f0dder

(and perhaps include some native code optimizations, at least in the case of JAVA it seems that they're trying to keep the entire runtime library in java code... quite optimiztic about their JVM, I'd say :) ).

Big time!  What I wouldn't do for a really fast ArrayList or HashMap.  A Heap, Queue, etc. would be nice too.  Then there's the thing that lots of people end up making their own classes for storing lists of primitives to avoid the ton of time autoboxing takes.  There's some Jakarta Commons thing like that, though I haven't tried it out.

Though I suppose at the moment they should be more concerned about the huge code bloat in Swing.  I've re-implemented a few of their widgets in a couple hundred lines of Java that takes them thousands upon thousands of lines of Java, and the sweet irony is that mine's a lot more readable, efficient, and customizable too.  Their stuff is so hard to understand that most of it was easier to write from scratch.

I guess I'm a bit off topic, hehe, sorry.
Posted on 2007-07-27 23:50:03 by hackulous
Good point, the GUI toolkits for JAVA suck bigtime. Guess they've had interns designing a lot of their code ;)
Posted on 2007-07-28 07:15:27 by f0dder

Good point, the GUI toolkits for JAVA suck bigtime. Guess they've had interns designing a lot of their code ;)



Reminds me of the time when I was working at Symantec!  We would heir a group of individuals to do development (on a contract basis of course :) ) and just as they were starting to understand how to do things (and perhaps get good at programming) we would let them go.  At the time, the CEO of Symantec (Gordan Ubanks <sp>) was proud of the fact that we were a "learning facility" and would boast about it in each quartly meeting.  These actions directly resulted in within 4 years there was no one left (programmer wise) who truly understood low level development (as they all focused on the higher level CPP and whatever else was coming out at the time) and thusly the products: Norton Utilities and Norton Antivirus suffered greatly!  Heck, I still remember the time that their Norton Utilities group was having difficulties detecting and addressing LBA under FAT32 in regards to data recover and drive repair.

Posted on 2007-07-28 12:27:48 by madprgmr
Reminds me of the time when I was working at Symantec!  We would heir a group of individuals to do development (on a contract basis of course :) ) and just as they were starting to understand how to do things (and perhaps get good at programming) we would let them go.


Did they ever hear of a Non-Disclosure Agreement (NDA)??? Sure beats shooting yourself in the foot and selling some bogus excuse and consistent failure as some sort of "success" at the meetings.
Posted on 2007-07-28 12:42:12 by SpooK

Did they ever hear of a Non-Disclosure Agreement (NDA)??? Sure beats shooting yourself in the foot and selling some bogus excuse and consistent failure as some sort of "success" at the meetings.


I have no idea what they were thinking, perhaps other than for some reason they thought that they might be saving money as they always canned these guys at the end of their contract (just when these developers were thinking...Hey, I am not getting paid enough).  Any how, the products sure suffered! 

On another note, I remember when I was developing anti-virus code for them (back when it was just Symantec and Macfee <sp>) and the numbers game was on (meaning he who detected the most won)....we could find and produce simple fixes for infected files; however, we were told just to skip the correction code and only do the detection code as it was all about numbers.

Oh well, thats why I will not run any Symantec software (besides....the way that their tech support agents are trained are not much better, with those for ACT being the bottom of the barrel!)

Posted on 2007-07-28 12:48:45 by madprgmr