We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 1aa2f58 commit 68bebc5Copy full SHA for 68bebc5
config/langs.toml
@@ -639,6 +639,26 @@ for arg in commandLineParams():
639
echo arg
640
'''
641
642
+[OCaml]
643
+size = '207 MiB'
644
+version = '4.14.0'
645
+website = 'https://ocaml.org'
646
+example = '''
647
+(* Printing *)
648
+print_endline "Hello, World!";
649
+
650
+(* Looping *)
651
+for i = 0 to 9 do
652
+ Printf.printf "%d\n" i
653
+done;
654
655
+(* Accessing arguments *)
656
+Sys.argv
657
+ |> Array.to_list
658
+ |> List.tl
659
+ |> List.iter print_endline;
660
+'''
661
662
[Pascal]
663
size = '30.9 MiB'
664
version = '3.2.2'
db/a-schema.sql
@@ -54,7 +54,7 @@ CREATE TYPE lang AS ENUM (
54
'assembly', 'awk', 'bash', 'basic', 'brainfuck', 'c', 'c-sharp', 'cpp',
55
'cobol', 'crystal', 'd', 'dart', 'elixir', 'f-sharp', 'fish', 'fortran',
56
'go', 'golfscript', 'haskell', 'hexagony', 'j', 'java', 'javascript',
57
- 'julia', 'k', 'lisp', 'lua', 'nim', 'pascal', 'perl', 'php', 'powershell',
+ 'julia', 'k', 'lisp', 'lua', 'nim', 'ocaml', 'pascal', 'perl', 'php', 'powershell',
58
'prolog', 'python', 'r', 'raku', 'ruby', 'rust', 'sed', 'sql', 'swift',
59
'tcl', 'v', 'viml', 'wren', 'zig'
60
);
docker/dev.Dockerfile
@@ -14,6 +14,7 @@ COPY --from=codegolf/lang-d ["/", "/langs/d/rootfs/" ] # 293 M
14
COPY --from=codegolf/lang-julia ["/", "/langs/julia/rootfs/" ] # 282 MiB
15
COPY --from=codegolf/lang-basic ["/", "/langs/basic/rootfs/" ] # 268 MiB
16
COPY --from=codegolf/lang-zig ["/", "/langs/zig/rootfs/" ] # 262 MiB
17
+COPY --from=codegolf/lang-ocaml ["/", "/langs/ocaml/rootfs/" ] # 207 MiB
18
COPY --from=codegolf/lang-crystal ["/", "/langs/crystal/rootfs/" ] # 203 MiB
19
COPY --from=codegolf/lang-powershell ["/", "/langs/powershell/rootfs/"] # 174 MiB
20
COPY --from=codegolf/lang-elixir ["/", "/langs/elixir/rootfs/" ] # 168 MiB
docker/live.Dockerfile
@@ -27,6 +27,7 @@ COPY --from=codegolf/lang-d ["/", "/langs/d/rootfs/" ] # 293 M
27
28
29
30
31
32
33
hole/play.go
@@ -241,6 +241,8 @@ func play(ctx context.Context, holeID, langID, code string, score *Scorecard) {
241
cmd.Env = []string{"HOME=/"}
242
case "nim":
243
cmd.Args = []string{"/usr/bin/nim", "--colors:on", "-o:/tmp/code", "-r", "c", "-"}
244
+ case "ocaml":
245
+ cmd.Args = []string{"/usr/bin/ocaml", "/proc/self/fd/0"}
246
case "perl":
247
cmd.Args = []string{"/usr/bin/perl", "-E", code, "--"}
248
case "powershell":
js/_codemirror.ts
@@ -38,6 +38,7 @@ import { julia } from '@codemirror/legacy-modes/mode/julia';
38
import { k } from 'codemirror-lang-k';
39
import { lua } from '@codemirror/legacy-modes/mode/lua';
40
import { nim } from 'nim-codemirror-mode';
41
+import { oCaml } from '@codemirror/legacy-modes/mode/mllike';
42
import { pascal } from '@codemirror/legacy-modes/mode/pascal';
43
import { perl } from '@codemirror/legacy-modes/mode/perl';
44
import { php } from '@codemirror/lang-php';
@@ -131,6 +132,7 @@ export const extensions = {
131
132
'lisp': StreamLanguage.define(commonLisp),
133
'lua': StreamLanguage.define(lua),
134
'nim': StreamLanguage.define({ ...nim( {}, {} ), languageData: { commentTokens: { line: '#' } } }),
135
+ 'ocaml': StreamLanguage.define(oCaml),
136
'pascal': StreamLanguage.define(pascal),
137
'perl': StreamLanguage.define(perl),
138
'php': php({ plain: true }),
langs/ocaml/Dockerfile
@@ -0,0 +1,13 @@
1
+FROM alpine:3.17 as builder
2
3
+RUN apk add --no-cache ocaml=4.14.0-r0
4
5
+FROM codegolf/lang-base
6
7
+COPY --from=0 /usr/bin /usr/bin
8
+COPY --from=0 /usr/lib/ocaml /usr/lib/ocaml
9
+COPY --from=0 /lib/ld-musl-x86_64.so.1 /lib/
10
11
+ENTRYPOINT ["/usr/bin/ocaml"]
12
13
+CMD ["--version"]
svg/ocaml.svg
0 commit comments