The Mercury logic programming system
93 points by Antibabelic 4 days ago | 23 comments
  • ElectroSlayer 3 days ago |
    Oh wow, Zoltan was one of my lecturers at UniMelb, and in one semester we were tasked with learning his Mercury language. So good to see it thriving still.
    • zeafoamrun 2 days ago |
      I TA-ed for Zoltan's 2nd year "learning how to use bash/gdb/etc" class and it was a lot of fun. I hope they're still teaching that class.
      • angry_octet 2 days ago |
        It was called "433-252 Software Engineering Principles & Tools" until ~2008 I think (433-244 before that) but then it seems to have been reorganised. Tbh, Unimelb Comp Sci is a shadow of it's former self, a victim of the 'Melbourne Model' common core sausage factory concept.
        • ofrzeta 2 days ago |
          Is it the same model as the "Bologna process" in Europe, which is kind of funny because "Bologna" also refers to a type of sausage in the US of A.
    • angry_octet 2 days ago |
      I hope he's stopped drinking Fanta.
  • thechao 3 days ago |
    The closest that I could find to a "what the fuck is this?" page is:

    https://www.mercurylang.org/about.html

  • ororroro 3 days ago |
    There are files in this repository that were last touched 32 years ago. Any reason to be posting it now?
    • epgui 3 days ago |
      Why is that relevant or noteworthy? There are files that were updated recently too.
      • ororroro 2 days ago |
        Why the aggression? This language while cool has existed for decades and never taken off. I just wanted a reason to believe it relevant so I could have an excuse to take another look.
        • hackyhacky 2 days ago |
          Why do you think "oldest untouched file" is a good metric for relevance? Do you know what is the oldest untouched file in gcc or Python?
        • epgui 2 days ago |
          There was no aggression.
        • srean 2 days ago |
          "Taking off" is an unreliable metric of capability and fitness to a problem you may want solved.
    • kaonwarb 2 days ago |
      Not that it necessarily applies here, but as a heuristic: https://en.wikipedia.org/wiki/Lindy_effect
      • ororroro 2 days ago |
        Interesting point. My understanding of Mercury is that it is hard carried by Zoltan so it has a bus factor of 1.
        • zeafoamrun 2 days ago |
          I always understood it was a teaching language for students who wanted to get programming language implementation experience.
    • zeafoamrun 2 days ago |
      Damn dude you're making me feel old
  • KnuthIsGod 2 days ago |
    Last release was in 2023.

    It is effectively dead.

    This is a terrible shame, because this would have been an nice modern alternative to Prolog.

    • jamwise 2 days ago |
      But the repo has had fairly consistent commits since then. Not huge activity, but not sure I'd call it dead.
    • kryptiskt 2 days ago |
      Last commit was 2 minutes ago. Seems like a better measure than releases, different projects have different release cadences.
    • wduquette 2 days ago |
      You say “dead”, I say “stable”. Not everyone wants to base their work on a moving target.
  • 5- 2 days ago |
    prince, a high quality html renderer used for typesetting, is written in mercury:

    https://www.princexml.com/doc/acknowledgements/

    • srean 2 days ago |
      Was it written in Prolog at any point in time ?

      Perhaps I am misremembering, but my brain is telling me of a CSS or PDF parser written in Prolog.

  • mattgoupil 2 days ago |
    Something you might find interesting to look at is Rego, a datalog-derived language been used for writing security policies. Rego is dynamically typed, so no real protection. It's input is basically JSON and it can apply JSON-Schema, but that's it. I think it would be interesting to look at Rego as a restricted version of this and see what types buys for a Rego user. It's probably one of the larger areas of logic programming and has brought people into the fold, so to speak.