<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: mthom</title><link>https://news.ycombinator.com/user?id=mthom</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 21 May 2026 02:41:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mthom" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mthom in "The Shen Programming Language"]]></title><description><![CDATA[
<p>thank you! the scryer community deserves much of the credit too. everyone is welcome and encouraged to join us at <a href="https://github.com/mthom/scryer-prolog">https://github.com/mthom/scryer-prolog</a>! some exciting plans in the pipe</p>
]]></description><pubDate>Tue, 05 Mar 2024 19:35:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=39608202</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=39608202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39608202</guid></item><item><title><![CDATA[New comment by mthom in "The Shen Programming Language"]]></title><description><![CDATA[
<p>I've spinning up a new Shen implementation from scratch, in Racket, which integrates directly with my Prolog implementation, Scryer Prolog:<p><a href="https://github.com/mthom/scryer-shen/">https://github.com/mthom/scryer-shen/</a><p>Several innovations are documented in the README. Both the Prolog implementation and the type checker are written in / hosted by Scryer (Prolog implementation is done, the type checker is in progress). Scryer has many powerful constructs for monotonic reasoning which should help to take Shen's type checker in particular to new heights of power!</p>
]]></description><pubDate>Tue, 05 Mar 2024 17:56:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=39606929</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=39606929</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39606929</guid></item><item><title><![CDATA[New comment by mthom in "Felt"]]></title><description><![CDATA[
<p>not interested unless it is about the 80s indie pop band</p>
]]></description><pubDate>Tue, 05 Jul 2022 03:56:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=31984151</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=31984151</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31984151</guid></item><item><title><![CDATA[New comment by mthom in "The Charles Mingus CAT-alog (1972)"]]></title><description><![CDATA[
<p>The cat that pamphlet is about, Nightlife Mingus: <a href="http://achewood.com/?date=06202003" rel="nofollow">http://achewood.com/?date=06202003</a></p>
]]></description><pubDate>Sun, 09 Jan 2022 20:36:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=29867076</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=29867076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29867076</guid></item><item><title><![CDATA[New comment by mthom in "Scryer Prolog: A modern Prolog implementation written mostly in Rust"]]></title><description><![CDATA[
<p>The ISO standard does not yet say anything about FFIs. I've heard that SWI's FFI is hampered by its garbage collection somehow. Since I'm working on a GC for Scryer now, it's probably a good idea to consider FFI concurrently. "A beginning is such a delicate time." I remember reading that somewhere.</p>
]]></description><pubDate>Fri, 29 Oct 2021 15:22:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=29039534</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=29039534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29039534</guid></item><item><title><![CDATA[New comment by mthom in "Scryer Prolog: A modern Prolog implementation written mostly in Rust"]]></title><description><![CDATA[
<p>No FFI yet, no. I'll first try to adapt LispWork's Foreign Language Interface by writing a compatibility layer for Rust. If that goes well, I'll begin to explore writing a Common Lisp FFI to Scryer, which may give insights on how to interface Scryer to languages like C and Java.</p>
]]></description><pubDate>Fri, 29 Oct 2021 15:19:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=29039505</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=29039505</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29039505</guid></item><item><title><![CDATA[New comment by mthom in "Scryer Prolog: A modern Prolog implementation written mostly in Rust"]]></title><description><![CDATA[
<p>I'm planning version 0.9.0 soon. From there I hope to get back to a regular release schedule.</p>
]]></description><pubDate>Sat, 23 Oct 2021 21:04:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=28972257</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=28972257</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28972257</guid></item><item><title><![CDATA[New comment by mthom in "The Power of Prolog"]]></title><description><![CDATA[
<p>You don't mind if I port Thun to Scryer Prolog, do you? With full credit to you, of course. I'd like to include it as an example.</p>
]]></description><pubDate>Thu, 09 Apr 2020 15:02:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=22823200</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22823200</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22823200</guid></item><item><title><![CDATA[New comment by mthom in "The Power of Prolog"]]></title><description><![CDATA[
<p>Scryer is not yet as fast or feature-rich as SWI. SWI has been in business for about 30 years longer, so that shouldn't surprise anyone. Also, Scryer is committed to strict conformance to the ISO Prolog standard, which SWI has disregarded for a while now.</p>
]]></description><pubDate>Thu, 09 Apr 2020 15:02:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=22823187</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22823187</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22823187</guid></item><item><title><![CDATA[New comment by mthom in "The Power of Prolog"]]></title><description><![CDATA[
<p>Yes, thank you for the Power of Prolog! Scryer was and is being written under its influence.</p>
]]></description><pubDate>Thu, 09 Apr 2020 02:33:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=22819285</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22819285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22819285</guid></item><item><title><![CDATA[New comment by mthom in "The Power of Prolog"]]></title><description><![CDATA[
<p>Decently, I'd say. It is a single executable that you have to build yourself. If you want a recent build, there are a few extra steps, but they're nbd. There are build instructions in the README ("Installing Scryer Prolog") at:<p><a href="http://github.com/mthom/scryer-prolog" rel="nofollow">http://github.com/mthom/scryer-prolog</a></p>
]]></description><pubDate>Thu, 09 Apr 2020 02:31:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=22819278</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22819278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22819278</guid></item><item><title><![CDATA[New comment by mthom in "The Power of Prolog"]]></title><description><![CDATA[
<p>Some coming features of Scryer Prolog for those interested:<p>-  Automatic detection and compilation of partial strings<p>-  Streams, including sockets<p>-  Garbage collection in anticipation of very fast yet logically pure I/O<p>-  Improvements to the instruction dispatch loop (many opportunities for enhancement there, probably a good place to start for a beginning contributor)<p>In the past few months, we've added delimited continuations, tabling, partial strings, and Markus' CLP(B), CLP(ℤ) and format libraries. For a hobbyist project I'd say we're moving at a fairly quick pace!<p>Longer term, we're interested in:<p>-  JIT compilation to native code (Cranelift seems a good candidate?)<p>-  Low-level integration with Common Lisp environments<p>I'd love to have system-level contributors, although library contributions are always very welcome!</p>
]]></description><pubDate>Thu, 09 Apr 2020 00:40:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=22818725</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22818725</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22818725</guid></item><item><title><![CDATA[New comment by mthom in "Prolog and Logic Programming Historical Sources Archive"]]></title><description><![CDATA[
<p>To be clear, the "automatically caught" exception Markus lists in his integer_si example was caught and displayed by the Scryer toplevel.</p>
]]></description><pubDate>Sun, 05 Apr 2020 16:27:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=22786508</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22786508</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22786508</guid></item><item><title><![CDATA[New comment by mthom in "Why Silicon Valley Billionaires Are Prepping for the Apocalypse in New Zealand"]]></title><description><![CDATA[
<p>> I'm not sure what's more amusing/depressing: that these people believe any shift on the order of magnitude the book described in the article predicts will permit continued functioning of society in a way that supports these individuals' wealth, or that these individuals believe that their wealth puts them in a "cognitive elite."<p>It's a tautology of modern western culture that if you're rich, you must be smart, so.. yes.</p>
]]></description><pubDate>Tue, 21 Jan 2020 14:59:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=22107448</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=22107448</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=22107448</guid></item><item><title><![CDATA[New comment by mthom in "Logic Puzzles with Prolog (2017)"]]></title><description><![CDATA[
<p>Thanks!</p>
]]></description><pubDate>Wed, 20 Nov 2019 17:49:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=21586323</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=21586323</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21586323</guid></item><item><title><![CDATA[New comment by mthom in "Logic Puzzles with Prolog (2017)"]]></title><description><![CDATA[
<p>> I'm guessing the Prolog compiler is super complex compared to, say, a C compiler to be able to give developers that much power.<p>They're not that complex. I'm writing one from scratch right now:<p><a href="http://github.com/mthom/scryer-prolog" rel="nofollow">http://github.com/mthom/scryer-prolog</a><p>Speaking of constraint solvers, the author of Power of Prolog, Markus Triska, is now in the process of porting his clp(ℤ) constraint solver over to my system, having already ported his boolean constraint solver, clp(B). They are quite complex, but it helps that they're written entirely in Prolog.</p>
]]></description><pubDate>Wed, 20 Nov 2019 15:35:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=21584784</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=21584784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=21584784</guid></item><item><title><![CDATA[New comment by mthom in "Adventure in Prolog Tutorial (2016)"]]></title><description><![CDATA[
<p>No, and I have no idea what sort of legal can of worms that might open.</p>
]]></description><pubDate>Mon, 26 Aug 2019 04:10:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=20797406</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=20797406</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20797406</guid></item><item><title><![CDATA[New comment by mthom in "Adventure in Prolog Tutorial (2016)"]]></title><description><![CDATA[
<p>I took a break from working on it over the summer, and am about to start again. If anyone would like to pay me to work on it full time, do let me know.</p>
]]></description><pubDate>Sun, 25 Aug 2019 19:36:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=20795005</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=20795005</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20795005</guid></item><item><title><![CDATA[New comment by mthom in "Modern Prolog Implemented in Rust"]]></title><description><![CDATA[
<p>Definitely, yeah. I'd hate to be tasked with creating an interface between SWI and SBCL. I would quickly go mad. Not that it will be a cakewalk with Rust, necessarily, but Scryer is much smaller, and Rust is way better behaved than C.</p>
]]></description><pubDate>Thu, 04 Apr 2019 14:16:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=19572555</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=19572555</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19572555</guid></item><item><title><![CDATA[New comment by mthom in "Modern Prolog Implemented in Rust"]]></title><description><![CDATA[
<p>Yes, that's right. Scryer as in scry-ing, the practice of gazing into crystals to communicate with spirits. I wish I'd thought of a better name but it's too late now.</p>
]]></description><pubDate>Mon, 01 Apr 2019 17:40:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=19545902</link><dc:creator>mthom</dc:creator><comments>https://news.ycombinator.com/item?id=19545902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19545902</guid></item></channel></rss>