[{"data":1,"prerenderedAt":268},["ShallowReactive",2],{"project-33115719":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":34,"aspects":35,"strip":41,"post_text":43,"what":44,"said":70,"maker_in_thread":153,"shape":158,"grid":163,"attempts":230,"same_week":231,"maker_shows":195,"maker_hidden":260,"reader_version":261,"card":262},"33115719","Lambda-8cc","An x86 C compiler written in untyped lambda calculus","title","Show HN: Lambda-8cc – An x86 C compiler written in untyped lambda calculus","https:\u002F\u002Fgithub.com\u002Fwoodrush\u002Flambda-8cc","github.com","woodrush",1665100391,2022,249,29,195,2570,8,"notable","dev_tools","c compiler","other",[21,24,25,26,27],"lambda calculus","x86","elvm","binary lambda calculus","mixed",0.375,{"positive":31,"neutral":18,"mixed":32,"critical":33},10,0,3,21,{"idea":36,"performance":38,"execution":40},{"positive":33,"critical":37},1,{"positive":32,"critical":39},2,{"positive":32,"critical":32},[42,32,42,33,33,32,33,42,37,32,42,42,42,42,33,32,33,33,33,32,32,32,32,37,37,42,42,42,33],5,null,{"problem":43,"audience":43,"pricing":43,"motivation":43,"time_to_build":43,"stack":45,"openness":68,"stage":69,"team_size":69},[46,52,60],{"value":47,"source":48,"evidence":49},"untyped lambda calculus","maker",[50],{"id":51},"post",{"value":53,"source":54,"evidence":55},"8cc C compiler","commenter",[56],{"id":57,"by":58,"text":59},"33117310","chubot","How does it work? Is it translating the C source code of the 8cc C compiler to lambda calculus? So like C -> ELVM IR -> lambda calculus? https:\u002F\u002Fgithub.com\u002Fshinh\u002Felvm If so, it…",{"value":61,"source":54,"evidence":62},"ELVM",[63,64],{"id":57,"by":58,"text":59},{"id":65,"by":66,"text":67},"33118751","tromp","The hint file [1] of my 2012 IOCCC entry provides a nice introduction to the binary lambda calculus that this awesome piece of work runs on. All the lambda terms on that page…","open_source","unknown",{"praise":71,"objections":102,"requests":121,"questions":126,"alternatives":141},[72,91],{"value":73,"source":54,"evidence":74},"Impressive, spectacular and entertaining as a demonstration of commitment to the concept",[75,79,83,87],{"id":76,"by":77,"text":78},"33115996","c-linkage","This is the most spectacular waste of time I have ever seen. I absolutely love it!",{"id":80,"by":81,"text":82},"33118415","zoom6628","I’m in awe. Spectacular.",{"id":84,"by":85,"text":86},"33116209","apricot","Hot dog. I dreamed of writing something like this, and this guy actually goes and does it. Mad props.",{"id":88,"by":89,"text":90},"33117618","newobj","I admire the commitment to the schtick.",{"value":92,"source":54,"evidence":93},"Useful as a bootstrapping idea for binary lambda calculus",[94,98],{"id":95,"by":96,"text":97},"33118299","daptaq","Not necessarily, this actually sounds like a great bootstrapping tool. All you need to write on a new platform is a BLC interpreter, which should be easier to implement. Using…",{"id":99,"by":100,"text":101},"33120625","pharmakom","Now we need an untyped lambda calculus compiler for C!",[103,114],{"value":104,"source":54,"evidence":105},"Requires huge RAM and time to compile, making it impractical",[106,110],{"id":107,"by":108,"text":109},"33118676","unwind","I would think that the amount of RAM used by the lambda-monster (100+ GB to compile single-page C files) would make a practical application like that rather unpractical, for the…",{"id":111,"by":112,"text":113},"33116696","graderjs","primes.c takes 241GB to compile Nice",{"value":115,"source":54,"evidence":116},"Hand-written lambda code would be far smaller",[117,120],{"id":118,"by":66,"text":119},"33125167","Meanwhile a prime number sieve written directly in binary lambda calculus takes no more than 167 bits (under 21 bytes).",{"id":65,"by":66,"text":67},[122],{"value":123,"source":54,"evidence":124},"Binary lambda calculus back-end for ELVM",[125],{"id":65,"by":66,"text":67},[127,137],{"value":128,"source":54,"evidence":129},"Is the output the normal form, and can it be minimized by avoiding beta reduction",[130,134],{"id":131,"by":132,"text":133},"33117807","atennapel","Is the 18506 pages long lambda term the normal form? I wonder how much that can be minimized by not beta reducing everything.",{"id":135,"by":132,"text":136},"33118886","Ah yes, that makes sense. But is that PDF really the most minimal form? I can imagine if we write a program using lets: ``` let nil = \\n c. n; let cons = \\hd tl n c. c hd tl; let…",{"value":138,"source":54,"evidence":139},"How the pipeline works: C to ELVM IR to lambda calculus",[140],{"id":57,"by":58,"text":59},[142,149],{"value":143,"source":54,"evidence":144},"INTERCAL",[145],{"id":146,"by":147,"text":148},"33120662","cek","Definitely ranks up there. My favorite is still INTERCAL [1] since the result is actually useful, and it ranks high on the levity meter. [1] https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FINTERCAL",{"value":150,"source":54,"evidence":151},"TinyCC",[152],{"id":95,"by":96,"text":97},{"comments":37,"answered":32,"key":154},[155],{"id":156,"text":157},"33120026","I actually mentioned your hint file in details.md. Quite a roundabout way to decode its secrets! I too suspect that writing in lambda's native functional style could save a lot…",{"commenters":159,"max_depth":160,"maker_replies":37,"first_comment_mins":161,"lifespan_hours":162},22,7,44,19,[164,166,168,169,173,176,180,183,184,186,187,191,194,196,199,201,205,207,209,211,213,215,217,219,220,222,224,227,228],[65,32,42,165,66,32],"project\u002Fpositive\u002Fidea",[156,32,32,167,11,37],"maker\u002Fneutral\u002Fnone",[76,37,42,165,77,32],[170,37,33,171,172,32],"33116781","project\u002Fneutral\u002Fnone","kazinator",[174,37,33,171,175,32],"33117556","caslon",[177,37,32,178,179,32],"33119872","other\u002Fneutral\u002Fnone","planede",[181,37,33,171,182,32],"33119384","valleyer",[95,37,42,165,96,32],[107,37,37,185,108,32],"project\u002Fcritical\u002Fperformance",[146,37,32,178,147,32],[188,39,42,189,190,32],"33118059","project\u002Fpositive\u002Fnone","abricq",[192,33,42,189,193,32],"33116471","magicalhippo",[84,195,42,189,85,32],4,[197,42,42,189,198,32],"33118452","jart",[57,200,33,171,58,32],6,[202,200,32,203,204,32],"33120061","commenter\u002Fneutral\u002Fnone","omegalulw",[131,160,33,206,132,32],"project\u002Fneutral\u002Fexecution",[208,160,33,206,66,32],"33118682",[135,160,33,210,132,32],"project\u002Fneutral\u002Fperformance",[212,160,32,203,66,32],"33119070",[214,160,32,203,132,32],"33119220",[216,160,32,203,66,32],"33119524",[218,160,32,203,66,32],"33120882",[111,18,37,185,112,32],[118,18,37,221,66,32],"project\u002Fcritical\u002Fidea",[88,223,42,189,89,32],9,[225,223,42,189,226,32],"33119555","AnthonBerg",[80,31,42,189,81,32],[99,229,33,171,100,32],11,[],[232,237,242,247,252,256],{"id":233,"name":234,"points":235,"category":236},"33155074","InvokeAI",414,"ai",{"id":238,"name":239,"points":240,"category":241},"33153152","agreper",392,"infrastructure",{"id":243,"name":244,"points":245,"category":246},"33147079","Pages on Pages",345,"web_saas",{"id":248,"name":249,"points":250,"category":251},"33150086","playlists.dags.dev",295,"consumer_social",{"id":253,"name":254,"points":255,"category":20},"33164922","Open-Sourcing InboxSDK (YC S11)",257,{"id":257,"name":258,"points":259,"category":20},"33156130","Satori",244,false,"v2",{"id":263,"name":5,"line":6,"ai":260,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":264,"top":18,"kw":265,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":266,"url":9,"mix":267,"praise":73,"objection":104,"sub":21},33115719,0.38,[21,24,25,26,27],"50533035105555303330000115553",[31,18,32,33],1794036625864]