Login
You're viewing the f.duriansoftware.com public feed.

Replies

  • 💬 1🔄 0⭐ 1
  • Sep 25, 2024, 8:01 PM

    @woolie @joe

    Did they put New Testaments into the VAX versions?

    It's the only piece of software that I have ever had that came with a free New Testament in the box.

    #MetaWare #HighC

    A MetaWare High C/C++ manual set in a box, viewed from a corner of the box, with the included "Path To Victory" New Testament slid out halfway from the box
    💬 2🔄 0⭐ 1
  • Sep 25, 2024, 8:19 PM

    @joe

    For anyone eagle eyed: Yes, that does say "DirectToSOM Developers Guide" on that book.

    If you want *really* interesting things that people did with their compilers, one of the big ones with #MetaWare #HighC (strictly speaking High C++) was the idea that one could compile C++ classes (with a couple of _Pragmas to annotate things) directly into code that works with IBM's System Object Model, rather than using all of the messy C-style macros.

    #DirectToSOM

    💬 0🔄 0⭐ 1
  • 💬 0🔄 0⭐ 1
  • 💬 1🔄 0⭐ 1
  • 💬 1🔄 0⭐ 0
  • Sep 25, 2024, 6:23 PM

    @joe coroutines are on my todo for next year (quite a full schedule for this year already)

    that's what i was actually referring to, although several of these things are in different levels of progress

    💬 1🔄 0⭐ 1
  • Sep 25, 2024, 6:27 PM

    @erisceleste that's awesome! would this be a compiler state machine transform style design, like the C++ coroutines, or something more traditional involving swapping stacks etc.?

    💬 1🔄 0⭐ 0
  • Sep 25, 2024, 6:41 PM

    @joe hopefully a bit of both!

    im not a fan of the decisions C++ made here (and it isn't very C-friendly as-is anyway), and do think the heavier-weight design is of more user-facing value in practice, but C is also the language where folks want absolute control, so ... im looking forward to re-litigating all of these choices lol

    💬 0🔄 0⭐ 1
  • Sep 25, 2024, 3:05 PM

    @joe @Gte that’s neat. Can you tell if the yielded values were typed? I don’t see it. And were the yield and loop functions blocking?

    💬 1🔄 0⭐ 0
  • Sep 25, 2024, 3:08 PM

    @a @Gte Yeah, the yielded values were typed. You declare a generator with `void generator(ArgType a) -> (YieldType)` to say it yields `YieldType`. That desugars to a closure parameter `void yield(YieldType)`, and the `for` loop syntax desugars to passing the for loop body as a closure argument to the `yield` parameter

    💬 0🔄 0⭐ 1
  • 💬 1🔄 0⭐ 1
  • 💬 2🔄 0⭐ 1
  • 💬 0🔄 0⭐ 1
  • Sep 25, 2024, 4:52 PM

    @oblomov @eniko one limitation with the High C generator design is that it's only sugar over a higher-order function, so you can't pass the generator around and next() it like you would be able to a true coroutine (at least, not without playing hijinks with multiple stacks and setjmp/longjmp)

    though it is cool that by supporting nonlocal exits out of nested functions it can still support break/return/continue out of the sugared for loop

    💬 0🔄 0⭐ 2
  • Sep 25, 2024, 3:42 PM

    @joe

    I wrote up the #MetaWare iterator-driven for back in 2011, because it was one of those things that had been long-since forgotten about; along with what it would look like were it to be incorporated into the (then) C++ standard.

    I am fortunate enough to own a copy of the High C/C++ Language Reference in English; on a shelf right behind me. (-:

    jdebp.uk/FGA/metaware-iterator

    jdebp.uk/Proposals/metaware-it

    #HighC

    💬 1🔄 1⭐ 1
  • Sep 25, 2024, 3:53 PM

    @JdeBP Nice! What version of the language reference do you have? I've seen a few later versions online, but the Fujitsu docs in Japanese are only ones I've been able to find for the version 1.7 that comes with the TOWNS SDK

    (it could also be that Fujitsu re-versioned the compiler when they adopted it, tbf)

    💬 1🔄 0⭐ 0
  • Sep 25, 2024, 4:33 PM

    @joe

    See images. You missed arbitrary base literals, and the conflict between case ranges and the way that Johnny-come-lately Standard C lexed numeric literals, by the way. (-:

    MetaWare even did a Pascal-like modules extension to the C language at one point.

    #MetaWare #HighC

    The front cover of a MetaWare High C/C++ Language Reference book
    The title page of a MetaWare High C/C++ Language Reference book
    One internal page of a MetaWare High C/C++ Language Reference book, with sections on "ANSI Preprocessor Numbers" and "Preprocessor Directives #assert and #unassert"
    💬 0🔄 1⭐ 1
  • Sep 25, 2024, 7:00 PM

    @joe closures are not a new thing by a far stretch. But yeah, it took a while for mainstream languages to get them.
    But FM Towns was already 1990s, wasn’t it? So already past C89?
    All that being said: awesome discovery!

    💬 2🔄 0⭐ 0
  • Sep 25, 2024, 7:14 PM

    @root42 @joe

    MetaWare High C had much of this years before C was standardized. Over half a decade before for full function variables and nested functions, for instance.

    #MetaWare #HighC

    💬 0🔄 0⭐ 1
  • Sep 25, 2024, 8:02 PM

    @root42 the first TOWNS models came out February 1989, right before C89 was finalized. So it does have most of the ANSI features like prototypes, `const`, etc. but still refers to the "upcoming" standard

    💬 0🔄 0⭐ 1
  • 💬 1🔄 0⭐ 1
  • 💬 1🔄 0⭐ 2
  • 💬 1🔄 0⭐ 1
  • Sep 26, 2024, 12:25 AM

    @gingerbeardman i'm not really set up here to do full book scans but if you need to look something up let me know

    💬 0🔄 0⭐ 1
  • 💬 1🔄 0⭐ 1
  • 💬 0🔄 0⭐ 1