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

Project Status? #62

Open
lxsmnsyc opened this issue Mar 3, 2020 · 13 comments
Open

Project Status? #62

lxsmnsyc opened this issue Mar 3, 2020 · 13 comments

Comments

@lxsmnsyc
Copy link

lxsmnsyc commented Mar 3, 2020

I'm curious about this project's development status. Lys is a promising language, reminds me of ReasonML and Rust, and it seems that it is simpler than Rust in some levels. I wanted to use it for my WASM-related projects and now I'm curious about the usability of this language. Specifically:

  1. Are there going to be FFI support? or like the ability to import foreign functions?
  2. Support for generics?
@menduz
Copy link
Member

menduz commented Mar 5, 2020

Hi there! thanks for your interest!

  1. Are there going to be FFI support? or like the ability to import foreign functions?
  2. Support for generics?

Those are planned features, those will come right after the new compiler is ready.

The current status of the project is to bootstrap the compiler using Lys itself (https://github.com/lys-lang/lys-compiler).

In terms of progress, it is my intention and desire to maintain this project alive, I got married this week and I'm keeping my full time job, I couldn't allocate much time to Lys lately, time will be allocated as soon as it is available, I miss doing this.

I'm planning to test Lys in

Among others..

In the meantime, if you have ideas for improvements and features you may want please feel free to contribute with issues, issues with ideas and PRs

@lxsmnsyc
Copy link
Author

lxsmnsyc commented Mar 6, 2020

In terms of progress, it is my intention and desire to maintain this project alive, I got married this week and I'm keeping my full time job, I couldn't allocate much time to Lys lately, time will be allocated as soon as it is available, I miss doing this.

Congrats to your marriage! 😄
You have a full-time job, I get that a lot. Anyways, I'll just keep track of your progress, Lys is an amazing project, and I hope it becomes a successful one 😁

@sno2
Copy link

sno2 commented Nov 30, 2020

@menduz I gotta give you huge props for making the first language to finally use fun as an abbreviation for function 😎

@dumblob
Copy link

dumblob commented Jul 16, 2021

I just came across this language and find the effort quite interesting. It reminds me (semantically) of Passerine, Basil, and ultimately XL.

Do you think you'll find some time for this project any more? It'd be good to find some fitting use case (ideally a commercial one) to avoid bus factor of 1 and maybe make you happier by seeing more people working on it along with you 😉.

@menduz
Copy link
Member

menduz commented Jul 16, 2021

Hey, I'm flattered about you folks being interested in the project.

Right now I'm investing all my time and energy to Decentraland, and that requires all of it.

I intend to continue my efforts on this language, but it won't be anytime soon. I wouldn't encourage anyone to use it for more than educational purposes for the time being. I would also be happy to see people contributing and coming up with an usable language out of lys. If that happens, I'd be glad to help.

Agustin

@Zireael07
Copy link

Bump. I must admit I am intrigued by the project <3

@miviwi
Copy link

miviwi commented Jan 14, 2025

Hi!
this is (in a way) another bump..?

I've just read the blog article linked in the README and the 2nd paragraph (this one) speaks to me a lot:

Having spent hundreds of hours behind the keyboard, flights, trains, and endless toilet-hours thinking about this project, it is difficult to start writing about it.

because well... that is also how my life has been playing out for the past couple of months (...five? maybe even 7) too 😅

Which is a bit of a long winded way to say: I'm super interested in the project. With the added caveat that, because it IS the year 2025 by now, the goalpoasts for WASM-targeting languages have shifted a bit: in some areas a lot, in others — only slightly.

However there IS one thing that's very new, exciting and has both:

  • a really great potential to expand the utility of WASM
  • and well... almost no tooling (and support in general) at all

...the "WASI Component Model" or just "WASI Components" - maybe you've heard of it/them.

In particular what excites me the most is potential to fill two important, gaping holes which have - in my eyes - a whole lot of overlap in what filling them offers to the programmer, what I mean is (borrowing again from that blog post):

[WASM] is not [...] a first class citizen [and] requires a lot of glue code which is often an auto-generated black-box.

aaand from the issue OP's comment

Are there going to be FFI support? or like the ability to import foreign functions?

WASI Components would be a very elegant solution to this! (...hopefully) so it's a great shame things are the way they are with them. Oh - and just for the record (😉) - lys itself looks super fine too; there's something about languages where most of the syntax is "just sugar" that makes them very elegant to me.


So... with that said, @menduz tell me if you may:

"I would also be happy to see people contributing and coming up with an usable language out of lys. If that happens, I'd be glad to help."

is the final part of that statement still relevant in any way? to be clear, I'm not referring to "help" as in "help with programming"/"extending the language". First of all, that wouldn't work becase I don't want to give up the fun part 😜, second reason is quite straightforward: this project ain't your job, so... I'd feel wrong to even consider that.

The kind of help I would very much appreciate though is being able to ask a question (or three) here or there: about the type system, parser and so on — the implementation in general. SO... finishing off as this is already quite long.

I'll restate the matter.

Do you still have enough interest in this project to have a chat about it? And if "everything" were to start "going great" - w/e that'd mean - then a couple more? Thanks in advance for any consideration and, most of all, the time you've aleady given us. Great work!


and yes, I obviously am aware I could just fork the project but... I figured it that asking first couldn't hurt ;)

@menduz
Copy link
Member

menduz commented Jan 15, 2025

Hi Michał @miviwi, thanks for your message and your interest, of course I'd love to help!

You can find me at @menduz:matrix.org to chat. For discussions and explainers for i.e. the type checker or parser, it is going to take me a while to decode what is implemented, and for the sake of documentation I prefer to have GitHub issues or discussions for those.

As for the course of the project and GitHub org: if you'd like to continue developing Lys, we can start with a fork and PR, and after a couple of them you can have write access. I'd also love to contribute with PR reviews.

For the next steps for Lys, the next big milestone was to create a WASI Lys compiler in Lys (bootstrap the language). The parser stage of the compiler is ready here, https://github.com/lys-lang/lys-compiler. Also many syntax sugar transformations are ready. If you'd like yo start developing Lys, taking the chance to implement something relatively complex (like the compiler) using the language seems to me the best way to learn all the language features.

Looking forward to hear from you

@miviwi
Copy link

miviwi commented Jan 15, 2025

Well then... I'm super glad to hear that from you!

I've glanced at that self-hosted compiler and one thing that sticks out is... we don't have the grammar written down anywhere - say in a markdown file - no?

I'm not one to sit and think (in formalities) about the code that should get written more than actually writing it, but trying straight off the deep end, to wrangle a compiler in a new - to me - language that's simulataneously written in it it's uh... a bit much for my imagination, I'll say it like that.

I'll try to write something down, going off of the source code and some small programs I'll write as an exercie, so then you'll be able to take a look — verify if it's accurate? That way I get to examine the sources, producing something from it and it'll be there later for posterity ...agree?

If so, then I think we could borrow Python's notation for it. It's just "a mixture of EBNF and PEG". Very readable and that way we'll for sure be on the same page when it comes to something.

BTW I wouldn't be able to quote the "proper" EBNF syntax if my life depended on it and don't much care to change that. That's what convinces me, at least ;)

So give me your thoughts, I guess, and I'll open up an issue over at the other repo if we agree.


and for the sake of documentation I prefer to have GitHub issues or discussions for those [discussions].

Hadn't thought somebody down the line could find them useful... that is to say: I agree completely ;)

If you'd like yo start developing Lys, taking the chance to implement something relatively complex (like the compiler) using the language seems to me the best way to learn all the language features.

I agree with this as well - just to make that extra clear - BUT... going straight to coding in some kind of un-/vaguely structured way isn't the only other choice; hence my proposition above.
(Moreover it's a fact that, as you've aluded to in the blog post, a langugage able to host it's own compiler becomes much less of a toy purely because—that's a complex piece of software; bugs, other inconsistencies in the language's implementation tend to rear their head/s quickly during development.)

Regards,
Michał

@miviwi
Copy link

miviwi commented Jan 15, 2025

Well then... I'm super glad to hear that from you!

I've glanced at that self-hosted compiler and one thing that sticks out is... we don't have the grammar written down anywhere - say in a markdown file - no?

I'm not one to sit and think (in formalities) about the code that should get written more than actually writing it, but trying straight off the deep end, to wrangle a compiler in a new - to me - language that's simulataneously written in it it's uh... a bit much for my imagination, I'll say it like that.

I'll try to write something down, going off of the source code and some small programs I'll write as an exercie, so then you'll be able to take a look — verify if it's accurate? That way I get to examine the sources, producing something from it and it'll be there later for posterity ...agree?

If so, then I think we could borrow Python's notation for it. It's just "a mixture of EBNF and PEG". Very readable and that way we'll for sure be on the same page when it comes to something.

BTW I wouldn't be able to quote the "proper" EBNF syntax if my life depended on it and don't much care to change that. That's what convinces me, at least ;)

So give me your thoughts, I guess, and I'll open up an issue over at the other repo if we agree.

and for the sake of documentation I prefer to have GitHub issues or discussions for those [discussions].

Hadn't thought somebody down the line could find them useful... that is to say: I agree completely ;)

If you'd like yo start developing Lys, taking the chance to implement something relatively complex (like the compiler) using the language seems to me the best way to learn all the language features.

I agree with this as well - just to make that extra clear - BUT... going straight to coding in some kind of un-/vaguely structured way isn't the only other choice; hence my proposition above. (Moreover it's a fact that, as you've aluded to in the blog post, a langugage able to host it's own compiler becomes much less of a toy purely because—that's a complex piece of software; bugs, other inconsistencies in the language's implementation tend to rear their head/s quickly during development.)

Regards, Michał

(one thing I should've probably mentioned... yes, I am aware of parser/lysgrammar.lys - it's very readable - but I still believe an EBNF/PEG-like syntax description it a worthwhile pursuit, even if in the end it turns into only a kind of excercise)

@menduz
Copy link
Member

menduz commented Jan 15, 2025

Maybe this is what you are looking for https://github.com/lys-lang/lys/blob/master/src/grammar.ts

@miviwi
Copy link

miviwi commented Jan 15, 2025

Maybe this is what you are looking for https://github.com/lys-lang/lys/blob/master/src/grammar.ts

Oh wow... would've never thought to look inside a .ts file for such a thing 😅 (and the "old" repo - for that matter)
Is that EBNF? or some bespoke syntax, or...?1

So I guess that's one thing down... I'm jotting down an issue (unrelated to this matter) in the lys-compiler repo. Almost done with it. Please, kindly, take a look whenever I post it and you'll have the time to do so.

Footnotes

  1. more importantly... is what's written in that file up-to-date? you've mentioned some "syntax sugar [...] transformations" being added which is why I ask

@miviwi
Copy link

miviwi commented Jan 15, 2025

@menduz I've made an edit to the previous comment (the footnote) please take a look, wouldn't want you to miss it.

Oh and here's a link to that issue. I do not have a hardline stance on any solutions listed there, only the "hard" part in "hard [node.js] dependency" is what I really care about.
The compiler is (imo) just super-inconvinient to use right now. Can't just create a .lys file somwhere and compile/run it; need to either write bash scripts to cd in and out of the compiler's directory or carry around some (unknown to me) part of node_modules.

That and the whole - make build/make lys-build throws errors but somehow still produces a binary (?) part is pobably important too.

Try a fresh clone of the repo and make build for yourself (with node v23, or just something newer than what the project was started on) I think you'll quickly see where I got the idea that this is (at least partially) a version-incompatibility issue

Thanks a lot!
Michał

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants