[{"data":1,"prerenderedAt":455},["ShallowReactive",2],{"project-48078575":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":42,"post_text":45,"what":46,"said":80,"maker_in_thread":199,"shape":208,"grid":211,"attempts":416,"same_week":417,"maker_shows":44,"maker_hidden":447,"reader_version":448,"card":449},"48078575","Rust but Lisp","title","Show HN: Rust but Lisp","https:\u002F\u002Fgithub.com\u002FThatXliner\u002Frust-but-lisp","github.com","thatxliner",1778363187,2026,218,74,250,4366,6,"notable","languages","transpiler","cli",[23,24,25,20,26],"rust","lisp","s-expression","macros","mixed",-0.333,{"positive":30,"neutral":31,"mixed":32,"critical":33},4,16,0,17,37,{"execution":36,"idea":38,"docs":40,"design":41},{"positive":32,"critical":37},2,{"positive":37,"critical":39},5,{"positive":32,"critical":30},{"positive":37,"critical":30},[43,39,32,39,43,44,44,32,32,43,44,43,32,32,32,32,32,32,32,43,44,32,44,44,44,43,43,43,43,43,43,32,32,44,44,43,44,44,43,39],1,3,null,{"problem":47,"audience":45,"pricing":45,"motivation":59,"time_to_build":45,"stack":69,"openness":78,"stage":79,"team_size":78},{"value":48,"source":49,"evidence":50},"Writes Rust semantics using s-expression syntax instead of Rust syntax","commenter",[51,55],{"id":52,"by":53,"text":54},"48079442","noosphr",">Rust semantics with LISP syntax. A transparent s-expression frontend that compiles directly to Rust — no runtime, no GC The first paragraph says literally that.",{"id":56,"by":57,"text":58},"48081392","xigoi","Because Rust syntax is ugly and overcomplicated.",{"value":60,"source":49,"evidence":61},"Get proper macros and Rust semantics in a Lisp-style syntax, as a playful project",[62,66],{"id":63,"by":64,"text":65},"48078648","macmac","To get proper macros.",{"id":67,"by":10,"text":68},"48080522","For everyone who is shaming on the project for \"not implementing enough,\" then you can definitely help me with it. For everyone who is shaming on the project for being \"LLM…",[70],{"value":71,"source":72,"evidence":73},"Rust","inferred",[74],{"id":75,"by":76,"text":77},"48081455","moefh","Pretty nifty. As of now, the code doesn't compile: there's some stray \"span\" stuff in codegen.rs[1], and it's trying to format `Warning` which doesn't implement `Display` in…","unknown","prototype",{"praise":81,"objections":97,"requests":139,"questions":154,"alternatives":169},[82],{"value":83,"source":49,"evidence":84},"Interesting or nifty idea for surfacing Rust semantics",[85,89,93],{"id":86,"by":87,"text":88},"48079225","hawkice","I think some comments are missing the upside of it being precisely Rust, without any new semantics. If you want lisp that compiles to machine code, Common Lisp can get reasonably…",{"id":90,"by":91,"text":92},"48106116","larodi","this is actually very interesting approach to syntax remixing, while keeping the ontology",{"id":94,"by":95,"text":96},"48092081","rbanffy","I actually like it better than plain Rust…",[98,113,117,128],{"value":99,"source":49,"evidence":100},"Seems vibecoded or LLM-generated, with doubts about its quality",[101,105,109],{"id":102,"by":103,"text":104},"48079885","slopinthebag","How is pure unbridled AI slop like this making the front page? Voting rings? I don't even feel bad saying this because clearly OP is just the front for Claude here.",{"id":106,"by":107,"text":108},"48079516","andrepd","It's a vibecoded parser...",{"id":110,"by":111,"text":112},"48079905","moron4hire","I don't understand why this had to be LLM generated. S-expression syntax parsers are not hard to write. That's rather much the point of S-expressions.",{"value":114,"source":49,"evidence":115},"Code does not compile out of the box and has codegen bugs with single-letter types",[116],{"id":75,"by":76,"text":77},{"value":118,"source":49,"evidence":119},"Is just Rust in s-expressions rather than a real Lisp dialect",[120,124],{"id":121,"by":122,"text":123},"48079104","GalaxyNova","It seems like this is more like writing Rust in an s-expression syntax instead of having a proper lisp dialect that compiles to Rust, which is cool I guess but not very…",{"id":125,"by":126,"text":127},"48081544","lefra","> ((. dx powf 2.0) + (. dy powf 2.0)) sqrt)) I don't know what this is, but clearly not Lisp...",{"value":129,"source":49,"evidence":130},"Lacks lifetime and turbofish examples and a macro language with conditionals",[131,135],{"id":132,"by":133,"text":134},"48079443","vermilingua","Claims to have all the syntax covered, but not a single example of specifying lifetimes or the turbofish, some of the trickiest rust syntax",{"id":136,"by":137,"text":138},"48133866","goldsteinq","I think this misses the point of LISP macros. LISP macros are just functions written in LISP, so here macros need to be functions written in Rust-but-LISP, but it is not so. In…",[140,150],{"value":141,"source":49,"evidence":142},"Error messages with source spans pointing to Lisp code",[143,147],{"id":144,"by":145,"text":146},"48080261","skulk","So if I wanted to actually use this and I write some rust-but-lisp code and there's a compile error, will it show me a nice error message with an arrow pointing to where the…",{"id":148,"by":10,"text":149},"48080717","Good idea! I'm adding error messages + spans ala ariadne now",{"value":151,"source":49,"evidence":152},"Integration with rust-analyzer LSP",[153],{"id":144,"by":145,"text":146},[155,162],{"value":156,"source":49,"evidence":157},"How syntax changes would handle compatibility with Rust releases",[158],{"id":159,"by":160,"text":161},"48079792","OhMeadhbh","How do you change the syntax to eliminate reverse compatibility? I guess you could change the names of most key functions between releases. But to be compatible with rust you…",{"value":163,"source":49,"evidence":164},"Why it was built instead of using Scheme's hygienic macros",[165],{"id":166,"by":167,"text":168},"48079067","fao_","Scheme already has hygenic macros, I don't get why you'd vibecode a worse (less battle tested, llm-generated) replacement. I'm not sure why this hit the front-page, to be honest,…",[170,177,188,195],{"value":171,"source":49,"evidence":172},"Fennel",[173],{"id":174,"by":175,"text":176},"48095115","busfahrer","So I'm guessing it's sort of like Fennel, which consciously doesn't completely hide its underlying Lua runtime? https:\u002F\u002Ffennel-lang.org\u002F",{"value":178,"source":49,"evidence":179},"Carp",[180,184],{"id":181,"by":182,"text":183},"48082814","foresterre","And if you like Lisp and ownership, there's also Carp [1]. It doesn't mimic Rust's features and naming schemes though. Carp is about 10 years old and has some cool demo's (like…",{"id":185,"by":186,"text":187},"48081757","geon","I’ve seen this done with C as well. https:\u002F\u002Fwww.eriksvedang.com\u002Fcarp https:\u002F\u002Fgithub.com\u002Ftomhrr\u002Fdale",{"value":189,"source":49,"evidence":190},"Loon",[191],{"id":192,"by":193,"text":194},"48079758","ecto","Readers may enjoy my lisp, Loon, which takes heavy inspiration from Rust https:\u002F\u002Floonlang.com\u002Fguide\u002Fownership",{"value":196,"source":49,"evidence":197},"Common Lisp",[198],{"id":86,"by":87,"text":88},{"comments":39,"answered":43,"key":200},[201,204,207],{"id":202,"text":203},"48080661","You can also drop into direct Rust with the (rust \"...\") macro if I forgot to implement anything",{"id":205,"text":206},"48080819","Honestly, that's very cool That was basically my intent with this project, but I took the laziest way to get there lol",{"id":148,"text":149},{"commenters":209,"max_depth":30,"maker_replies":39,"first_comment_mins":39,"lifespan_hours":210},60,213,[212,214,216,220,222,225,227,228,230,231,234,238,240,244,247,251,253,255,258,259,262,263,266,269,271,275,277,281,283,286,290,293,296,297,298,301,302,305,307,312,316,318,322,326,329,331,333,336,339,342,344,347,351,353,356,359,362,365,367,369,372,375,379,383,386,388,393,397,400,403,407,408,409,412,415],[75,32,43,213,76,32],"project\u002Fcritical\u002Fexecution",[86,43,39,215,87,32],"project\u002Fpositive\u002Fidea",[217,43,32,218,219,32],"48079490","commenter\u002Fneutral\u002Fnone","j16sdiz",[221,43,32,218,87,32],"48079897",[223,43,32,218,224,32],"48080128","IncreasePosts",[174,43,44,226,175,32],"project\u002Fneutral\u002Fidea",[90,43,39,215,91,32],[132,37,43,229,133,32],"project\u002Fcritical\u002Fdocs",[106,37,43,213,107,32],[232,37,32,218,233,32],"48080314","gleenn",[235,37,44,236,237,32],"48079591","project\u002Fneutral\u002Fdesign","kibwen",[239,37,32,218,133,32],"48079641",[241,37,44,242,243,32],"48080151","project\u002Fneutral\u002Fdocs","kccqzy",[245,37,32,218,246,32],"48080163","stdatomic",[248,37,32,249,250,32],"48080220","other\u002Fneutral\u002Fnone","Xirdus",[202,37,32,252,10,43],"maker\u002Fneutral\u002Fdocs",[121,44,43,254,122,32],"project\u002Fcritical\u002Fdesign",[256,44,43,254,257,32],"48079404","shawn_w",[52,44,32,218,53,32],[260,44,44,226,261,32],"48079498","monocasa",[192,30,32,249,193,32],[264,30,43,265,237,32],"48080421","project\u002Fcritical\u002Fidea",[267,30,32,249,268,32],"48080650","imachine1980_",[270,30,32,249,193,32],"48080769",[272,30,32,273,274,32],"48080655","other\u002Fpositive\u002Fdesign","akch",[276,30,32,249,193,32],"48080739",[278,30,32,279,280,32],"48081184","other\u002Fcritical\u002Fexecution","helenite",[205,30,32,282,10,43],"maker\u002Fpositive\u002Fidea",[284,30,32,249,285,32],"48081060","quotemstr",[287,30,32,288,289,32],"48081346","other\u002Fneutral\u002Fidea","gwerbin",[291,30,32,292,285,32],"48081715","other\u002Fcritical\u002Fidea",[294,30,32,249,295,32],"48081486","snthpy",[181,30,32,249,182,32],[185,39,32,249,186,32],[299,39,32,249,300,32],"48082073","ColonelPhantom",[125,17,43,254,126,32],[144,303,44,304,145,32],7,"project\u002Fneutral\u002Fexecution",[148,303,32,306,10,43],"project\u002Fpositive\u002Fexecution",[308,309,44,310,311,32],"48080700",8,"project\u002Fneutral\u002Fnone","chrisweekly",[313,314,32,249,315,32],"48080333",9,"stevefan1999",[317,314,32,249,237,32],"48080378",[319,320,32,249,321,32],"48084891",10,"tmtvl",[323,324,44,226,325,32],"48079667",11,"amelius",[327,324,44,226,328,32],"48079674","physPop",[330,324,32,218,325,32],"48079708",[159,332,44,304,160,32],12,[102,334,43,335,103,32],13,"project\u002Fcritical\u002Fnone",[337,334,32,249,338,32],"48079953","gjvc",[340,334,32,249,341,32],"48080482","Syzygies",[110,343,43,265,111,32],14,[345,343,32,218,346,32],"48080041","Maxatar",[348,349,43,229,350,32],"48079265",15,"stuaxo",[352,349,43,229,107,32],"48079527",[354,31,44,226,355,32],"48080716","NooneAtAll3",[357,33,43,254,358,32],"48079634","jaggederest",[360,33,32,218,361,32],"48079867","dleslie",[363,33,43,335,364,32],"48079878","2ndorderthought",[366,33,32,218,233,32],"48079883",[368,33,32,218,358,32],"48080602",[370,33,32,371,10,43],"48080814","maker\u002Fneutral\u002Fnone",[373,33,32,218,374,32],"48082466","lycopodiopsida",[376,377,44,310,378,32],"48184044",18,"pivoshenko",[380,381,32,249,382,32],"48081078",19,"zareith",[94,384,39,385,95,32],20,"project\u002Fpositive\u002Fdesign",[136,387,43,265,137,32],21,[389,390,43,391,392,32],"48080281",22,"maker\u002Fcritical\u002Fdocs","eiiot",[394,395,44,310,396,32],"48079820",23,"nxobject",[398,395,44,310,399,32],"48080346","zephen",[67,401,32,402,10,43],24,"maker\u002Fmixed\u002Fnone",[404,405,44,226,406,32],"48078618",25,"FrankWilhoit",[63,405,44,226,64,32],[166,405,43,265,167,32],[410,405,43,265,411,32],"48079120","wk_end",[413,405,44,226,414,32],"48079309","zem",[56,405,39,385,57,32],[],[418,423,428,432,437,442],{"id":419,"name":420,"points":421,"category":422},"48111896","Needle",776,"ai",{"id":424,"name":425,"points":426,"category":427},"48080587","ymawky",430,"infrastructure",{"id":429,"name":430,"points":431,"category":19},"48076815","let-go",292,{"id":433,"name":434,"points":435,"category":436},"48123359","Number Gacha",268,"games",{"id":438,"name":439,"points":440,"category":441},"48096842","website",200,"productivity",{"id":443,"name":444,"points":445,"category":446},"48045939","TRUST",178,"dev_tools",false,"v2",{"id":450,"name":5,"line":5,"ai":447,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":451,"top":17,"kw":452,"maker":10,"domain":9,"tier":18,"attempts":32,"strip":453,"url":8,"mix":454,"praise":83,"objection":99,"sub":20},48078575,-0.33,[23,24,25,20,26],"1505133001310000000130333111111003313315",[30,31,32,33],1794036700759]