-
Notifications
You must be signed in to change notification settings - Fork 36
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
Adding commonly used Haskell libraries #8
Comments
Sounds good. Can you make a PR? I can probably do this myself, but I'll spend much more time and will make stupid mistakes, since I'm not a Haskell developer. |
Thanks, I can make a PR, but it would be nice if a few more things could be clarified before I start working on it:
|
Let's do this:
|
OK, that looks like a good plan. I will start implementing it in the next days. |
Please note that I've committed a stub base image and made sure the entire build process works on our side. You can start from there: https://github.com/icfpcontest2020/dockerfiles/tree/master/dockerfiles/haskell |
One more question: Is there a particular reason why the submissions are compiled and run in different containers (if that's the correct Docker jargon)? Since Stack will create a dynamically linked binary by default, just copying the compiled binary won't work if additional libraries installed via Stack are used. Though it is possible to compile statically linked binaries with Stack, it's a bit tricky, so things would be a lot easier if we could run |
It's a small optimization. Runtime image does not contain any build dependencies, so it's smaller and easier to distribute among many worker nodes. Actually, not so small: If at all possible, please try to keep separate build and run images. Note that you are free to copy any files from your build image to your runtime image, not just one executable. If it's too much trouble, I think we can tolerate extra image weight to make things simpler for you. |
This probably also applies to other languages in varying extents, but I'd like to draw attention to the fact that a lot of commonly used functionality in Haskell is implemented outside of the "standard library" and thus currently missing from the corresponding Docker image. Unless the submissions are supposed to use only the standard prelude, I'd like to ask whether some commonly used Haskell libraries could be added to the image. If you agree to include include a certain set of libraries, I could make a PR with an extended Dockerfile.
As a concrete proposal, here are some packages the team I'm part of (udfew) used frequently in the last years:
The text was updated successfully, but these errors were encountered: