Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,12 +103,12 @@ jobs:
⚡ **Build Type**: Lite version (competitive programming focused)

### 🔍 Verified Components
- ✅ Python 3.13.5
- ✅ Ruby 3.4.4
- ✅ Rust 1.87.0
- ✅ Node.js 22.16.0
- ✅ Java 23.0.1
- ✅ GCC 13.3.0
- ✅ Python 3.13.7
- ✅ Ruby 3.4.5
- ✅ Rust 1.89.0
- ✅ Node.js 22.19.0
- ✅ Java 24.0.2
- ✅ GCC 13

🎯 **Ready for competitive programming!**

Expand Down
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,16 +106,16 @@ git commit -m "Update competitive programming libraries [build-lite]"

## Supported Languages and Versions

The container includes the following languages (versions as of January 2025):
The container includes the following languages (`toml/*.toml` is the single source of truth; the Dockerfiles are kept in sync with it):

### Full Version (Dockerfile)
- **Python** 3.13.7 (with LTO and BOLT optimizations on x86_64)
- **Node.js** 22.19.0
- **Java** OpenJDK 23.0.1
- **Java** OpenJDK 24.0.2
- **Ruby** 3.4.5
- **Erlang/OTP** 28.0.2
- **Elixir** 1.18.4 (using OTP 27 binary for OTP 28 compatibility)
- **Rust** 1.87.0
- **Rust** 1.89.0
- **C++** GCC 13 (g++-13) on Ubuntu 24.04
- **PHP** 8.4.12 (with JIT compiler)

Expand Down
8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ RUN gem install -N \
sed -i 's/lib_helpers\\"/lib_helpers/g' "$(gem environment gemdir)/specifications/ac-library-rb-1.2.0.gemspec"

# Install Rust from official precompiled tarball
ARG RUST_VERSION=1.87.0
ARG RUST_VERSION=1.89.0
RUN case "$(uname -m)" in \
x86_64) \
curl "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" -fO && \
Expand Down Expand Up @@ -419,11 +419,11 @@ RUN case "$(uname -m)" in \
# Install Java (precompiled)
RUN case "$(uname -m)" in \
x86_64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-x64_bin.tar.gz | \
curl -fL https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
;; \
aarch64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-aarch64_bin.tar.gz | \
curl -fL https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
Comment on lines 419 to 427
;; \
*) \
Expand Down Expand Up @@ -469,7 +469,7 @@ RUN apt-get update && \
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 90 --slave /usr/bin/g++ g++ /usr/bin/g++-13

# Create info file
RUN echo 'AtCoder Full 2025: Py3.13.7 Node22.19 Java23.0.1 Ruby3.4.5 Erlang28.0.2 Elixir1.18.4 Rust1.87 C++GCC13 PHP8.4.12+JIT | ML: NumPy SciPy PyTorch pandas | C++: ACLib Boost1.83 Eigen LibTorch | or-tools' > /usr/local/share/container-info.txt && \
RUN echo 'AtCoder Full 2025: Py3.13.7 Node22.19 Java24.0.2 Ruby3.4.5 Erlang28.0.2 Elixir1.18.4 Rust1.89 C++GCC13 PHP8.4.12+JIT | ML: NumPy SciPy PyTorch pandas | C++: ACLib Boost1.83 Eigen LibTorch | or-tools' > /usr/local/share/container-info.txt && \
echo "Built: $(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> /usr/local/share/container-info.txt

# Set final working directory
Expand Down
8 changes: 4 additions & 4 deletions Dockerfile.lite
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ RUN gem install -N \
sed -i 's/lib_helpers\\"/lib_helpers/g' "$(gem environment gemdir)/specifications/ac-library-rb-1.2.0.gemspec"

# Install Rust from official precompiled tarball
ARG RUST_VERSION=1.87.0
ARG RUST_VERSION=1.89.0
RUN case "$(uname -m)" in \
x86_64) \
curl "https://static.rust-lang.org/dist/rust-${RUST_VERSION}-x86_64-unknown-linux-gnu.tar.gz" -fO && \
Expand Down Expand Up @@ -299,11 +299,11 @@ RUN case "$(uname -m)" in \
# Install Java (precompiled)
RUN case "$(uname -m)" in \
x86_64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-x64_bin.tar.gz | \
curl -fL https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
;; \
aarch64) \
curl -L https://download.java.net/java/GA/jdk23.0.1/c28985cbf10d4e648e4004050f8781aa/11/GPL/openjdk-23.0.1_linux-aarch64_bin.tar.gz | \
curl -fL https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz | \
tar zx -C /usr/local --strip-components 1 \
Comment on lines 299 to 307
;; \
*) \
Expand Down Expand Up @@ -349,7 +349,7 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*

