Skip to content

Build against both names of the Bignum byte entries - #2

Merged
Asmod4n merged 1 commit into
mainfrom
bigint-byte-entry-rename
Sep 6, 2026
Merged

Asmod4n merged 1 commit into
mainfrom
bigint-byte-entry-rename

Conversation

@Asmod4n

@Asmod4n Asmod4n commented Sep 6, 2026 •

Copy link
Copy Markdown
Owner

mruby renamed two entries on 2026-09-06 (mruby/mruby 053056f):

  • mrb_bint_from_bytes is now mrb_bint_new_bytes
  • mrb_bint_size is now mrb_bint_bytes_size

This gem calls both, so it stops building against mruby master:

src/mrb_cbor.c:612:21: error: implicit declaration of function 'mrb_bint_from_bytes';
  did you mean 'mrb_bint_new_bytes'? [-Werror=implicit-function-declaration]
src/mrb_cbor.c:1179:7: error: implicit declaration of function 'mrb_bint_size';
  did you mean 'mrb_bint_sign'? [-Werror=implicit-function-declaration]

The preprocessor cannot test for a name, so mrbgem.rake reads include/mruby/internal.h and defines MRB_CBOR_BINT_NEW_BYTES when the new names are there. src/mrb_cbor.c calls one name behind that define, so an old checkout builds as well.

Found while moving webmachine-mruby to mruby master. The debug build is green with this change.

mruby renamed two entries on 2026-09-06 (mruby/mruby 053056f):
mrb_bint_from_bytes is now mrb_bint_new_bytes, and mrb_bint_size is now
mrb_bint_bytes_size. This gem calls both, so it stops building against
mruby master with "implicit declaration of function".

The preprocessor cannot test for a name, so mrbgem.rake reads
include/mruby/internal.h and defines MRB_CBOR_BINT_NEW_BYTES when the
new names are there. src/mrb_cbor.c calls one name behind that define
and builds against an old checkout as well.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Asmod4n pushed a commit to Asmod4n/webmachine-mruby that referenced this pull request Sep 6, 2026
matz added mrb_vm_interrupt to mruby master (a9151d77). It reads one
volatile flag at a send and at the four jumps, so a loop or a recursion
is stopped while straight-line code carries neither the branch nor the
bytes. The read sits behind mrb_unlikely, which gives gcc the cold
edges it needs: mrb_vm_exec went from 67008 to 39060 bytes.

That answers what patches/mruby-task-scheduler-disable.patch was for,
so the patch, its README, the header probe in mrbgem.rake, and the
call in run_guarded all go. mruby/ is on master now, not on the fork
branch.

One upstream rename had to be met on the way: mruby-cbor calls
mrb_bint_from_bytes and mrb_bint_size, which are mrb_bint_new_bytes and
mrb_bint_bytes_size since 053056f. Asmod4n/mruby-cbor#2 carries the
fix; without it the build stops at mrb_cbor.c.

Debug build and suite: 2952 core, 0 KO; 379 bintests, 0 KO.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Asmod4n
Asmod4n merged commit a9cc9ac into main Sep 6, 2026
2 checks passed
@Asmod4n
Asmod4n deleted the bigint-byte-entry-rename branch September 6, 2026 05:23
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