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

Add Elixir (and Erlang) #10

Closed
JEG2 opened this issue Jun 29, 2020 · 8 comments · Fixed by #34
Closed

Add Elixir (and Erlang) #10

JEG2 opened this issue Jun 29, 2020 · 8 comments · Fixed by #34
Labels
help wanted Extra attention is needed new-platform Request to add a new language

Comments

@JEG2
Copy link

JEG2 commented Jun 29, 2020

Elixir requires Erlang, so this is a request for that language as well.

The current version of Elixir is 1.10.3. The current version of Erlang is OTP 23.0.

@beevee beevee added the new-platform Request to add a new language label Jun 30, 2020
@beevee
Copy link
Member

beevee commented Jun 30, 2020

Thanks for the suggestion! Would you like to create a PR with your favorite and most convenient build tools for Elixir? I can make one, but it will probably be a very simple Hello world application compiled with the most basic command I can find in the Quickstart guide.

Please, use https://github.com/icfpcontest2020/dockerfiles/tree/master/dockerfiles/haskell as an example of file layout for base image and submission image.

@JEG2
Copy link
Author

JEG2 commented Jun 30, 2020

@piisalie, want to tackle this one?

@piisalie
Copy link
Contributor

Sure @JEG2

@beevee can you unpack what Command line arguments will be provided to your program means?

Do we have control over these command line arguments? Or are those to be determined in context of the contest?

@piisalie
Copy link
Contributor

Ask because Elixir/Erlang's release process is kind of odd, so knowing how exactly we expect the application to be started, and if we have control over the arguments passed at runtime would directly affect how I'd write an ideal Dockerfile.

@beevee
Copy link
Member

beevee commented Jul 1, 2020

Considering all the other proposals for different platforms, I think you should do this:

  1. Use C++ Dockerfile and starterkit-cpp as an example of build and run process. You will find build and run shell scripts that serve as extension points to pass any arguments you like during the build and run time.

  2. Include all the necessary libraries for HTTP interaction and show a simple example of said interaction along the lines of starterkit-csharp. This should answer your question on purpose of command line arguments :-) Basically fetch URL that is passed as a first argument with a query parameter that is passed as a second argument. Exit with non-zero code on any non-200 status code returned.

@beevee
Copy link
Member

beevee commented Jul 1, 2020

I've created a starterkit repo for Elixir: https://github.com/icfpcontest2020/starterkit-elixir/

@beevee beevee added the help wanted Extra attention is needed label Jul 2, 2020
@piisalie
Copy link
Contributor

piisalie commented Jul 2, 2020

Okay - thanks. I'll give it a shot.

@beevee
Copy link
Member

beevee commented Jul 3, 2020

Well, it builds without errors. And when run it makes a HTTP request to the provided URL. I consider that a success. Thank you very much for the contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed new-platform Request to add a new language
Development

Successfully merging a pull request may close this issue.

3 participants