• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

dnsimple / dns_erlang / 30151987792
92%

Build:
DEFAULT BRANCH: main
Ran 25 Jul 2026 08:58AM UTC
Jobs 0
Files 0
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Canceled at 25 Jul 2026 01:46PM UTC via web
30151987792

push

github

web-flow
Optimize dns_encode: thread one accumulator, fuse rdata appends (#139)

* Optimize dns_encode: thread one accumulator, fuse rdata appends

Three changes to the message encoders, prototyped as candidate axes and
benchmarked against the shipped module:

- The bounded encoders (default/axfr/llq tc modes) previously built
  each section into its own binary and copied it onto the message
  accumulator, with the default path also copying the question section
  out of its placeholder-headered binary. All three now thread one
  message-rooted accumulator (starting at a 12-byte placeholder so
  compression offsets stay message-relative) through every section, and
  the real header is spliced over the placeholder in exactly one final
  assembly (finish_message/2).

- encode_rrdata previously materialized every RDATA as its own binary,
  which the caller measured for RDLENGTH and copied in. The internal
  encoder is now append-style (encode_rrdata_append/5): each record's
  RDATA is emitted directly into the accumulator with the RDLENGTH
  fused into the same append, computed from the parts. The public
  encode_rrdata/2,/4 remain as thin wrappers with identical results.
  In the bounded path a record is now appended before the final size
  check and the pre-append term is kept on overflow; the discarded
  extension costs one extra append only on the record that fails to
  fit (measured ~+15% on a truncated TXT-heavy encode, a rare path).

- The default path no longer rebuilds the #dns_message{} record per
  section (answers/authority travel as arguments, replacing the
  pop/put cycle and the MsgTmp copy), and build_header/6 encodes the
  final header from fields instead of updating a record copy first.

Behavior is unchanged: a parity harness proved byte-identical output
and identical raised errors against the previous implementation across
17 corpus messages x 6 encode combinations plus a max_size sweep around
every message's exact encoded size (4424 cases), an... (continued)
Source Files on build 30151987792
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #30151987792
  • f9f4cbbb on github
  • Prev Build on main (#30147162684)
  • Next Build on main (#30152033349)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc