Archive: competition


competition
It's incredible what competition can do - Guess which installer system just introduced LZMA? Inno! NSIS still has more features and will still be used for most of my work, but Inno is trying very hard to make their software more viable. Apparently, the overhead has been reduced by 150k, even though two DLLs have now been added.

I wonder how long it will take for the commercial installers to integrate LZMA, now that the two biggest free ones have.


The Inno Setup core does not include LZMA compression, they just include the huge 7-zip DLL files.

The LZMA decompression system of NSIS is only 5 KB large, while these DLL files are about 150 KB large.


The Inno package installer size was reduced by 150kb, not the overhead. The overhead grew by the size of the uncompression DLL, probably compressed.

Did anyone take a look at the source code used to interface with the DLL?

Could anyone find the source code to the DLLs islzma.dll and isunlzma.dll? I can't find them anywhere.


If you want to bash Inno Setup, at least be honest. It doesn't 'just include' some 7 zip dlls nor is the size of the decompression code inside a built Setup anywhere near 150 kb.


Of course I don't want to bash Inno Setup. People should just use the software they like most.

It is true that Inno Setup includes 7-zip DLL's. It's written in Delphi so they can't include it in the core.


Originally posted by Joost Verburg
It's written in Delphi so they can't include it in the core.
Not true: if you want to, you can make Delphi link directly with C/C++ code too.

Yes, using a dynamic link library (DLL).

Quote from the Inno Setup site:

By using LZMA compression, the installer for Inno Setup itself is now 150 KB smaller than before, despite the inclusion of two new DLLs.
So they include 7-zip DLL's for LZMA compression right?

No, I meant Delphi can link to an .obj too


Right, so Inno Setup statically links these libraries. Then I misunderstood this quote.

My point was that NSIS contains a custom optimized LZMA decompressor, which is much smaller than the other decompression libraries available.

Because this quotes says that two new DLLs are included, I assumed that these two DLLs (146 KB) were included. It's it's only one of them the size is 50 KB, still 10 times as large.


My point was that NSIS contains a custom optimized LZMA decompressor, which is much smaller than the other decompression libraries available.
It's slightly smaller, not much smaller. :)

(Arg: stop editing your posts please. The 50 kb is before compression.)

NSIS's 5 KB is also uncompressed.


InnoSetup's LZMA decompressiong DLL is 45.5KB, NSIS's inregrated decompression library is less than 5KB. Those are the facts. The entire overhead of NSIS with LZMA decompression is 34.5KB. You do the math.


Just as a reminder, the original subject was summed by:

I wonder how long it will take for the commercial installers to integrate LZMA, now that the two biggest free ones have.

My math: both LZMA implementations are so small they do not noticably impact the size of a setup differently, especially since the actual LZMA compression is so good. Therefore Joost's initial reply which seems to want to say you can't compare NSIS's LZMA support with Inno Setup's LZMA support is IMHO unfair.


Joost was just stating a fact and later added:

Of course I don't want to bash Inno Setup. People should just use the software they like most.
As for my reply. It was directed at:
It's slightly smaller, not much smaller.
I apologize if some misunderstanding or some statement hurt your feelings.

Now please drop this subject and return to the main discussion or I'll have to lock this thread before it derails even more.

FYI, Inno has supported 7-zip for about 5 or 6 months using the ide ISTool so its not anything they have added because of NSIS. It was probably added for the same reason NSIS added it (because its pretty darn good).


Well I still use NSIS in 98% of cases anyways because of the smaller overhead, but in the rare event that I need to span accross multiple CDs, I will now use Inno. A difference between a 34k overhead and a 340k overhead isn't really going to matter that much when I'm installing over 1GB of files.


There was probably a bit of miscommunication here when I called the 7-zip libraries used by Inno Setup "huge", sorry for that :)

People who are no regular forum visitors might not know that we NSIS developers are really focused on making software as small as possible, so we call something "huge" while other people will probably think we're exaggerating a bit :D


Originally posted by Joost Verburg
There was probably a bit of miscommunication here when I called the 7-zip libraries used by Inno Setup "huge", sorry for that :)
Ok :)

BTW something interesting happened in the meantime: Igor released a new set of LZMA files to replace the existing C++ code. The decoder .obj is now 2 kb in Inno Setup.

Yep I've seen the new LZMA SDK. It seems to be quite good, totally written in C, just like the NSIS VM.

Is the decompression speed still good when using the smallest version?


Try the Inno Setup CVS version and see for yourself :)