Yazoo är ett kommandoradsverktyg, tolkat skriptspråk som ger en färdig miljö för C eller C ++ funktioner. & Nbsp; En användare bäddar sina egna rutiner in i språket genom att referera dem i en av Yazoo egna källfiler, sedan kompilera Yazoo. När Yazoo körs, kommer det att få upp en kommandotolk där användaren kan definiera och manipulera variabler, arrayer, manus funktioner, läsa och skriva filer, etc. - och, ring hans inbäddade funktioner. Eftersom endast biblioteken standard C används bör Yazoo arbeta på nästan alla plattformar.
Yazoo scripting är en minimalistisk affär: klasser, uppsättningar, funktioner, funktionsargument, etc. är alla samma sak. Enkelheten i detta system underlättar inlärningskurvan. Men det köper också språket mycket allmän - Yazoo tillåter många exotiska programmering konstruktioner som är sällsynta i ett skriptspråk, men har visat sig vara synnerligen användbar i författarens händer.
Den Yazoo nedladdningen består av: C / C ++ källfiler; en Makefile; väsentliga ".zoo" scripts; och dokumentation
Vad är nytt i den här versionen:.
- Buggar fast:
- problem definierar proxy medlemmar medan du ändrar storlek kedjan; t.ex. proxy_array [1] @ :: {}
- "retur q" fungerar nu när "q" är ogiltig
- ett problem där stora heltal utan tecken skulle skrivas ut som "0"
- go () skulle kunna fastna arrayelement
- read_string () (och ReadTable ()) kunde inte läsa exponenter med plustecken (t.ex. 1e + 1)
- problem med att läsa och skriva tal nära den dubbel precision bottgräns
- problem med ReadTable () när man försöker ändra storlek listor
- problem med ReadTable () när en tvådimensionell tabell har bara ett enda element
- ett problem med hjälp SaveTable () med null tabeller
- en kopia () kraschar när det första argumentet var primitiva och det andra argumentet var komposit
- problem med go () som smugit sig in när # operatören infördes
- tillfällig krasch när start.zoo försökte flagga ett fel
- ett varningsmeddelande under vissa kompilatorer (extrnl.c)
- SaveTable () gör nu säker på att de-alias bord om det kallas felaktigt
- ett fel i SaveTable () när den löper en icke-komposit "bord"
- ett fel flaggas på fel plats
- en tafatt-flaggade fel när räknaren försökte skriva ut en självrefererande objekt
- Förbättringar:
- bort "detta." prefix när man definierar variabler. Detta kommer att orsaka problem i försök som definierar variabler med samma namn som globala variabler!
- a =b fungerar nu när b är ogiltig. Det innebär att "fälla (x)" är inte längre sätt att upptäcka ogiltiga medlemmar; använda "om x ==nothing" istället.
- lagt till en "underflöde" runtime varningskoden
- lagt cat () för att user.zoo
- tillade Spara (), som försöker alla katalog vägar (det är analogt med Load ())
- SaveTable () försöker nu alla katalogvägar
- lagt ls () som skriver ut variabler i aktuell katalog
- lagt compile_and_do_in () för att user.zoo
- lagt rundan () som arbetar för att närmaste heltal
- påskyndas storleksändring av tabeller med hjälp ReadTable ()
Vad är nytt i version 1.4:
- Buggar fast:
- förbättrad run () 's skiftlägeskänsliga hantering av filnamn när run.CleanUp ställs
- true
- felaktiga felmeddelande när programmet avslutas eller återvänder från user.zoo
- buggar i ReadTable () involverar storleksändring av tabeller
- problem i felmeddelanden från ReadTable ()
- Förbättringar:
- lagt # operatören att ersätta RunCode (), RunConstructor ()
- tillade ';' som en alternativ symbol för "code"
- kalkylator som standard "på"
- Lägg gemener () / versaler () funktioner för att user.zoo
- läggs felkoder till ReadTable ()
Vad är nytt i version 1.3.1:
- En fix till en långvarig bugg som ibland kraschade programmet när du använder go ().
- Den nya auto cleanup inslag i run (), införs även i den sista inlägg, har haft unreproducible problem och det är möjligt att denna bugg-fix tar hand om det också.
- Två förbättringar avsevärt öka räknaren: 1) dess användning av sprint () i stället för utskrift (), och 2) att införa en "ans" variabel som man ofta finner i vetenskapliga-programmering miljöer .
Vad är nytt i version 1.3.0.1:
- Fixed en bugg.
Vad är nytt i version 1.3:
- Buggar fast:
- en potentiellt dödlig problem med att försumma den noll tecknet i slutet av start.zoo eller annat utgångs skript
- last () och spara () var slarvigt använder ASCII-läge i stället för binär, vilket orsakade problem på datorer
- två ytterligare minnesläckor och en hänvisningar fel (potentiell 3rd mem läcka.)
- räknaren fungerade inte i den tidigare versionen
- flera buggar som involverar [^ ..], [+ ..], + [..], =! eller funktionsanrop till vänster om en definiera / likställa-at / etc. operatör
- problem där [+ ..] / + [..] operatörerna skulle lägga till dolda medlemmar
- krascher involverar storlek-0 proxy arrayer
- problem w / register de kalkylator utskrift (maskeras av tidigare calc. Problem, men detta problem i tidigare versioner också)
- ett problem som orsakade långsam storleksändring av stora matriser
- isär () tryckt fel variabelnamn på 64-bitars maskiner
- ändra storlek () tillåter nu ett tomrum sista argument
- en besvärlig demonterad fel när användaren skriver & quot; tillbaka my_array [a, b] & quot; från kommandotolken
- kommandotolken krasch efter återkom flera index i en matris
- ett problem flaggning fel på rader som börjar med | ** | -stil kommentarer
- isär () kraschade när det ges null manus
- Förbättringar:
- konfigurerad Yazoo så det kan bäddas in / åberopas av C-kod; också köra rekursivt inifrån Yazoo
- vid att köra verktyget ett manus, kör () först raderar medlemmarna det definierade förra gången: inga fler fälla (ta bort ..) behövs
- lagt go () / lösenord för att ändra / visning kommandoprompten arbetsyta variabel
- lagt referens jämförelseoperatorer: "== @" och "/ = @ '
- lagt en proxy-definiera operatör: "# ::"
- gjord last () snabbare och mer minneseffektiv
- strängar print " D n" som en enda end-of-line
- run () kan returnera resultatet av ett skript avkastning uttalande
- lagt summa (), menar () funktioner för att user.zoo
- lagt char (), C_string () funktioner för att user.zoo
- omvandla () tillåter nu att användaren kan skräddarsy sökvägen av transformerad koden
- kast () kan skräddarsy placeringen av kastat felet och kasta varningar samt
- run () kommer att möjliggöra varningar i skriptet ska visas på kommandoraden (förutsatt att inga mellanliggande fälla () efter varningen)
- isär () kan hoppa över uttryck i samman bytekod
- ersatt RunHobbish () med en mer funktionell do_in () rutin i user.zoo
- tillade RunCode () i user.zoo; RunConstructor () är nu ett specialfall av denna rutin
- konsekvent läsning bytekod som slongs
- nu på rätt sätt med NULL-pekare i stället 0 i C-kod
- förbättrade vissa felmeddelanden
- Övrigt:
- förändrat bytekod ord för array-insättnings operatörer ([+ ..], + [..]) och ta bort
- elimineras CheckType () från user.zoo - & quot; fälla (a =b) & quot; är oftast bättre
- elimineras existerar () från user.zoo - & quot; existerar (& quot; en & quot;) & quot; var i stort sett överflödig med & quot; fälla (a) & quot;
Vad är nytt i version 1.2:
- 1,2-versionen av Yazoo har just levererats prematur efter ett antal allvarliga fel på 64-bitars maskiner uppdagades förra veckan. Yazoo är ett kommandoradsverktyg tolkat skriptspråk, som användaren är tänkt att skräddarsy genom att bädda sina egna C eller C ++ rutiner till språket. Det nya i Yazoo manus är det sätt som kan extrapoleras reglerna bakom sin konservativa proffsiga syntax för att producera många sällsynta och användbara skript konstruktioner, som författaren inte har stött på andra språk.
- Den riktigt kritiska förändring i den nuvarande versionen var att avskaffa sådana antaganden om heltal storlekar som orsakade omedelbara krascher. Detta har föran annan betydande justering: registret R_ulong har gått från osignerad till undertecknad, och så döptes R_slong. Den döpa kan i princip orsaka problem bakåtkompatibilitets, även lyckligtvis heltal registret behöver sällan explicit åberopas. När det slutligen gäller något ointressant för de flesta användare, men tidskrävande för författaren, C / C ++ källfiler har genomgått stilistisk förnyelse:. De har varit (äntligen) kommenterade, och deras formatering har förbättrats
- Eftersom detta rödbrusig författaren scrambled lite att posta den aktuella versionen, är det möjligt att 64-bitars buggar lurar ännu i koden. Om det är så, sedan en annan, ändrad version kommer sannolikt att vara tillmötesgående i mycket få dagar, som författaren använder hans program glupskt.
Vad är nytt i version 1.1:
- Buggar fast:
- felaktigt-flaggade felmeddelanden i nästan alla manus med infogade konstanter
- för append-koden aktör ":" fungerade inte korrekt i vissa sammanhang, t.ex. inom en operatörs code-substitution
- tvångs Equate inte kopiera arrayelement i rätt ordning när flera index gavs explicit (t.ex. [*] =! ..., ... = B [1, 2])
- numeriska frågor vid utskrift siffror vid kanten av dubbel precision upplösning
- felaktigt-flaggade felmeddelanden efter endif, endf eller endw
- fel medlemmars namn i medlems-not-found fel från filer drivs av user.zoo
- det första numret som returneras av slumpmässig () var inte helt slumpmässig
- copy () inte kontrollera för självreferenser
- ett fel i SaveTable () när den andra dimensionen av en tabell var dimensionerad för att noll
- sort () kastade en onödig felet för längden-0 listor
- felläsning av noll kommentaren "| *** |" med ett udda antal '*' s
- Förbättringar:
- sökvägar nya {} definitioner nu alltid gå igenom manus som definierade det, inte nödvändigtvis den omslutande manus ***
- lagt resize () för att user.zoo
- lagt min (), max () funktioner för att user.zoo
- sort () numera sorterar listor samt tabeller
- ny () accepterar olika källvariabler för typ och data li>
- copy () returnerar en felkod
- bättre argument kontroll för SaveTable ()
Kommentarer hittades inte