惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
P
Proofpoint News Feed
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
博客园 - Franky
V
V2EX
爱范儿
爱范儿
J
Java Code Geeks
小众软件
小众软件
Last Week in AI
Last Week in AI
The Cloudflare Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
酷 壳 – CoolShell
酷 壳 – CoolShell
The Register - Security
The Register - Security
GbyAI
GbyAI
Vercel News
Vercel News
Y
Y Combinator Blog
腾讯CDC
F
Fortinet All Blogs
I
InfoQ
N
Netflix TechBlog - Medium
B
Blog RSS Feed
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
V
Visual Studio Blog
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
H
Help Net Security
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
Scott Helme
Scott Helme
T
Tor Project blog
U
Unit 42
Google Online Security Blog
Google Online Security Blog
PCI Perspectives
PCI Perspectives
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
NISL@THU
NISL@THU
D
Darknet – Hacking Tools, Hacker News & Cyber Security
aimingoo的专栏
aimingoo的专栏
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
Security Archives - TechRepublic
Security Archives - TechRepublic

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Introducing Database Traffic Control — PlanetScale Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
Cessation of public development of Kefir C compiler
2026-06-01 · via Hacker News
Clarification (June 2, 2026)

After posting the original announcement, I have observed several interpretations of it, including "vibecoding rant", "burnout" and similar ones, that overly focus on individual passages. These go against my communicative intention, so I am compelled to post a short clarification reiterating the main points more directly.

  1. The project has reached a stage where the development effort I would consider appropriate does not match the project's actual status, making it unsustainable against my other commitments. The only available solutions are either elevating its status, or giving up on certain quality considerations. I have not found a way to do the former, and do not want to degrade the quality of the publicly available portion for the sake of fun experiments. Thus, I consider transferring it into private mode the most appropriate solution.
  2. So far, I have not observed any substantive public interest in the project that would have made another path realistic. The fact that the cessation announcement generated more public discourse than the project itself ever did reinforces this observation. I do appreciate bug reports I have received over years and packaging efforts.
    Furthermore, unfortunately, my very limited public interactions were often rather discouraging. I preferred to gloss over these in the original announcement, calling them unpleasant interactions, however now I will be more explicit: these included personal attacks, manipulation attempts, feature requests followed by ghosting, people making commitments on their own volition and never following through, and such.
  3. The AI training concerns that are expressed in certain passages are tertiary compared to the above, and only contribute partially to the decision. I do feel that, in the absence of anything else, scraping the code goes against my own intentions in publishing it under GNU GPLv3. I am NOT discussing or making any general claims about legality, morality, ethics, or the spirit of copyleft outside of my own subjective licensing intention.
  4. The original announcement was exclusively published to organise my own thoughts and fulfill the commitment I self-imposed in the README. This clarification is published because I found the dominant interpretations overly narrow, and I want the intended meaning to be on record.

Therefore, I concluded that neither the general public nor I lose anything substantial if the project moves into private mode. No more clarifications or elaborations will be issued. The remaining code will be pushed to the master branch in the coming days; bug reports against the publicly available code base are welcome.

Have a great day!
You know what to do next

To whom it may concern,

Today I announce the cessation of public development of Kefir C compiler and transition the work into private mode for an indefinite period of time.

What is happening?

First and foremost, I myself am saddened by this change, however consider it necessary for sustainability of the project.

From now on and for an indefinite period of time, no new major developments of the Kefir compiler project will be distributed publicly. The work on the project will continue privately.

The new development model covers all new substantial changes to the project, with an exception made for bug fixes and trivial minor improvements, as well as anything else I might deem specifically necessary to publish. The currently published body of work will remain available. Therefore, this change should not discourage anybody from reporting bugs to the existing publicly available code base. Any reported issues will be addressed publicly to the extent possible.

What happens to currently unreleased code?

There is a certain amount of code in the currently published development branch. These changes are not trivial, but in my view these do not warrant a separate release. In the coming days, I plan to stabilize this changeset and keep it as unreleased snail-pace master branch. Any potential bug fixes will be published there.

What does "private" mean?

That I keep all new code to myself, for my own enjoyment, entertainment and amusement. I do not intend to sell anything, distribute binaries, etc. If anybody is particularly substantively interested, I might share in very limited fashion, but this is not my intention.

Why?

TLDR

Summing up the lengthy passages below, I would like to preserve the fun spirit of the project for myself, while keeping it sustainable and healthy in the grand scheme of things. I also do not want my future work to be exploited for naught in commercial purposes. Making it private solves both issues. Apparent downside of this decision seems very limited, given tepid public interest and lack of options to legitimize it.

