<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: certik</title><link>https://news.ycombinator.com/user?id=certik</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 15 Jun 2026 12:12:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=certik" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by certik in "Tectonic: A modernized, complete, self-contained TeX/LaTeX engine"]]></title><description><![CDATA[
<p>Just wanted to say big thanks to the maintainers, I've been using tectonic the last couple years as my only LaTeX distribution, works everywhere (including macOS), it's available in conda-forge, so I can just have it as a dependency in my projects. Everything "just works", that's the best way to describe it.<p>Thank you for fully fixing LaTeX for me.</p>
]]></description><pubDate>Sat, 13 Jun 2026 06:21:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48513985</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=48513985</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48513985</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>I do come from the scientific community, so didn't know until today that not every community uses the term "codes".</p>
]]></description><pubDate>Tue, 03 Mar 2026 05:01:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=47228292</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47228292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47228292</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>I haven't used vcpkg, but looking at their tutorial at <a href="https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-bash" rel="nofollow">https://learn.microsoft.com/en-us/vcpkg/get_started/get-star...</a>, it seems you still have to use cmake, and if so, it is indeed more complex than fpm (<a href="https://fpm.fortran-lang.org/tutorial/hello-fpm.html" rel="nofollow">https://fpm.fortran-lang.org/tutorial/hello-fpm.html</a>) where you don't use cmake. Fpm is similar to Cargo. Cargo is indeed as simple as fpm. However, as I mentioned above, this is just a tooling issue, somebody can (and should!) write Cargo for C++. In fact, fpm can build C++ projects also.<p>The best package manager that I like the most for C++ is Pixi (<a href="https://pixi.prefix.dev" rel="nofollow">https://pixi.prefix.dev</a>), that works really well.</p>
]]></description><pubDate>Tue, 03 Mar 2026 04:59:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47228280</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47228280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47228280</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>No, you "only" have to write a backend. Which is still a lot of work, but much less work than another compiler. There are multiple ways it can be designed, but one idea that I like the most right now is to create an API for LLVM, and then implement the same API ourselves with a fast backend. That way we reuse <i>everything</i> in current LFortran, including lowering to LLVM, we just have to refactor it to use our own API instead.</p>
]]></description><pubDate>Tue, 03 Mar 2026 04:52:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47228226</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47228226</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47228226</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>Yes, that's one answer. But I actually think you can absolutely have both in the same compiler. But you need to have two backends, as I described. You use the custom backend for development (fast to compile) and you use LLVM for release (fast to run).</p>
]]></description><pubDate>Mon, 02 Mar 2026 22:56:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47225402</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47225402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47225402</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>Author of LFortran here. LFortran is written in C++, because I knew I will be able to fully deliver the project in it. So I know C++ and Fortran very well. I can say for sure that C++ is not superior in every way. It's slower to compile, hard to deal with dependencies (that's more of a tooling issue), it's more complex, and specifically for numerical array-oriented computing C++ is actually much more verbose and harder to read. For non-numerical computing, such as compiler development, C++ is not a bad choice, that's why I chose it. The slow compilation of C++ is truly a major problem for me, and after we deliver LFortran we'll see if maybe moving to C might be worth it, just to get 10x faster compilation of the C/C++ sources of LFortran itself (the speed of LFortran I think would be similar, we already use arenas and other tricks for performance, which can be done in C just as easily).</p>
]]></description><pubDate>Mon, 02 Mar 2026 22:50:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47225322</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47225322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47225322</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>Author of the blog post. It's just being a non-native speaker and writing the blog post by hand shows these little mistakes. I've been using the terms "code" and "codes", but you might very well be right that my usage is not entirely correct. I'll ask native speakers what the proper usage is here.</p>
]]></description><pubDate>Mon, 02 Mar 2026 22:44:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=47225256</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47225256</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47225256</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles fpm"]]></title><description><![CDATA[
<p>Author of LFortran here. The historical answer is that both LFortran and Flang started the same year, possibly the very same month (November 2017), and for a while we didn't know about each other. After that both teams looked at the other compiler and didn't think it could do what they wanted, so continued on their current endeavor. We tried to collaborate on several fronts, but it's hard in practice, because the compiler internals are different.<p>I can only talk about my own motivation to continue developing and delivering LFortran. Flang is great, but on its own I do not think it will be enough to fix Fortran. What I want as a user is a compiler that is fast to compile itself (under 30s for LFortran on my Apple M4, and even that is at least 10x too long for me, but we would need to switch from C++ to C, which we might later), that is very easy to contribute to, that can compile Fortran codes as fast as possible (LLVM is unfortunately the bottleneck here, so we are also developing a custom backend that does not use LLVM that is 10x faster), that has good runtime performance (LLVM is great here), that can be interactive (runs in Jupyter notebooks), that creates lean (small) binaries, that fully runs in the browser (both the compiler and the generated code), that has various extensions that users have been asking for, etc. The list is long.<p>Finally, I have not seen Fortran users complaining that there is more than one compiler. On the contrary, everybody seems very excited that they will soon have several independent high-quality open source compilers. I think it is essential for a healthy language ecosystem to have many good compilers.</p>
]]></description><pubDate>Mon, 02 Mar 2026 22:38:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47225196</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=47225196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47225196</guid></item><item><title><![CDATA[New comment by certik in "LFortran compiles PRIMA"]]></title><description><![CDATA[
<p>It was a lot of corner cases that we had to get right, it's the most advanced code that LFortran can compile. I think none of the features individually is difficult to support, but there were a lot of them.</p>
]]></description><pubDate>Mon, 10 Mar 2025 14:29:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=43321069</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=43321069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43321069</guid></item><item><title><![CDATA[New comment by certik in "MP944: The First Microprocessor (2014)"]]></title><description><![CDATA[
<p>Does anyone know how many transistors were on each chip?<p>The complete system of 28 chips had 74,442 transistors. From that it follows that some chip had at least 74,442 / 28 = 2,659 transistors. But I am guessing some chips had less, and some chips had more. I am curious how many transistors the chips had on this computer, specifically what was the maximum amount per IC.</p>
]]></description><pubDate>Fri, 31 May 2024 13:20:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=40534790</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=40534790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40534790</guid></item><item><title><![CDATA[New comment by certik in "Coding My Handwriting"]]></title><description><![CDATA[
<p>Beautiful! I would like to see more cursive handwriting fonts. Here is my contribution from 2 years ago:<p><a href="https://certik.github.io/slabikar-otf/" rel="nofollow">https://certik.github.io/slabikar-otf/</a></p>
]]></description><pubDate>Mon, 20 May 2024 13:51:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=40415476</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=40415476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40415476</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>We are progressing. We'll tackle parallel loops very soon, and get some GPU offloading working. Our main focus is still on just compiling Fortran codes via LLVM. Once we can compile most codes, we'll focus on the various other backends, including GPU, running in the browser and Jupyter.</p>
]]></description><pubDate>Sat, 06 Apr 2024 02:05:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=39949410</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39949410</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39949410</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>The LLVM backend just does the usual floating point calculation for those.</p>
]]></description><pubDate>Sat, 06 Apr 2024 01:58:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39949370</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39949370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39949370</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>Yes, I also like The Theoretical Minimum. Ha, I didn't realize there is more than one book! I think I only have the classical mechanics book. Need to buy the other ones.<p>I tried to organize many physics subjects in a similar manner, with many worked out examples (minimal, but non-trivial/complete):<p><a href="https://www.theoretical-physics.com/dev/index.html" rel="nofollow">https://www.theoretical-physics.com/dev/index.html</a></p>
]]></description><pubDate>Fri, 05 Apr 2024 21:00:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=39947158</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39947158</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39947158</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>Thank you!</p>
]]></description><pubDate>Fri, 05 Apr 2024 20:55:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=39947094</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39947094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39947094</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>Thanks. Please report all bugs that you find. I talked to my collaborators, we'll try to get some simple demo of Fortran->LLVM->WASM working soon, we need to figure out the runtime library issue (like you did), hook it into the driver, etc. I was in fact thinking about exactly this just last week, to easily distribute my simple computational codes online via static pages.<p>I think exactly the approach that you took with Flang should work with LFortran also.</p>
]]></description><pubDate>Fri, 05 Apr 2024 20:54:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=39947088</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39947088</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39947088</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>Nothing, we can compile x*3. We can't compile x**3, because we do not have a runtime library setup for WASM yet (Flang above had the same issue) and WASM can do x**2, but arbitrary power, such as x**3, requires a runtime power function that we haven't implemented yet. If you want to help, you can fix it probably quite easily right here: <a href="https://github.com/lfortran/lfortran/blob/69d488b1d1fd26b163536199e0c5492ef990f285/src/libasr/codegen/asr_to_wasm.cpp#L1665">https://github.com/lfortran/lfortran/blob/69d488b1d1fd26b163...</a>.</p>
]]></description><pubDate>Fri, 05 Apr 2024 20:50:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=39947054</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39947054</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39947054</guid></item><item><title><![CDATA[New comment by certik in "Fortran on WebAssembly"]]></title><description><![CDATA[
<p>The author of LFortran here.<p>The demo at <a href="https://dev.lfortran.org" rel="nofollow">https://dev.lfortran.org</a> uses our direct WASM backend that does not use LLVM. It is currently more limited, and indeed, we currently do not support the cubic power x**3 there, only square power x**2. Our most advanced backend is LLVM, and that of course supports x**3 and a very wide subset of Fortran (such as 60% of all SciPy packages fully compile and all SciPy tests pass). However, LLVM is huge and relatively slow, so we do not use LLVM in the online demo, which runs the compiler itself in the browser.<p>For offline LLVM based WASM compilation I think LFortran is ready be tried. We'll be happy to help!</p>
]]></description><pubDate>Fri, 05 Apr 2024 18:06:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=39945300</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=39945300</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39945300</guid></item><item><title><![CDATA[New comment by certik in "Fortran 2023"]]></title><description><![CDATA[
<p>GFortran, Flang and LFortran are all open-source compilers that support modern Fortran.</p>
]]></description><pubDate>Wed, 22 Nov 2023 18:30:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=38383093</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=38383093</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38383093</guid></item><item><title><![CDATA[New comment by certik in "Lfortran: Modern interactive LLVM-based Fortran compiler"]]></title><description><![CDATA[
<p>Awesome! Report all bugs. :)</p>
]]></description><pubDate>Tue, 29 Aug 2023 03:09:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=37303114</link><dc:creator>certik</dc:creator><comments>https://news.ycombinator.com/item?id=37303114</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37303114</guid></item></channel></rss>