( uid_21365 | 2020. 11. 22., v – 01:51 )

Szerkesztve: 2020. 11. 22., v – 01:52

Nos, a nyelvecském már egész szépen kiforrta magát. A főbb változások amik az eltelt időben történtek:

—A fork() és a shared memory kezelése bekerült a core-ba. Ennek az az oka, hogy úgy döntöttem, a stringtömbök built-in módon támogatva lesznek, mert nekem rendkívül gyakran van szükségem rájuk, márpedig a stringtömbök nálam nagyon gyakran úgy vannak „előállítva”, hogy a shared memory területen helyezkednek el. Célszerű volt tehát megcsinálnom, hogy legyen támogatás a „közönséges” stringtömbökre is, és a shared memoryban elhelyezkedőkre is. Ha ez a core része, persze hogy a fork is oda kell kerüljön, minthogy a shared memory a legtöbbször úgyis az interprocess kommunikáció célját szolgálja!

Egy másik indok, hogy sikerült kiihlenem magamból egy olyan szintaxist erre az egészre, ami nekem nagyon tetszik mert logikusnak tűnik, a feldolgozása is gyors, de nagyon macerás lett volna megcsinálni akkor, ha nem a core része.

Közben megcsináltam (megint) a Conway féle Life játékot. Ezzel a stringtömb kezeléssel. Szépen működött... Egészen addig amíg háromszázvalahány nemzedéket ki nem rajzolt. Akkor ugyanis segfault...

Persze már gyakorlott vagyok ilyesmiben, azonnal arra gyanakodtam, a stack-kezelésben lesz a hiba. Na de mi, a stackom eddig kiválóan szerepelt mindenütt... Végül kiderült, egy teljesen pitiáner, ótvar kis szutyok rutinban a hiba. Abban, ami várakozik két generáció közt, az usleep() függvénnyel. Ennek paramétere persze a stackban van átadva. Na és amikor ezt megírtam fáradtan tegnap, tévedésből ezt írtam a végére:

STACK0.g--;

ehelyett:

STACKP--;

Vagyis nem a stackpointert csökkentettem eggyel hogy törölje a már szükségtelen paramétert, hanem a stack legfelső elemének értékét csökkentettem... nagy különbség ugye, s persze hogy emiatt betelt a stack...

(A STACK0 és a STACKP egy-egy #define direktíva nálam. Ezt csak az érthetőség kedvéért írtam le).

Hát efféle kalandjaim vannak...

A másik amiért nekiestem ennek a stringtömbös hóbelevancnak, az az, hogy ahogy most átírtam, kiválóan továbbfejleszthető egy komplett listakezelő alrendszerré, márpedig fentebbi (régi) hozzászólásomban azon elmélkedtem hogy azt a részt át kell gondolnom mert a régi megoldás nem tetszik szívem szottyának. Ez a mostani út azonban ígéretesnek tűnik. Debütálni az új módszer abban a feladatban fog, amikoris a közismert vidir programot írom meg a magam peri nyelvén. Oda nagyon jól jönnek majd a listafeldolgozó ficsőrök.