I will elaborate certain thoughts below. Feel free to skip this.
Click to read rambling
Scope and development resources

From the very beginning, I have worked on the project purely out of interest for compiling, and the C programming language provided a rich environment in this respect. Any other motivations were secondary at best, and were retrofitted post-hoc. Consequently, publication of the source code has always been just a side effect of having it. I simply had no better thing to do with it in the first place. I have worked on the project in my spare time and on my own budget.

However, by this point, the compiler has outgrown my capacity to sustain that development reasonably across all important dimensions: each change needs to take into account correctness across the whole test suite, integration with other features, optimization pipeline and performance considerations, compiler efficiency, other concerns (e.g. debug information management). A substantial chunk of development time goes into planning the changes and debugging fallout, significantly slowing down interesting experiments. Maintaining a reasonable pace of development would require me to either drop the quality bar and give up on some of the aforementioned considerations, or to invest even more time and development resources. I am not willing to do the former, and I am not able to do the latter healthily while meeting my primary obligations elsewhere.

Plainly stating, I am not able to preserve current status quo while keeping this fun for myself. Moving the project into private mode lets me mentally reframe it as a purely fun endeavour without any further serious considerations.

Rational calculations

Raison d'etre for this project's existence has always been deeply subjective and irrational, in the first place. Nevertheless, I was also doing some accounting for this sink of time, especially, lately when scope and development resource mismatch became more acute. Frankly, even for a project that has never had ambitions for tangible success, the "return on investment" has been abysmal. At this point, I concluded that I need to take this into consideration seriously.

In particular, by "ROI" I mean a much wider range of things, including (and actually, primarily focusing on) non-monetary aspects. Seeing real feedback, interactions, positive engagement is always encouraging and motivating. I am deeply thankful to everybody who took the time to explore the project, use it, report bugs, package it, or engage with it in any other way. However, the current level of activity I am observing in this regard, rationally, does not allow me to move my work from a fun hobby into some kind of altruistic pro bono community service. This current state of affairs is perfectly reasonable and expected, I do not delude myself about importance or impact of this work, but this is also important in my "ROI" calculus.

In the last few months, I have attempted to make some arrangements that would legitimize this work, and enable me to work on the compiler in a beneficial manner (again, beneficial in broader, not necessarily financial sense). Unfortunately, my attempts were futile and did not bring any results.
Since last autumn, I have also tried to engage in slightly more publicity regarding this work, including recording a talk, writing some announcements. The degree of public presence was limited deliberately by my own view of the project (un-)importance, my dignity and priorities. Sadly, this experience hasn't been neutral and I have suffered some unpleasant interactions resulting from this.

Greater shifts in software development

Recently, software development as a discipline has changed significantly with advancements in artificial intelligence. This project in particular has been unconcerned with new coding practices so far, primarily, because I derive pleasure from hand-written implementations of my ideas, and believe that overcoming challenges the hard way is the main value I get from it.

Yet, this shift made me re-evaluate the open source code publishing. Prior to that, I have been positive about free and open software, and considered this to be the default mode for work such as kefir. I did not require any justifications from myself to publish something. Now, however, I feel more and more that the main beneficiaries of my unpaid work are companies scraping the internet to train large language models. Currently accepted status quo in this area goes against my own intentions in licensing this work under GNU GPLv3. Publication has ceased to be the "null hypothesis" for me, and requires explicit mental justification which I am not able to provide.

Is this a spontaneous decision?

No, in private discussions I have floated this idea for almost a year already. However, there were still things that I wanted to get published despite the above considerations. I have repeatedly broken self-imposed deadlines in making this announcement since at least last December. In the last few months, I was also waiting for outcomes of aforementioned arrangement attempts.

Is this the final decision?

Not necessarily. I might change my mind, I might get bored, there might appear new factors that I haven't considered. This is the new status quo based on my current vision of the situation. Any changes will be announced.

I have something to say...

If you believe that my reasoning is incomplete, or I am missing something important, feel free to contact me. If you have anything that might change the calculus, I would be interested in hearing. If you believe there is anything else important to be said, likewise. If you have a bug to report, you are welcome to do so. If you want to troll or ridicule me, you might do so too, this is some form of recognition, after all.

That being said, this announcement is made NOT for fishing for attention. I am simply announcing the change, the way I promised to do in the README.

Anything else?

As with prior announcements, the project is thoroughly dedicated to Sloka & Kauguri.

However, this is not all. I have some more unnecessary thoughts and preemptively answered questions below, if anybody is interested.

Click to read even more rambling
Why did you write all of this?

I needed to have my thoughts in order about this decision, and writing them down in publishable format is the best way to achieve this. I do not expect anyone to care in particular, this is written for me first and foremost.

You should collect donations/market the project/be more public/etc!

The project already takes significant chunk of time. By engaging into such activities, I would need to give up any remaining development time doing activities I don't like for unclear prospects. This is too demanding, and most probably wouldn't provide stable path forward anyway.
Furthermore, in my view the project does not warrant being so noisy and clingy about it. I have certain dignity to preserve.

You should use AI and get X times more productive!

As mentioned, most of development time is actually spent thinking about solutions, their integration into the current code base, implications, architecture and design. And then debugging the fallout. Portion of time spent actually writing code is relatively small most of the time. In this project, I do use AI for high level conceptual design discussions, but enjoy writing the final code myself. Besides, larger boost to my productivity would be spending comparable (to typical agentic AI subscription) amount of money on improving CI infrastructure, as validating changes in real time is overall the most severe bottleneck I face.

The project is missing Y to get successful!

Indeed, many technical things are still missing. Constraint is time and resources I can spend on design, validation and debugging. Churning half-working implementations is possible, but not feasible (this also applies to the above note on AI use).

The project is over-engineered, you are yourself to blame!

Over-engineering concern was stated by myself too. However, this over-engineering is actually an architecture that did not come to fruition due to development resource constraints. Below, I will quote an excerpt of an email I sent sometime in April 2026. This is a very brief explanation of my vision, which would probably have warranted more elaboration in other circumstances.

Not necessarily. Overengineering is not an absolute judgement, but rather judgement with relation to current capability.
If I take capability of kefir as it is, yes, it is overengineered. However, the only reason I take "capability as it is" is that I have arrived at a point where developing the capability further within current architecture costs me more than I could justify. The current architecture enables development in many different directions, but imposes certain significant costs in doing so. If I had funding and could work on it full time, the current architecture would be totally appropriate. As an example, I will take the IR module. It was envisioned and implemented as completely platform independent stack machine abstraction isolating the compiler frontend, and it works like this -- it provides full bytecode set, type language, data layout language, inline assembly integration, plus a set of APIs to access platform specific information based on that. In principle, it could have been advanced as a totally independent, stable bytecode format similar to JVM bytecode or webassembly. And I could have developed an interpreter and multiple backend compilers similar to HotSpot architecture. However, I cannot afford such detours, so I had just taken the most straightforward route on putting a C frontend on top of it and optimizing compiler backend below it. Similarly, the optimizing compiler itself was structured in a very particular way: stack IR -> optimizer IR -> target specific virtual 3AC -> target specific IR -> physical 3AC -> code emission into the assembly. Of course, now it seems redundant but it is not necessarily, if one considers greater vision. Optimizer IR is platform independent by and large, so it could be progressively applied and then either interpreted again, serialised into bytecode, or lowered down into the virtual 3AC cheaply (e.g. without selection DAG and such features). Virtual 3AC is itself not accidental design. In certain less optimized modes, it can be devirtualized right away into physical form with little extra costs. Secondly, it again could provide a separate input language/interface similar to AsmJit, so one could just generate virtual x86-64 code from their application and let the backend handle some optimizations for it and emit it in different ways. One could even try to interpret or JIT compile virtual 3AC, e.g. for certain dynamic analysis a la valgrind. Target IR itself was designed as the final component of optimizing chain to provide faithful representation of machine resources in SSA form, I believe more faithful than MachineIR of LLVM, and it enables me to avoid instruction selection complexities (like SelectionDAG) by offloading these into Target IR passes. Finally, physical 3AC itself is not accidental. Right now, it is only used to generate different assembly syntaxes, but nothing stops direct generation of executable code from it, e.g. for JIT purposes or just bypassing the assembler. One could in principle build an assembler tool on top of it.
So, you see, the whole pipeline was designed as pluggable framework with many potential use cases across the whole stack. My overengineering grievance is not that I could have achieved current state with less, but that I cannot achieve my greater vision while keeping it healthy and reasonable.

Final remarks

I would like to thank once again anybody who engaged with the project in any form. I also thank those who have bothered to read this, fully or in part. I even thank those people that have irritated or bothered me, because this taught me some lessons.

Have a great summer!
You know what to do next (of course you do).