janestreet / janestreet/core_kernel

pack_signed_32_big_endian (and other omissions)

Open
#33 1 comment 0 reactions 0 assignees View on GitHub
enhancement forwarded-to-js-devs
Dominant language
OCaml
Stars
225
Forks
67
PR merge metrics
No merged PRs in 30d

Description

There are a number of functions missing from Binary_packing. E.g. I have to do `pack_signed_32 ~byte_order:`Big_endian`, which the documentation suggests is up to 3 times slower than a 32 bit _big_endian function. Given that there is a pack_signed_64_big_endian, I see no reason why there shouldn't be one for 32 bit. I'm aware that there is a pack_unsigned_32_int_big_endian (I want unsigned, but for fixed width 32 bit, signed works as well), but I'd like to be portable to 32 bit platforms, where int is signed 31 bit.

Contributor guide

Open the contributing guide

Research direction

Locate Binary_packing and compare the existing pack_signed_64_big_endian function with pack_signed_32 and pack_signed_32 ~byte_order:. Review the surrounding API for other omissions, then ensure the requested fixed-width big-endian function is available and portable to 32-bit platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
ocaml
Domain
backend
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.