upx/TODO
Markus F.X.J. Oberhumer 5727461522 Updated.
committer: mfx <mfx> 978101535 +0000
2000-12-29 14:52:15 +00:00

105 lines
2.1 KiB
Plaintext

UPX TODO list. Last updated 2000-12-29.
IMPROVED COMPRESSION RATIO
==========================
- experiment with new filters
- implement filters for linux/elf386
- implement filters for dos/exe
- filters: could we exploit a f->firstcall info field ?
- for small programs (e.g. < 64k), try an additional algorithm
to see if it gives better compression
ALL FORMATS
===========
- more thoroughly test the exe-header in canPack()
and throw exceptions when encountering bad values.
- implement `--cpu=486' option to use bswap on the 32-bit formats
(if cpu >= 486)
- consider removing "sbb bp,bp" or "or ebp,-1" when not needed
FORMAT DJGPP2/COFF
==================
- handle overlays
- fix default file extension handling when the --coff option is set
FORMAT DOS/EXE
==============
- implement filters
FORMAT LINUX/386
================
- don't mmap() the temporary output file - this seems to improve
file io speed
FORMAT LINUX/ELF386
===================
- implement filters
FORMAT TMT/ADAM
===============
- the decompressors are already aligned, no need for an
extra alignment
FORMAT WATCOM/LE
================
- the decompressors are already aligned, no need for an
extra alignment
- fix default file extension handling when the --le option is set
- handle holes in the file
FORMAT WIN32/PE
===============
- make compressWithFilters() work
- decrease runtime memory overhead
- ??? compressing screensavers looses the description - probably
should not compress a special resource type ???
2 - easy - mfx + ml) new switch(es) : do not compress resource types x,y,z
or resource names a,b,c
3 - medium - ml) rebuild exports
3 - difficult) don't compress the BSS section and other holes.
4 - medium - ml) fix when objectalign < 0x1000
4 - easy - ml) put the original offset of moved resources somewhere into
the res.dir. (if it's safe to do)
4 - ??? - ml) fix FIXMEs
5 - medium - ml) try to put the preprocessed imports & relocs back to their
original section if possible. this could save some virtual memory
address space.