skiplang / skip

A programming language to skip the things you have already computed
http://skiplang.com
MIT License
1.97k stars 66 forks source link

Memoization documentation #19

Open theduke opened 5 years ago

theduke commented 5 years ago

Posting as an issue since I don't know how to reach the authors otherwise.

Skip is a very interesting language.

I scanned the docs but could not find any information about the feature giving the language its name: memoization.

EG:

I'd be interested in how this works, is implemented, etc.

Also, since the language is a "now concluded research project", it would be very interesting to read about the conclusions of the project: how useful is the concept in practice, are there performance wins to be had in realistic workloads, etc.

pikatchu commented 5 years ago

Hey!

Thanks for the feedback.

I am planning to write something about our memory model soon. I agree with you that this part is missing in the docs.

The project has been "concluded" at Facebook, but it is well and alive outside of it. I plan to work on it and want to build a community in the open.

As for the performance, I would recommend you try using the skip_server. It's a good example of something that would be difficult to write in any other language. The skip_server loads a skip program and then listens to changes on disk to update the error messages in real time.

This way, you can work on a very large project (like the skip compiler itself) and still get your error messages in millisecs.

I plan to extend this to work on the entire compiler, but there is still work to do there ... But ultimately, the compiler should be entirely incremental, allowing you to iterate even on a large program very quickly.

naoyafurudono commented 2 years ago

I am also interested in the cache semantics! Are there any plan to write the docs?