Biztos ismeritek a vidir nevű kis progit, eredetileg Perl nyelven írták meg. Itt van róla leírás:
Lényege, hogy a megadott tartalomjegyzéket a $EDITOR környezeti változóban meghatározott editorral szerkeszthetjük. Ehhez létrehoz egy ideiglenes fájlt, aztán amikor a szerkesztést befejeztük, azt beolvassa, ami abban nincs de a tartalomjegyzékben szerepelne azt kitörli, ami pedig megvan de más néven, azt átnevezi. Az azonosításhoz sorszámokat generál a fájl sorainak elejére. Hát ezt megírtam magam is, és nem kell hozzá már Perl nyelv.
E programot egy vv nevű pici szkripttel indítom, aminek tartalma csak ennyi:
#!/bin/bash
$HOME/Furor/furor $HOME/Furor/useful/diredit.upu "$@"
Lássuk a teljes programot!
###sysinclude dir.uh
###define SEPARATOR 9
#g argc 3 < { "." }{ 2 argv } sto mypath
@mypath 'd !istrue { ."The given directory doesn't exist! Exited.\n" end }
6 '- pidstr sto pidstring
@mypath getdir { ."Cannot load the dir! Aborted.\n" end } sto mydir
mypath per // Ha nem per-jelre végződik, kiegészíti vele.
10 mem sto aktfilename
10 mem sto neworiginalname
tömb @mydir dirlist
filtered tömb SEPARATOR [ #s 0 [-] "R" != 0 [-] "D" != #g & { dropline }{ 2 dropfield 2 dropfield
}
getline
]
"/tmp/furordiredit_tempfile-" sto myfilename
#s
@pidstring sum myfilename
".txt" sum myfilename
filtered @myfilename listtofile // print the list into a temporary file
"EDITOR" env sto mycommand
" " sum mycommand
@myfilename sum mycommand
@mycommand shell // execute the command
editedlist @myfilename filetolist
filtered SEPARATOR ![ // Loop for the original list
[-?] !{ dropline } // If empty lines occured...
0 [-] sto originaltype
1 [-] sto originalnumber
2 [-] sto originalname
#s
zero foundflag editedlist SEPARATOR ![ // Loop for the edited list
// searching for the originaltype and originalnumber:
0 [-] @originaltype != { dropline }
1 [-] @originalnumber != { dropline }
2 [-] @originalname != {
2 [-] sbr §aktfilenamecreate
neworiginalname @mypath = @originalname sum neworiginalname
@neworiginalname @aktfilename rename
."Renamed : " @neworiginalname print ." ==> " @aktfilename printnl
}
one foundflag [>]
] // end for the editedlist-loop
@foundflag !{ // Nincs meg a file vagy dir. Ekkor le kell törölni:
@originaltype "D" == { // directory
2 [-] sbr §aktfilenamecreate
@aktfilename rmdir
."Deleted : " @aktfilename printnl
dropline
}
@originaltype "R" == { // reguláris fájl
2 [-] sbr §aktfilenamecreate
@aktfilename removefile
."Deleted : " @aktfilename printnl
dropline
}
}
] // End of the loop for the original list
@myfilename removefile
end
aktfilenamecreate: aktfilename @mypath = sum aktfilename rts
{ „mydir” }
{ „tömb” }
{ „mypath” }
{ „filtered” }
{ „pidstring” }
{ „myfilename” }
{ „mycommand” }
{ „editedlist” }
{ „originalnumber” }
{ „originaltype” }
{ „foundflag” }
{ „aktfilename” }
{ „originalname” }
{ „neworiginalname” }
Nem véletlen, hogy e programot - mely szerintem kiváltképpen hasznos! - épp most írtam meg! Felhívom ugyanis blogbejegyzésem „bírálóinak” szíves figyelmét arra az apróságra, hogy épp most lettem kész a Furor nyelv listafeldolgozó részrendszerének elkészítésével, márpedig ez fontos, mert e fenti diredit programban épp ilyen listafeldolgozás folyik, ráadásul nem is egyetlen, hanem két darab „listafeldolgozó ciklus”, és EGYMÁSBAÁGYAZVA!
- haroldking blogja
- A hozzászóláshoz be kell jelentkezni
Hozzászólások
két darab „listafeldolgozó ciklus”, és EGYMÁSBAÁGYAZVA!
Beszarás...
Hivatásos pitiáner
neut @
- A hozzászóláshoz be kell jelentkezni
szolgaltatasgazdag nyelv, NEM ERTED???
- A hozzászóláshoz be kell jelentkezni
kedves változónevem a: tömb
btw mi a logikája a vegyes nyelven írt kommenteknek a phurorban?
#todo: lehetne az utasításkészlet magyar? nagy szükség lenne egy magyar programozási nyelvre
getline = kapsor
dropline = dobsor
foundflag = találtzászló
editetlist = javítottlista
SEPARATOR = ELVÁLASZTÓ
mycommand = sajátparancs
myfilename = sajátadatállománynév
shell = rendszerhéj
sum = összeadás
pidstring = fakaraktersorozat
removefile = eltávolításiadatállomány
originaltype = eredetitípus
neworiginalname = újeredetinév
aktfilename = jelenlegiadatállománynév
és sokat javítana az olvashatóságán
[új] - No rainbow, no sugar - [új]
- A hozzászóláshoz be kell jelentkezni
Lehetne az utasításkészlet magyar, igen. Sok minden lehetne, aztán mégsincs úgy. Lehetnék én is nő, például, de mégse vagyok az, nem annak születtem...
A kommentek azért magyarok, mert tapasztaltam még itt a HUP-on is nakadnak olvasók akik nem tudnak angolul, gondolom így könnyebben megértik. Úgyis az az egyik fő ellenérv a Furorral szemben hogy nehezen érthető, na akkor ne fokozzuk ezt...
Néhány komment azonban angol benne, mert miért is ne? Engem nem zavar.Bevallom ez úgy van nálam, épp milyen hangulatban vagyok az adott sor leírásakor: ettől függ, kommentelem-e egyáltalán, s ha igen, milyen nyelven. Minthogy a regényem szerint a Furor nyelv az UPU birodalom programnyelve, melyben az emberi nyelv az angol, mert ők az USA jogutódai, ezért nem baj ha vannak a kódban angol kommentek. A magyar kommentek se baj, mert magyarul írom a regényt, szóval ez oké a magyar olvasóknak. Nyilván, ha majd angolul jelentetem meg a regényt, az összes magyar komment le lesz fordítva előbb angolra az angol olvasóknak.
Amúgy te se tudsz angolul, hiszen a Furor szót is a postodban phurornak írtad. Holott a furor egy létező angol szó, ha nem is ismernéd akkor is. Olyasmit jelent hogy kültői ihlet, elragadtatás, önkívület... Illik egy irodalmi céllal létrejött programnyelvhez!
A kulcsszavakat meg majd bárki átírhatja a nyelvben akár magyarra, akár szuahélire is, egy külön fájlban vannak, egy stringtömbben, pontosabban egy olyan tömbben ami struktúrákból áll s az egyik tag a struktúrában egy stringkjonstans, a másik a tokenkód... utóbbit jobb nem piszkálni. A stringkonzstansokat azonban bárki átírhatja akármire ami neki tetszik.
Sőt ezzel se kell bajlódnia, használja a programjai elején a ###define direktívát, aztán utána akármi is lehet a neki tetsző kulcsszó abban a programban...
Ja, a tömb meg az egyéb magyar vltozónevek: ezek mutatják, hogy a Furorban egy azonosító nem csak angol hanem akármilyen karaktereket is tartalmazhat, ékezeteseket is.
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
DULVA! mennyi szolgaltatas, kiralyom!
- A hozzászóláshoz be kell jelentkezni
"a furor egy létező angol szó"
És egy létező spanyol szó.
És egy létező portugál szó.
És egy létező svéd szó.
És egy kikopott francia szó.
És valamennyi nyelv a latinból vette át, mert saját szót nem tudtak felmutatni a jelenségre.
Mától én is aspergeres vagyok. Kéretik ennek figyelembe vételével olvasni az általam leírtakat.
- A hozzászóláshoz be kell jelentkezni
És? Ettől még igaz, hogy az angol nyelvben is létezik, azaz egy létező angol szó! És f betűvel írják, nem ph-val.
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Hát reméltem hogy valaki észreveszi, de csalatkoznom kellett... Pedig mennyire örvendtem volna, ha jól letoltok érte, hogy ilyen trágya, gány, trehány kódot magára valamit is adó, tisztességes Furor programozó ki nem ad a kezéből inkább szeppukut követ el szégyenében!
Pedig még utaltam is a dologra, amikor odaírtam a végére: ebben a programban EGYMÁSBA ÁGYAZOTT listafeldolgozó CIKLUSOK vannak!
Mégse kapcsolt senki. Csak a hülye trollkodás ment, mert ugye mire vagyok annyira büszke ilyen csekélységre... a lényeget meg senki nem vette észre. Jaj de szomornyú is az Ílet...
Mert mire is e programban az originalnumber, az originaltype és originalname változó?! Minek, ó mondd?! Hiszen töktotál feleslegesek! A Furor nyelv lehetőséget nyújt a ciklusok megcímkézésére, s így a belső ciklus is elérheti külső ciklus adatait...
Szóval e fenti program neve igazából nem diredit.upu hanem diredit.old.upu csak. Igazából egy „csalétek” volt nektek, egy teszt... de nem vettétek észre... nem tanuljátok elég szorgalmasan a Furor logikáját, sőt filozófiáját... azaz: az „igazi” diredit program most következik:
###sysinclude dir.uh
###define SEPARATOR 9
#g argc 3 < { "." }{ 2 argv } sto mypath
@mypath 'd !istrue { ."The given directory doesn't exist! Exited.\n" end }
6 '- pidstr sto pidstring
@mypath getdir { ."Cannot load the dir! Aborted.\n" end } sto mydir
mypath per // Ha nem per-jelre végződik, kiegészíti vele.
10 mem sto aktfilename
10 mem sto neworiginalname
tömb @mydir dirlist
filtered tömb SEPARATOR [ #s 0 [-] "R" != 0 [-] "D" != #g & { dropline }{ 2 dropfield 2 dropfield
}
getline
]
"/tmp/furordiredit_tempfile-" sto myfilename
#s
@pidstring sum myfilename
".txt" sum myfilename
filtered @myfilename listtofile // print the list into a temporary file
"EDITOR" env sto mycommand
" " sum mycommand
@myfilename sum mycommand
@mycommand shell // execute the command
editedlist @myfilename filetolist
filtered SEPARATOR externalloop: ![ // Loop for the original list
[-?] !{ dropline } // If empty lines occured...
#s
zero foundflag editedlist SEPARATOR ![ // Loop for the edited list
// searching for the originaltype and originalnumber:
0 [-] 0 [-]§externalloop != { dropline }
1 [-] 1 [-]§externalloop != { dropline }
2 [-] 2 [-]§externalloop != {
2 [-] sbr §aktfilenamecreate
neworiginalname @mypath = 2 [-]§externalloop sum neworiginalname
@neworiginalname @aktfilename rename
."Renamed : " @neworiginalname print ." ==> " @aktfilename printnl
}
one foundflag [>]
] // end for the editedlist-loop
@foundflag !{ // Nincs meg a file vagy dir. Ekkor le kell törölni:
0 [-]§externalloop "D" == { // directory
2 [-] sbr §aktfilenamecreate
@aktfilename rmdir
."Deleted : " @aktfilename printnl
dropline
}
0 [-]§externalloop "R" == { // reguláris fájl
2 [-] sbr §aktfilenamecreate
@aktfilename removefile
."Deleted : " @aktfilename printnl
dropline
}
}
] // End of the loop for the original list
@myfilename removefile
end
aktfilenamecreate: aktfilename @mypath = sum aktfilename rts
{ „mydir” }
{ „tömb” }
{ „mypath” }
{ „filtered” }
{ „pidstring” }
{ „myfilename” }
{ „mycommand” }
{ „editedlist” }
{ „foundflag” }
{ „aktfilename” }
{ „neworiginalname” }
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Hát reméltem hogy valaki észreveszi, de csalatkoznom kellett. ... Mégse kapcsolt senki.
Ebből is látszik, hogy milyen nagy rajongótábornak örvend eme cshodálathos "nyelv".
Hivatásos pitiáner
neut @
- A hozzászóláshoz be kell jelentkezni
És mi történik olyankor, ha egy olyan fájlt vagy könyvtárat akarsz átnevezni vagy törölni, amihez nincs jogosultságod? Ezeknek az rmdir vagy removefile függvényeknek (vagy legyenek bármik) vannak valami visszatérési értékei amik arról adnak infót, hogy sikerült-e nekik elvégezni a feladatukat?
- A hozzászóláshoz be kell jelentkezni
Minthogy ez a shell megkerülésével dolgozik, simán letörli. Kipróbáltam, csináltam root-ként egy fájlt a saját könyvtáramba, aztán normál userként megpróbáltam letörölni. Simán sikerült.
Az egyetlen védelem ellene, ha a fájl olyan könyvtárban van, amibe bele se tudok lépni. A root könyvtárában például nem tudok vele fájlokat törölni, mert bele se tudok lépni (normál userként).
Most lehet vitatkozni ez jó dolog-e, de nekem így megfelel. Ésszel kell haználni...
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Ennek a hozzászólásnak minden mondata fájt, ameddig rá nem jöttem, hogy csak túl földhözragadt vagyok, a "földi" unix/linux jogosultságkezelés világában.
Más környezetben miért is ne lehetne egy fájlt letörölni programból(shell megkerülésével), ha nincs rá jogosultságunk? Innen már csak egy lépés, hogy ne is vegye figyelembe ezeket a felesleges dolgokat és teljes hozzáférése legyen az egész rendszerhez. Minek túlbonyolítani :-)
István
- A hozzászóláshoz be kell jelentkezni
Nézd, én a fájlok/könyvtárak törléséhez a remove_directory() és remove() függvényeket hívom meg a C programból. Bizonyára tudod, ezek teljesen „szabványos”, mondhatnám „kincstári” függvények. Nem piszkáltam beléjük. Én csak használom őket. Amit ezek megengednek letörölni, az lesz letörölve. Nem én írtam őket. Ha az alkotóik úgy ítélték meg, ezek nem vesznek figyelembe bizonyos jogosultságokat vagy akármiket, akkor nem lesznek azok figyelembe véve és kész. Nem az én kötelességem, hogy megváltsam vagy megjavítsam a Linux/Unix programökoszisztémát.
Továbbá, ez diredit program amit írtam a vidir progit utánozandó, csak egy PROGRAM. Ez nem a nyelvem szerves része! Aki úgy ítéli meg túl veszélyes, hát ne használja, az ő dolga! Magának a Furor nyelvnek a milyenségéről ez semmit se mond.
Már amiatt se mert még a felhasznált eszköz se a Furor szerves része, hanem csak egy hozzáírt KÜLSŐ LIBRARY biztosítja e függvényeket! Csak nagyon-nagyon szőrmentén kapcsolódik tehát a Furorhoz. Akinek nem tetszik hogy ez így működik, használja tovább a vidirt, vagy írja át a progimat úgy, hogy a shellt hívogassa meg minden törlésnél. Simán megoldható lenne, és még csak nem is volna nehéz. Ha akarnám, szerintem 10 percen belül megoldhatnám.
Szóval most lehet itt kritizálni a megoldásomat, csak azt szeretném kiemelni, még ha netántán és esetleg jogos is a kritika, az akkor se a Furor nyelvre magára vonatkozik, annak ehhez semmi köze. Ez olyan mintha valaki írna egy zsarolóvírust C nyelven, s erre elkezdenék azt mondani hogy a C nyelv szar mert lehetőséget nyújtott erre.
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Jogosultságellenőrzést nem a shell, hanem a kernel végzi. Jól is néznénk ki, ha a shell csinálná. Ennek fényében olvasd újra a hozzászólásokat, és rá fogsz jönni, hogy esetlegesen az irónia eszközével élnek egyesek.
Ha pedig tényleg nem adsz vissza hibaértéket, amikor egy libc-s hívás hibaértékkel tér vissza vissza... nos, eléggé lekorlátozza a használhatóságát a libednek (konkrétan tervezési hibája van).
És legjobb tudomásom szerint nincs remove_directory() libc-s hívás. Max. rmdir() van.
Egyébként komolyan nem értelek. Tele vagy szakmai tévedéssel (most pl. látszólag fogalmad sincs, hogy egy könyvtáron lévő rwx jogok pontosan mit is csinálnak, ill., arról, hogy az ellenőrzést mi végzi), rengetegszer megégeted magadat emiatt, de mégis hihetetlenül magabiztos vagy. És ha egy kicsit kevesebbet fényeznéd magadat (meg az általad készített teljesen alapvető dolgokat), akkor talán nem lennél kapásból ellenszenves az emberek nagy részének.
- A hozzászóláshoz be kell jelentkezni
Igazad van, fogjuk rá hogy typo volt. Nem az de majdnem. Arra gondolok, persze hogy az rmdir() az amit használok, csak az be van ágyazva egy remove_directory() függvénybe nálam, aztán annak a nevét írtam le. Ezen szerintem felesleges fennakadni, amint már amiatt is mert a program MŰKÖDIK, kipróbáltam!
És nem értem tényleg - ebben igazad van - mi is az egyáltalán amin itt a nagy hepaj megy. Csináltam egy progit Furor nyelven, mert kellett egy program amit ezekre a célokra használhatok. Működik. Nem volt célom hogy ügyelgessen mindenféle jogosultságokra. Lehet hogy szerintetek illene hogy erre ügyeljen, de nem ügyel rá. Akinek ez böki a csőrét, nyugodtan kiegészítheti ilyesmivel, ha akarja. Nekem ez nem célom, nekem ez így megfelel. Akkor most hol itt a gond?
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Nem neked kell a jogosultságokra odafigyelned. Megteszi ezt a kernel. Mindössze arra kérdeztek rá korábban, hogyha a törlés/átnevezés valami miatt nem tud megtörténni, akkor azt kezeled-e. Azaz kezeled-e a remove()/rename() stb. libc fv hívások visszatérési értékét. Ezek sok minden miatt jelezhetnek hibát, többek között amiatt, hogy nincs jogosultság törölni. De más miatt is lehet (mittomén read-only az FS, vagy már nincs ott a file, mert letörölte valami más, stb.).
Az ugye egy jó dolog, hogyha egy program nem tudja végrehajtani azt, amire megkérték, akkor szól róla. Ergo a visszatérési értéket érdemes kezelni.
Amúgy, ha nem vagy kíváncsi a negatív, de jobbító szándékú kritikára, akkor írd bele a blogbejegyzésbe, és akkor max. trollkodást fogsz kapni negatív visszajelzésként. Azt meg szívbaj nélkül lehet ignorálni.
- A hozzászóláshoz be kell jelentkezni
A hibakezelés egy külön témakör, amivel nem sokat foglalkoztam eddig. Azért nem, mert sokféleképp lehet hozzáállni a kérdéshez. Nem olyan egyszerű, mint sokan hiszik. Igazából én afelé hajlok, hogy a hibakezelést egy külön libre bízom, ami hozzá lesz linkelve minden más libhez is, és majd valahogy ide különítem el a hibakezelő részeket, beleértve a hibaüzeneteket is. Lényegében olyasvalamiképp képzelem el, mint egy „globális hibakezelő objektumot”, bár ez nem a legjobb szó rá, végülis külön libről van szó...
Konkrét részleteket még ne kérj, ez a részemről csak egy formálódóban levő homályos ötlet. Az tény, s ezt elismerem, a hibakezelés egy eléggé elhanyagolt terület a nyelvemben jelenleg. NA ÉS?! Jól látható, ez a nyelv még „éptés alatt” áll, azaz NINCS KÉSZ. Messze sokkal fontosabb dolgaim is voltak eddig, és még most is vannak. Azaz bár elismerem hogy ez egy a maga módján fontos kérdés amivel MAJD foglalkoznom kell, de perpillanat nem élvez különösebb prioritást nálam.
Majd ha ráérek, foglalkozom vele. Ideiglenes megoldásokat viszont nem szeretnék belehackelni most, mert az csak rosszabb lenne, akadályozná a végleges megodást majd ha lesz rá idő.
Mert persze, lehet jönni azzal hogy adjon vissza egy hibakódot... na igen, de mi van ha nincs hiba, s nyilván az a gyakoribb eset! Ekkor ez csak időveszteség, ráadásul a programozó úgyse ellenőrzi majd le a hibakódot mindig. Illetve ha ez muszáj mert másképp ott marad a stackban, akkor külön hibaforrás maga is.
Szóval mondom, ezt még át kell nekem is gondolnom, de az biztos hogy ez a hibakódos szöszmékelés amit a C is folytat nekem nem igazán nyerte el a tetszésemet és valami fejlettebb megoldás felé tapogatózom.
Egyelőre azonban nem fontos. Ráér. Ha valaki saját autót barkácsol, vélhetőleg ő se a légzsák beépítésével kezdi...
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Ha kitalálsz valami újat (és használhatót) a visszatérési értékek és exceptionok mellé, akkor híres lehetsz :)
- A hozzászóláshoz be kell jelentkezni
Köszi. De olyan önhitt azért nem vagyok hogy ilyesmiben nagyon higgyek... Én inkább olyasmiben töröm a fejemet, ami végülis egyfajta exceptionkezelés, vagy ha nem is az szigorúan véve de nagyon hasonlít hozzá. Igazából valami ilyesmit tulajdonképpen már meg is valósítottam az egyik korábbi nyelvemben, de egyes részletei nem tetszenek (bár sietek megjegyezni hogy működött azért...), szóval ha nagyon muszáj lenne egyetlen nap alatt beépíthetném a Furorba, de minek elsietni?! Épp ez a lényege, hogy át kell gondolnom a dolgokat, a részleteket... Vannak dolgok amik kell hogy „érjenek” bennem...
Tudod, eddig az elmúlt talán 5 vagy 6 év alatt csináltam már talán tíz programnyelvet is. Nem tévedés, annyit. Most már kezd elegem lenni belőle, ezt a Furort véglegesnek szánom. Az belefér hogy akár 10 vagy 20 év múlva is kibővítsem valamivel, de ami már létrejött azt nem akarom gyökerestől újratervezni.
Amit eddig megcsináltam és bemutattam nektek, arra rá lehet fogni hogy alapjában véve elégedett vagyok vele. Ezek azok az elemek, amik jól beváltak az előző nyelveimben. Ezeken felül egy egész rakás mindent kitaláltam még korábban és meg is csináltam, de ezért vagy azért, nem került be a Furorba. Az ok mindig az hogy valami miatt végül mégse tetszett. Mind működött, de vagy túl nagy mértékben megnövelte volna a kód komplexitását, vagy olyan funkció lett volna ami ezer évben egyszer irtó jól jön, de máskor soha se kell, emiatt a programozó úgyis elfelejti, s amikor kéne biztos épp akkor úgyse jut az eszébe...
A kivételkezelés oké, mondom én is elismerem hogy fontos, nincs semmi vita köztünk, de NEM MOST van itt az ideje. Még át kell gondolnom.
Asszem nekiesek most az infix notationnak. Istenbizony van ugyanis egy olyan érzésem, nem hiszitek el hogy képes vagyok leprogramozni. Holott már sok nyelvemben megoldottam, rég. Végülis mi a tököm lenne olyan nehéz benne, azt kell csak jól érteni hozzá, felfogni, mi is az a rekurzív hívás... Persze a kezdőknek ez mind hihetetlenül nehéz valami... Amióta első nyelvem a mau elkészült, többször is megkerestek wannabe programnyelvírók, hogy ők olyan szuper programnyelvet találtak ki, egyetlen apróságban segítsek csak: hogyan kell kifejezéskiértékelőt írni!
S ekkor én mindig leírom nekik a levélben szépen, rendre, mit meg hogyan... De sose hallottam még hogy sikerült volna bármelyiküknek is. Érdekes, nálam igen. Náluk nem. Nem képesek megérteni a rekurzió lényegét...
Na megint csak fecsegek, alkotás helyett. Megyek kódolni...
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
ami már létrejött azt nem akarom gyökerestől újratervezni.
Bocs, de a meglevőn semmi tervezés nem látszik.
Kitalálsz valamit, megírod. Mellé kitalálsz valamit, azzal kibővíted.
Még koncepció sem látszik (abból, amiket itt naponta leírsz), nemhogy tervezés.
Kódolsz, és kódolsz, és kódolsz, folymatosan, tervezés nélkül.
Mától én is aspergeres vagyok. Kéretik ennek figyelembe vételével olvasni az általam leírtakat.
- A hozzászóláshoz be kell jelentkezni
a szintjehez igazitja a tervezest. ezert van nulla.
- A hozzászóláshoz be kell jelentkezni
Asszem összehoztam a hibakezelést egész pofásra! Akartam is róla blogolni, de épp mindenki nekem esett hogy juj de csúnya bad boy vagyok amiért ennyit blogolok a Furorról, úgyhogy inkább mégse teszem. Lényeg hogy talán nevezhetjük exceptionkezelésnek.
A Furor programon belül kiadhatunk olyan utasítást (a szintaxis részleteibe most nem megyek bele) hogy
set errorhandler
s ekkor ezután bármi hiba van, a beállított Furor függvény hajtódik végre, ami megkapja a hibakódot (vagy nevezzük exception kódnak) is a veremtárban azonnal. E hibakezelő függvény lefutása után meg egy olyan címkére ugrik a vezérlés a hibakezelőt meghívó programban amit szintén a set errorhandlerrel állítottunk be.
Van olyan is hogy
set errorhandler default
ez visszaállít mindent az alapértelmezettre, ami a Furor program indulásakor van. Ekkor minden hibánál a C kódba bedrótozott hibakezelő hajtódik végre. Az nagyjából annyit tesz hogy kiszenved egy hibaüzenetet és abortál.
Az is le van kezelve ha a Furor nyelvű hibakezelőn belül lép fel hiba: egyrészt, a hibakezelőt névterenként lehet beállítani azaz a hibakezelő is beállíthat magának saját hibakezelőt ha akar... de ha nem teszi akkor sincs semmi baj, akkor alapértelmezetten ez a „default” hibakezelő hajtódik végre, azaz nem kerül örökciklusba.
Gyakorlatilag bármi hiba elkapható vele, a segfault kivételével.
A Furor programozó amúgy maga is megadhat saját hibakódokat amivel saját „exceptiont” dob így.
Na de ami megvan csak a csontváz, most végig kell bogarásznom a teljes kódbázist a libeket is beleértve hogy mindenütt ahol hiba léphet fel, azt a részt átírjam erre... Well, ez nagy meló lesz!
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Ez az!
Egy pici lépésnek nem kell rögtön új bélogot nyitni.
Itt hamarosan kitör a világbéke, meglásd.
Mától én is aspergeres vagyok. Kéretik ennek figyelembe vételével olvasni az általam leírtakat.
- A hozzászóláshoz be kell jelentkezni
Az irónia része arra vonatkozott, hogy nem kell belelépni a könyvtárba, csak megkerülöd a shellt ahogy írtad és simán letörlöd. Csak ezen a bolygón az általam feltételezett rendszereken a fájlok törlését a könyvtárak jogosultság beállításai határozzák meg.
Egyébként jópofa, hogy ezzel foglalkozol, de az a hozzászólás jogoultságok+shell nagyon fogalmatlanra sikerült.
Szerintem akkor leszel készen, ha a Furor compilert/interpretert is Furor nyelven írod majd meg.
Üdv
- A hozzászóláshoz be kell jelentkezni
Kapaszkodj meg de igenis szándékomban áll a Furort megírni Furor nyelven... Csak, persze, most még nem annak van itt az ideje, mert még nem teljes. De ez igenis tervbe van véve nálam.
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
Az egész fluor história egy másik idősíkban játszódik, ahol az erre a világra érvényes dolgok nem ugyanúgy működnek.
Mától én is aspergeres vagyok. Kéretik ennek figyelembe vételével olvasni az általam leírtakat.
- A hozzászóláshoz be kell jelentkezni
Jaj, bocs, elfelejtettem, hogy valami LFS tákolmányt használsz. Így előferdülhet, hogy ezek a függvények tényleg azt csinálnak amit akarnak. A kivételkezelés nagyon hiányzik. Rengeteg hiba, nem várt esemény történhet, amit kezelni illene valahogy.
Csak a teszt kedvéért, kipróbálhatnád, hogyan viselkedik egy "dobozos" rendszeren. Hátha egyszer (tényleg annyira megtetszik a népnek, és ellenállhatatlan késztetést éreznek majd, hogy furorban kódolhassanak, így kénytelen lennél engedni a nyomásnak és) közkinccsé tennéd a programot.
Vagy legalább a binárist feltehetnéd (ezt igazából egy furor szkrip végzi majd cron-ból ütemezve) egy ingyenes fájlmegosztóra, hátha tesztelné valaki (én nem vállalom)
- A hozzászóláshoz be kell jelentkezni
"hátha tesztelné valaki (én nem vállalom)"
Más pöcsével a csalánt :Đ
Mától én is aspergeres vagyok. Kéretik ennek figyelembe vételével olvasni az általam leírtakat.
- A hozzászóláshoz be kell jelentkezni
Hát jó, legyen! Ha Zoli barátunk közzéteszi, én bizony kipróbálom! :D
- A hozzászóláshoz be kell jelentkezni
Akadtak már akik kérték tőlem a binárist, és el is küldtem nekik. Ha írsz privit, te is megkaphatod, annak semmi akadálya.
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni
ide küldheted: falu kukac gmx pont us
- A hozzászóláshoz be kell jelentkezni
Elküldtem csatolva a gmailen át. Nézd meg lécci nem ment-e a spam mappába. Ügyelj rá kérlek, hogy mielőtt elindítanád, olvas el a csomagban levő doksi (odt fájl) legalább azon fejezetét ami a telepítésről szól. De ide is másolom a lényeget:
A letöltött bináris csomagot csomagoljuk ki egy nekünk tetsző könyvtárba. (Mondjuk célszerű ha a könyvtár neve Furor...). Ezután csináljunk egy symlinket a gyökérkönyvtárba aminek neve
Furorlib
és ami az imént létrehozott könyvtárunk
libraries
könyvtárára mutat. Az én esetemben például a Furor könyvtár a saját $HOME könyvtáramban van aminek pathja
/home/vz
eképp a Furorlib symlink ide mutat:
/home/vz/Furor/libraries
Elvileg ennyi az egész...
Mindez azért kell mert hogy meg tudja találni magának a megfelelő libeket amiket be kell töltenie. Nem vagyok hülye, tudom hogy ennek nem ez a „hivatalos” módja Linux környezetben, de anélkül akartam megoldani hogy belepiszkáljunk a telepített Linux rendszer fontos könyvtáraiba meg útvonalaiba stb, tekintve hogy ez még csak egy KÍSÉRLETI program. Nyilván ha a Furor végleges lesz, ez nem lesz szükséges.
Ha ezzel megvagy, kipróbálhatod így:
./furor verify.furor
s erre lefuttatja az unit teszteket.
Obsessed commandline-maniac.
- A hozzászóláshoz be kell jelentkezni

