I already helped build a language Monte based on Python and E. Guido isn’t invited, because he doesn’t understand capabilities; I’ve had dinner with him before, and he’s a nice guy but not really deep into theory.
I already helped build a language Monte based on Python and E. Guido isn’t invited, because he doesn’t understand capabilities; I’ve had dinner with him before, and he’s a nice guy but not really deep into theory.
Sounds like it’s time to start training code-writing models on leaked Microsoft source code. Don’t worry, it’s not like it’ll “emit memorized code”.
I’d love to link you to their Wikipedia pages, but both of them are redlinked. As far as I can tell, Dr. V. Ronald was an educator who moved from Canada to the USA as part of the whole Xerox PARC thing and probably was valued for mainframe experience; does anybody have a full bio? The current maintainer is Ron Sunk, who did a full run at MIT up through postdoc before going to Red Hat. The names are a coincidence; runk
implements what we now call Sunk summation, after Sunk’s thesis. (As you might guess, that’s an instance of Stigler’s law, since clearly Dr. Ronald discovered Sunk summation first!)
Also, as long as we’re here, I want to empathize a little with Sunk. The GUIs that folks have placed on runk
, like GNOME’s Gunk or Enlightenment’s enk
, look very cool, and there’s rumors of an upcoming unified number-counting protocol that will put them all on equal ground. But @MossyFeathers@pawb.social wasn’t joking; Dr. Arnold’s code literally only reads punch cards, and there’s a façade to make it work on modern Linux and BSD transparently. It predates X11, if that’s any help. The tech debt is real.
Because frankly, Ronald (the current maintainer, not the original author) is very competent. I say this as somebody who has personally been yelled at by Ronald at a kernel summit; I didn’t deserve it, but none of his technical points were wrong. I like to think of myself as the kind of person that, given enough time and documentation, can maintain anything; I think it’d still take three of me to do Ronald’s job. (Well, “job.” I think he technically works for Red Hat or something?) Not to excuse his conduct, just to explain why he’s not been replaced yet.
You’re not crazy or harsh. This is a very real problem. I have been stuck doing business development at every company I’ve worked for. There’s always some shitty load-bearing Django app whose schema determines what the business is capable of doing, and somebody’s gotta maintain it. It’s gotten to the point where I assume that any interesting things I do will be outside of work and not for pay.
I think they’re saying that e.g. you shouldn’t index a natural key unless you know that you’re going to search/collate by that key as a column. Telling the database that a certain column contains (a component of) the primary key is adding a restriction to that column.
This shit is why I cannot recommend Truffle/Graal. Yes, it’s cool technology. Yes, it works well. Yes, I remember Chris Seaton. Yes, most of it is Free Software. However, Oracle is still the fucking lawnmower, and it’s not safe to build upon anything they can convince a judge they might own.
Alternatives include RPython (my preference) and also GNU Lightning.
Oracle Ruined America’s Cup (Larry Ellison)
PyPy exists. (This is news to around 95% of the community.)
With no more details? I’d go with Dulwich. libgit2
is overly picky about inputs and can’t be hacked apart at all, and this affects its bindings too. I recently found myself monkey-patching Dulwich to allow otherwise-forbidden characters in refs, and this would have been fundamentally impossible with anything on top of libgit2
.
She’s a well-known well-documented part of the Silicon Valley cryptofascist movement. Her project names, like “cosmopolitan” and “ape”, are dog whistles.
By “several other things” I presume you mean the cryptofascism.
python3Packages.scikit-image
appears to be available and non-broken in nixpkgs; on my machine, I get /nix/store/w8681ncsw92cn4gq6gyraw4z19r0r6c3-python3.11-scikit-image-0.21.0
. Do you have an actual example?
I understand your point, but given nixpkgs’ position in the community, it might be a moot point.
Your code looked alright. Working in C is a risky chore. You’re early in your journey and I think it’s good to get a taste of many of the traditional techniques before turning towards newer fancier algorithms.
“Haskell and OCaml”, hm? The two concepts you need to internalize are katamorphisms and paramorphisms. You may have heard of “recursion schemes”; these two schemes are the ones available on any tree. Fundamentally, most of a compiler is tree-to-tree transformations (nanopasses), and they are expressible as one of two forms:
If you look again at my AST builder builder, you’ll see .run()
and .walk()
methods, implementing the recursion for any katamorphism or paramorphism respectively. In Haskell, these are called Traversable
types. This is a pun in Monte, where .run()
is also the default method; the syntax makes it easy to perform a katamorphism by passing a tree-traversing object directly to the AST.
Your types are alright, but you’ll want to pass a generic parameter through them, turning them into a valid Functor
in Haskell or a generic module in OCaml. This is a basic defense against the “AST Decoration Problem”, AKA the “AST Typing Problem”. As you add features to your compiler, you’ll realize why these are necessary.
Congratulations on taking a step towards self-hosting and meta-circular compilation. ASDL is a great intermediate meta-language and it can be used to abstract any sort of Builder or Command workflow. This is sometimes called a “narrow waist”; ASDL replaces ad-hoc AST-builder objects with a unified protocol and interface.
For example, I encoded Monte into ASDL while rewriting the compiler in Monte, as part of a self-hosting effort. I also wrote a module which parses ASDL and emits Monte modules, including AST-building tools at runtime. Monte supports E-style quasiliterals, including source-code literals. This let our compiler directly consume ASDL files and emit Monte source code. Going beyond the compiler, this allowed me to encode UI elements and widgets as ASTs and use the Command pattern to write widget-handling objects.
The definition of recursive language can be read on Wikipedia too. Quoting from that page:
All regular, context-free and context-sensitive languages are recursive.
But not all recursive languages are regular. As for “recursive”, it’s a historical term that might not be sufficiently descriptive; today, I’d usually call such languages decidable, to emphasize that they are languages which we can write (always-halting) computer programs to detect.
Microsoft is no longer able to outcompete the Free Software commons. That’s all.
You might want to re-read the thread and think about how you sound, by the way. You’re coming off as a concern troll, not as a member of the Free Software community.
I copied and pasted from the terminal to ensure that I formatted the error message properly. The question-mark prompt is what E used, or at least E-on-Java. Monte used a little Unicode mountain:
⛰ currentProcess.getProcessID() :Int
Result: 2805098
⛰ def x :Int := "42"
Exception: "42" does not conform to Int
⛰ "42" :Int
Exception: "42" does not conform to Int
I can’t really give a reason other than that the prompt characters on Unix-like systems are arbitrary and most REPL libraries allow them to be customized.
[HTML and Markdown] are not grammatically Type 2 (Chomsky-wise, Context-Free); rather, they are Type 3 (Chomsky-wise, Regular).
This is at least half-wrong, in that HTML is clearly not regular. The proof is simple: HTML structurally embeds a language of balanced parentheses (a Dyck language), and such languages are context-free and not regular. I don’t know Markdown well and there are several flavors; it’s quite possible that some flavors are regular. However, traditional Markdown embeds HTML, so if HTML is not regular than neither is Markdown.
I once did a syntax-directed translation of Markdown to HTML in AWK!
Sure. The original Markdown implementation was in Perl and operated similarly. However, note that this doesn’t imply that either language is regular, only that a translation is possible assuming the input is valid Markdown. Punting on recognition means that invalid parse trees have undefined translations, presumably at least sometimes generating invalid HTML.
Incorrect. The hidden gold is Factor. You were close!