Hacker Newsnew | past | comments | ask | show | jobs | submit | pikatchu's commentslogin

I don't understand how this is "almost identical" ...


I am working on that, but it's a bit early for that :-)


Hi all, I didn't realize that my project would end up in hacker-news. I was planning to make a public announcement later when I had something more stable. But well ... There is no going back now. Right now, I need to stabilize closures, finish the standard library, write more tests and optimizations. I saw a comment saying: it looks like clean. Well it's different in 2 ways, LinearML is strict and every object is linear. In most languages (Clean, ATS, etc ...), linear types are used to encode side-effects, as an alternative to monads. This is not the case here, in LiML, every object is linear! sharing has to be explicit. This leads to 3 interesting properties: 1) message passing is cheap (no need to copy) 2) most operations can be done "in-place", which is normally not true for a purely functional language. This allows better caching. 3) There is no GC. No runtime overhead for garbage collection at all.


I like this project. It fits nicely with my own views of a good parallel/concurrent language. As I said in another comment, I am playing around with languuge design/implementation too.

Could you perhaps give some notes on how you implemented the linear type system? I am browsing through the source code, but finding it tough understanding whats going on. Anything at all (brief overview?) would be useful and appreciated.


I know this question is unpopular among PL researchers, but what is the biggest program you've ever written in your language?


This is an unfair question :-) My plan was to release LinearML with a significant amount of non-trivial examples. The guys from "mirage" are working on a TCP stack based on LiML. I thought that would have been a really good app. So, to answer your question. Right now, there isn't much. But the question is unfair because I am not the one who made this public anouncement ... I didn't want to make the anouncement for 3 reasons: I just started a new job at Facebook last week, and wanted to focus on that; I wanted to release something relatively stable/fast; I wanted quite a few non-trivial examples to prove my point. But I understand your skepticism. I would have certainly asked the same question :-)


I'm a little late to this thread, but just wanted to say nice job. This looks promising.


thanks!


Is LiML meant to attack concurrency or parallelism or both?


both


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: