• =?UTF-8?Q?=E2=80=9CMake=20awk=20rawk=E2=80=9D?=

    From Anthony@a@9srv.net to comp.lang.awk on Thu Aug 7 20:39:18 2025
    From Newsgroup: comp.lang.awk

    Someone has done a nice package for awk called rawk that adds some niceties—and a reasonably large “standard library”—to awk. It’s a single
    (large) awk file and is expected to work in any posix awk (it doesn’t currently work with the plan9/p9p version, but I’m working with him on
    that).

    https://git.sr.ht/~eli_oat/rawk/

    A blog post by the author introducing it:

    https://eli.li/make-awk-rawk
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Janis Papanagnou@janis_papanagnou+ng@hotmail.com to comp.lang.awk on Sat Aug 9 01:49:17 2025
    From Newsgroup: comp.lang.awk

    Your post appears to me to be completely misleading! According to the
    examples it's NOT an Awk library at all. It's a new language with new
    syntax (running with Awk just as its vehicle). So it's not so much a
    "package FOR Awk", it's rather "Awk has been used FOR this language".
    The bad thing with that - from an Awk users' perspective - is that to
    use it it seems, to use these "library" features, you'd need to learn
    a new language with an own syntax. For Awk users a library written in
    the Awk language would be much more useful. YMMV.

    Janis

    On 07.08.2025 22:39, Anthony wrote:
    Someone has done a nice package for awk called rawk that adds some niceties—and a reasonably large “standard library”—to awk. It’s a single
    (large) awk file and is expected to work in any posix awk (it doesn’t currently work with the plan9/p9p version, but I’m working with him on that).

    https://git.sr.ht/~eli_oat/rawk/

    A blog post by the author introducing it:

    https://eli.li/make-awk-rawk


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Kaz Kylheku@643-408-1753@kylheku.com to comp.lang.awk on Sat Aug 9 02:38:52 2025
    From Newsgroup: comp.lang.awk

    On 2025-08-08, Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    Your post appears to me to be completely misleading! According to the examples it's NOT an Awk library at all. It's a new language with new
    syntax (running with Awk just as its vehicle).

    To be fair, there are languages in which such a thing is considered
    a library, like Lisps!

    Rawk has a translator which is written in Awk (directly, so if you know
    nothing but Awk, you can understand the translator and work on it), and
    the target language is Awk. You need an Awk program to run both the
    translator and the resulting code.

    The only thing that's missing is that you can't launch an interactive
    Awk session where you load Rawk, and then write Rawk programs; it is
    batch translated. But otherwise it is locked squarely into your Awk
    ecosystem.

    Moreover, the goal of this language is to implement Awk, but with
    extensions, and not an entirely different language. Awk programs are
    supposedly valid Rawk programs. It's kind of like Objective C to C,
    ... or something.

    It has fewer non-Awk dependencies than that cppawk think I wrote
    a few years ago, which has a shell script driver, and requires the GNU preprocessor cpp.
    --
    TXR Programming Language: http://nongnu.org/txr
    Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
    Mastodon: @Kazinator@mstdn.ca
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Anthony@a@9srv.net to comp.lang.awk on Sat Aug 9 03:06:04 2025
    From Newsgroup: comp.lang.awk

    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    Your post appears to me to be completely misleading! According to the examples it's NOT an Awk library at all. It's a new language with new
    syntax (running with Awk just as its vehicle).

    I don’t think that’s a fair description. Rawk is entirely additive; all existing awk is valid rawk. And any new bits you’d write using the new
    syntax are nicely contained in the RAWK {} block.

    So it's not so much a
    "package FOR Awk", it's rather "Awk has been used FOR this language".
    The bad thing with that - from an Awk users' perspective - is that to
    use it it seems, to use these "library" features, you'd need to learn
    a new language with an own syntax. For Awk users a library written in
    the Awk language would be much more useful. YMMV.

    Janis

    On 07.08.2025 22:39, Anthony wrote:
    Someone has done a nice package for awk called rawk that adds some
    niceties—and a reasonably large “standard library”—to awk. It’s a single
    (large) awk file and is expected to work in any posix awk (it doesn’t
    currently work with the plan9/p9p version, but I’m working with him on
    that).

    https://git.sr.ht/~eli_oat/rawk/

    A blog post by the author introducing it:

    https://eli.li/make-awk-rawk






    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Janis Papanagnou@janis_papanagnou+ng@hotmail.com to comp.lang.awk on Sat Aug 9 14:39:23 2025
    From Newsgroup: comp.lang.awk

    On 09.08.2025 04:38, Kaz Kylheku wrote:
    On 2025-08-08, Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    Your post appears to me to be completely misleading! According to the
    examples it's NOT an Awk library at all. It's a new language with new
    syntax (running with Awk just as its vehicle).

    To be fair, there are languages in which such a thing is considered
    a library, like Lisps!

    Well, people use all sorts of [(IMO) inappropriate] terminology and
    flimsy comparisons to advertise their babies.


    Rawk has a translator which is written in Awk (directly, so if you know nothing but Awk, you can understand the translator and work on it),

    (...and "work on" the translator??? - To create yet another dialect
    of a new language or dialect?)

    and
    the target language is Awk. You need an Awk program to run both the translator and the resulting code.

    But so what? - Cim or Genie are also written in "C" and also produce
    "C" [intermediate] code, yet clearly creating own languages (Simula
    and Algol 68, respectively). - It's not exactly the same here since
    they are not extending the "C" language, but the underlying language
    platform is hardly an argument against this being a new language.


    The only thing that's missing is that you can't launch an interactive
    Awk session where you load Rawk, and then write Rawk programs; it is
    batch translated. But otherwise it is locked squarely into your Awk ecosystem.

    Moreover, the goal of this language is to implement Awk, but with
    extensions, and not an entirely different language. Awk programs are supposedly valid Rawk programs. It's kind of like Objective C to C,
    ... or something.

    The point is not that you can still use Awk and ignore the extensions.

    The point is that, as opposed to an Awk library with Awk functions, a
    new syntax (for this new language) has to be used. That got not clear
    from the post. But from the examples and statements on the referenced
    pages it's quite obvious, e.g.

    $greet = (name) -> { return ...; };

    There they also write
    "... provides a quick snapshot of rawk's syntax and language features."
    here clearly exposing its nature!

    I was not objecting to yet another new language/dialect introduced[*],
    but just that I considered the post completely misleading.

    Janis

    [*] Although I personally dislike attitudes of "write a new X language
    to make the Y language appear more like the Z language". (But mileages
    likely vary.)


    It has fewer non-Awk dependencies than that cppawk think I wrote
    a few years ago, which has a shell script driver, and requires the GNU preprocessor cpp.


    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From gazelle@gazelle@shell.xmission.com (Kenny McCormack) to comp.lang.awk on Sat Aug 9 12:51:36 2025
    From Newsgroup: comp.lang.awk

    In article <1077fht$1a1tc$1@dont-email.me>,
    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    ...
    The point is that, as opposed to an Awk library with Awk functions, a
    new syntax (for this new language) has to be used. That got not clear
    from the post. But from the examples and statements on the referenced
    pages it's quite obvious, e.g.

    $greet = (name) -> { return ...; };

    Hmmm. Now, what language does this look like???

    There they also write
    "... provides a quick snapshot of rawk's syntax and language features."
    here clearly exposing its nature!

    I was not objecting to yet another new language/dialect introduced[*],
    but just that I considered the post completely misleading.

    Welcome to the 21st century - the age of bullshit.
    Everywhere you look, there is bullshit. The existence of this thread is
    just one more example.

    [*] Although I personally dislike attitudes of "write a new X language
    to make the Y language appear more like the Z language". (But mileages
    likely vary.)

    I assume X = "rawk", Y = AWK, and Z = P***.

    And yes, I get your point and agree 100%.
    --
    The difference between communism and capitalism?
    In capitalism, man exploits man. In communism, it's the other way around.

    - Daniel Bell, The End of Ideology (1960) -
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Janis Papanagnou@janis_papanagnou+ng@hotmail.com to comp.lang.awk on Sat Aug 9 14:59:31 2025
    From Newsgroup: comp.lang.awk

    On 09.08.2025 05:06, Anthony wrote:
    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    Your post appears to me to be completely misleading! According to the
    examples it's NOT an Awk library at all. It's a new language with new
    syntax (running with Awk just as its vehicle).

    I don’t think that’s a fair description. Rawk is entirely additive; all existing awk is valid rawk.

    No doubt.

    The question is: How do we obtain access to the (as you called it)
    "standard library" [functions]?

    And any new bits you’d write using the new
    syntax are nicely contained in the RAWK {} block.

    Sure. If you don't want to use the new language - and thus have no
    gain of the new language's "standard library" functions! - you can
    simply omit this block (and continue using plain *standard* Awk).

    You wrote
    "adds some niceties—and a reasonably large “standard library”—to awk"

    But (as I understood) you'd have to use the _new language_ (with its
    _new syntax_) to use the library.

    Don't get me wrong; I'd appreciate _standard library functions_ for
    Awk - there's indeed a gap to be filled! - but not if I'm forced to
    use a non-Awk language syntax.[*]

    Janis

    [*] That's one reason, BTW, why I'm only scarcely using some of GNU
    Awk's features that require using a new syntax, although these have
    been incorporated quite sensibly without a rather disruptive syntax
    as seen in the language advertised here.

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Janis Papanagnou@janis_papanagnou+ng@hotmail.com to comp.lang.awk on Sat Aug 9 16:22:01 2025
    From Newsgroup: comp.lang.awk

    On 09.08.2025 14:51, Kenny McCormack wrote:
    In article <1077fht$1a1tc$1@dont-email.me>,
    Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:
    ...
    The point is that, as opposed to an Awk library with Awk functions, a
    new syntax (for this new language) has to be used. That got not clear
    from the post. But from the examples and statements on the referenced
    pages it's quite obvious, e.g.

    $greet = (name) -> { return ...; };

    Hmmm. Now, what language does this look like???

    My first association ('$greet' or '->') was Perl, but then I read on
    the posted links something about Rust (that I don't know, so I can't
    tell).

    In another group someone recently said: >> EVERYBODY had their "better
    idea" << (concerning ad hoc inventions of programming languages). This
    is probably true, and obviously not an unlikely explanation also here.

    [...]
    [...]

    [*] Although I personally dislike attitudes of "write a new X language
    to make the Y language appear more like the Z language". (But mileages
    likely vary.)

    I assume X = "rawk", Y = AWK, and Z = P***.

    I had meant it abstractly as a general observation on some language
    inventions (or evolution). Here Z might be "P***", but I don't know.

    Generally I think it's not a bad idea to focus on good concepts and
    (clear) syntax also from other language paragons. (My severe doubts
    are more concerning the mass of new unnecessary languages. And then
    the often poor choice of language concepts, including syntax, etc.)

    Janis


    And yes, I get your point and agree 100%.


    --- Synchronet 3.21a-Linux NewsLink 1.2