Daniel Bernstein pirtûkxaneya cdb nûve kir

Daniel J. Bernstein, pisporekî navdar di warê krîptografî û pêşvebirina nermalava ewle de ku projeyên wekî qmail, djbdns, NaCl, Ed25519, Curve25519, û ChaCha20-Poly1305 pêşxistiye, cdb 20250121 derxist, formateke hilanîna daneyan û pirtûkxaneya pêvek ji bo bicihkirina fonksiyonên databasa mifte/nirxê di nav sepanan de. Ev berdan zêdetirî 25 sal piştî nûvekirina berê, cdb 0.75, ku di Sibata 2000an de derket, tê.

Guhertoya nû formata cdb64, ku ji bo avahiyên daneyê yên 64-bit hatiye wergerandin, pêk tîne. Li ser platformên 64-bit, formata nû destûrê dide databasan heta eksabaytê di mezinahiyê de (berê, mezinahiyên databasan bi 4 GB ve sînordar bûn). Databas pir kompakt e û sernivîsek 4096-bayt û 48 bayt serê tomarê bikar tîne (ji bo guhertoya 32-bit, sernivîs 2048 bayt û 24 bayt serê tomarê ye). Gihiştina databasê tenê du operasyonên gihîştina dîskê hewce dike ger mifte hebe, û yek ger nebe. Guhertina databasa atomî tê piştgirî kirin, ku li hember têkçûnê berxwedêr e û gihîştina xwendinê asteng nake.

Guhertinên din:

  • Piştgiriya avakirinê bi karanîna skrîptê mîhengkirinê û sazkirinê bi fermana "make install".
  • Girêdana skrîptên testê bi csh re hate rakirin.
  • Hemû nirxên hejmarî yên navxweyî bi cureyê "num" hatine guhertin, ku wekî "long long" hatiye pênasekirin. Fonksiyonên uint32, fmt, û scan bi fonksiyonên ku bi cureyê num re dixebitin hatine guhertin.
  • API-ya rêveberiya bufferê bûye inbuf û outbuf. Navrûya hier hatiye paqijkirin.
  • Pênaseyên fonksiyonên nehatine bikaranîn ji kodê hatine rakirin.
  • Bikaranîna paşverû ya girêdanên wekî str_len, alloc, uint32, exit, error, û systype.
  • Kod ji nû ve hatiye sererastkirin da ku bikaranîna avahiyên C yên kevnar ên wekî şêwaza kevn a pênaseya fonksiyonê, prototîpên vala, û şêwaza kevn a pênaseya main() ji holê were rakirin.
  • Pênaseya const û statîk tê bikaranîn.
  • Ala "-Wall" di dema montajê de hate çalakirin û kod hate paqijkirin da ku hişyariyan ji holê werin rakirin.
  • Vebijarkên -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing, û -fno-strict-overflow di dema berhevkirinê de têne çalak kirin.

Source: opennet.ru

Add a comment