-
Notifications
You must be signed in to change notification settings - Fork 50
Use spago for managing the server package set #148
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
Conversation
This gives us an easy way of depending on the entire package set at once, so that any package in the set can be used in Try PS.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It’s great news that the entire set is available! Just to check: what would actually be compiled on Try PureScript when a user makes changes to their code?
The whole package set would be compiled first, before the server starts listening for requests, so only one module would ever be compiled per request. On my laptop it takes around 34s to compile the whole set (or 5m of CPU time). |
Do we want the whole set available? Do we know what modules require FFI shims? |
I think having the whole set available makes sense; I'm sure a lot of libraries will require shims, but in the case of libraries which need shims which aren't there, the UX isn't really any worse, you just get a slightly different error. It's not as if users have any good way of knowing what modules they can expect to be available on Try PS at the moment. |
Is there any memory concern for the server compiling against the whole set? |
Oh right, yes, that's a good point. Compiling the whole set to start with is fine -- the CI for the package-sets repo manages that -- but I think the problem arises because tryps keeps all of the externs files in memory, and it also keeps a prebuilt JS bundle of the entire package set in memory (which is exposed via the |
The |
I am halfway through preparing a PR which removes |
This gives us an easy way of depending on the entire package set at
once, so that any package in the set can be used in Try PS.