-
-
Notifications
You must be signed in to change notification settings - Fork 0
UNIMPLEMENTED.md
最終更新: 2026-01-19 (UNIMPLEMENTED から実装済み項目を DONE へ整理)
- iOS 側の検証項目は
docs/ios/UNIMPLEMENTED.mdに集約
最終更新: 2026-01-07 (Missing/Val/Some/Returns 反映・exports 統計再集計)
Julia の Base モジュール(julia/base/exports.jl)からエクスポートされている 998 項目のうち、SubsetJuliaVM で未実装のものを網羅的にリストアップ。
| モジュール | 説明 | 状態 |
|---|---|---|
Meta |
メタプログラミング | ✅ 部分実装(parse, isexpr, quot, isidentifier, isoperator, isunaryoperator, isbinaryoperator, ispostfixoperator, unblock, unescape, show_sexpr) |
StackTraces |
スタックトレース | ❌ |
Sys |
システム情報 | ❌ |
Libc |
C ライブラリバインディング | ❌ |
Docs |
ドキュメント | ❌ |
Threads |
マルチスレッド | ❌ |
Iterators |
イテレータモジュール | enumerate, zip, rest, countfrom, take, drop, cycle, repeated, product, flatten, partition, peel) |
関連 Issue: #343 (Regex: 残課題), #344 (Float16) Closed Issues: #527 (Set), #528 (IOContext), #529 (LinRange/StepRangeLen), #530 (Iterators), #531 (Pair), #532 (VersionNumber), #533 (Irrational)
AbstractChannel, AbstractSlices, AbstractMatch, AbstractPattern, AbstractVecOrMat
| 型 | 説明 |
|---|---|
BitArray, BitMatrix, BitVector
|
ビット配列 |
Channel |
並行処理チャンネル |
Cmd |
コマンド |
Colon |
: 型 |
ComposedFunction |
関数合成 |
Filter, Accumulate
|
イテレータ型(Count は countfrom() として実装済み、Generator はVMで実装済み) |
ColumnSlices, RowSlices, Slices
|
スライス型 |
DenseMatrix, DenseVecOrMat, DenseVector
|
密配列型 |
Dims |
次元タプル |
Enum |
列挙型 |
ExponentialBackOff |
指数バックオフ |
Float16 |
16ビット浮動小数点 |
IdDict, IdSet
|
ID ベース辞書/集合 |
IndexStyle |
インデックススタイル |
InsertionSort, MergeSort, QuickSort, PartialQuickSort
|
ソートアルゴリズム型 |
IOStream |
I/O ストリーム |
LazyString |
遅延文字列 |
Lockable, OncePerProcess, OncePerTask, OncePerThread
|
同期プリミティブ |
NTuple |
N 要素タプル |
OrdinalRange |
順序範囲 |
PermutedDimsArray |
次元転置配列 |
RoundingMode 系 |
丸めモード(8種類) |
StridedArray, StridedMatrix, StridedVecOrMat, StridedVector
|
ストライド配列 |
SubArray |
サブ配列ビュー |
SubString |
サブ文字列 |
SubstitutionString |
置換文字列 |
Timer |
タイマー |
WeakKeyDict |
弱参照辞書 |
Cchar, Cdouble, Cfloat, Cint, Cintmax_t, Clong, Clonglong, Cptrdiff_t, Cshort, Csize_t, Cssize_t, Cuchar, Cuint, Cuintmax_t, Culong, Culonglong, Cushort, Cwchar_t, Cstring, Cwstring
| 例外 | 説明 |
|---|---|
CanonicalIndexError |
インデックスエラー |
CapturedException |
捕捉例外 |
CompositeException |
複合例外 |
EOFError |
ファイル終端 |
InvalidStateException |
無効状態 |
MissingException |
Missing 例外 |
ProcessFailedException |
プロセス失敗 |
TaskFailedException |
タスク失敗 |
SystemError |
システムエラー |
関連 Issue: #340
| 定数/変数 | 説明 | 状態 |
|---|---|---|
ENV |
環境変数 | ❌ |
関連 Issue: #353
| 関数 | 説明 |
|---|---|
cat |
汎用連結 |
circcopy! |
循環コピー(破壊的)(circshift! は実装済み) |
eachslice |
スライスイテレータ |
extrema! |
最大最小(破壊的) |
hvcat, hvncat
|
水平垂直連結 |
insertdims |
次元挿入 |
isassigned |
代入済みチェック |
logrange |
対数範囲 |
mapslices |
スライスへの map |
maximum!, minimum!
|
最大最小(破壊的) |
parent, parentindices
|
親配列(SubArray のみは実装済み。一般化は未対応) |
partialsortperm, partialsortperm!
|
部分ソート順列 |
permutedims! |
次元転置(破壊的) |
prod!, sum!
|
積/和(破壊的) |
promote_shape |
形状プロモーション |
selectdim |
次元選択 |
sortperm!, sortslices
|
ソート(破壊的) |
stack |
配列スタック |
stride, strides
|
ストライド |
to_indices |
インデックス変換 |
view |
ビュー作成(✅ 部分実装: 現状 Vector{Float64} の 1D view が中心) |
| 関数 | 説明 |
|---|---|
.' |
転置演算子(非共役 transpose) |
kron! |
クロネッカー積(破壊的) |
eigvecs |
固有ベクトル |
関連 Issue: #351
| 関数 | 説明 |
|---|---|
all!, any!, count!
|
破壊的バージョン |
getkey |
キー取得 |
in! |
包含チェック(破壊的) |
intersect! |
積集合(破壊的) |
keytype, valtype
|
キー/値型 |
memoryref |
メモリ参照 |
mergewith, mergewith!
|
マージ(破壊的) |
setdiff!, symdiff!, union!
|
集合演算(破壊的) |
sizehint! |
サイズヒント |
| 関数 | 説明 |
|---|---|
hex2bytes! |
バイト⇔16進(破壊的) |
ctruncate, ltruncate, rtruncate
|
切り詰め |
digits! |
桁配列(破壊的) |
eachrsplit |
逆方向分割イテレータ |
replace! |
置換(破壊的) |
transcode |
トランスコード |
| 関数 | 説明 |
|---|---|
showerror |
エラー表示 |
summary |
サマリ |
関連 Issue: #348
Condition, current_task, islocked, istaskdone, istaskstarted, istaskfailed, lock, @lock, notify, ReentrantLock, schedule, task_local_storage, trylock, unlock, yield, yieldto, wait, waitany, waitall, timedwait, asyncmap, asyncmap!, errormonitor
関連 Issue: #348
take!(I/O用は実装), put!, isfull, isready, fetch, bind
| 関数 | 状態 |
|---|---|
nonmissingtype |
✅ 実装済み (Issue #1316) |
| 関数 | 状態 |
|---|
backtrace, catch_backtrace, current_exceptions, rethrow, retry, systemerror, stacktrace
| 関数 | 説明 |
|---|---|
getproperty, setproperty! 系 |
プロパティ操作(6関数) |
fieldoffset, fieldname, fieldindex, fieldtypes
|
フィールド情報 |
propertynames, hasproperty
|
プロパティ存在確認 |
isdispatchtuple |
ディスパッチタプル判定 |
oftype |
型変換 |
instances |
列挙インスタンス |
typeintersect, typejoin
|
型演算 |
code_typed, code_lowered, fullname, functionloc, isconst, isinteractive, parentmodule, pathof, pkgdir, pkgversion, names, @invoke, invokelatest, @invokelatest, @world
| 関数 | 状態 |
|---|---|
__precompile__ |
❌ |
evalfile |
❌ |
include_string |
❌ |
include_dependency |
❌ |
include |
GC, finalizer, finalize, precompile
関連 Issue: #347
close, closewrite, countlines, eachline, readeach, eof, fd, fdio, flush, gethostname, htol, hton, ltoh, ntoh, ismarked, isopen, isreadonly, mark, unmark, reset, bytesavailable, open, peek, pipeline, Pipe, PipeBuffer, position, seek, seekend, seekstart, skip, skipchars, RawFD, read, read!, readavailable, readbytes!, readchomp, readdir, readline, readlines, readuntil, copyuntil, copyline, redirect_stdio, redirect_stderr, redirect_stdin, redirect_stdout, truncate, unsafe_read, unsafe_write
AbstractDisplay, display, displayable, TextDisplay, istextmime, MIME, @MIME_str, popdisplay, pushdisplay, redisplay, showable, HTML, Text
関連 Issue: #346
abspath, expanduser, contractuser, homedir, normpath, realpath, relpath, splitdrive
cd, chmod, chown, cp, ctime, diskstat, download, filemode, filesize, gperm, hardlink, isblockdev, ischardev, isdir, isexecutable, isfifo, isfile, islink, ismount, ispath, isreadable, issetgid, issetuid, issocket, issticky, iswritable, lstat, mkdir, mkpath, mktemp, mktempdir, mtime, mv, operm, pwd, readlink, rm, samefile, stat, symlink, tempdir, tempname, touch, uperm, walkdir
detach, getpid, ignorestatus, kill, process_exited, process_running, run, setenv, addenv, setcpuaffinity, setuid, setgid, success, withenv
@cfunction, @ccall, cglobal, disable_sigint, pointer, pointer_from_objref, unsafe_wrap, unsafe_string, reenable_sigint, unsafe_copyto!, unsafe_load, unsafe_modify!, unsafe_pointer_to_objref, unsafe_replace!, unsafe_store!, unsafe_swap!
@__FUNCTION__, @int128_str, @uint128_str, @big_str, @cmd, @s_str, @NamedTuple, @Kwargs, @lazy_str, @text_str, @html_str
関連 Issue: #350
@lock_conflicts
@sync, @async, @task, @threadcall
@boundscheck, @fastmath, @inline, @noinline, @nospecialize, @specialize, @polly
@atomic, @atomicswap, @atomicreplace, @atomiconce, @__dot__, @enum, @label, @goto, @static, @main
既知のバグは GitHub Issues で管理しています: https://github.com/AtelierArith/ailujsoi/issues?q=is%3Aissue+is%3Aopen+label%3Abug
原則: SubsetJuliaVM は Julia の基本構文をサポートする。妥協は許されない。 以下は現時点で未サポートの基本構文の完全なリスト。
| 構文 | 例 | 状態 | 回避策 |
|---|---|---|---|
| 大きな整数リテラル | 9223372036854775808 |
Issue: #316 | |
| コマンドリテラル | `ls -la` |
❌ | プロセス実行未サポート (iOS制約) |
| 構文 | 例 | 状態 | 説明 |
|---|---|---|---|
try...catch...else |
try ... catch ... else ... end |
❌ | Issue: #317 |
@goto / @label
|
@goto label; @label label |
❌ | 低レベル制御フロー |
| 構文 | 例 | 状態 | 説明 |
|---|---|---|---|
| 多次元内包表記 | [i+j for i in 1:3, j in 1:3] |
❌ | 複数 for 句(ネスト/多重)は未対応 |
| Dict 内包表記 | Dict(k => v for (k,v) in pairs) |
❌ | 辞書生成 |
| Set 内包表記 | Set(x for x in arr) |
❌ | 集合生成 |
| 構文 | 例 | 状態 | 説明 |
|---|---|---|---|
| 複数 dispatch 無名関数 | 複数メソッドの無名関数 | ❌ | - |
| 構文 | 例 | 状態 | 説明 |
|---|---|---|---|
| キーワード引数省略記法 | f(;x, y) |
🐛 |
Issue: #1288 - 回避策: f(;x=x, y=y) を使用 |
| 構文 | 例 | 状態 | 説明 |
|---|---|---|---|
typealias(廃止) |
- | ❌ | Julia 0.6 で廃止 |
| 構文 | 例 | 状態 | 説明 |
|---|---|---|---|
| LaTeX 文字列 | L"x^2" |
❌ | - |
| HTML 文字列 | html"<b>bold</b>" |
❌ | - |
最終更新: 2026-01-13 (range, collect, big 実装済みに更新)
注意: SubsetJuliaVM Base にあるが Julia 本家 Base に存在しない関数は、本来存在してはいけません。 これらの関数は互換性を壊すため、削除または Julia 準拠の実装に置き換える必要があります。
(削除済み - _insertion_sort! は sort! にインライン化されました)
以下の関数は Julia 本家にも存在するが、SubsetJuliaVM では簡略化されており動作が異なる:
| 関数 | SubsetJuliaVM | Julia 本家 | 影響 |
|---|---|---|---|
sprint |
1-4引数の固定関数 | 可変長引数 + context | 5引数以上で非互換 |
dump |
汎用構造体対応、大配列制限あり | 詳細な構造表示 | 出力フォーマットがやや異なる(改善済み) |
BigInt/BigFloat の提供機能は DONE.md に集約しています。ここでは残っている互換性上の注意点のみ扱います。
注意: これらの関数はコードの互換性は保たれるが、出力や型が異なる場合がある。
以下は iOS App Store 制限(JIT 禁止)やアーキテクチャ制限により実装困難:
| 項目 | 理由 |
|---|---|
| タスク/スレッド全般 | マルチスレッドランタイムが必要 |
| ファイルシステム操作 | サンドボックス制限 |
| 外部プロセス実行 | セキュリティ制限 |
| C インターフェース | FFI が必要 |
| 完全な線形代数 | 行列数学ライブラリが必要 |
注:
@generatedは Phase 1/2/3 で部分サポート済み(フォールバック + Val 特殊化 + Quote アンクォート)
-
mapslices- 関数型配列操作
- 完全な線形代数 - 行列数学ライブラリが必要
- 注:
@generatedは Phase 1/2/3 で部分サポート済み(上記「部分対応構文」参照)