Skip to content

mdudu: aina za muundo zilizofafanuliwa tayari huripotiwa kimakosa kama zisizojulikana kwenye faili kubwa sana (struct 150+) #200

Description

@Kandemark

Muhtasari

Wakati wa kujaribu kukusanya swa/moduli/mchezo.swa ya kweli ya
Dominion (faili moja inayohusisha moduli 40+ za mradi, sasa graph
yake iliyotatuliwa ina struct 156-168, mistari 15,000-17,000+ baada
ya kutatuliwa), aina za muundo zilizofafanuliwa TAYARI kwa usahihi
(kwenye moduli za mbali kama utawala/maendeleo.swa,
uchumi/uchumi_mkuu.swa) zilianza kuripotiwa kama "aina isiyojulikana"
kwenye baadhi (SI zote) za matumizi yao ya baadaye kwenye faili hilo
hilo.

Ilichokithibitishwa TAYARI kutoka kwa hii (kuepuka utata na masuala mengine)

  1. SI mdudu MKUBWA: graph ya husisha yenye struct ~30+ husababisha hitilafu za aina za uwongo NA uharibifu wa wakati wa kukimbia #189 (kikomo cha muundo_nodes[]/muundo_ukubwa
    cache) — hilo tayari limerekebishwa (1024), na graph hii ina struct
    156-168 pekee, mbali sana chini ya kikomo hicho.
  2. SI kikomo cha ast_idadi/ast_aina[] (nodi za AST) —
    nimeongeza hizi kutoka 65536 hadi 1,048,576 (angalia PR
    inayohusiana, imefanywa kikao kikao hiki kikiwa kinaendelea) kwa
    sababu ya mdudu TOFAUTI (kufurika kwa AST kulikofuatana na
    "node_mpya imefurika" mara nyingi) — mdudu HUO umetatuliwa
    kikamilifu (rekebisho limejaribiwa: 304/304 + fixpoint 17/17 +
    uthibitisho wa moja kwa moja kuwa spam ya "node_mpya imefurika"
    imeisha kabisa). Mdudu HUU (aina isiyojulikana) ni TOFAUTI, bado
    unabaki BAADA ya rekebisho hilo.
  3. SI kikomo cha ast_pool[] (dimbwi la baiti za majina) —
    nimeongeza hii pia kutoka 4MB hadi 16MB na kuongeza ukaguzi wa
    mipaka wenye ujumbe wa hitilafu (haukuwepo awali) — ujumbe huo
    HAUJAWAHI kuonekana kwenye jaribio langu, ikimaanisha dimbwi la
    majina halijafurika.

Muundo wa uzalishaji upya

Faili moja kubwa (17,263 mistari baada ya kutatuliwa, struct 168) —
UtawaliUamuzi, UchumiMkuuRipoti, MapiganoMatokeo, UshindiNyara,
SiasaKikundi, SiasaKikundiMfumo, TeknolojiaMfumo zote
zilikataliwa kwenye BAADHI ya matumizi yao (si YOTE — mfano
UchumiMkuuRipoti inatumika mahali 4 tofauti kwenye faili hilo hilo,
lakini ni 2 tu kati ya hizo zilizoshindwa).

Muhimu zaidi: nilipoondoa moduli sita za hivi karibuni
(jeshi/kitengo, jeshi/mapigano, jeshi/ushindi, siasa/kikundi,
teknolojia/teknolojia, maarifa/maarifa) kutoka kwenye graph (nikapunguza
kutoka struct 168 hadi 156), makosa YALIENDELEA kuonekana kwa
UtawaliUamuzi na UchumiMkuuRipoti — AINA HIZI MBILI HAZIHUSIANI
KABISA na moduli sita nilizoondoa (ni sehemu ya seti ya awali ya
mifumo 28+11 iliyokuwa IMEKWISHATHIBITISHWA KUFANYA KAZI SAHIHI
mapema kikao hiki, kwenye jaribio la struct 130). Hii inathibitisha
KWA UHAKIKA kuwa tatizo SI kuhusiana na moduli MAALUM zilizoongezwa
mwisho, bali ni la UKUBWA/NAFASI YA JUMLA ya faili — kizingiti halisi
kiko MAHALI FULANI kati ya struct 130 (kilichothibitishwa kufanya
kazi mapema kikao hiki) na struct 156 (kinachoshindwa sasa).

Tabia ya "baadhi tu ya matumizi yanashindwa, si yote" (positional, si
ya kila mara) inaonyesha huenda ni tatizo la NAFASI/HATUA YA
UCHANGANUZI (parsing) badala ya kikomo rahisi cha ukubwa wa safu —
labda kuna jedwali/kaunta nyingine bado haijagunduliwa inayoshiriki
uhusiano usiojulikana na maendeleo ya uchanganuzi (parse progress),
si idadi ya struct au majina pekee.

Uthibitisho wa moja kwa moja: moduli zangu mwenyewe ZINAFANYA KAZI kwenye faili dogo

Nilijaribu moduli 11 nilizoziunganisha (utamaduni x5, matukio, wakala,
injini x4) KATIKA FAILI DOGO LA KUJITEGEMEA (struct 27 tu, bila
kuhusisha moduli 28 za awali za mchezo.swa) — ZILIFANYA KAZI SAWASAWA
KABISA, majaribio yote ya thamani halisi yalipita. Hii inaonyesha
mdudu HUU unahitaji UKUBWA WA JUMLA WA FAILI kufikia kiwango fulani
(kinachozidi struct ~130-150), SI kasoro kwenye moduli yoyote mahususi.

Pendekezo kwa mchunguzi ajaye

Tafuta jedwali lolote la ukubwa maalum linalotumika WAKATI WA
UCHANGANUZI (parsing, si baada ya kukamilika) ambalo halijaguswa na
masahihisho ya #189/#192/#197 (yote hayo ni majedwali ya BAADA ya
uchanganuzi kukamilika, au ya struct-count/name-pool). Tafuta hasa
kitu kinachoshiriki kaunta na NAFASI YA SASA YA UCHANGANUZI (parse
position) badala ya idadi ya struct au urefu wa majina — hilo
lingeeleza kwa nini baadhi TU ya matumizi ya aina moja yanashindwa
(yanayotokea BAADA ya kizingiti fulani cha nafasi), si yote.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions