Skip to content

One install story (setup.py, install presets, docs) and a pulse / time-bandwidth calculator - #2

Merged
JosephCodemard merged 5 commits into
mainfrom
dev/2026-11
Nov 12, 2026
Merged

JosephCodemard merged 5 commits into
mainfrom
dev/2026-11

Conversation

@JosephCodemard

Copy link
Copy Markdown
Owner

What

Install and build

  • docs/install.md: one page with a "what do you want?" table (release install, source build, Python, C API, individual plugins), hosted vs native Python engine, troubleshooting, and a short box for AI agents.
  • build/setup.py (./setup.sh, setup.bat): source builds with --cli, --python, --cpp, --plugins (follows plugin.json requires), --plugin-only, --venv, --check, --doctor, --dry-run, --clean-native.
  • install.py --preset (cli, cli-plugins, python, python-native, cpp, full) and a next-steps summary.
  • README, getting-started, python/README (dead docs/python.md link fixed), releasing, llms.txt, CLAUDE.md, AGENTS.md, ROADMAP, PROJECT_STATUS, next-steps updated. Nothing is uploaded to PyPI; the roadmap item says so.

Pulse calculator (time-bandwidth product)

  • ultrafast pulse shapes|limit|analyze|measure, C API uf_pulse_calc, Python ultrafast.calc; TBP of Gaussian / sech² / rectangular, transform limit, stretch factor, chirped-Gaussian GDD, rms product from measured arrays. Docs: reference/pulse-calculator.md.

Verified (macOS arm64, .NET 10, Python 3.12)

  • dotnet build UltrafastEngine.sln -c Release: 0 errors
  • C# tests --slow: 599 pass, 0 fail, 9 skipped (+5)
  • Python tests with pyNLO: 260 pass, 2 skipped (+8)
  • mkdocs build --strict: clean
  • setup.py: CLI with a plugin subset and Python into a fresh venv with --check

Not verified

  • --cpp and --python-engine native (NativeAOT), Windows setup.bat, Linux, release.yml on GitHub (never run), net48 tests on Mono (not installed here), /example-check.
  • Known behaviour documented, not changed: a stale python/src/ultrafast/bin/native library shadows a hosted build; setup.py warns and --clean-native removes it. In a checkout the Python package also scans artifacts/plugins.

🤖 Generated with Claude Code

JosephCodemard and others added 2 commits November 12, 2026 12:53
…ulse and beam

{"id": "pass2", "sameAs": "pass1"} is the same physical object as pass1 (same type and
numbers, so a fit of a transform moves every pass), but compiles on its own: own pulse,
spectrum, energy, beam, record and loss booking. A copy may set only label, enabled,
wiring and per-pass geometry (aoiDeg, aoiRad, tiltXRad, side, output).

- SameAsResolver expands copies when a system is read; saved files keep the written form
- generalises the beam-splitter-only sameAs (old files keep working)
- fit paths into a copy are refused (fit the source)
- Python same_as(); tests, docs, generated files, status counts updated

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s) and a pulse / time-bandwidth calculator

Install and build
- docs/install.md: "what do you want?" table for release install, source build, Python, C API, single plugins; AI-agent steps; troubleshooting
- build/setup.py (+ setup.sh, setup.bat): source builds with --cli/--python/--cpp, --plugins (with plugin.json requires), --plugin-only, --venv, --check, --doctor, --dry-run, --clean-native
- python/tools/build_engine.py: --plugins, --framework; importable
- install.py: --preset (cli, cli-plugins, python, python-native, cpp, full) and a next-steps summary
- README, getting-started, python/README (dead link fixed), releasing, llms.txt, CLAUDE.md, AGENTS.md point to the new page

Pulse calculator
- Core PulseCalculator (shapes, limit, analyze, measure), CLI `ultrafast pulse`, C API uf_pulse_calc, Python ultrafast.calc
- Tests against closed-form values (0.4413, 0.3148, 0.8859, chirped-Gaussian GDD, rms 1/4pi)

Tests: C# 599 pass; Python 260 pass, 2 skipped; mkdocs --strict clean.
Not run: NativeAOT (--cpp, --python-engine native), Windows, Linux, release.yml on GitHub.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings November 12, 2026 13:54

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

JosephCodemard and others added 3 commits November 12, 2026 15:39
…et reflectivity); same_as gains side

The sameAs rule (cf17337) refuses reflectivity on a copy; the paper script passed it through beam_splitter.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ts what import loads and fails on a shadowing stale library

A NativeAOT library from before uf_pulse_calc made every engine call fail (dlsym symbol not found).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…y-run

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@JosephCodemard
JosephCodemard merged commit 6272be3 into main Nov 12, 2026
26 checks passed
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.

2 participants