<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: divingstar</title><link>https://news.ycombinator.com/user?id=divingstar</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 07 Apr 2026 10:25:22 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=divingstar" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by divingstar in "Len – types, relations, and generation contracts for LLM codegen"]]></title><description><![CDATA[
<p>Indeed, both Verus and Dafny are very close to home here — thanks for the pointer. I did feel at times that I might be reinventing the wheel a bit.<p>I also thought about pushing more toward Lean and theorem proving instead of a lighter SMT-style direction, but programming and mathematics diverge quickly unless that abstraction boundary is handled carefully. To me, though, that mostly concerns the L1 -> L2 step.<p>L2 is still the least settled layer and the one I am actively exploring. The idea there is to let relations acquire semantic interpretations: this relation may be realized as a class, an embedding, a parser, etc. Since there is often more than one valid implementation route, I want that choice to be explicit.<p>And yes, part of the point is exactly to constrain and verify that the end result still matches the original intent at some IR/formal level.<p>I have been experimenting with this in a calculator/parser example, where the pieces are starting to come together more nicely:
<a href="https://github.com/ewiger/len/tree/main/examples/advanced/calculator" rel="nofollow">https://github.com/ewiger/len/tree/main/examples/advanced/ca...</a><p>So I am beginning to think the layering does offer something beyond plain Markdown specs. L1, at least as I currently see it, is intentionally very small: just types and relations, in a logic-oriented style somewhat closer to Prolog — or even SQL — where the world is modeled relationally and constraints are expressed over that. Essentially having more than one targets on L2 level (at the same time in one module) will help to generate both the code and the semantical verification. That's actually a very fruitful observation - big thanks!</p>
]]></description><pubDate>Mon, 23 Mar 2026 22:55:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47496247</link><dc:creator>divingstar</dc:creator><comments>https://news.ycombinator.com/item?id=47496247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47496247</guid></item><item><title><![CDATA[New comment by divingstar in "Len – types, relations, and generation contracts for LLM codegen"]]></title><description><![CDATA[
<p>I accidentally ended up designing something that can probably be called a meta-programming language.<p>Repo:
<a href="https://github.com/ewiger/len" rel="nofollow">https://github.com/ewiger/len</a><p>`len` is an experiment in making specifications more central than code itself. The rough model is:<p>* write intent and examples in natural language
* capture the core structure with types, relations, and contracts
* describe how that model should map to concrete generated code<p>In the repo I currently call those layers L0, L1, and L2.<p>This is very much an early project. The current tooling is a small Go CLI that validates the structure of `.l1` files, and the language design is still evolving. So this is not a polished “look what I built” launch.<p>I’m sharing it because I’d like honest feedback on whether the core idea is interesting, confused, redundant with existing tools, or maybe useful in some narrower niche.<p>Comments, criticism, and pointers to similar work would be very welcome.</p>
]]></description><pubDate>Mon, 23 Mar 2026 13:37:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47489365</link><dc:creator>divingstar</dc:creator><comments>https://news.ycombinator.com/item?id=47489365</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47489365</guid></item><item><title><![CDATA[Len – types, relations, and generation contracts for LLM codegen]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/ewiger/len">https://github.com/ewiger/len</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47489364">https://news.ycombinator.com/item?id=47489364</a></p>
<p>Points: 2</p>
<p># Comments: 4</p>
]]></description><pubDate>Mon, 23 Mar 2026 13:37:14 +0000</pubDate><link>https://github.com/ewiger/len</link><dc:creator>divingstar</dc:creator><comments>https://news.ycombinator.com/item?id=47489364</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47489364</guid></item><item><title><![CDATA[New comment by divingstar in "[dead]"]]></title><description><![CDATA[
<p>Set up a small-scale kafka cluster on local kubernetes - perfect for functionality testing and local development.</p>
]]></description><pubDate>Wed, 12 Aug 2020 17:51:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=24134752</link><dc:creator>divingstar</dc:creator><comments>https://news.ycombinator.com/item?id=24134752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24134752</guid></item></channel></rss>