To the Ineffable All,
    I recently had a discussion with Wannabee over at the ALA Usenet group.  He claims that RosAsm can partially assemble a file.  That is, if you make a change to its source, it can use the previous object file it assembled it before, and patch it to match the source change.  Does anyone know anything about this?  Does it work correctly?  Are there any limitations or disadvantages?  Any comments or insights will be appreciated.  Ratch
Posted on 2008-02-05 11:54:48 by Ratch
IIRC, RosAsm attempts to store a copy of the source within the OBJ/PE. I would imagine that RosAsm extracts the original source, makes the change and re-assembles/links appropriately.

Advantages: Source immediately available.

Disadvantages: Bloated objects/exes, potential exploitation target for malware, impossible to conduct quality assurance on source code.

As for "does it work correctly", well, considering RosAsm's overall track record... I would qualify their implementation as generally unreliable and restricted to code that is not capable of being statically linked.

On a side note, Wannabee is riddled with genuine ignorance. If he keeps learning things, even if ever so slowly, he might be at danger of actually understanding assembly language. With that in mind, you know the level of seriousness you need to apply to his statements.
Posted on 2008-02-05 12:29:44 by SpooK
I'd be surprised if RosAsm can do this, as it's a non-trivial feature to add, especially when macros are supported.

But it's certainly doable; C/C++ is more complex than assembly sources, and MSVC (well, link.exe) has had "incremental linking" for quite a while, which means "update .exe with changed .obj files only" - actually it's down to function-level granularity because of COMDAT information in the COFF object files.

Also, probably more recent than just incremental linking, MSVC can also spit out "no relevant changes detected" when compiling a .c/.cpp file...

As for advantages, for assembly I'd say none. This stuff only matters when you're dealing with huge projects and executables that are so huge you'd puke if I mentioned any sizes :)
Posted on 2008-02-05 17:35:16 by f0dder