algorithm-archive icon indicating copy to clipboard operation
algorithm-archive copied to clipboard

Add more languages to dev container

Open ntindle opened this issue 3 years ago • 10 comments

Feature Request

Add more languages to the dev container

Description

These langagues need to be accessabel by running their standard calling operation from inside the container. Some of them are already in progress but feel free to pick them up

  • [x] Clojure
  • [x] Dlang (#890)
  • [x] go
  • [x] kotlin (#930)
  • [x] lolcode (#916)
  • [x] piet (#918)
  • [ ] matlab (octave)
  • [x] emojicode (#890)
  • [x] factor (#890)
  • [x] racket (#875)
  • [x] scheme (#876)
  • [ ] scratch
  • [x] swift (#880)
  • [x] whitespace (#914)
  • [x] elm (#911)
  • [x] v (#910)

This will help the algorithm archive run many languages in the same environment and allow maintainers and contributors to use the container to test their code without having to install many, many languages.

Additional context

Related to #870 Feel free to reach out to @ntindle on GitHub or NTindle#1998 in the discord if you need help getting setup.

For Algorithm Archive Developers

  • [x] This feature can be added to the Master Overview (if it cannot be, explain why in a comment below -- lack of technical expertise, not relevant to the scope of this project, too ambitious)
  • [x] There is a timeline for when this feature can be implemented
  • [x] The feature has been added to the Master Overview
  • [x] The feature has been implemented (N/A)

ntindle avatar Oct 08 '21 15:10 ntindle

What should we use for the whitespace language? I've sort of found the original interpreter here : https://web.archive.org/web/20130831115710/http://compsoc.dur.ac.uk/whitespace/download.php

Do we want to use that? :grin:

Or do we find/implement another interpreter?

(I don't think it's necessary to do so, but I should ask anyway).

ShadowMitia avatar Nov 02 '21 20:11 ShadowMitia

clojure seems to work fine, but I've tried it on the fft file and it's not working with a missing dependency.

go seems to be working fine.

ShadowMitia avatar Nov 02 '21 22:11 ShadowMitia

clojure seems to work fine, but I've tried it on the fft file and it's not working with a missing dependency.

go seems to be working fine.

Do you know what dependency it's complaining about

ntindle avatar Nov 03 '21 18:11 ntindle

I'll have to test again, but I think it had to do with complex numbers. But I don't know Clojure so I haven't really dived into the error yet.

ShadowMitia avatar Nov 03 '21 18:11 ShadowMitia

That's fine, if you do end up running it again, open an issue for it

ntindle avatar Nov 03 '21 18:11 ntindle

Most languages are sort of done now. The only last three missing are : scratch, matlab and kotlin.

Kotlin needs java to run. Do we use the official java or openjdk? I'm in favour of the second, but there might be reasons to use the official stuff. (Also it's a bit of a pain to setup...)

Scratch doesn't seem to have a way to automate the running scripts? I'll look into it more, but it might not be possible at all. Do we need to install the scratch program in this case?

For the Matlab language, I know that Octave is sort of an equivalent, but isn't a 100% match from what I remember (unless it's changed). What do we for this language?

ShadowMitia avatar Nov 06 '21 21:11 ShadowMitia

I might've missed something but compared to the list of #906 aren't we missing languages to run here?

ShadowMitia avatar Nov 06 '21 22:11 ShadowMitia

I'd prefer openjdk.

For scratch, I was afraid of that. Let's leave it until last and we may be able to mail the owner of the project and ask.

I'm not knowledgeable enough about matlab to determine if that is a problem.

I believe I listed only the languages that we didn't support after I built the initial list.

ntindle avatar Nov 08 '21 15:11 ntindle

Java was already installed.

ShadowMitia avatar Nov 10 '21 21:11 ShadowMitia

I've opened a question over at r/scratch for advice on integrating scatch.

@leios Could you or someone that knows a bit of Matlab shed some light on how to best proceed here for Matlab/Octave integration?

ShadowMitia avatar Nov 10 '21 21:11 ShadowMitia