wolfram-export 0.6.1

Unified #[export] runtime for Wolfram LibraryLink: native MArgument, WSTP Link, and typed WXF ByteArray modes — pick the modes you need via feature flags.
Documentation
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.6.1] — 2026-07-14

### Changed

* Docs-only release: picks up `wolfram-export-macros` 0.6.1, whose rewritten
  `#[export(margs)]` section now renders on this crate's re-exported
  `#[export]` attribute docs. No behavior change.

## [0.6.0] — 2026-07-09

### Added

* Initial release. Provides the unified `#[export]` runtime crate for Wolfram
  LibraryLink, replacing the earlier split into separate
  `wolfram-export-native`/`wstp`/`wxf` crates.

* **`native` feature (default)** — functions called via raw `MArgument` C ABI.
  Corresponds to `#[export]` (marshaled automatically via `FromArg`/`IntoArg`)
  and `#[export(margs)]` (same ABI, full manual marshaling — also the escape
  hatch for types with no `FromArg`/`IntoArg` impl, like `SparseArray`; read
  the raw `MArgument.sparse` pointer and drive the `MSparseArray_*`/`MTensor_*`
  C API directly, see `margs_sparse_array_merge` in
  `wolfram-examples-internal/src/margs.rs` for a worked example).

* **`wstp` feature** — functions called over a WSTP `Link`. Corresponds to
  `#[export(wstp)]`. Implies `native`.

* **`wxf` feature** — functions called via a typed WXF `ByteArray` argument.
  Corresponds to `#[export(wxf)]`. Panics are caught and returned as
  structured `Failure[…]` expressions.

* **`automate-function-loading-boilerplate` feature (default)** — emits the
  `__wolfram_manifest__` C-ABI symbol and the inventory machinery so the Wolfram
  paclet loader can discover exported functions without hand-written WL glue.

* **`generate_loader!` macro** — generates the WL `Association` of
  `LibraryFunctionLoad[…]` calls for all exported functions.

### Changed

* Crate-level docs rewritten to show all four `#[export]` modes together in
  one compiling example, instead of an `ignore`d snippet.
* Enforces `#[warn(missing_docs)]` crate-wide (previously `#![allow(missing_docs)]`);
  the `native`, `wstp`, and `wxf` modules and the `export`/`init` re-exports
  now carry real doc comments.

### Removed

* **Breaking:** stopped re-exporting `export_native`, `export_wstp`, and
  `export_wxf` from `wolfram-export-macros` (those attributes were deleted
  there — see the `wolfram-export-macros` changelog). Only `export` (which
  dispatches to native/`margs`/`wstp`/`wxf` mode via a keyword argument) and
  `init` remain. Anyone using `#[export_native]` / `#[export_wstp]` /
  `#[export_wxf]` must switch to `#[export]` / `#[export(wstp)]` /
  `#[export(wxf)]`.