Skip to content

rekebisha: akiba za nodi za AST/IR ndogo mno kwa faili kubwa la kweli - #201

Merged
Kandemark merged 1 commit into
lugha-swa:mainfrom
techlunatic-ctrl:rekebisha-akiba-ya-nodi-za-ast
Sep 11, 2026
Merged

rekebisha: akiba za nodi za AST/IR ndogo mno kwa faili kubwa la kweli#201
Kandemark merged 1 commit into
lugha-swa:mainfrom
techlunatic-ctrl:rekebisha-akiba-ya-nodi-za-ast

Conversation

@techlunatic-ctrl

Copy link
Copy Markdown
Contributor

Fixes #199

Majedwali ya nodi za AST (ast_aina[] na safu nyingine 6 zinazofanana, msambazaji.swa) yalikuwa na kikomo cha nodi 65536, kiwango kilichotosha tu kwa mkusanyaji kujikusanya mwenyewe (~nodi 31k). Faili la kweli la mradi mwingine (moduli 40+ zilizohusishwa kupitia husisha, struct 150+) linavuka kikomo hicho kwa urahisi, na node_mpya inarudisha -1 kimya, ikizalisha hitilafu za mnyororo zisizoelezeka.

Vilevile:

  • ir_aina[] na safu nyingine 7 zinazofanana (mteremko.swa) zinafahirishwa na kaunta ileile ya nodi za AST, hivyo lazima ziongezwe pamoja. ir_node_mpya haikuwa na ukaguzi wowote wa mipaka kabla ya rekebisho hili -- imeongezwa sasa.
  • kvn_visited[] (uzalishaji.swa) inafahirishwa na node ID zilezile, iliongezwa pamoja nazo.
  • ast_pool[] (dimbwi la baiti za majina) iliongezwa kutoka 4MB hadi 16MB, na ukaguzi wa mipaka (haukuwepo awali) umeongezwa kwenye njia ya usajili wa majina ya miundo.

Zote zimeongezwa hadi 1,048,576.

Imejaribiwa: gharama/jaribu-mnyororo.sh 304/304, gharama/jaribu-msuluhishi.sh fixpoint 17/17. Kwenye faili halisi lililosababisha #199, spam ya "node_mpya imefurika" imeisha kabisa baada ya rekebisho hili.

… la kweli (lugha-swa#199)

ast_aina[]/ast_thamani[]/ast_kushoto[]/ast_kulia[]/ast_tiga[]/ast_nne[]/
ast_jina_off[] (msambazaji.swa) zilikuwa na kikomo cha 65536 nodi,
zilizowekwa kulingana na mahitaji ya mkusanyaji kujikusanya mwenyewe
(~31k nodi) pekee. Faili kubwa la kweli la Dominion (mchezo.swa,
zaidi ya moduli 40 zilizohusishwa) linavuka kikomo hicho kwa urahisi,
kikisababisha node_mpya kurudisha -1 kimya na hitilafu za mnyororo
zisizoelezeka. Zimeongezwa hadi 1,048,576.

ir_aina[]/ir_aina_data[]/ir_thamani[]/ir_kushoto[]/ir_kulia[]/ir_tiga[]/
ir_nne[]/ir_jina_off[] (mteremko.swa) zinafahirishwa na kaunta
inayolingana na idadi ya nodi za AST -- ziliongezwa pamoja na hizo
juu, na muhimu zaidi: ir_node_mpya haikuwa na ukaguzi WOWOTE wa
mipaka (tofauti na node_mpya ya AST) -- imeongezwa hapa, kwa sababu
bila hiyo kufurika kungeandika nje ya mipaka kimya kimya badala ya
kutoa hitilafu safi.

kvn_visited[] (uzalishaji.swa) inafahirishwa na node ID zilezile za
AST -- iliongezwa pamoja nazo kuepuka kuruka kimya vigezo vya ndani
vya kazi kubwa.

ast_pool[] (dimbwi la baiti za majina) iliongezwa kutoka 4MB hadi
16MB, na ukaguzi wa mipaka umeongezwa kwenye njia kuu ya usajili wa
majina ya miundo -- haikuwa na ukaguzi wowote awali.

Imejaribiwa: suti 304/304 + fixpoint 17/17, pamoja na uthibitisho wa
moja kwa moja kuwa spam ya awali ya "node_mpya imefurika" imeisha
kabisa kwenye faili halisi la mchezo.swa.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@Kandemark Kandemark left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nimepitia diff — kamili na sahihi, majedwali yote yanayoshiriki node ID ile ile (AST, IR, kvn_visited) yameongezwa pamoja kwa uwiano sahihi, pamoja na ukaguzi wa mipaka uliokuwa haupo kabisa kwenye ir_node_mpya. Suti 304/304 + fixpoint 17/17.

@Kandemark
Kandemark merged commit e42457c into lugha-swa:main Sep 11, 2026
1 check passed
Kandemark added a commit that referenced this pull request Sep 11, 2026
…-za-ast

rekebisha: akiba za nodi za AST/IR ndogo mno kwa faili kubwa la kweli
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.

mdudu: akiba ya nodi za AST (ast_aina[65536] na majirani) inafurika kwenye faili kubwa la kweli

2 participants