[{"data":1,"prerenderedAt":249},["ShallowReactive",2],{"project-17787180":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":43,"post_text":44,"what":45,"said":85,"maker_in_thread":145,"shape":147,"grid":151,"attempts":211,"same_week":212,"maker_shows":40,"maker_hidden":241,"reader_version":242,"card":243},"17787180","TinyGo","LLVM-based Go compiler for microcontrollers","title","Show HN: TinyGo – LLVM-based Go compiler for microcontrollers","https:\u002F\u002Fgithub.com\u002Faykevl\u002Ftinygo","github.com","ngaut",1534573555,2018,177,22,213,2155,10,"notable","languages","compiler","cli",[24,25,26,27,28],"go compiler","microcontroller","llvm","embedded go","arduino","loved",0.294,{"positive":32,"neutral":33,"mixed":34,"critical":34},6,5,0,11,{"performance":37,"idea":39,"execution":41,"docs":42},{"positive":38,"critical":34},1,{"positive":40,"critical":34},3,{"positive":38,"critical":34},{"positive":38,"critical":34},[40,33,33,34,33,34,40,33,40,34,34,34,34,34,40,33,40,34,33,34,34,34],null,{"problem":46,"audience":58,"pricing":44,"motivation":66,"time_to_build":44,"stack":70,"openness":82,"stage":83,"team_size":84},{"value":47,"source":48,"evidence":49},"Running Go on microcontrollers with small code size and no OS","commenter",[50,54],{"id":51,"by":52,"text":53},"17789208","jsolson","In my case I was less interested in the WASM part of it than I was in something targeting a \"no OS\" environment. That said, for my target (those little Pine64 RTL8710 Cortex M3…",{"id":55,"by":56,"text":57},"17788627","aykevl","Yeah the heavyweight standard library is a big problem. I'm trying to solve it (in part) with smart analysis that tries much harder to remove dead code and dead global data.…",{"value":59,"source":60,"evidence":61},"embedded and microcontroller developers who want to write Go","inferred",[62,63],{"id":51,"by":52,"text":53},{"id":64,"by":56,"text":65},"17788502","Hi, I'm the author of the compiler. All backends supported by LLVM should be fairly easily supported by TinyGo. In fact, I've had the blinky example running on an Arduino a while…",{"value":67,"source":48,"evidence":68},"Hobby project; targeting Pine64 RTL8710 Cortex M3 and enjoying writing Go",[69],{"id":51,"by":52,"text":53},[71,75],{"value":72,"source":48,"evidence":73},"Go",[74],{"id":51,"by":52,"text":53},{"value":76,"source":77,"evidence":78},"LLVM","maker",[79,81],{"id":80},"post",{"id":64,"by":56,"text":65},"open_source","prototype","solo",{"praise":86,"objections":93,"requests":110,"questions":117,"alternatives":125},[87],{"value":88,"source":48,"evidence":89},"Useful approach for small devices, more immediately useful than WASM compiler idea",[90],{"id":91,"by":52,"text":92},"17788692","I suppose it's not strange to see WASM come up -- last weekend I was considering doing something even weirder: writing a WASM to Thumb2 AoT compiler so I could leverage Go's…",[94,102,106],{"value":95,"source":48,"evidence":96},"Go's standard library and runtime type info make binaries large for constrained devices",[97,101],{"id":98,"by":99,"text":100},"17788507","kodablah","Neat. I've always considered Go, with its (relatively) simple design and significant quantity of decent libraries to be very retargetable (I'm toying with targeting the JVM now).…",{"id":55,"by":56,"text":57},{"value":103,"source":48,"evidence":104},"Garbage collection will be difficult on microcontrollers",[105],{"id":64,"by":56,"text":65},{"value":107,"source":48,"evidence":108},"Harvard-style architectures with separate code and data address spaces are an obstacle",[109],{"id":64,"by":56,"text":65},[111],{"value":112,"source":48,"evidence":113},"Add a LICENSE file",[114],{"id":115,"by":52,"text":116},"17789223","Honestly for what I'm doing what you have here is a pretty reasonable start. I'm comfortable writing (and calling into) C where the Go bits aren't in place yet, and I'm a lot…",[118],{"value":119,"source":48,"evidence":120},"What level of microcontroller is targeted, given Go requires at least 32-bit?",[121],{"id":122,"by":123,"text":124},"17788274","akavel","Didn't find it in the readme: does anyone know what general \"level\" of microcontrollers are the project author(s) hoping to target? I suppose that because of the Go spec already,…",[126,132,138],{"value":127,"source":48,"evidence":128},"TinyGo-gccgo (abandoned gccgo-based attempt by maker)",[129],{"id":130,"by":56,"text":131},"17788855","That's pretty cool! If you want something now, I've also written and abandoned this: https:\u002F\u002Fgithub.com\u002Faykevl\u002Ftinygo-gccgo It actually worked fairly well, but the code was way…",{"value":133,"source":48,"evidence":134},"Rust WASM support",[135],{"id":136,"by":99,"text":137},"17788729","Yeah, just wait until you see multiple megabytes of WASM instructions for tiny progs or the realize the team does not care about non-web targets. You're much better off…",{"value":139,"source":48,"evidence":140},"Astrobe Oberon",[141],{"id":142,"by":143,"text":144},"17787896","pjmlp","Nice project! With enough love it might follow Oberon's footsteps. http:\u002F\u002Fwww.astrobe.com",{"comments":34,"answered":34,"key":146},[],{"commenters":148,"max_depth":32,"maker_replies":34,"first_comment_mins":149,"lifespan_hours":150},15,259,16,[152,154,156,158,160,161,165,167,169,172,176,179,182,185,188,191,193,196,199,200,204,208],[98,34,40,153,99,34],"project\u002Fneutral\u002Fperformance",[55,34,33,155,56,34],"project\u002Fpositive\u002Fperformance",[91,34,33,157,52,34],"project\u002Fpositive\u002Fidea",[136,34,34,159,99,34],"commenter\u002Fcritical\u002Fidea",[51,34,33,157,52,34],[162,34,34,163,164,34],"17791049","other\u002Fneutral\u002Fnone","monocasa",[130,34,40,166,56,34],"project\u002Fneutral\u002Fexecution",[115,34,33,168,52,34],"maker\u002Fpositive\u002Fdocs",[170,34,40,171,56,34],"17789406","maker\u002Fneutral\u002Fdocs",[173,38,34,174,175,34],"17788004","other\u002Fneutral\u002Fperformance","SiVal",[177,38,34,174,178,34],"17788128","abstractbeliefs",[180,38,34,174,181,34],"17789472","stmw",[183,38,34,174,184,34],"17789840","lossolo",[186,38,34,174,187,34],"17790560","crawshaw",[122,189,40,190,123,34],2,"maker\u002Fneutral\u002Fnone",[64,189,33,192,56,34],"maker\u002Fpositive\u002Fexecution",[194,189,40,166,195,34],"17789552","UncleEntity",[197,189,34,163,198,34],"17791099","j1elo",[142,40,33,157,143,34],[201,202,34,163,203,34],"17787996",4,"sbinet",[205,202,34,206,207,34],"17788273","other\u002Fneutral\u002Fexecution","chewxy",[209,202,34,210,56,34],"17788549","commenter\u002Fneutral\u002Fexecution",[],[213,218,222,227,232,237],{"id":214,"name":215,"points":216,"category":217},"17782121","git-bug",447,"dev_tools",{"id":219,"name":220,"points":221,"category":217},"17773982","Wayland compositor in around 500 lines of annotated C",332,{"id":223,"name":224,"points":225,"category":226},"17782278","abyjames.com",256,"productivity",{"id":228,"name":229,"points":230,"category":231},"17817466","SVG 3D Builder",157,"creative",{"id":233,"name":234,"points":235,"category":236},"17784308","greview",138,"data",{"id":238,"name":239,"points":240,"category":20},"17793375","Umbrella JS",132,false,"v2",{"id":244,"name":5,"line":6,"ai":241,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":245,"top":18,"kw":246,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":247,"url":9,"mix":248,"praise":88,"objection":95,"sub":21},17787180,0.29,[24,25,26,27,28],"3550503530000035305000",[32,33,34,34],1794036568792]