1. 68
  1. 10

    Interesting that Zig is now specified with a PEG!

    https://ziglang.org/documentation/0.4.0/#Grammar

    https://github.com/ziglang/zig-spec/tree/master/grammar

    Congrats on the release – it looks like there is a ton of momentum on the project!

    1. 8

      And not just any PEG; a delightfully short one. It’s so nice when languages have simple grammars.

    2. 10

      Monster release, wow. Zig is starting to look amazing - Anyone have any zig projects they have written?

      1. 5

        zig is now a cc and ships with a bunch of linux libcs? This is truly the gift that keeps on giving, thanks andrewrk + contributors for the fantastic release. I’ve been watching zig more closely lately and getting quite excited about it.

        1. 4

          I’m currently learning Nim to replace my Python usage. After this I think I will use Zig to replace my C usage.

          1. 1

            Careful, Zig currently has no HTTP client, nor cURL bindings. I think you can get it to work with @cImport, but I have not had luck with it.

          2. 4

            I’m a patron, would encourage anyone who likes what’s being done to join me.

            https://www.patreon.com/andrewrk

            1. 2

              I am a patron too! It’s kind of cool to be credited in the release note.

            2. 6

              Do I understand correctly that you somehow managed to put a cross-compiling clang + full libc (musl?) + Zig in ~100MB unpacked?!? Where’s the catch??? Regardless, whatever you actually did there, you’re already a certified magician apparently, but if that’s full-blown, no-strings-attached, fully cross-compiling clang, I’m left with no words. Hm, say, could I in theory use it to e.g. build the Linux kernel for any Zig-supported platform? (Assuming I’d tweak all the makefiles in some ways. And I’m not a kernel hacker, so please correct me if I missed something important here.)

              1. 5

                I think one trick is that musl is built lazily from source and cached by Zig caching system. So unpacked Zig distribution does not contain binaries of full musl libc for all cross-compiling targets. It contains musl source instead. (But it works exactly the same, after the initial build is cached.)

                1. 4

                  Hmm. My first Linux installation had a 60MB hard drive (which was partitioned to 30/30MB because of the Windows on the same drive), so 100MB for just a programming environment doesn’t seem that small.

                  BR, old person.

                  1. 5

                    My first computer was a Sinclair ZX81 with 1k of RAM and it made me learn Z80 assembler. Programs were stored on audio tapes. Feel free to stay on my lawn.

                    1. 4

                      I had DOS with 40MB+40MB (2 physical drives), and an oh so fast & snappy Turbo C 2.0 compiler+IDE, so I do know what you’re talking about! :D (Yay, gotoxy, BGI graphics, then 13h graphics mode and the Allegro graphics library… those were the times ;P I think we tried (that’s the key word) to install Slackware once or twice with my Dad, though not sure if still via floppies or already from a CD on some “next gen” hardware.) But at least compared to contemporaries, I do still believe it is impressive! :) Not throwing out the baby with the bathwater, what he managed to squeeze out of the LLVM, while also apparently making it nicely shrink-wrapped and user friendly.

                      1. 4

                        The article lists 30 compile targets in the “support tiers” table. That’s a lot!