Repository navigation
blog: Introducing Xantham - #246
Open
shayanhabibi wants to merge 6 commits into
Open
shayanhabibi wants to merge 6 commits into
shayanhabibi wants to merge 6 commits into
Conversation
Acting on a critical review of the post. Roughly 570 words of prose removed (2,357 -> 1,788 total); code blocks and tables unchanged. Cuts. The opening said what the post was about three times before saying what Xantham is - slogan, GIF caption, and abstract all carried the same sentence; two are gone. The "bindings still need review" hedge fired four times and now fires once, at the close. Table narration, sentences restating the table above them, and explanations of a thing's significance in place of the thing are gone throughout. Corrections. The union-arm compile probe ran on net8.0 while the demo targets net10.0, which readers would have to wonder about. Re-run on net10.0 against Fable.Core 5.2.0: all five rows reproduce, including `f(!^ x)` beside arms giving FS0041. Note that ambiguity needs a wide union - a two-arm reproduction resolves cleanly on both frameworks; the six-arm `TargetsParam` shape is what fails. The corpus figures (108 goldens, 484/59/57) were Xantham test-suite numbers sitting unlabelled inside an Anime.js comparison, where they read as Anime.js evidence. Cut. "so the first error is not a one-line fix" overstated what "18 duplicate placeholders" supports; deleting 18 lines is not hard. Cut. The erased-DU rationale argued a `match`-time failure mode against an example nobody matches on - `StaggerParams.from` is an option-bag input. It now says the short true thing: Xantham has not yet decided when the DU is safe to emit, and records `TR006`. Two jabs at Glutinum's module naming that preceded any mention of Glutinum are also gone. Moved "Imports have to resolve" ahead of the API-shape sections. A reproducible ERR_PACKAGE_PATH_NOT_EXPORTED with counts is the strongest evidence in the post and it was last. The closing caveat stays at the end. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ilure Second package, measured the same way as animejs. @types/node 22.20.2, same version both sides. Glutinum's @types/node binding compiles clean, so the FS0037 duplicate-definition failure is this package rather than the tool in general. Said so in the compile section - without it the post implies more than the evidence supports. Imports split again, from a different cause. All 2,047 of Xantham's import sites are node:-prefixed. Glutinum emits 2,634, of which 165 point at undici-types, a types-only package: .d.ts files and nothing else, no index.js, no fetch.js. Verified with node -e for both that and node:fs. Bare `fs` resolves as well as `node:fs`, so the prefix alone is not a defect and the post now says so. The undici-types imports are the finding; the prefix is a robustness preference. The animejs FS0037 count was re-derived from a clean 0.14.1 run rather than carried over. The compiler reports one error because it stops there; scope-aware analysis of the generated file gives 18 same-scope collisions, each a real declaration paired with a `type X = obj` placeholder. An earlier sweep said 20 by missing that `FunctionValue<'T>` and `FunctionValue` are both legal. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e comparison The published 569 / 267 / 27 counted `[<Import>]` attributes only. Adding the 9 `[<ImportAll>]` sites and the 3 `animejs/adapters/three` sites gives 578 / 279 / 28, which is what a clean regeneration on 0.14.1 reproduces. Extends "Where Glutinum does it better" with the @types/node evidence: 18 more mixed literal unions (family, BufferEncodingOption, StdioNull), overloads at small arity where Xantham emits one erased union, and ResizeArray over T[]. Adds the counterweight so the section is not one-sided. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Seventeen edits, all wording: drop the staccato abstract, say the delegate
once instead of twice, unbold the inline figures, and cut the reflexive
qualifiers ("however", "does record rather than hide", "neither wins",
"not uniformly better") where the sentence already carried the point.
No numbers or claims change.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Member
|
Hello @shayanhabibi, Yes, we can have a blog post for Xantham. I would like the post to focus on Xantham's own strengths rather than on what Glutinum does differently or does not support yet. Comparisons do not hold over time, for example: the duplicate definition in Animatable is fixed, issue #220 is closed, etc. The exports map point is fair and still true, we do reach into dist/, and I am planning to look into it. Would you be up for reframing the post around what Xantham does, with the design decisions behind it? |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi!
Wondering if you'd be interested in this blog post on
xanthamfor generating JS/TS bindings?Let me know if there are any changes that I can make :)