radian-software / riju

⚡ Extremely fast online playground for every programming language.
https://riju.codes
MIT License
1.64k stars 191 forks source link

Language support meta-issue #25

Open raxod502 opened 3 years ago

raxod502 commented 3 years ago

This issue tracks new languages which could be added to Riju. If your favorite language isn't supported, add a comment below and (provided it meets the criteria for inclusion) I'll put it in the list :chart_with_upwards_trend:

You can also feel free to file a separate issue, which is handy in case there is discussion about how to get the language working on Riju. I'll add the language to this list nonetheless.

Proposed

Blocked

Language Blocker Branch
AutoIt Runtime errors (see below) wip/autoit
Cobra Installation fails (see below) wip/cobra
Couchbase Does not support UNIX sockets wip/couchbase
Koka Excessive memory usage (see below) wip/koka
Maxima Does not support Docker (see below) wip/maxima
Mustache Runtime errors (see below) wip/mustache
Nemerle Compiler crashes (see below) wip/nemerle
Neo4j Does not support UNIX sockets wip/neo4j
Nix Does not support Docker (see below) wip/nix
POP-11 Installation fails (see below) wip/pop11
Q Does not support custom HOME (see below) wip/q

Rejected

Language Rejected because...
ABAP No free implementation
BrightScript No free implementation
Lingo No free implementation
Linotte Requires graphical environment
Logo Requires graphical environment
Processing Requires graphical environment
Svelte Requires browser environment

I've already added everything appropriate from the Quine Relay language list.

Diagnostics on blocked languages

AutoIt

wine client error:240: partial write 12288

This is when running ConsoleWrite("Hello, world" & @CRLF) with wine install/AutoIt3.exe with the ZIP from the official site.

Cobra

BackEndJvm/JvmType.cobra(109): error: The left expression ('`') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JvmType.cobra(244): error: The left expression (r'[') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JvmJarSig.cobra(239): error: The left expression ('`') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JvmJarSig.cobra(713): error: The left expression ('.') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JvmJarSig.cobra(771): error: The left expression ('.') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JvmJarSig.cobra(809): error: The left expression ('`') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JvmJarSig.cobra(834): error: The left expression ('Object') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JavaCompilationMessage.cobra(14): error: The left expression ('.java:') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JavaCompilationMessage.cobra(9): error: The left expression ('hello.cobra') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
BackEndJvm/JavaCompilationMessage.cobra(10): error: The left expression ('package Foo does not exist') cannot be "in" the right-hand expression because the left type is "String" and the right-hand expression contains type "char".
Compilation failed - 79 errors, 1 warning

Koka

See https://github.com/koka-lang/koka/issues/34.

Maxima

See https://sourceforge.net/p/maxima/mailman/maxima-discuss/thread/CALHpz2Hu8Os_kdngazXy6w37F7S7Z42RgVD5xTtAfv0Ndfdu8Q%40mail.gmail.com/.

Mustache

See https://github.com/mustache/mustache/issues/262.

Nemerle

* Assertion at sre-encode.c:290, condition `count > 0' not met

See https://github.com/mono/mono/issues/18970.

Nix

error: the build users group 'nixbld' has no members

See https://github.com/NixOS/nix/issues/697. Why this is so difficult for the Nix folks to straighten out I cannot quite fathom.

POP-11

WARNING: Couldn't re-execute Poplog with the proper personality flags (maybe /proc isn't mounted?). Trying to continue anyway.

<<<<<<< Access Violation: PC = 0000000001C11060, Addr = 0000000001C11060,
        Code = 2 >>>>>>>

;;; MISHAP - serr: MEMORY ACCESS VIOLATION (attempt to alter non-writeable
;;;     system structure?)
;;; PRINT DOING
;;; DOING    :  null nextitem pop_setpop_compiler

Q

'/home/riju2000/q/q.k. OS reports: No such file or directory
0::

Unfortunately, HOME, USER, USERNAME, and LOGNAME all seem to be totally ignored. That said, Q appears to be rather distastefully proprietary anyway, so perhaps it's for the best that it doesn't work.

raxod502 commented 3 years ago

imported comment by @kwshi

Also, WebAssembly?

raxod502 commented 3 years ago

imported comment by @kwshi

http://coconut-lang.org/ A functional-programmer-oriented flavor of Python, made by Harvey Mudd's own Evan Hubinger :)

raxod502 commented 3 years ago

Those will both be excellent additions; added to the list.

raxod502 commented 3 years ago

We could add Zig.

raxod502 commented 3 years ago

https://github.com/clark800/lambda-zero

edubart commented 3 years ago

Nelua (main branch), Zig (already mentioned) and Odin.

Disclaimer: I am working on Nelua, if you add support for it, then please enable Lua syntax highlighting to have some syntax highlight (although it will be incomplete), because it is a language derived from Lua.

braebo commented 3 years ago

Svelte already has it's own REPL, but when I saw "Every programming language", I had to check to see if svelte was here!

raxod502 commented 3 years ago
raxod502 commented 3 years ago

@FractalHQ, "Svelte is a language" notwithstanding... is Svelte actually a language? What would "Hello, world" look like?

braebo commented 3 years ago

It's considered a DSL for authoring web-based applications. At its core, it's a compiler that turns .svelte files containing a superset of HTML, vanilla JS (with utilities for automating reactivity and trivializing state management) and CSS, and spits out highly optimized vanilla JS and HTML. A hello world according to this cheeky Hello Worlds project could look like this.

That being said, I'd understand if it doesn't really align with the scope of this project considering it runs in the browser as opposed to having its own self contained runtime, and it already comes with it's own online REPL.

raxod502 commented 3 years ago

Yeah, in its current configuration Riju is limited to languages with a strictly textual input/output model. Anything dependent on a graphical frame or HTML rendering is kind of out of scope, unfortunately. I think things like configuration languages that "compile" to JSON are okay, because there's an obvious thing to print out when "executing" them, but for Svelte it's more like a general transpiler, which isn't the best match for this execution model. There are other applications (https://babeljs.io/repl, https://godbolt.org/, the Svelte REPL you linked) that are better suited for compiler-type tools.

ryusatgat commented 3 years ago

Hi, good to see this project. My site seems to similar with your project. I'm making online compiler/interpreter site. I want to exchange skills with you to implement languages. sorry about my poor english. I'm korean, so I'm not good at english. If you see my site(although locale is korean you can execute many languages), you will get many ideas. Thank you!

https://www.ryugod.com

raxod502 commented 3 years ago

Hey @adp-study! Sorry for the delay in response, I've been occupied by things outside of GitHub for a while. Your application looks super neat, and I've given it a shout-out in the README: https://github.com/raxod502/riju#similar-projects

Is it open-source?

ryusatgat commented 3 years ago

ryugod.com's security is very poor(it is experimental implimentation and private site). I will open source it to git soon with 400 or more syntax highlighting files. I'm just a securities company worker, not a developer. If you want see my sources, I will send you all of it. and, you can download all files in docker(Ubuntu 20.04), with command "imshow [filename]" command. or FTP, ssh. ex) tar cvf buzz.tar /opt/buzz; gzip buzz.tar; imshow buzz.tar.gz if you see some server code, command "code [filename]" ex) code .bashrc

chunkybanana commented 2 years ago

Vyxal?

Calinou commented 2 years ago

If anyone is interested in implementing GDScript support, feel free to look at GDScript Online which demonstrates a way to run arbitrary GDScript code in an exported project. The same approach can likely be used in headless mode, writing the output to a separate text file which can then be read (and keeping stdout/stderr tidy for errors).

ssantichaivekin commented 2 years ago

TLA+ PlusCal

elimisteve commented 2 years ago

Janet

keller commented 2 years ago

Raku (Docker image)

izzues commented 2 years ago
wackbyte commented 11 months ago

Hare