Skip to content

Release: merge release into main - #105

Open
github-actions[bot] wants to merge 25 commits into
mainfrom
release
Open

github-actions[bot] wants to merge 25 commits into
mainfrom
release

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Automated sync of develop (a334dba) into release. Markdown outside README.md and docs/ subfolders is removed by .github/scripts/release/sync-release.sh.

b-re-w added 10 commits October 3, 2026 08:28
The slot takes the C sources TypedPython generates from its typed IR (no
Cython), build flags, module names and a .py fallback per module, and
builds CPython extension modules with the target's own toolchain (clang,
the Android NDK, Xcode). docs/design/compile-slot.md has the design and
the open questions; ExtensionCompiler.kt holds only the types and
signatures, with no caller changed.

Refs #19
Headers and libpython come in through the request (includeDir,
extensionSuffix, libDir, libraryName), filled on the Gradle side from
python-multiplatform's CPythonIncludeDirectories (#46, #56); the slot no
longer locates or downloads them. Android and Windows requests without
libDir are refused. No .py fallback artefact (the fallback lives in the
.so). Modules with no generated C ship at bytecode level instead of being
refused. Windows/clang-cl is later; macOS first.

Refs #19
…s level decision

TypedPython designer's review against real output (2026-10-03):
- one .c per module; header-only runtime/tp_runtime.h through options.includeDirs, compiled into
  each extension (Q8); no shared runtime library
- -ffp-contract=off -fno-fast-math always: floating-point flags are semantics, never tuning; a later
  clang-cl adapter maps them (/fp:precise) instead of passing flags verbatim (Q7)
- the cache key hashes every header in the unit's -MMD depfile, plus target, minSdk and ABI;
  TypedPython keeps source->C, the slot C->extension in buildDir; no cache field in the request
- Py_mod_gil declared only when the consumer's code is free-threading safe
- the ABI tag in the output path (Q2); relative source paths, -ffile-prefix-map, strip,
  ZERO_AR_DATE (Q4); BundleRequest.pythonAbi (Q5); -arch cross on macOS (Q6); extraction dir before
  the assets path in __path__ (Q3 constraint)

User decision (2026-10-03): mixed = developer modules as bytecode, TypedPython's C not applied,
libraries' prebuilt extensions; native = TypedPython's C where produced, a module without C ships
as bytecode with a build warning naming it and the reason (BundleRequest.notNativeModules,
BundleResult.warnings). mixed never calls the slot. Recorded in docs/SPEC.md, Build Level.

Open: Android extraction owner (Q3), libraryName form (Q9), and whether TypedPython can report a
reason per module without C.
The designer's answer (2026-10-03): the pipeline knows, per module, whether it was not marked for
compilation or marked with nothing compiled, and per function or class why it stayed interpreted.
notNativeModules becomes List<NotNativeModule(module, kind, items)> so the bundler formats the
warning and file:line stays machine-readable; partially compiled modules are info, not warnings.
Docs: Draft the native compile slot for TypedPython's generated C
Feat: install named requirements into an existing venv via UVBackend (#40)
Feat: implement native compile slot and ResourceBundler native/mixed levels (#20)
PyPI has 0.2.0, where --version fails, and the guide now starts from
uv tool install pypackpack, so the docs say which release the flag needs.
The rest of the WIP is kept as is: --version/-v and the v alias, init with
--no-workspace, the t suffix in python subcommands, cliVersion and
pyproject 0.3.0, and the 0.3.0 release notes (each item checked against
its merged PR on develop).
0.3.0 readiness: ppp --version, init never edits an ancestor project, 3.15t versions

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant