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.