algorithm-archivists / algorithm-archive

A collaborative book on algorithms
https://www.algorithm-archive.org
MIT License
2.34k stars 354 forks source link

Add more languages to dev container #871

Open ntindle opened 2 years ago

ntindle commented 2 years ago

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

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

ShadowMitia commented 2 years ago

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 commented 2 years ago

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.

ntindle commented 2 years ago

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

ShadowMitia commented 2 years ago

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.

ntindle commented 2 years ago

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

ShadowMitia commented 2 years ago

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 commented 2 years ago

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

ntindle commented 2 years ago

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.

ShadowMitia commented 2 years ago

Java was already installed.

ShadowMitia commented 2 years ago

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?