Skip to content

rekebisha: desimali_off/desimali_lebo_id[1024] ilikuwa kikomo cha kila tokeo, si thamani za kipekee (#192) - #196

Merged
Kandemark merged 1 commit into
lugha-swa:mainfrom
techlunatic-ctrl:rekebisha-kikomo-cha-desimali
Sep 10, 2026
Merged

rekebisha: desimali_off/desimali_lebo_id[1024] ilikuwa kikomo cha kila tokeo, si thamani za kipekee (#192)#196
Kandemark merged 1 commit into
lugha-swa:mainfrom
techlunatic-ctrl:rekebisha-kikomo-cha-desimali

Conversation

@techlunatic-ctrl

Copy link
Copy Markdown
Contributor

Rekebisho la #192 (mdudu wa mwisho aliyebaki wa kikao hiki cha uchunguzi wa mkusanyaji). Angalia commit message kwa maelezo kamili ya chanzo cha mzizi (kimethibitishwa kwa objdump + instrumentation ya moja kwa moja, si dhana) na rekebisho.

Muhtasari: desimali_halisi_hifadhi() haina deduplication -- kila TOKEO la herufi ya D64 (si kila thamani ya KIPEKEE) hutumia nafasi moja kwenye jedwali la 1024. Faili kubwa la kweli lenye hesabu nyingi za D64 (serikali.swa, hub ya utawala ya Dominion) hufikia kikomo hicho kwa urahisi, na kikifikiwa, fixup ya mwisho hubakia bila kufafanuliwa milele -- ikisababisha uharibifu wa KIMYA wa thamani (si crash, si hitilafu ya kukusanya).

Jaribio: suti 304/304 + fixpoint 17/17 + jaribio la thamani halisi dhidi ya serikali.swa halisi (uanzishaji, sasisha mara 20, mipaka ya thamani, subsystems zote kupitia hub).

…a tokeo, si thamani za kipekee (lugha-swa#192)

Chanzo cha mzizi kilichothibitishwa kwa uchunguzi wa moja kwa moja
(objdump + andika_stderr instrumentation ndani ya uzalishaji.swa):
desimali_halisi_hifadhi() haina deduplication kabisa -- kila mara
herufi ya D64 (mfano 0.5) inapotokea POPOTE kwenye chanzo (hata
ikiwa thamani ile ile tayari ipo), hifadhi mpya huundwa. Faili
kubwa la kweli (serikali.swa, struct 47, husisha 19 halisi zenye
hesabu nyingi za D64) hufikia kikomo cha 1024 TOKEO kwa urahisi --
umethibitishwa moja kwa moja: desimali_halisi_hifadhi iliitwa mara
1024 hasa, toa_movsd_xmm0_kwa_lebo mara 1025, wito wa mwisho
ukipata lebo_id=-1 (thamani ya kushindwa kimya, bila ujumbe wa
hitilafu tofauti na majedwali dada ya faili hili).

lebo_id=-1 ikiingizwa kwenye weka_fixup husajili fixup isiyoweza
kufafanuliwa kamwe (hakuna lebo halisi ni -1) -- displacement ya
movsd xmm0,[rip+disp32] ya herufi hiyo hubakia 0 (thamani ya muda)
MILELE, ikisoma baiti za maagizo yanayofuata kama nambari. Hii
ndiyo ilisababisha usemi kama g->utulivu == 0.6 kutoa matokeo
yasiyo sahihi KIMYA KIMYA -- bila hitilafu ya kukusanya wala
kuanguka. Fixes lugha-swa#192.

Rekebisho: majedwali yameongezwa hadi 65536 (yakiendana na
lebo_buf/fixup tables tayari zilizopo kwenye faili hili), na
ujumbe wa hitilafu wa WAZI umeongezwa endapo kikomo kipya
kitafikiwa (badala ya kurudi -1 kimya).

Jaribio: suti kamili 304/304 + fixpoint ya kujitegemea 17/17,
pamoja na jaribio la thamani halisi (si tu "haianguki") dhidi ya
serikali.swa halisi -- uanzishaji, sasisha mara 20, mipaka ya
thamani, upatikanaji wa subsystems zote kupitia hub.
techlunatic-ctrl pushed a commit to techlunatic-ctrl/dominion that referenced this pull request Sep 10, 2026
…ili)

Hub ya utawala inayounganisha mifumo yote 15+ (matawi, taasisi,
mazungumzo, sheria, vipimo, kisiasa, kieneo, desturi, maendeleo, na
bajeti) -- mistari 712, struct 47 kwenye graph ya husisha iliyotatuliwa.

Iliandikwa awali kikao hiki lakini iliwekwa kwenye diski bila git kwa
muda mrefu kwa sababu ya lugha-swa/swa#192 (uharibifu wa kimya wa
thamani za D64 kwenye faili kubwa) -- sasa imerekebishwa upstream
(lugha-swa/swa#196, kikomo cha desimali_off[1024] kilichokuwa
kikifikiwa kwa TOKEO za herufi za D64, si thamani za kipekee).

Imejaribiwa dhidi ya mkusanyaji uliorekebishwa: uanzishaji na thamani
sahihi za field zote (ikiwemo field za mbali kwenye muundo, zilizoathiriwa
moja kwa moja na #192), sasisha mara 20 bila kuanguka na thamani ndani
ya mipaka, upatikanaji wa subsystems zote kupitia hub.

Hii inafungua njia kwa nation.c (ilikuwa inasubiri hub inayofanya kazi).

@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 — chanzo cha mzizi (desimali_halisi_hifadhi haina deduplication, kikomo cha kila tokeo si thamani za kipekee, overflow ya kimya ikirudisha -1 inayovunja fixup) kimeelezwa vizuri na kinaeleweka. Rekebisho ni dogo, sahihi, na linaongeza ujumbe wa hitilafu unaokosekana awali. Suti 304/304 + fixpoint 17/17, pamoja na uthibitisho dhidi ya serikali.swa halisi.

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

rekebisha: desimali_off/desimali_lebo_id[1024] ilikuwa kikomo cha kila tokeo, si thamani za kipekee (#192)
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