HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
munificent
magpie
Python2015–2015
munificent / magpie

magpie

The Magpie programming language

2Distinct people
2Mentions
0Explicit recommenders
381GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The Magpie programming language

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week2 dated mentions

Observed mentions: 2015-05-17 14:46:07 UTC to 2015-10-15 17:48:05 UTC. Weeks start Monday, UTC.

012015-05-11 00:00:00 UTC to 2015-05-18 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMay 112015-05-18 00:00:00 UTC to 2015-05-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-05-25 00:00:00 UTC to 2015-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-01 00:00:00 UTC to 2015-06-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-08 00:00:00 UTC to 2015-06-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-15 00:00:00 UTC to 2015-06-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-22 00:00:00 UTC to 2015-06-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-06-29 00:00:00 UTC to 2015-07-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-07-06 00:00:00 UTC to 2015-07-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-07-13 00:00:00 UTC to 2015-07-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-07-20 00:00:00 UTC to 2015-07-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-07-27 00:00:00 UTC to 2015-08-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 272015-08-03 00:00:00 UTC to 2015-08-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-10 00:00:00 UTC to 2015-08-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-17 00:00:00 UTC to 2015-08-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-24 00:00:00 UTC to 2015-08-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-08-31 00:00:00 UTC to 2015-09-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-09-07 00:00:00 UTC to 2015-09-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-09-14 00:00:00 UTC to 2015-09-21 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-09-21 00:00:00 UTC to 2015-09-28 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-09-28 00:00:00 UTC to 2015-10-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-10-05 00:00:00 UTC to 2015-10-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2015-10-12 00:00:00 UTC to 2015-10-19 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsOct 12

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
May 112015-05-11 00:00:00 UTC2015-05-18 00:00:00 UTC101
May 182015-05-18 00:00:00 UTC2015-05-25 00:00:00 UTC000
May 252015-05-25 00:00:00 UTC2015-06-01 00:00:00 UTC000
Jun 12015-06-01 00:00:00 UTC2015-06-08 00:00:00 UTC000
Jun 82015-06-08 00:00:00 UTC2015-06-15 00:00:00 UTC000
Jun 152015-06-15 00:00:00 UTC2015-06-22 00:00:00 UTC000
Jun 222015-06-22 00:00:00 UTC2015-06-29 00:00:00 UTC000
Jun 292015-06-29 00:00:00 UTC2015-07-06 00:00:00 UTC000
Jul 62015-07-06 00:00:00 UTC2015-07-13 00:00:00 UTC000
Jul 132015-07-13 00:00:00 UTC2015-07-20 00:00:00 UTC000
Jul 202015-07-20 00:00:00 UTC2015-07-27 00:00:00 UTC000
Jul 272015-07-27 00:00:00 UTC2015-08-03 00:00:00 UTC000
Aug 32015-08-03 00:00:00 UTC2015-08-10 00:00:00 UTC000
Aug 102015-08-10 00:00:00 UTC2015-08-17 00:00:00 UTC000
Aug 172015-08-17 00:00:00 UTC2015-08-24 00:00:00 UTC000
Aug 242015-08-24 00:00:00 UTC2015-08-31 00:00:00 UTC000
Aug 312015-08-31 00:00:00 UTC2015-09-07 00:00:00 UTC000
Sep 72015-09-07 00:00:00 UTC2015-09-14 00:00:00 UTC000
Sep 142015-09-14 00:00:00 UTC2015-09-21 00:00:00 UTC000
Sep 212015-09-21 00:00:00 UTC2015-09-28 00:00:00 UTC000
Sep 282015-09-28 00:00:00 UTC2015-10-05 00:00:00 UTC000
Oct 52015-10-05 00:00:00 UTC2015-10-12 00:00:00 UTC000
Oct 122015-10-12 00:00:00 UTC2015-10-19 00:00:00 UTC101

What Hacker News says

2 sources
Yeah, when the language isn't flexible enough to let me get rid of boilerplate using its own primitives, I like doing that too. AST classes are a good example of something where a simple script can pound them out. When I was working on Magpie, I did just that. This script[1] generates this file[2]. [1]: https://github.com/munificent/magpie/blob/master/script/gene... [2]: https://github.com/munificent/magpie/blob/master/src/Syntax/... I got this trick from Jim Hugunin, of Jython and IronPython fame.
In Higher Order Macros in C++
Note that this post is from October 2010, and it appears that the magpie repo[0] hasn't been committed to in over two years. In addition, the static type system was ripped out of the language about six months after this blog post was written[1]. This is understandable, given that the approach to typing seemed pretty ad-hoc, really unsafe, and somewhat incoherent. The whole point of a type system is to say something about the runtime behavior of a program before you actually run it. To actually execute fragments of your program as part of the type checking step, then, sortof defeats the purpose. Not only that, but typing can fail while producing side effects in your system, some of which may be harmful (launching the nukes, etc.) There are some systems that do _abstract_ interpretation at this point, but that is a model of an execution, no
Read the rest
t an actual execution, and is therefore sound in the sense that it will not perform random mutations in this strange running/not running superposition. [0]: https://github.com/munificent/magpie [1]: https://github.com/munificent/magpie/commit/58742b0e7f3431c1...
In Bootstrapping a Type System

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.