diff --git a/mojacoder-backend/judge-image/Dockerfile b/mojacoder-backend/judge-image/Dockerfile index 240607d..2dcadea 100644 --- a/mojacoder-backend/judge-image/Dockerfile +++ b/mojacoder-backend/judge-image/Dockerfile @@ -1,39 +1,137 @@ -FROM ubuntu:20.04 +FROM ubuntu:22.04 SHELL ["/bin/bash", "-c"] -ENV DEBIAN_FRONTEND noninteractive RUN apt update -y -RUN apt install -y gnupg ca-certificates -RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF -RUN echo "deb https://download.mono-project.com/repo/ubuntu stable-focal main" | tee /etc/apt/sources.list.d/mono-official-stable.list -RUN apt update - -RUN apt install -y software-properties-common -RUN add-apt-repository ppa:longsleep/golang-backports -RUN apt update -RUN apt install -y golang-1.21-go + +WORKDIR /tmp + +# golang 1.21 +RUN apt install -y software-properties-common && \ + add-apt-repository ppa:longsleep/golang-backports && \ + apt update && \ + apt install -y golang-1.21-go ENV PATH $PATH:/usr/lib/go-1.21/bin -RUN apt install -y python3.8 build-essential mono-devel bf cargo pypy3 ruby2.7 default-jdk sbcl +# C/C++ GCC12 Boost(1.84.0) Eigen(3.4.0) GMP(6.3.0) AC-Library(1.5.1) +RUN apt install -y g++-12 gcc-12 build-essential m4 wget unzip && \ + wget https://boostorg.jfrog.io/artifactory/main/release/1.84.0/source/boost_1_84_0.tar.gz && \ + tar -zxf boost_1_84_0.tar.gz && \ + cd boost_1_84_0 && \ + ./bootstrap.sh --without-libraries=mpi,graph_parallel && \ + ./b2 -j4 toolset=gcc variant=release link=static runtime-link=static cxxflags="-std=gnu++23" stage && \ + ./b2 -j4 toolset=gcc variant=release link=static runtime-link=static cxxflags="-std=gnu++23" install && \ + cd /tmp && \ + wget https://github.com/atcoder/ac-library/releases/download/v1.5.1/ac-library.zip && \ + mkdir ac-library && \ + unzip ./ac-library.zip -d ./ac-library && \ + mv ./ac-library/atcoder /usr/local/include/ && \ + wget https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz && \ + tar -xf gmp-6.3.0.tar.xz && \ + cd gmp-6.3.0 && \ + ./configure && \ + make && \ + make install && \ + cd /tmp && \ + wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz && \ + tar -zxf eigen-3.4.0.tar.gz && \ + mv ./eigen-3.4.0/Eigen /usr/local/include/ && \ + rm -rf /tmp/* -WORKDIR /tmp -RUN apt install -y wget curl zip -RUN wget http://www.jsoftware.com/download/j902/install/j902_amd64.deb -RUN mkdir -p /usr/share/icons/hicolor/scalable/apps/ -RUN dpkg -i j902_amd64.deb -RUN echo -e "load 'pacman'\n'update' jpkg ''\n'install' jpkg 'dev/fold'\n" | ijconsole -RUN curl -s https://get.sdkman.io | bash && source ~/.sdkman/bin/sdkman-init.sh && sdk install kotlin -RUN wget https://github.com/atcoder/ac-library/archive/master.zip -RUN unzip ./master.zip -RUN mv ./ac-library-master/atcoder /usr/local/include/ -RUN wget https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.zip -RUN unzip ./boost_1_76_0.zip -RUN mv ./boost_1_76_0/boost /usr/local/include/ - -RUN apt install -y python3-pip -RUN pip3 install numpy -RUN pypy3 -m pip install numpy +# Python 3.11 +COPY python_requirements.txt . +RUN apt install -y build-essential libbz2-dev libdb-dev git \ + libreadline-dev libffi-dev libgdbm-dev liblzma-dev \ + libncursesw5-dev libsqlite3-dev libssl-dev \ + zlib1g-dev uuid-dev && \ + wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz && \ + tar -xf Python-3.11.6.tar.xz && \ + cd Python-3.11.6 && \ + ./configure --enable-optimizations && \ + make -j4 && \ + make altinstall && \ + cd /tmp && \ + python3.11 -m pip install -r python_requirements.txt && \ + rm -rf /tmp/* + +# PyPy 3.10-v7.3.13 +COPY pypy_requirements.txt . +RUN apt install libgeos-dev -y && \ + wget https://downloads.python.org/pypy/pypy3.10-v7.3.13-linux64.tar.bz2 && \ + tar -xf pypy3.10-v7.3.13-linux64.tar.bz2 -C /usr/local && \ + /usr/local/pypy3.10-v7.3.13-linux64/bin/pypy3 -m ensurepip && \ + /usr/local/pypy3.10-v7.3.13-linux64/bin/pypy3 -m pip install -U pip wheel && \ + /usr/local/pypy3.10-v7.3.13-linux64/bin/pypy3 -m pip install -r pypy_requirements.txt && \ + rm -rf /tmp/* +ENV PATH $PATH:/usr/local/pypy3.10-v7.3.13-linux64/bin + +# java openjdk-21 ac-library-java-1.0.0 +RUN wget https://download.java.net/java/GA/jdk21.0.1/415e3f918a1f4062a0074a2794853d0d/12/GPL/openjdk-21.0.1_linux-x64_bin.tar.gz && \ + mkdir -p /usr/local/java && \ + tar -xzf openjdk-21.0.1_linux-x64_bin.tar.gz -C /usr/local/java && \ + export JAVA_HOME=/usr/local/java/jdk-21.0.1 && \ + export PATH=$JAVA_HOME/bin:$PATH && \ + mkdir -p /usr/local/ac-library-java && \ + wget https://github.com/ocha98/ac-library-java/archive/refs/tags/1.0.0.tar.gz && \ + tar -xzf 1.0.0.tar.gz && \ + cd ac-library-java-1.0.0 && \ + chmod +x builder.sh && ./builder.sh && \ + cp ./src/bin/ac_library.jar /usr/local/ac-library-java/ac_library.jar && \ + cd /tmp && \ + rm -rf /tmp/* +ENV JAVA_HOME /usr/local/java/jdk-21.0.1 +ENV PATH $PATH:$JAVA_HOME/bin + +# Kotlin 1.9.21 +RUN apt install -y curl zip && \ + curl -s https://get.sdkman.io | bash && \ + source ~/.sdkman/bin/sdkman-init.sh && \ + sdk install kotlin 1.9.21 && \ + rm -rf /tmp/* + +# bf 20041219 +RUN apt install -y bf + +# Nim 1.6.16 +RUN curl https://nim-lang.org/choosenim/init.sh -sSf -o init.sh && \ + sh init.sh -y && \ + export PATH=/root/.nimble/bin:$PATH && \ + choosenim 1.6.16 && \ + nimble install neo -y && \ + apt install -y libopenblas-base -y && \ + nimble install https://github.com/zer0-star/Nim-ACL && \ + nimble install bignum -y && \ + rm -rf /tmp/* +ENV PATH $PATH:/root/.nimble/bin + +# Rust 1.75.0 +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ + /root/.cargo/bin/rustup default 1.75.0 && \ + export PATH=$PATH:/root/.cargo/bin && \ + cargo install --git https://github.com/rust-lang-ja/atcoder-rustc-dep-option-generator.git && \ + rm -rf /tmp/* +ENV PATH $PATH:/root/.cargo/bin + +# Ruby 3.2.2 +RUN apt install -y bison libreadline6-dev libncurses5-dev build-essential libssl-dev libyaml-dev zlib1g-dev libffi-dev libgmp-dev libreadline-dev && \ + wget https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.2.tar.gz && \ + tar -xzf ruby-3.2.2.tar.gz && \ + cd ruby-3.2.2 && \ + ./configure && \ + make install && \ + gem install rbtree ac-library-rb faster_prime sorted_set numo-narray && \ + cd /tmp && \ + rm -rf /tmp/* + +# Common Lisp 2.1.11 +RUN apt install -y sbcl + +# C# mono6.12.0 +RUN apt install -y gnupg ca-certificates && \ + gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mono-official-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF && \ + echo "deb [signed-by=/usr/share/keyrings/mono-official-archive-keyring.gpg] https://download.mono-project.com/repo/ubuntu stable-focal/snapshots/6.12.0 main" | tee /etc/apt/sources.list.d/mono-official-stable.list && \ + apt update && \ + apt install -y mono-devel RUN groupadd -r -g 400 code && useradd -r -u 400 -g 400 code diff --git a/mojacoder-backend/judge-image/language-definition.json b/mojacoder-backend/judge-image/language-definition.json index fd39968..5102b2b 100644 --- a/mojacoder-backend/judge-image/language-definition.json +++ b/mojacoder-backend/judge-image/language-definition.json @@ -1,73 +1,77 @@ { - "go-1.14": { - "name": "Go (1.14)", + "go-1.21": { + "name": "Go (1.21)", "filename": "main.go", "compileCommand": "go build main.go", "runCommand": "./main" }, - "python3.8": { - "name": "Python 3.8", + "python3.11": { + "name": "Python 3.11", "filename": "main.py", - "runCommand": "python3.8 ./main.py" + "compileCommand": "python3.11 -m py_compile main.py", + "runCommand": "python3.11 ./main.py" }, - "gcc-9.3.0": { + "gcc-12.3": { "filename": "main.c", - "compileCommand": "gcc -std=gnu11 -O2 -DONLINE_JUDGE -lm main.c", + "compileCommand": "gcc-12 -std=gnu17 -O2 -DONLINE_JUDGE -lm main.c", "runCommand": "./a.out" }, - "g++-9.3.0": { + "g++-12.3": { "filename": "main.cpp", - "compileCommand": "g++ -std=gnu++17 -Wall -Wextra -O2 -DONLINE_JUDGE main.cpp", + "compileCommand": "g++-12 -std=gnu++23 -Wall -Wextra -O2 -DONLINE_JUDGE main.cpp", "runCommand": "./a.out" }, - "csharp-mono-csc-3.6.0": { + "csharp-mono-csc-3.9.0": { "filename": "main.cs", "compileCommand": "csc main.cs", "runCommand": "mono main.exe" }, - "csharp-mono-mcs-6.12.0.107": { + "csharp-mono-mcs-6.12.0": { "filename": "main.cs", "compileCommand": "mcs main.cs", "runCommand": "mono main.exe" }, "bf-20041219": { "filename": "main.bf", - "runCommand": "bf main.bf" + "runCommand": "bf -c999999999 main.bf" }, "cat": { "filename": "main.txt", "runCommand": "cat main.txt" }, - "rust-1.43.0": { + "rust-1.74.0": { "filename": "main.rs", - "compileCommand": "RUST_LIB=/usr/src/app/rust/target/release/deps/ rustc --edition=2018 -C opt-level=3 $(/usr/src/app/rust/rustc-dep-option-generator --manifest-path /usr/src/app/rust/Cargo.toml) main.rs", + "compileCommand": "mv main.rs /usr/src/app/rust/src/main.rs && ( cd /usr/src/app/rust && cargo build --release --offline && rm src/main.rs ) && cp /usr/src/app/rust/target/release/rust main", "runCommand": "./main" }, - "pypy3-7.3.1": { + "pypy3-7.3.13": { "filename": "main.py", - "runCommand": "pypy3 main.py" + "runCommand": "pypy3 main.py", + "compileCommand": "pypy3 -m py_compile main.py" }, - "ruby-2.7": { + "ruby-3.2.2": { "filename": "main.rb", - "runCommand": "ruby main.rb" + "runCommand": "ruby main.rb", + "compileCommand": "ruby -c main.rb" }, - "java-11": { + "java-21": { "filename": "Main.java", - "compileCommand": "javac Main.java", - "runCommand": "java Main" + "compileCommand": "javac -cp /usr/local/ac-library-java/ac_library.jar Main.java", + "runCommand": "java -cp /usr/local/ac-library-java/ac_library.jar: Main" }, - "j-902": { - "filename": "main.ijs", - "runCommand": "ijconsole main.ijs" - }, - "kotlin-1.4": { + "kotlin-1.9.21": { "filename": "main.kt", "compileCommand": "~root/.sdkman/candidates/kotlin/current/bin/kotlinc main.kt -include-runtime -d main.jar", "runCommand": "java -jar main.jar" }, - "commonlisp-2.0": { + "commonlisp-2.1.11": { "filename": "main.lisp", "compileCommand": "sbcl --noinform --eval \"(compile-file \\\"main.lisp\\\")\" --quit", "runCommand": "sbcl --script main.fasl" + }, + "nim-1.6.16": { + "filename": "Main.nim", + "compileCommand": "nim cpp -d:release --opt:speed --multimethods:on --warning[SmallLshouldNotBeUsed]:off --hints:off -o:a.out Main.nim ", + "runCommand": "./a.out" } } diff --git a/mojacoder-backend/judge-image/pypy_requirements.txt b/mojacoder-backend/judge-image/pypy_requirements.txt new file mode 100644 index 0000000..4fba494 --- /dev/null +++ b/mojacoder-backend/judge-image/pypy_requirements.txt @@ -0,0 +1,11 @@ +numpy==1.26.2 +networkx==3.2.1 +sympy==1.12 +sortedcontainers==2.4.0 +more-itertools==10.1.0 +shapely==2.0.2 +bitarray==2.8.3 +mpmath==1.3.0 +z3-solver==4.12.2.0 +cppyy==3.1.2 +git+https://github.com/not522/ac-library-python diff --git a/mojacoder-backend/judge-image/python_requirements.txt b/mojacoder-backend/judge-image/python_requirements.txt new file mode 100644 index 0000000..2e4ffa5 --- /dev/null +++ b/mojacoder-backend/judge-image/python_requirements.txt @@ -0,0 +1,12 @@ +numpy==1.26.2 +networkx==3.2.1 +sympy==1.12 +sortedcontainers==2.4.0 +more-itertools==10.1.0 +shapely==2.0.2 +bitarray==2.8.3 +mpmath==1.3.0 +z3-solver==4.12.2.0 +cppyy==3.1.2 +numba==0.58.1 +git+https://github.com/not522/ac-library-python diff --git a/mojacoder-backend/judge-image/run.go b/mojacoder-backend/judge-image/run.go index 869e235..45cb4cb 100644 --- a/mojacoder-backend/judge-image/run.go +++ b/mojacoder-backend/judge-image/run.go @@ -3,6 +3,7 @@ package main import ( "fmt" "io" + "os" "os/exec" "strings" "syscall" @@ -42,7 +43,9 @@ func run(definition LanguageDefinition, config RunConfig) (RunResult, error) { args := strings.Join(config.runCommandArgs, " ") command := fmt.Sprintf("ulimit -u 32 -m %d && timeout --preserve-status -sSIGKILL %d %s %s; EXIT_CODE=$?; kill -SIGKILL -1; wait; exit $EXIT_CODE", config.memoryLimit+additional_memory, config.timeLimit, definition.RunCommand, args) cmd := exec.Command("bash", "-c", command) - cmd.Env = []string{} + cmd.Env = []string{ + "PATH=" + os.Getenv("PATH"), + } cmd.Dir = config.dir cmd.Stdin = config.stdin cmd.Stdout = config.stdout diff --git a/mojacoder-backend/judge-image/rust/Cargo.lock b/mojacoder-backend/judge-image/rust/Cargo.lock index 384df4e..b8cb4d3 100644 --- a/mojacoder-backend/judge-image/rust/Cargo.lock +++ b/mojacoder-backend/judge-image/rust/Cargo.lock @@ -1,10 +1,18 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + +[[package]] +name = "ac-library-rs" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e1ead7b72f44698f97266946c0576d00c9e2010858f5aba47aa4660177ef73" + [[package]] name = "aho-corasick" -version = "0.7.15" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" dependencies = [ "memchr", ] @@ -15,11 +23,64 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" dependencies = [ - "approx", - "num-complex", + "approx 0.3.2", + "num-complex 0.2.4", "num-traits", ] +[[package]] +name = "amplify" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8629db306c0bbeb0a402e2918bdcf0026b5ddb24c46460f3bf5410b350d98710" +dependencies = [ + "amplify_derive", + "amplify_num", + "ascii", + "libc", + "rand", + "stringly_conversions", + "wasm-bindgen", +] + +[[package]] +name = "amplify_derive" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759dcbfaf94d838367a86d493ec34ccc8aa6fe365cb7880d6bf89006de24d9c1" +dependencies = [ + "amplify_syn", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "amplify_num" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9681187211554ab98f138ba159e90861b136c20afc680dcff2ba82d020721e27" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "amplify_syn" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7736fb8d473c0d83098b5bac44df6a561e20470375cd8bcae30516dc889fd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anyhow" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" + [[package]] name = "approx" version = "0.3.2" @@ -29,17 +90,60 @@ dependencies = [ "num-traits", ] +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + +[[package]] +name = "argio" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edcfc5018bf09b4bba1fd737598ba0ed9671da849a510611716804e616816393" +dependencies = [ + "argio-macro", + "proconio", +] + +[[package]] +name = "argio-macro" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02fe9db01606837393bc98b3bbb73a5e44c52ecf9e5275c3d352b4c5c1b3f29e" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", +] + [[package]] name = "ascii" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbf56136a5198c7b01a49e3afcbef6cf84597273d298f54432926024107b0109" +checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "autocfg" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" [[package]] name = "bitmaps" @@ -56,49 +160,141 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8cc868e96ba5c32ffae4d42bf2940ca7fca317dcef3f19b6d7de66b6885abff" +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "bstr" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +dependencies = [ + "memchr", + "regex-automata", + "serde", +] + +[[package]] +name = "btreemultimap" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6786e40464bbcf1d72084fb26dd5f96c10c41c23a6d2f118d8c82870d4aa5447" +dependencies = [ + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + [[package]] name = "cfg-if" -version = "0.1.10" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "counter" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d458e66999348f56fd3ffcfbb7f7951542075ca8359687c703de6500c1ddccd" +dependencies = [ + "num-traits", +] + +[[package]] +name = "deprecate-until" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "7a3767f826efbbe5a5ae093920b58b43b01734202be697e1354914e862e8e704" +dependencies = [ + "proc-macro2", + "quote", + "semver", + "syn 2.0.48", +] + +[[package]] +name = "easy-ext" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49457524c7e65648794c98283282a0b7c73b10018e7091f1cdcfff314fd7ae59" [[package]] name = "either" -version = "1.5.3" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fixedbitset" -version = "0.2.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "generic-array" -version = "0.13.2" +name = "funty" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed1e761351b56f54eb9dcd0cfaca9fd0daecf93918e1cfc01c8a3d26ee7adcd" -dependencies = [ - "typenum", -] +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "getrandom" -version = "0.1.14" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "libc", "wasi", ] +[[package]] +name = "glidesort" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2e102e6eb644d3e0b186fc161e4460417880a0a0b87d235f2e5b8fb30f2e9e0" + +[[package]] +name = "hashbag" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d44c238cb72d3e8993a30c32e97b2b2c2c1a12388603f28c4f19a44c4396bc" + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + [[package]] name = "im-rc" -version = "14.3.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303f7e6256d546e01979071417432425f15c1891fb309a5f2d724ee908fabd6e" +checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" dependencies = [ "bitmaps", "rand_core", @@ -108,29 +304,36 @@ dependencies = [ "version_check", ] +[[package]] +name = "indexing" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3c4d532eb2a0194b8cfa6ca3745f817e58e6844bb86a0cbba5ada68de5fce10" + [[package]] name = "indexmap" -version = "1.3.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ - "autocfg", + "equivalent", + "hashbrown", ] [[package]] -name = "itertools" -version = "0.8.2" +name = "integer-sqrt" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" dependencies = [ - "either", + "num-traits", ] [[package]] name = "itertools" -version = "0.9.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" dependencies = [ "either", ] @@ -144,23 +347,41 @@ dependencies = [ "num-traits", ] +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + [[package]] name = "libc" -version = "0.2.82" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "libm" -version = "0.2.1" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "log" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "maplit" @@ -170,46 +391,97 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "matrixmultiply" -version = "0.2.4" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916806ba0031cd542105d916a97c8572e1fa6dd79c9c51e7eb43a09ec2dd84c1" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" dependencies = [ + "autocfg", "rawpointer", ] [[package]] name = "memchr" -version = "2.3.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "memoise" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04d4bedd9ad829dc571ce57e21d6b270a62646889bc045f265eb92183d6599db" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "multimap" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1a5d38b9b352dbd913288736af36af41c48d61b1a8cd34bcecd727561b7d511" +dependencies = [ + "serde", +] + +[[package]] +name = "multiversion" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2c7b9d7fe61760ce5ea19532ead98541f6b4c495d87247aff9826445cf6872a" +dependencies = [ + "multiversion-macros", + "target-features", +] + +[[package]] +name = "multiversion-macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26a83d8500ed06d68877e9de1dde76c1dbb83885dcdbda4ef44ccbc3fbda2ac8" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "target-features", +] [[package]] name = "nalgebra" -version = "0.20.0" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6511777ed3da44b6a11e732a66a7d6274dfbbcd68ad968e64b778dcb829d94a" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" dependencies = [ - "alga", - "approx", - "generic-array", + "approx 0.5.1", "matrixmultiply", - "num-complex", + "nalgebra-macros", + "num-complex 0.4.4", "num-rational", "num-traits", - "rand", - "rand_distr", + "simba", "typenum", ] +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "ndarray" -version = "0.13.0" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25b001fc2f5df269365fb77bd8396ce6b1f61c9848f7f088c25e57494bacc57b" +checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" dependencies = [ - "itertools 0.8.2", "matrixmultiply", - "num-complex", + "num-complex 0.4.4", "num-integer", "num-traits", "rawpointer", @@ -217,12 +489,12 @@ dependencies = [ [[package]] name = "num" -version = "0.2.1" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint", - "num-complex", + "num-complex 0.4.4", "num-integer", "num-iter", "num-rational", @@ -231,9 +503,9 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.2.6" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", @@ -250,22 +522,31 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + [[package]] name = "num-derive" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746" +checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "syn 1.0.58", + "proc-macro2", + "quote", + "syn 2.0.48", ] [[package]] name = "num-integer" -version = "0.1.42" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", "num-traits", @@ -273,9 +554,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.40" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ "autocfg", "num-integer", @@ -284,9 +565,9 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.2.4" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", "num-bigint", @@ -296,121 +577,167 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.11" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", "libm", ] +[[package]] +name = "omniswap" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b73dba5f4428a4b36f77fb700ebba05e7f3c8bdbea4530f94427eb2009196f8" + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + [[package]] name = "ordered-float" -version = "1.0.2" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18869315e81473c951eb56ad5558bbc56978562d3ecfb87abb7a1e944cea4518" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ "num-traits", ] [[package]] -name = "permutohedron" -version = "0.2.4" +name = "ordered-float" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b687ff7b5da449d39e418ad391e5e08da53ec334903ddbb921db208908fc372c" +checksum = "a76df7075c7d4d01fdcb46c912dd17fba5b60c78ea480b475f2b6ab6f666584e" +dependencies = [ + "num-traits", +] [[package]] -name = "petgraph" -version = "0.5.0" +name = "partial_ref" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92" +checksum = "0f728bc9b1479656e40cba507034904a8c44027c0efdbbaf6a4bdc5f2d3a910c" dependencies = [ + "partial_ref_derive", +] + +[[package]] +name = "partial_ref_derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300e1d2cb5b898b5a5342e994e0d0c367dbfe69cbf717cd307045ec9fb057581" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "pathfinding" +version = "4.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b425bfb8934d227558811f4b8c94d6fe64c9069c1387deed0f586bc418271b2" +dependencies = [ + "deprecate-until", "fixedbitset", "indexmap", + "integer-sqrt", + "num-traits", + "rustc-hash", + "thiserror", ] [[package]] -name = "ppv-lite86" -version = "0.2.10" +name = "permutohedron" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" +checksum = "b687ff7b5da449d39e418ad391e5e08da53ec334903ddbb921db208908fc372c" [[package]] -name = "proc-macro2" -version = "0.4.30" +name = "petgraph" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "unicode-xid 0.1.0", + "fixedbitset", + "indexmap", ] +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" dependencies = [ - "unicode-xid 0.2.1", + "unicode-ident", ] [[package]] name = "proconio" -version = "0.3.6" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bed4f95f88d84bb8efd51dbc080d463e6ca953f05dfade2e24daf19dd861ccd" +checksum = "0eb404616795079e2390e7115acf0ada24e9332e8476de2aada7bacb9992dc9e" dependencies = [ - "lazy_static", "proconio-derive", ] [[package]] name = "proconio-derive" -version = "0.1.6" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f2111a9562adf5ba291143c434818c908a05636c8a492a0a69ba4720a2c16" +checksum = "bccfa078f1a3db6563793531989799a2201d9bdf609f48dd82620b443fbcd409" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "quote" -version = "0.6.13" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ - "proc-macro2 0.4.30", + "proc-macro2", ] [[package]] -name = "quote" -version = "1.0.8" +name = "radium" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" -dependencies = [ - "proc-macro2 1.0.24", -] +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" -version = "0.7.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "getrandom", "libc", "rand_chacha", "rand_core", - "rand_hc", - "rand_pcg", ] [[package]] name = "rand_chacha" -version = "0.2.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", "rand_core", @@ -418,45 +745,46 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.5.1" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] [[package]] name = "rand_distr" -version = "0.2.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ + "num-traits", "rand", ] [[package]] name = "rand_hc" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "7b363d4f6370f88d62bf586c80405657bde0f0e1b8945d47d2ad59b906cb4f54" dependencies = [ "rand_core", ] [[package]] name = "rand_pcg" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" dependencies = [ "rand_core", ] [[package]] name = "rand_xoshiro" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ "rand_core", ] @@ -467,52 +795,89 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" +[[package]] +name = "recur-fn" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddb239d0574f3f7a7f44da906a0484f1fc284f89cfbc4eca1895420dbf948201" + [[package]] name = "regex" -version = "1.3.6" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-syntax" -version = "0.6.22" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "rust" version = "0.1.0" dependencies = [ + "ac-library-rs", "alga", + "amplify", + "amplify_derive", + "amplify_num", + "argio", "ascii", + "az", "bitset-fixed", + "bitvec", + "bstr", + "btreemultimap", + "counter", + "easy-ext", "either", "fixedbitset", "getrandom", + "glidesort", + "hashbag", "im-rc", + "indexing", "indexmap", - "itertools 0.9.0", + "itertools", "itertools-num", "lazy_static", "libm", "maplit", + "memoise", + "multimap", + "multiversion", "nalgebra", "ndarray", "num", "num-bigint", - "num-complex", + "num-complex 0.4.4", "num-derive", "num-integer", "num-iter", "num-rational", "num-traits", - "ordered-float", + "omniswap", + "once_cell", + "ordered-float 4.2.0", + "pathfinding", "permutohedron", "petgraph", "proconio", @@ -522,12 +887,15 @@ dependencies = [ "rand_distr", "rand_hc", "rand_pcg", + "recur-fn", "regex", "rustc-hash", "smallvec", + "static_assertions", "superslice", + "tap", "text_io", - "whiteread", + "varisat", ] [[package]] @@ -536,11 +904,59 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "safe_arch" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "semver" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" + +[[package]] +name = "serde" +version = "1.0.195" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.195" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx 0.5.1", + "num-complex 0.4.4", + "num-traits", + "paste", + "wide", +] + [[package]] name = "sized-chunks" -version = "0.5.3" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d59044ea371ad781ff976f7b06480b9f0180e834eda94114f2afb4afc12b7718" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" dependencies = [ "bitmaps", "typenum", @@ -548,9 +964,28 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.2.0" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +dependencies = [ + "arbitrary", + "serde", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "stringly_conversions" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff63080f492dd4d289ffcaed8d7ece38adfb423db910eb342c0e04d409536a7a" +dependencies = [ + "paste", +] [[package]] name = "superslice" @@ -560,73 +995,262 @@ checksum = "ab16ced94dbd8a46c82fd81e3ed9a8727dac2977ea869d217bcc4ea1f122e81f" [[package]] name = "syn" -version = "0.15.44" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] name = "syn" -version = "1.0.58" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ - "proc-macro2 1.0.24", - "quote 1.0.8", - "unicode-xid 0.2.1", + "proc-macro2", + "quote", + "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-features" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb5fa503293557c5158bd215fdc225695e567a77e453f5d4452a50a193969bd" + [[package]] name = "text_io" -version = "0.1.8" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb170b4f47dc48835fbc56259c12d8963e542b05a24be2e3a1f5a6c320fd2d4" +checksum = "d5f0c8eb2ad70c12a6a69508f499b3051c924f4b1cfeae85bfad96e6bc5bba46" [[package]] -name = "thread_local" -version = "1.1.0" +name = "thiserror" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb9bc092d0d51e76b2b19d9d85534ffc9ec2db959a2523cdae0697e2972cd447" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ - "lazy_static", + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", ] [[package]] name = "typenum" -version = "1.12.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] -name = "unicode-xid" -version = "0.1.0" +name = "unicode-ident" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-xid" -version = "0.2.1" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "varisat" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe609851d1e9196674ac295f656bd8601200a1077343d22b345013497807caf" +dependencies = [ + "anyhow", + "itoa", + "leb128", + "log", + "ordered-float 2.10.1", + "partial_ref", + "rustc-hash", + "serde", + "thiserror", + "varisat-checker", + "varisat-dimacs", + "varisat-formula", + "varisat-internal-macros", + "varisat-internal-proof", + "vec_mut_scan", +] + +[[package]] +name = "varisat-checker" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135c977c5913ed6e98f6b81b8e4d322211303b7d40dae773caef7ad1de6c763b" +dependencies = [ + "anyhow", + "log", + "partial_ref", + "rustc-hash", + "smallvec", + "thiserror", + "varisat-dimacs", + "varisat-formula", + "varisat-internal-proof", +] + +[[package]] +name = "varisat-dimacs" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1dee4e21be1f04c0a939f7ae710cced47233a578de08a1b3c7d50848402636" +dependencies = [ + "anyhow", + "itoa", + "thiserror", + "varisat-formula", +] + +[[package]] +name = "varisat-formula" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395c5543b9bfd9076d6d3af49d6c34a4b91b0b355998c0a5ec6ed7265d364520" + +[[package]] +name = "varisat-internal-macros" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "602ece773543d066aa7848455486c6c0422a3f214da7a2b899100f3c4f12408d" +dependencies = [ + "proc-macro2", + "quote", + "regex", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "varisat-internal-proof" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6163bb7bc9018af077b76d64f976803d141c36a27d640f1437dddc4fd527d207" +dependencies = [ + "anyhow", + "varisat-formula", +] + +[[package]] +name = "vec_mut_scan" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +checksum = "68ed610a8d5e63d9c0e31300e8fdb55104c5f21e422743a9dc74848fa8317fd2" [[package]] name = "version_check" -version = "0.9.2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "wide" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +dependencies = [ + "bytemuck", + "safe_arch", +] [[package]] -name = "whiteread" -version = "0.5.0" +name = "wyz" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bc25de0a968755322a6b517a7257df7ec3216ed7907b8fc064906542f9714b3" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] diff --git a/mojacoder-backend/judge-image/rust/Cargo.toml b/mojacoder-backend/judge-image/rust/Cargo.toml index 1956099..4ad8651 100644 --- a/mojacoder-backend/judge-image/rust/Cargo.toml +++ b/mojacoder-backend/judge-image/rust/Cargo.toml @@ -2,109 +2,70 @@ name = "rust" version = "0.1.0" authors = ["Makutamoto <34860673+makutamoto@users.noreply.github.com>"] -edition = "2018" +edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -# The following code was copied from https://github.com/rust-lang-ja/atcoder-rust-base/blob/c61d275ff82a40951e64c771d1680da515b9f421/Cargo.toml - -# AtCoder 2019年言語アップデート以降に使用できるクレート - -# 各クレートの説明 -# https://github.com/rust-lang-ja/atcoder-rust-resources/wiki/2020-Update - -# 数値型の抽象化、多倍長整数、複素数、分数、及び整数型の拡張 -num = "=0.2.1" -num-bigint = "=0.2.6" -num-complex = "=0.2.4" -num-integer = "=0.1.42" -num-iter = "=0.1.40" -num-rational = "=0.2.4" -num-traits = "=0.2.11" - -# `num-traits`の自動実装 -num-derive = "=0.3.0" - -# NumPyの`ndarray`のような多次元配列 -ndarray = "=0.13.0" - -# 線形代数 -nalgebra = "=0.20.0" - -# (線形)代数の抽象化 +ac-library-rs = "=0.1.1" +once_cell = "=1.19.0" +static_assertions = "=1.1.0" +varisat = "=0.2.2" +memoise = "=0.3.2" +argio = "=0.2.0" +bitvec = "=1.0.1" +counter = "=0.5.7" +hashbag = "=0.1.11" +pathfinding = "=4.8.1" +recur-fn = "=2.2.0" +indexing = { version = "=0.4.1", features = ["experimental_pointer_ranges"] } +amplify = { version = "=4.5.0", features = ["c_raw", "rand", "stringly_conversions"] } +amplify_derive = "=4.0.0" +amplify_num = { version = "=0.5.1", features = ["std"] } +easy-ext = "=1.0.1" +multimap = "=0.9.1" +btreemultimap = "=0.1.1" +bstr = "=1.9.0" +az = "=1.2.1" +glidesort = "=0.1.2" +tap = "=1.0.1" +omniswap = "=0.1.0" +multiversion = "=0.7.3" +num = "=0.4.1" +num-bigint = "=0.4.4" +num-complex = "=0.4.4" +num-integer = "=0.1.45" +num-iter = "=0.1.43" +num-rational = "=0.4.1" +num-traits = "=0.2.17" +num-derive = "=0.4.1" +ndarray = "=0.15.6" +nalgebra = "=0.32.3" alga = "=0.9.3" - -# libmのRust実装 -libm = "=0.2.1" - -# 乱数 -rand = { version = "=0.7.3", features = ["small_rng"] } -getrandom = "=0.1.14" -rand_chacha = "=0.2.2" -rand_core = "=0.5.1" -rand_hc = "=0.2.0" -rand_pcg = "=0.2.1" - -# 乱数の分布の追加 -rand_distr = "=0.2.2" - -# グラフ -petgraph = "=0.5.0" - -# 挿入順を保持するhash table -indexmap = "=1.3.2" - -# 正規表現 -regex = "=1.3.6" - -# staticアイテムの遅延初期化 +libm = "=0.2.8" +rand = { version = "=0.8.5", features = ["small_rng", "min_const_gen"] } +getrandom = "=0.2.12" +rand_chacha = "=0.3.1" +rand_core = "=0.6.4" +rand_hc = "=0.3.2" +rand_pcg = "=0.3.1" +rand_distr = "=0.4.3" +petgraph = "=0.6.4" +indexmap = "=2.1.0" +regex = "=1.10.2" lazy_static = "=1.4.0" - -# `NotNan`, `OrderedFloat` -ordered-float = "=1.0.2" - -# ASCII文字列 -ascii = "=1.0.0" - -# permutation +ordered-float = "=4.2.0" +ascii = "=1.1.0" permutohedron = "=0.2.4" - -# スライスの拡張 superslice = "=1.0.0" - -# イテレータの拡張 -itertools = "=0.9.0" - -# イテレータの拡張(一次元累積和と浮動小数点数の等差数列) +itertools = "=0.12.0" itertools-num = "=0.1.3" - -# `BTreeMap`, `BTreeSet`, `HashMap`, `HashSet`のリテラル用マクロ maplit = "=1.0.2" - -# 即席enum `Either` -either = "=1.5.3" - -# `BTreeMap`, `BTreeSet`, `HashMap`, `HashSet`, `Vec`の永続データ構造版 -im-rc = "=14.3.0" - -# 可変長bit set -fixedbitset = "=0.2.0" - -# 可変長bit set +either = "=1.9.0" +im-rc = "=15.1.0" +fixedbitset = "=0.4.2" bitset-fixed = "=0.1.0" - -# 競技プログラミングの入出力サポートその1 -proconio = { version = "=0.3.6", features = ["derive"] } - -# 競技プログラミングの入出力サポートその2 -text_io = "=0.1.8" - -# 競技プログラミングの入出力サポートその3 -whiteread = "=0.5.0" - -# 高速なハッシュ関数 +proconio = { version = "=0.4.5", features = ["derive"] } +text_io = "=0.1.12" rustc-hash = "=1.1.0" - -# ある長さまでは要素を「直に」持つ可変長配列 -smallvec = "=1.2.0" +smallvec = { version = "=1.11.2", features = ["const_generics", "const_new", "write", "union", "serde", "arbitrary"] } diff --git a/mojacoder-backend/judge-image/rust/rustc-dep-option-generator b/mojacoder-backend/judge-image/rust/rustc-dep-option-generator deleted file mode 100755 index 177dc26..0000000 Binary files a/mojacoder-backend/judge-image/rust/rustc-dep-option-generator and /dev/null differ diff --git a/mojacoder-backend/judge-image/special-judge-langs.json b/mojacoder-backend/judge-image/special-judge-langs.json index 8b07a98..f8fcdcd 100644 --- a/mojacoder-backend/judge-image/special-judge-langs.json +++ b/mojacoder-backend/judge-image/special-judge-langs.json @@ -1,20 +1,20 @@ { "go": { - "id": "go-1.14" + "id": "go-1.21" }, "python": { - "id": "python3.8" + "id": "python3.11" }, "pypy": { - "id": "pypy3-7.3.1" + "id": "pypy3-7.3.13" }, "cpp": { - "id": "g++-9.3.0" + "id": "g++-12.3" }, "java": { - "id": "java-11" + "id": "java-21" }, "rust": { - "id": "rust-1.43.0" + "id": "rust-1.74.0" } } \ No newline at end of file diff --git a/mojacoder-frontend/components/Editor.tsx b/mojacoder-frontend/components/Editor.tsx index b78eb4d..e3e7721 100644 --- a/mojacoder-frontend/components/Editor.tsx +++ b/mojacoder-frontend/components/Editor.tsx @@ -60,6 +60,36 @@ export const LANGUAGE_TO_MODE: { [index: string]: string } = { commonlisp: 'text/x-common-lisp', } +const LangAlias = { + 'text/x-markdown': ['markdown'], + 'text/x-go': [/go/], + python: [/py/], + 'text/x-csrc': [/gcc/, 'c'], + 'text/x-c++src': [/g\+\+/, 'cpp'], + 'text/x-csharp': [/csharp/, 'cs'], + 'text/x-brainfuck': ['bf-20041219', 'bf'], + 'text/plain': ['cat', 'txt', 'text'], + 'text/x-rustsrc': [/rust/, 'rs'], + 'text/x-ruby': [/ruby/, 'rb'], + 'text/x-java': [/java/], + 'text/x-kotlin': [/kotlin/], + 'text/x-common-lisp': [/lisp/], +} + +function toCodemirrorMode(value) { + for (const [key, aliases] of Object.entries(LangAlias)) { + for (const alias of aliases) { + if ( + (alias instanceof RegExp && alias.test(value)) || + alias === value + ) { + return key + } + } + } + return 'text/plain' +} + export interface EditorProps { lang?: string lineNumbers?: boolean @@ -79,7 +109,7 @@ const Editor: React.FC = (props) => { value={props.value} options={{ autoRefresh: true, - mode: LANGUAGE_TO_MODE[props.lang] || props.lang, + mode: toCodemirrorMode(props.lang), lineNumbers: props.lineNumbers, readOnly: props.readOnly, }} diff --git a/mojacoder-frontend/components/LanguageSelector.tsx b/mojacoder-frontend/components/LanguageSelector.tsx index 89095c3..46e5c22 100644 --- a/mojacoder-frontend/components/LanguageSelector.tsx +++ b/mojacoder-frontend/components/LanguageSelector.tsx @@ -5,21 +5,21 @@ import Selector, { SelectorProps, SelectorOptionsType } from './Selector' export type LanguageSelectorProps = Omit const OPTIONS: SelectorOptionsType = [ - { value: 'go-1.14', label: 'Go (1.14)' }, - { value: 'python3.8', label: 'Python3 (CPython 3.8)' }, - { value: 'gcc-9.3.0', label: 'C (GCC 9.3.0)' }, - { value: 'g++-9.3.0', label: 'C++ (GCC 9.3.0)' }, - { value: 'csharp-mono-csc-3.6.0', label: 'C# (Mono-csc 3.6.0)' }, - { value: 'csharp-mono-mcs-6.12.0.107', label: 'C# (Mono-mcs 6.12.0.107)' }, + { value: 'go-1.21', label: 'Go (1.21)' }, + { value: 'python3.11', label: 'Python3 (CPython 3.11)' }, + { value: 'gcc-12.3', label: 'C (GCC 12.3)' }, + { value: 'g++-12.3', label: 'C++ (GCC 12.3)' }, + { value: 'csharp-mono-csc-3.9.0', label: 'C# (Mono-csc 3.9.0)' }, + { value: 'csharp-mono-mcs-6.12.0', label: 'C# (Mono-mcs 6.12.0)' }, { value: 'bf-20041219', label: 'Brainfuck (bf 20041219)' }, { value: 'cat', label: 'Text (cat)' }, - { value: 'rust-1.43.0', label: 'Rust (rustc 1.43.0)' }, - { value: 'pypy3-7.3.1', label: 'Python3 (pypy3 7.3.1)' }, - { value: 'ruby-2.7', label: 'Ruby (CRuby 2.7)' }, - { value: 'java-11', label: 'Java 11 (Open JDK 11)' }, - { value: 'j-902', label: 'J (j902)' }, - { value: 'kotlin-1.4', label: 'Kotlin (1.4)' }, - { value: 'commonlisp-2.0', label: 'Common Lisp (2.0)' }, + { value: 'rust-1.74.0', label: 'Rust (rustc 1.74.0)' }, + { value: 'pypy3-7.3.13', label: 'Python3 (pypy3 7.3.13)' }, + { value: 'ruby-3.2.2', label: 'Ruby (CRuby 3.2.2)' }, + { value: 'java-21', label: 'Java 21 (Open JDK 21)' }, + { value: 'kotlin-1.9.21', label: 'Kotlin (1.9)' }, + { value: 'commonlisp-2.1.11', label: 'Common Lisp (2.1)' }, + { value: 'nim-1.6.16', label: 'Nim (1.6.16)' }, ] const LanguageSelector: React.FC = (props) => { diff --git a/mojacoder-frontend/components/SubmissionBox.tsx b/mojacoder-frontend/components/SubmissionBox.tsx index 1bd0662..4816133 100644 --- a/mojacoder-frontend/components/SubmissionBox.tsx +++ b/mojacoder-frontend/components/SubmissionBox.tsx @@ -43,7 +43,7 @@ const SubmissionBox: React.FC = ({ const { auth } = Auth.useContainer() const router = useRouter() const [status, setStatus] = useState(Status.Normal) - const [lang, setLang] = useLocalStorage('code-lang', 'go-1.14') + const [lang, setLang] = useLocalStorage('code-lang', 'go-1.21') const [code, setCode] = useState('') const onCodeEditorChange = useCallback( (value: Code) => { diff --git a/mojacoder-frontend/lib/programming_language.ts b/mojacoder-frontend/lib/programming_language.ts index 7874078..14e5897 100644 --- a/mojacoder-frontend/lib/programming_language.ts +++ b/mojacoder-frontend/lib/programming_language.ts @@ -1,19 +1,32 @@ const programmingLanguageIDToName = { 'go-1.14': 'Go (1.14)', + 'go-1.21': 'Go (1.21)', 'python3.8': 'Python3 (CPython 3.8)', + 'python3.11': 'Python3 (CPython 3.11)', 'gcc-9.3.0': 'C (GCC 9.3.0)', + 'gcc-12.3': 'C (GCC 12.3)', 'g++-9.3.0': 'C++ (GCC 9.3.0)', + 'g++-12.3': 'C++ (GCC 12.3)', 'csharp-mono-csc-3.6.0': 'C# (Mono-csc 3.6.0)', + 'csharp-mono-csc-3.9.0': 'C# (Mono-csc 3.9.0)', 'csharp-mono-mcs-6.12.0.107': 'C# (Mono-mcs 6.12.0.107)', + 'csharp-mono-mcs-6.12.0': 'C# (Mono-mcs 6.12.0)', 'bf-20041219': 'Brainfuck (bf 20041219)', cat: 'Text (cat)', 'rust-1.43.0': 'Rust (rustc 1.43.0)', + 'rust-1.74.0': 'Rust (rustc 1.74.0)', 'pypy3-7.3.1': 'Python3 (pypy3 7.3.1)', + 'pypy3-7.3.13': 'Python3 (pypy3 7.3.13)', 'ruby-2.7': 'Ruby (CRuby 2.7)', + 'ruby-3.2.2': 'Ruby (CRuby 3.2.2)', 'java-11': 'Java 11 (Open JDK 11)', + 'java-21': 'Java 21 (Open JDK 21)', 'j-902': 'J (j902)', 'kotlin-1.4': 'Kotlin (1.4)', + 'kotlin-1.9.21': 'Kotlin (1.9)', 'commonlisp-2.0': 'Common Lisp (2.0)', + 'commonlisp-2.1.11': 'Common Lisp (2.1)', + 'nim-1.6.16': 'Nim (1.6.16)', } as const export function getProgrammingLanguageNameFromID(id: string) {