# Create info file
RUN echo 'AtCoder Lite 2025: Py3.13.7 Node22.19 Java23.0.1 Ruby3.4.5 Erlang28.0.2 Elixir1.18.4 Rust1.87 C++GCC13 PHP8.4.12+JIT | C++: ACLib Eigen' > /usr/local/share/container-info.txt && \
RUN echo 'AtCoder Lite 2025: Py3.13.7 Node22.19 Java24.0.2 Ruby3.4.5 Erlang28.0.2 Elixir1.18.4 Rust1.89 C++GCC13 PHP8.4.12+JIT | C++: ACLib Eigen' > /usr/local/share/container-info.txt && \
echo "Built: $(date -u +"%Y-%m-%dT%H:%M:%SZ")" >> /usr/local/share/container-info.txt

# Set final working directory
Expand Down
20 changes: 7 additions & 13 deletions IMAGE_SIZE_ANALYSIS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ AtCoder コンテナの各バージョンにおける言語・コンポーネン
| **Java** | 318MB | 136MB | 136MB | 0MB |
| **Erlang** | 142MB | 163MB | 163MB | 0MB |
| **Elixir** | 13MB | (含む) | (含む) | 0MB |
| **Rust** | 1.5GB | ❌ なし | ❌ なし | 0MB |
| **Rust** | 1.5GB | (含む) | (含む) | 0MB |
| **LibTorch** | ❌ なし | ❌ なし | ~454MB | +454MB |
| **PyTorch (Python)** | ❌ なし | ❌ なし | ~442MB | +442MB |
| **システム(/usr)** | 576MB | 3.0GB | 4.4GB | +1.4GB |
Expand All @@ -35,14 +35,9 @@ AtCoder コンテナの各バージョンにおける言語・コンポーネン
- **フル版追加**: PyTorch 2.6.0+cpu(+738MB)

### Ruby の変化(112MB → 895MB)
- **GCパッチ適用**: 性能向上のためのパッチ
- **gem ライブラリ**: 競技プログラミング用 + 科学計算系
- **フル版追加**: torch-rb 0.20.0(+36MB)

### Rust の除外(-1.5GB)
- 新バージョンでは Rust 1.70.0 を除外
- サイズ削減の主要要因

### 機械学習ライブラリ(フル版のみ +896MB)
- **LibTorch**: 454MB(C++ 機械学習ライブラリ)
- **PyTorch**: 442MB(Python 機械学習フレームワーク)
Expand All @@ -59,13 +54,13 @@ AtCoder コンテナの各バージョンにおける言語・コンポーネン
- Rust: 1.70.0

### 新バージョン(ライト版・フル版共通)
- **Python**: 3.13.5(LTO/BOLT最適化)
- **Node.js**: 22.16.0
- **Ruby**: 3.4.4(GCパッチ適用)
- **Java**: JDK 23.0.1
- **Erlang**: 28.0
- **Python**: 3.13.7(LTO/BOLT最適化)
- **Node.js**: 22.19.0
- **Ruby**: 3.4.5
- **Java**: JDK 24.0.2
- **Erlang**: 28.0.2
- **Elixir**: 1.18.4
- **Rust**: ❌ 除外
- **Rust**: 1.89.0

## 推奨使用方法

Expand All @@ -87,7 +82,6 @@ AtCoder コンテナの各バージョンにおける言語・コンポーネン
|------|--------|------|
| **Python最適化ビルド** | +1.2GB | LTO、BOLT、科学計算ライブラリ |
| **Ruby拡張** | +783MB | GCパッチ、競技プログラミング用gem |
| **Rust除外** | -1.5GB | サイズ削減効果 |
| **機械学習ライブラリ** | +896MB | PyTorch、LibTorch(フル版のみ) |
| **システム基盤** | +2.4GB | Ubuntu、ビルドツール、その他 |

Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@

両イメージとも以下の言語に対応しています:

- **Java** (JDK 23.0.1)
- **Ruby** (3.4.4 with GC patch)
- **Java** (JDK 24.0.2)
- **Ruby** (3.4.5)
- **Elixir** (1.18.4)
- **Python3** (3.13.5 with LTO/BOLT optimizations)
- **JavaScript** (Node.js 22.16.0)
- **C++** (g++ 12.3.0, C++23 support)
- **Rust** (1.70.0)
- **Erlang** (28.0)
- **Python3** (3.13.7 with LTO/BOLT optimizations)
- **JavaScript** (Node.js 22.19.0)
- **C++** (g++ 13, C++23 support)
- **Rust** (1.89.0)
- **Erlang** (28.0.2)
Comment on lines 25 to +34

## 主要な違い

Expand Down
22 changes: 11 additions & 11 deletions toml/install-script.toml
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ language = 'Rust'
# 具体的には現状の提出画面における表示を参考にしてください
# 例: 'C++23 (GCC 15.1)'
# 'C++23 (Clang 18.1.8)'
# 'Java24 (OpenJDK 24.0.1)'
# 'Java24 (OpenJDK 24.0.2)'
# 'Python3 (CPython 3.13.3)'
display = 'Rust (rustc 1.87.0)'
display = 'Rust (rustc 1.89.0)'
# 1.87.0: Released on: 15 May, 2025 https://releases.rs/docs/1.87.0/
# 1.88.0: Will be stable on: 26 June, 2025 https://releases.rs/docs/1.88.0/
# 1.89.0: Will be stable on: 7 August, 2025 https://releases.rs/docs/1.89.0/
# 1.88.0: Released on: 26 June, 2025 https://releases.rs/docs/1.88.0/
# 1.89.0: Released on: 7 August, 2025 https://releases.rs/docs/1.89.0/

# キー: license
# 型: 配列
Expand Down Expand Up @@ -99,11 +99,11 @@ display = 'Rust (rustc 1.87.0)'
# コンパイラ、インタプリタの実装のライセンスを記述してください
# デュアルライセンスなど、ライセンスが複数ある場合はすべて記述してください
license = [
{ name = 'Apache-2.0', url = 'https://github.com/rust-lang/rust/blob/1.87.0/COPYRIGHT' },
{ name = 'MIT', url = 'https://github.com/rust-lang/rust/blob/1.87.0/COPYRIGHT' },
{ name = 'Apache-2.0', exception = 'LLVM-exception', url = 'https://github.com/rust-lang/rust/blob/1.87.0/COPYRIGHT' },
{ name = 'Apache-2.0', url = 'https://github.com/rust-lang/rust/blob/1.87.0/LICENSE-APACHE' },
{ name = 'MIT', url = 'https://github.com/rust-lang/rust/blob/1.87.0/LICENSE-MIT' },
{ name = 'Apache-2.0', url = 'https://github.com/rust-lang/rust/blob/1.89.0/COPYRIGHT' },
{ name = 'MIT', url = 'https://github.com/rust-lang/rust/blob/1.89.0/COPYRIGHT' },
{ name = 'Apache-2.0', exception = 'LLVM-exception', url = 'https://github.com/rust-lang/rust/blob/1.89.0/COPYRIGHT' },
{ name = 'Apache-2.0', url = 'https://github.com/rust-lang/rust/blob/1.89.0/LICENSE-APACHE' },
{ name = 'MIT', url = 'https://github.com/rust-lang/rust/blob/1.89.0/LICENSE-MIT' },
]

# キー: library
Expand Down Expand Up @@ -1679,8 +1679,8 @@ set -e
sudo apt-get update
sudo apt-get install -y --no-install-recommends build-essential ca-certificates curl

rust_version=1.87.0
rust_channel=1.87.0
rust_version=1.89.0
rust_channel=1.89.0

# https://forge.rust-lang.org/infra/other-installation-methods.html#standalone-installers
curl "https://static.rust-lang.org/dist/rust-$rust_channel-x86_64-unknown-linux-gnu.tar.gz" -fO --output-dir /tmp
Expand Down
4 changes: 2 additions & 2 deletions toml/installscript.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

language = 'Java'

display = 'Java24 (OpenJDK 24.0.1)'
display = 'Java24 (OpenJDK 24.0.2)'

license = [
{ name = 'GPL-2.0-or-later', url = 'https://openjdk.org/legal/gplv2+ce.html', exception = 'Classpath-exception-2.0' }
Expand All @@ -15,7 +15,7 @@ library.ac-library-java = { license = [
filename = 'Main.java'

install = '''
curl https://download.java.net/java/GA/jdk24.0.1/24a58e0e276943138bf3e963e6291ac2/9/GPL/openjdk-24.0.1_linux-x64_bin.tar.gz | sudo tar zx -C /usr/local --strip-component 1
curl -fL https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz | sudo tar zx -C /usr/local --strip-components 1
wget https://github.com/ocha98/ac-library-java/releases/download/v2.0.0/ac_library23.jar
mv ac_library23.jar ac_library.jar
cat << 'EOF' > java.sh
Expand Down
Loading