[{"data":1,"prerenderedAt":174},["ShallowReactive",2],{"project-31638552":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":32,"aspects":33,"strip":35,"post_text":29,"what":37,"said":55,"maker_in_thread":102,"shape":109,"grid":114,"attempts":136,"same_week":137,"maker_shows":111,"maker_hidden":167,"reader_version":168,"card":169},"31638552","micro-lzmadec","Micro LZMA decoder (x86 assembly code golf)","title","Show HN: Micro LZMA decoder (x86 assembly code golf)","https:\u002F\u002Fgithub.com\u002Filyakurdyukov\u002Fmicro-lzmadec","github.com","jpegqs",1654507659,2022,56,10,914,2570,36,"notable","languages","compression decoder library","library",[24,25,26,27],"lzma decoder","x86 assembly","code golf","executable compression","quiet",null,{"positive":31,"neutral":32,"mixed":31,"critical":31},0,2,{"performance":34},{"positive":31,"critical":31},[31,31,31,31,31,36,31,31,31,36],3,{"problem":38,"audience":29,"pricing":29,"motivation":45,"time_to_build":29,"stack":49,"openness":54,"stage":54,"team_size":54},{"value":39,"source":40,"evidence":41},"Small LZMA decompressor for compressed executables","maker",[42],{"id":43,"by":11,"text":44},"31654633","The compression method in UPX is much simpler (therefore smaller and faster), but the last time I saw it was over 10 years ago, something may have changed. But LZMA should…",{"value":46,"source":40,"evidence":47},"Make decoder small enough for compressed executables",[48],{"id":43,"by":11,"text":44},[50],{"value":25,"source":40,"evidence":51},[52],{"id":53},"post","unknown",{"praise":56,"objections":69,"requests":70,"questions":71,"alternatives":79},[57],{"value":58,"source":59,"evidence":60},"Interesting tiny decoders as art","commenter",[61,65],{"id":62,"by":63,"text":64},"31651404","jansan","I love these tiny decoders, even if their use cases are limited. To me this is as much art as it is programming. For Javascript I ran into these two recently: Tiny LZW(ish)…",{"id":66,"by":67,"text":68},"31651605","ManDeJan","Cool! I like tiny encoders. I teach assembly programming at a university where one of the final assignments in the course is making a decoder for something similar to LZ77 in…",[],[],[72],{"value":73,"source":59,"evidence":74},"How does it compare to UPX's decoder?",[75],{"id":76,"by":77,"text":78},"31654241","abainbridge","I wonder how this compares to the one in UPX.",[80,87,94,98],{"value":81,"source":59,"evidence":82},"UPX LZMA stub",[83,84],{"id":76,"by":77,"text":78},{"id":85,"by":11,"text":86},"31654960","I looked at the latest version of UPX, they began to use LZMA, if this is considered an LZMA decoder: https:\u002F\u002Fgithub.com\u002Fupx\u002Fupx\u002Fblob\u002Fdevel\u002Fsrc\u002Fstub\u002Fsrc\u002Farch\u002Famd64\u002Flzma_d_cn.S…",{"value":88,"source":59,"evidence":89},"Crinkler",[90],{"id":91,"by":92,"text":93},"31651515","lifthrasiir","Crinkler [1] is a popular compressor-linker for 1--8 KB demos and its decompressor (partially overlapping with a PE header) is probably around 1--200 bytes. Later efforts like…",{"value":95,"source":59,"evidence":96},"Roadroller",[97],{"id":91,"by":92,"text":93},{"value":99,"source":59,"evidence":100},"RegPack",[101],{"id":62,"by":63,"text":64},{"comments":36,"answered":31,"key":103},[104,105,106],{"id":43,"text":44},{"id":85,"text":86},{"id":107,"text":108},"31655552","I have suggested them to look at my version, but I think UPX not much hardcore for that. Because I'm guessing decompression speed is more important to UPX than the extra 2kb.",{"commenters":110,"max_depth":111,"maker_replies":36,"first_comment_mins":112,"lifespan_hours":113},7,5,1388,31,[115,117,121,123,124,127,129,131,132,134],[66,31,31,116,67,31],"other\u002Fneutral\u002Fnone",[118,31,31,119,120,31],"31651934","commenter\u002Fpositive\u002Fnone","mobilio",[62,122,31,116,63,31],1,[91,122,31,116,92,31],[125,32,31,116,126,31],"31654893","deater",[76,36,36,128,77,31],"project\u002Fneutral\u002Fnone",[43,36,31,130,11,122],"project\u002Fpositive\u002Fperformance",[85,36,31,130,11,122],[107,36,31,133,11,122],"project\u002Fneutral\u002Fperformance",[135,36,36,133,77,31],"31656475",[],[138,143,148,153,158,163],{"id":139,"name":140,"points":141,"category":142},"31607318","webOS Archive",439,"infrastructure",{"id":144,"name":145,"points":146,"category":147},"31595822","Svelvet",354,"dev_tools",{"id":149,"name":150,"points":151,"category":152},"31653726","The Bitcoin Note",344,"finance_crypto",{"id":154,"name":155,"points":156,"category":157},"31668814","Spiral Wiki",331,"security_privacy",{"id":159,"name":160,"points":161,"category":162},"31593726","quaxio.com",281,"games",{"id":164,"name":165,"points":166,"category":142},"31657527","Umbrel",225,false,"v2",{"id":170,"name":5,"line":6,"ai":167,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":29,"top":18,"kw":171,"maker":11,"domain":10,"tier":19,"attempts":31,"strip":172,"url":9,"mix":173,"praise":58,"objection":-1,"sub":21},31638552,[24,25,26,27],"0000030003",[31,32,31,31],1794036621161]