Skip to content

Releases

FlyBatch v0.5.1

Choose a tag to compare

@mertefesensoy mertefesensoy released this 28 Oct 22:59

FlyBatch v0.5.1, the first release. FlyBatch was called ONFLY until
2026-09-27. The engine prints version 0.5.1. The pre-release
v0.5.1-rc.1 was for testers; this is the release to cite.

FlyBatch has not run on IBM Z hardware. The project does not have IBM Z
access yet.
Every MVS result comes from MVS 3.8j running under the Hercules
emulator, and every s390x result from Linux running under QEMU, both on one
x86-64 laptop. Nothing here has run on z/OS or on IBM CICS Transaction
Server.

What it is

FlyBatch simulates the sugar-to-feeding circuit of the male fruit fly: a
501-neuron subcircuit taken from the MaleCNS v1.0 connectome, run with the
leaky integrate-and-fire model of Shiu et al. (2024) in a portable C89 engine
with a COBOL batch driver. The quick start is in the README; building on MVS
3.8j is in docs/testers.md and docs/architecture.md.

Since the release candidate

  • make NO2C=1 test-nonet builds and tests the engine on SoftFloat 3e and
    native without compiling Berkeley SoftFloat Release 2c, for anyone who does
    not accept its terms; a CI job runs it on every push.
  • A dev container for GitHub Codespaces fetches and checks the two networks.
  • README, CONTRIBUTING.md and ROADMAP.md say how to join; 41 open issues,
    12 of them labelled good first issue, and a public tester matrix, #4,
    which stays open for this release.

CHANGELOG.md lists everything in this release.

Assets

File Bytes SHA-256
onfnet-malecns-v1.0-srext.bin 171,768 bf09a3ad18a82b8ecc0dd2fd397d81e332f38c98a78325269f5c39d2b3b1f66d
onfnet-malecns-v1.0-path.bin 951,200 168627c833d7af0f33bd0ed8d2bd1fbb407fd3c4436e0f57558c772cbb8b28f9
SHA256SUMS the two lines above, for sha256sum -c
NETWORKS-NOTICE.md the networks' attribution and licence: read it before use

These are the same files the release candidate carried.

The network files contain data derived from the MaleCNS v1.0 connectome by
HHMI Janelia, the MRC Laboratory of Molecular Biology, the University of
Cambridge and Google Research, licensed under CC BY 4.0, modified by
FlyBatch; FlyBatch's own contribution is also CC BY 4.0. FlyBatch's code is
MIT. The reference curve derived from FlyWire data is CC BY-NC 4.0 and is not
in these assets; the project's position, taken without legal advice, is that
the one synaptic weight fitted to it does not carry those terms into the
network files (SRS D-625). Every SOFT2C build contains Berkeley SoftFloat
Release 2c, whose terms are not BSD: read THIRD_PARTY_NOTICES.md, section
3, before you build, or build with NO2C=1, which never compiles it.

The 19 golden fingerprints

path: G-01 6C143127, G-02 5CAB2AA0, G-03 A54BAAC7, G-04 82808C5F,
G-05 CBEB5C0B, G-06 4F98279A, G-07 C4CABE4D, G-08 F37639B8,
G-09 5E07D024, G-10 461A343E, G-11 025CBFDB, G-12 740E6A92,
G-13 A30B1F03, G-14 8EC69ADE.
srext: G-15 6C3F7272, G-16 BAF81D91, G-17 F9C7EE77, G-18 4FD0ED1E,
G-19 C4C320BC.

Where they have been reproduced

All 19 golden requests produce identical fingerprints and response records
on x86-64 (a Python reference and three C floating-point builds) and on
Linux s390x under QEMU. On MVS 3.8j under Hercules with the GCCMVS compiler
the fingerprints are identical, and the response records are identical byte
for byte apart from one text field that MVS stores in EBCDIC. With a second
MVS compiler, JCC, all 19 reproduce the same way. Rows 1 to 7 of the
determinism matrix each cover 19 of 19 on engine 0.5.1; row 8, z/OS, is
empty.

Continuous integration also checks the 19 fingerprints on every push, on
GitHub's own Linux runner and compiler. That is a smoke test, not a row of
the matrix.

Found on the way

Comparing the full MVS and x86 output streams line by line exposed a GCCMVS
code-generation fault that had turned every +0.0 in the MVS kernel into a
tiny subnormal, a difference no fingerprint had ever caught. The fault is
worked around, and a 26-line reproducer shows its cause in the generated
code: at -O1 an eight-byte structure of zeros is copied from a four-byte
constant. The reproducer's job outputs, with the assembler listed, are in
data/structret/ (SRS VL-145, D-668).

Limits

  • Identical fingerprints show that the platforms agree with each other, not
    that any of them is correct.
  • The science was measured on x86-64 only.
  • The subcircuit carries one fitted input term standing in for the neurons
    it leaves out; it is not a whole-network model.
  • Compared with Shiu et al.'s model, the curve agrees in shape, not
    magnitude.
  • Two acceptance criteria were changed after we saw the results: ACC-3 no
    longer tests 10 Hz, and ACC-4 no longer tests magnitude. Both changes and
    the failing numbers are recorded in the specification.
  • The s390x results come from QEMU's emulation and say nothing about
    floating point on real s390x hardware; the MVS figures are emulator
    figures and say nothing about IBM Z.
  • No outside tester had reported a result when this release was made; the
    tester matrix, #4, is where the first ones go (SRS D-695).

Cite

CITATION.cff in the repository ("Cite this repository" on GitHub). Please
also cite the connectome and the model FlyBatch builds on, listed there under
references.

The specification, docs/ONFLY-SRS.md, records every decision and every
verification limit behind these statements.

FlyBatch v0.5.1-rc.1 (release candidate for testers)

Choose a tag to compare

@mertefesensoy mertefesensoy released this 27 Sep 09:53

Release candidate for invited testers, not the first release. This
pre-release exists so that a few people can build FlyBatch from a clean
clone and check it before v0.5.1 is published (SRS D-626, D-634). The
testing steps are in docs/testers.md. FlyBatch was called ONFLY until
2026-09-27.

FlyBatch has not run on IBM Z hardware. The project does not have IBM Z
access yet.
Every MVS result comes from MVS 3.8j running under the Hercules
emulator, and every s390x result from Linux running under QEMU, both on one
x86-64 laptop. Nothing here has run on z/OS or on IBM CICS Transaction
Server.

What it is

FlyBatch simulates the sugar-to-feeding circuit of the male fruit fly: a
501-neuron subcircuit taken from the MaleCNS v1.0 connectome, run with the
leaky integrate-and-fire model of Shiu et al. (2024) in a portable C89 engine
with a COBOL batch driver. The engine prints version 0.5.1.

Assets

File Bytes SHA-256
onfnet-malecns-v1.0-srext.bin 171,768 bf09a3ad18a82b8ecc0dd2fd397d81e332f38c98a78325269f5c39d2b3b1f66d
onfnet-malecns-v1.0-path.bin 951,200 168627c833d7af0f33bd0ed8d2bd1fbb407fd3c4436e0f57558c772cbb8b28f9
SHA256SUMS the two lines above, for sha256sum -c
NETWORKS-NOTICE.md the networks' attribution and licence: read it before use

The network files contain data derived from the MaleCNS v1.0 connectome by
HHMI Janelia, the MRC Laboratory of Molecular Biology, the University of
Cambridge and Google Research, licensed under CC BY 4.0, modified by
FlyBatch; FlyBatch's own contribution is also CC BY 4.0. FlyBatch's code is
MIT. The reference curve derived from FlyWire data is CC BY-NC 4.0 and is not
in these assets; the project's position, taken without legal advice, is that
the one synaptic weight fitted to it does not carry those terms into the
network files (SRS D-625). Every SOFT2C build contains Berkeley SoftFloat
Release 2c, whose terms are not BSD: read THIRD_PARTY_NOTICES.md, section
3, before you build.

The 19 golden fingerprints

path: G-01 6C143127, G-02 5CAB2AA0, G-03 A54BAAC7, G-04 82808C5F,
G-05 CBEB5C0B, G-06 4F98279A, G-07 C4CABE4D, G-08 F37639B8,
G-09 5E07D024, G-10 461A343E, G-11 025CBFDB, G-12 740E6A92,
G-13 A30B1F03, G-14 8EC69ADE.
srext: G-15 6C3F7272, G-16 BAF81D91, G-17 F9C7EE77, G-18 4FD0ED1E,
G-19 C4C320BC.

Where they have been reproduced

All 19 golden requests produce identical fingerprints and response records
on x86-64 (a Python reference and three C floating-point builds) and on
Linux s390x under QEMU. On MVS 3.8j under Hercules with the GCCMVS compiler
the fingerprints are identical, and the response records are identical byte
for byte apart from one text field that MVS stores in EBCDIC. With a second
MVS compiler, JCC, all 19 reproduce the same way. Rows 1 to 7 of the
determinism matrix each cover 19 of 19 on engine 0.5.1; row 8, z/OS, is
empty.

Limits

  • Identical fingerprints show that the platforms agree with each other, not
    that any of them is correct.
  • The science was measured on x86-64 only.
  • The subcircuit carries one fitted input term standing in for the neurons
    it leaves out; it is not a whole-network model.
  • Compared with Shiu et al.'s model, the curve agrees in shape, not
    magnitude.
  • Two acceptance criteria were changed after we saw the results: ACC-3 no
    longer tests 10 Hz, and ACC-4 no longer tests magnitude. Both changes and
    the failing numbers are recorded in the specification.
  • The s390x results come from QEMU's emulation and say nothing about
    floating point on real s390x hardware; the MVS figures are emulator
    figures and say nothing about IBM Z.

The specification, docs/ONFLY-SRS.md, records every decision and every
verification limit behind these statements.