algorithm-archive
algorithm-archive copied to clipboard
Add more languages to the build system
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.
- [x] X86-64 Assembly (asm-x64) [#940]
- [x] Bash [#950]
- [x] C [#885]
- [x] C++ (cpp) [#939]
- [ ] Common Lisp
- [ ] Clojure
- [x] Coconut [#949]
- [ ] Crystal
- [ ] C# (csharp) [#1012]
- [ ] D
- [ ] Dart
- [ ] Elm
- [ ] Emojicode
- [ ] Factor
- [x] Fortran [#948]
- [ ] GNUPlot
- [x] Go (go/golang) [#947]
- [ ] #976
- [x] #972
- [x] JavaScript [#950]
- [x] Julia [#950]
- [ ] Kotlin [#984]
- [ ] LabView
- [x] LOLCode [#950]
- [x] Lua [#950]
- [ ] MatLab
- [ ] Nim
- [ ] OCaml [#1006]
- [x] PHP [#950]
- [ ] Piet
- [x] PowerShell [#950]
- [x] Python [#950]
- [ ] R
- [ ] Racket
- [x] Ruby [#950]
- [x] Rust [#945]
- [ ] Scala
- [ ] Scheme
- [ ] Scratch
- [ ] Smalltalk
- [ ] Swift
- [ ] TypeScript
- [ ] V
- [x] VimL [#950]
- [ ] WhiteSpace
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.
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?
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 :)
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.
Well there's a way to do that, but it adds complexity to the scripts
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?
@Beliavsky No obstacles to adding Fortran code, this is about adding an automated system to compile all the examples in the Archive.