Repository navigation
Ruby bindings to the go-scikit stack, and the runner of a notebook's Ruby cells - #2
Merged
Merged
Conversation
…ect tests; 100% of the bindings covered
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gainst Go Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, CI and Renovate config, fuzz of binding arguments
…(gamma over 1e5 points 35x faster, beta 9x)
…a local checkout; the README test counts only this package's names
tannevaled
added a commit
that referenced
this pull request
Oct 22, 2026
govulncheck now fails on go1.27.2: GO-2026-6809 (crypto/x509, distrust compromised intermediate certificates), fixed in go1.27.3, is reachable through fmt from cells.describe. The advisory appeared after #2's checks ran. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tannevaled
added a commit
that referenced
this pull request
Oct 22, 2026
…o 1.27.3 (GO-2026-6809) (#3) * README: a mixed notebook, and no test output in the binding list The binding list ended with three lines of `go test` output (--- PASS: TestPrintBindings, PASS, ok ...) pasted with it. The Notebooks section now shows a Go cell, a Ruby cell and a Go cell sharing their variables, says which go-notebook release runs Ruby cells, and that a notebook's go.mod needs only go-notebook. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci: Go 1.27.3, for GO-2026-6809 govulncheck now fails on go1.27.2: GO-2026-6809 (crypto/x509, distrust compromised intermediate certificates), fixed in go1.27.3, is reachable through fmt from cells.describe. The advisory appeared after #2's checks ran. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Ruby bindings to the go-scikit stack, for the pure-Go Ruby
This is the first content of the repository, which
ghnewcreated withmain, a LICENSE and a README made by GitHub. The bindings define Ruby modules over the Go libraries in an interpreter of go-embedded-ruby/ruby (rbgo), through its embedding API (v0.8.0, go-embedded-ruby/ruby#823):scikit.Register(in).StatsStats::Normal.new(loc: 0, scale: 1).pdf(x)with x a Float, an Array or an NDArray;fit;rvs(…, random_state:)); KDE, the multivariate distributions,bootstrap,RNG; a class per result type (statistic,pvalue, …)SpecialOptimizeIntegrateDataFramePlotto_svgwrites the exact bytes ofSaveSVGThe README lists every bound name, and a test fails when one is missing from it.
float64(…), because on arm64 the Go compiler may fusea*b+cinto an FMA where Ruby rounds each operation.internal/gen(Go) writes the enum symbols (alternative: :less,method: :nelder_mead) and the list of special functions. Everything else is read from the Go types by reflection: keywords fill the Go option structs by field name, and result structs become classes with a reader per field. Callbacks are blocks: an exception in a block stops the Go algorithm and is raised again, andbreak/throwleave it as in Ruby.brutereplays a block's exit from its own goroutine on the caller's, andworkers:above 1 is refused.cells: runs the Ruby cells of a go-notebook notebook and exchanges variables with its Go cells. Its package documentation states the conversion table both ways.Checks run locally before the push
gofmt -l .andgo vet ./...are clean.go test -race -coverpkg=./... ./...gives 100.0%, on the default and therbgo_corebuilds.CI is go-notebook/notebook's, with
rbgo_corelanes added. Its cross-compile lane covers the targets rbgo builds for.🤖 Generated with Claude Code