Skip to content

MLX compatibility: Creation functions #452

Description

@aaishwarymishra
Array API MLX Analog Status Blame / Notes Test Node Result
arange(start, /, stop=None, step=1, *, dtype=None, device=None) arange(start, stop, step, dtype=None, *, stream=None) incompatible MLX rejects valid calls such as arange(0, None, 1). It also lacks device; defaults and positional constraints differ. test_arange Failed
asarray(obj, /, *, dtype=None, device=None, copy=None) asarray(a, dtype=None, *, copy=None) partial copy=False can fail even when given an MLX array of the requested dtype. MLX also lacks device, and dtype is not keyword-only. test_asarray_arrays Failed
empty(shape, *, dtype=None, device=None) empty(shape, dtype=float32, *, stream=None) undocumented Implemented by MLX but absent from its documentation. No device; signature/default behavior may differ. test_empty Passed
empty_like(x, /, *, dtype=None, device=None) empty_like(a, /, *, stream=None) undocumented / partial Implemented but undocumented. It rejects the standard dtype keyword, including dtype=None; no device. Its error refers to zeros_like, suggesting shared or aliased internals. test_empty_like Failed
eye(n_rows, n_cols=None, /, *, k=0, dtype=None, device=None) eye(n, m=None, k=0, dtype=float32, *, stream=None) incompatible Rejects zero-sized output such as eye(0) and large valid offsets such as k=2147483648. No device; positional constraints also differ. test_eye Failed
from_dlpack(x, /, *, device=None, copy=None) from_dlpack(x, /, *, copy=None) partial MLX lacks x.device and array_namespace_info().devices(), so the test fails before calling from_dlpack. test_dlpack.py::test_from_dlpack Not tested
full(shape, fill_value, *, dtype=None, device=None) full(shape, vals, dtype=None, *, stream=None) signature mismatch fill_value is named vals; dtype is not keyword-only; no device. test_full Passed
full_like(x, /, fill_value, *, dtype=None, device=None) full_like(a, vals, dtype=None, *, stream=None) signature mismatch fill_value is named vals; dtype is not keyword-only; no device. test_full_like Passed
linspace(start, stop, /, num, *, dtype=None, device=None, endpoint=True) linspace(start, stop, num=50, dtype=float32, stream=None) partial MLX does not support endpoint, causing calls with endpoint=False to fail. It also lacks device; num and dtype constraints differ. test_linspace Failed
meshgrid(*arrays, indexing="xy") meshgrid(*arrays, sparse=False, indexing="xy", stream=None) return mismatch MLX returns a list; Array API 2025.12 requires a tuple. Extra optional MLX parameters are not themselves incompatible. test_meshgrid Failed
ones(shape, *, dtype=None, device=None) ones(shape, dtype=float32, *, stream=None) signature mismatch dtype is not keyword-only; no device. Tested behavior otherwise passes. test_ones Passed
ones_like(x, /, *, dtype=None, device=None) ones_like(a, /, *, stream=None) partial MLX rejects the standard dtype keyword, including dtype=None; it also lacks device. test_ones_like Failed
tril(x, /, *, k=0) tril(x, k, *, stream=None) signature mismatch MLX accepts k positionally, whereas the Array API makes it keyword-only. Tested behavior passes. test_tril Passed
triu(x, /, *, k=0) triu(x, k, *, stream=None) signature mismatch MLX accepts k positionally, whereas the Array API makes it keyword-only. Tested behavior passes. test_triu Passed
zeros(shape, *, dtype=None, device=None) zeros(shape, dtype=float32, *, stream=None) signature mismatch dtype is not keyword-only; no device. Tested behavior otherwise passes. test_zeros Passed
zeros_like(x, /, *, dtype=None, device=None) zeros_like(a, /, *, stream=None) partial MLX rejects the standard dtype keyword, including dtype=None; it also lacks device. test_zeros_like Failed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions