Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A few Exciting Announcements #56

Open
slightknack opened this issue Jul 29, 2021 · 4 comments
Open

A few Exciting Announcements #56

slightknack opened this issue Jul 29, 2021 · 4 comments
Assignees
Labels
help-wanted This is an great first issue for first time contributers

Comments

@slightknack
Copy link
Member

slightknack commented Jul 29, 2021

A couple updates and announcements:

It seems like there's been a spike in interest, so hello to all you new people! Most discussion takes place on the Discord server (https://discord.gg/XQfxBcHnJj), so drop by there if you want to say hello!

Now, on to the big news:

Towards a Production-Ready Compiler

There has been a lot of interest around Passerine recently. The compiler currently in use, and the D compiler, have proven that the language is easy to compile and readily maps to existing architectures. (here's a toy self-hosting version of Passerine in about 600 lines of Passerine).

Despite this, the current architecture of the Rust Passerine compiler is not flexible to support generalized features, like an effect system and a better VM, without a lot of additional work. For this reason, we're rewriting the Passerine compiler, from start to end, with support for these systems in mind. Because the compiler isn't that large, this shouldn't be that big of an undertaking, and gives us a fresh start.

Get Involved!

If you would like to be responsible for a portion of this new pipeline, send a message to let me know. Whatever your experience with Rust or compiler engineering may be, I'd happy to get you up to speed. (And if you are experienced, please help get us up to speed!) This compiler will be developed until it matches feature-parity with the existing compiler, after which it will replace the existing compiler, being licensed under the same permissive MIT terms. Here are the people who are already involved:

  • @slightknack (myself): Design of the type system and compiler middle end, as well as general organization and aspen.
  • @Plecra: Design of the new generalized token-based macro scheme and compile-time evaluation.
  • @ShawSumma: Implementation of backends, namely C, Wasm, and minivm. Shaw is also working on the D compiler.
  • You?

We're still looking for people to:

  • Help write language servers and syntax highlighters to improve editor integration.
  • Implement additional backends, like LLVM IR and so on.
  • Write a standard library for Passerine and extend the language core.
  • Improve the website and documentation, including writing a Rust-style The Book based on the existing README.

If you have experience in any of these areas and would like to pitch in, reply to this thread. Now, onto the topic meetings:

Consistent Monthly Meetings

We currently have weekly meetings on Discord in the discussion channel, whose contents are documented in the vrtbl/meta repository. (This repository will be updated soon, it's slightly out of date.) These meetings are usually inconsistent and unplanned though, and not many people can make them.

To make meetings more accessible while still allowing more structure, Weekly Meetings are moving to be Monthly Meetings, and will have more structure. This is not to diminish the pace of development, it's to improve it. More specifically, we'll start by reviewing the changes made to the compiler that month, have an optional speaker, then have a normal discussion as per usual: more information to come.

Of course the discussion channel will still be open to discussion any time. I'm hoping that by spacing out meetings some more, more people will be able to attend. If you would like to present on a project you've been working on at the next weekly meeting, please send a message to let me know.

Sponsorship

Some people (@Kethku :P #54) have expressed interest in sponsoring the development of Passerine. We're still working out what sponsorship will look like, but it will a viable option if you're looking to speed up the development of the language in the future. Cool beans!

Random last thing

If you write a toy project that uses Passerine, please put it up on GitHub! If we reach 200 repositories, Passerine will be an official language on GitHub, which would pretty neat!

Thank you!

I would like to thank everyone who has been involved in the development of the language thus far. Everything, from discussing traits and effect systems, to rolling up your sleeves and slinging some code, is immensely helpful: I really appreciate it. Thank you!

(By the way — If you have made a contribution to Passerine, please feel free to open a PR adding yourself to the README.)

@slightknack slightknack added the help-wanted This is an great first issue for first time contributers label Jul 29, 2021
@slightknack slightknack pinned this issue Jul 29, 2021
@Kethku
Copy link
Contributor

Kethku commented Jul 29, 2021

I'm sure you're aware, but I saw the project through https://lobste.rs/ where its currently top link. Cool stuff

@slightknack
Copy link
Member Author

I was wondering why there was a spike in interest, thanks for pointing that out! I'd like to respond to some of the questions there, but it seems I'd need an invitation to be able to reply 🤔

@Kethku
Copy link
Contributor

Kethku commented Jul 29, 2021

I sent you an invite! Be nice, cause I can get kicked if you do :P

@slightknack
Copy link
Member Author

slightknack commented Jul 29, 2021 via email

@slightknack slightknack unpinned this issue Jan 26, 2022
@slightknack slightknack pinned this issue Mar 19, 2022
@slightknack slightknack unpinned this issue Jul 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help-wanted This is an great first issue for first time contributers
Projects
None yet
Development

No branches or pull requests

4 participants