algorithm-archivists / algorithm-archive

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

Add more languages to the build system #906

Open Amaras opened 2 years ago

Amaras commented 2 years ago

Feature Request

Add more language builders to the SCons-based build system.

Description

Since #885 was merged, we now have a build system that aims to provide a compilation framework for every compiled language. However, most of the work is currently not done yet.

Here are all the current languages in the AAA (in alphabetical order of the directory names). Each of the languages needs either a way to compile an executable in the build/ directory at the project root, copy the interpreted file to the correct folder, or prove that it is impossible to do.

If you want to provide compilation instructions, please follow the example provided in #885: a builder per language which has the name of the language which each leaf SConscript uses, and the list of the language's folders added to the language list in the root SConstruct file.

Additional context

Related to #870. Don't hesitate to reach out to me (@Amaras on GitHub, and .amaras on Discord, formerly Amaras#8643) if you have questions.

ShadowMitia commented 2 years ago

Most languages will add temporary files for build, .o are generated for C, but should we just add the minimal amount of files added by a scons build? Or should we just add the whole list like the one generated by gitignore.io?

Amaras commented 2 years ago

I think we only need to add the minimal amount of things to the .gitignore. Right now, only the .o are annoyingly not in the correct directory, so I don't see any reason to add any other files. I'm open to discussion, of course :)

ShadowMitia commented 2 years ago

I don't really have a strong opinion on this^^ The other idea was to make sure everything is built out of the content directory.

Amaras commented 2 years ago

Well there's a way to do that, but it adds complexity to the scripts

Beliavsky commented 2 years ago

The gfortran compiler is part of the Gnu Compiler Collection and works like the C compiler gcc. So

gfortran -o prog func.f90 main.f90

will produce executable prog. Are there obstacles to adding Fortran codes?

ShadowMitia commented 2 years ago

@Beliavsky No obstacles to adding Fortran code, this is about adding an automated system to compile all the examples in the Archive.