https://drewdevault.com/2021/03/19/A-new-systems-language.html We are building a new systems programming language March 19, 2021 on Drew DeVault's blog It's an open secret: the "secret project" I've been talking about is a new systems programming language. It's been underway since December '19, and we hope to release the first version in early 2021. The language is pretty small -- we have a mostly complete specification which clocks in at 60 pages. It has manual memory management, no runtime, and it uses a superset of the C ABI, making it easy to link with libraries and C code. It should be suitable almost anywhere C is useful: compilers, system utilities, operating systems, network servers and clients, and so on. use io; export fn main() void = { const greetings = [ "Hello, world!", "!Hola Mundo!", "Geia sou Kosme!", "Privet mir!", "konnichihaShi Jie !", ]; for (let i = 0z; i < len(greetings); i += 1) { io::println(greetings[i]); }; }; We could compare our language to many other languages, but let's start with how it compares to C: * More robust error handling via tagged unions * Improved, Unicode-aware string support * Memory safe array, slice, and pointer types (and unsafe versions, if needed) * Direct compatibility with the C ABI for trivial C interop * A simpler, context-free, expression-oriented syntax * A standard library free of the constraints of POSIX or the C standard Our language currently supports Linux on x86_64 or aarch64, and we plan on expanding this to the BSDs, Haiku, and Plan 9; as well as i686, riscv64 and riscv32, and ppc64 before the release. I plan to continue keeping the other details a secret until the release -- we want the first release to be a complete, stable, production-ready programming language with all of the trimmings. The first time most people will hear about this language will also be the first time they can ship working code with it. However, if you want to get involved sooner, there's a way: we need your help. So far, we've written most of the spec, the first of two compilers, and about 15,000 lines of the standard library. The standard library is what needs the most help, and I'm seeking volunteers to get involved. The standard library mandate begins with the following: The xxxx standard library shall provide: 1. Useful features to complement xxxx language features 2. An interface to the host operating system 3. Implementations of broadly useful algorithms 4. Implementations of broadly useful formats and protocols 5. Introspective meta-features for xxxx-aware programs Each of these services shall: 1. Have a concise and straightforward interface 2. Correctly and completely implement the useful subset of the required behavior 3. Provide complete documentation for each exported symbol 4. Be sufficiently tested to provide confidence in the implementation We have a number of focus areas for standard library development. I expect most contributors, at least at first, to stick to one or two of these areas. The focus areas we're looking into now are: Algorithms Sorting * compression * math * etc Cryptography Hashing * encryption * key derivation * TLS * etc Date & time support Parsing * formatting * arithmetic * timers * etc Debugging tools ELF and DWARF support * vDSO * dynamic loading * etc Formats & encodings JSON * XML * HTML * MIME * RFC 2822 * tar * etc xxxx language support Parsing * type checker * hosted toolchain * etc Networking IP & CIDR handling * sockets * DNS resolver * HTTP * etc Platform support New platforms and architectures * OS-specific features String manipulation Search, replace * Unicode * Regex * etc Unix support chmod * mkfifo * passwd * setuid * TTY management * etc If any of this sounds up your alley, we'd love your help! Please write me an email describing your interest areas and previous systems programming experience. Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [ mailing list etiquette] Articles from blogs I read Generated by openring What's cooking on SourceHut? March 2021 Hi! Another month of development has passed, and I'm here to fill you in on what's new. Another 686 signups this month has brought us to 21,041 users. As always, I'll be counting on you to make the new users feel at home, please be patient with them and help... via Blogs on Sourcehut March 15, 2021 Status update, March 2021 Hi all! This month has been a little bit more quiet than others. I've spent a fair bit of time working on gamescope for Valve. As usual I've been fixing bugs and improving gamescope itself, but I've also worked on the rest of the ecosystem. I'm plumbing forma... via emersion March 15, 2021 Go Developer Survey 2020 Results Thank you for the amazing response! In 2020, we had another great turnout with 9,648 responses, about as many as 2019. Thank you for putting in the time to provide the community with these insights on your experiences using Go! ... via The Go Programming Language Blog March 9, 2021 The content for this site is CC-BY-SA. The code for this site is MIT.