Yazoo jest z linii poleceń, interpretowany język skryptowy, który dostarcza gotowe środowisko do C lub C ++ funkcji. & Nbsp; użytkownika osadza swoje własne procedury na język przez odwołanie się do nich w jednym z własnych plików źródłowych Yazoo, a następnie rekompilacji Yazoo. Gdy Yazoo jest prowadzony, to przyniesie wiersz polecenia, gdzie użytkownik może zdefiniować i manipulowania zmienne, tablice, funkcje skryptowe, odczytu i zapisu plików, itp - i nazwać jego wbudowanych funkcji. Ponieważ są wykorzystywane tylko standardowych bibliotek C, Yazoo powinien działać na każdej platformie.
Yazoo skryptów jest minimalistyczny romans: klasy, zbiory, funkcje, argumenty funkcji, itp są tym samym. Prostota tego systemu ułatwia proces uczenia. Ale to też kupuje językowi dużo ogólności - Yazoo pozwala wiele egzotycznych konstrukcje programistyczne, które są rzadkie w języku skryptowym, ale okazały się nadzwyczaj użyteczne w rękach autora.
Yazoo pobrania składa się z: C / C ++ pliki źródłowe; Makefile; zasadnicze ".zoo" skrypty; i dokumentacji
Co nowego w tym wydaniu:.
- błędy:
- Problemy definiujące członków proxy podczas zmiany rozmiaru tablicy; na przykład. proxy_array [+1] @ :: {}
- "powrót q" działa teraz, gdy "q" jest nieważne,
- Problem gdzie duże liczby całkowite bez znaku będzie drukować jako "0",
- go () może utknąć w środku elementów tablicy
- read_string () (i ReadTable ()) nie może odczytać znaki plus z wykładników (np 1e + 1)
- Problemy z czytaniem i pisaniem numery pobliżu granicy niedopełnienia podwójnej precyzji,
- Problem z ReadTable (), gdy próbuje zmienić rozmiar listy
- Problem z ReadTable (), gdy tabela dwuwymiarowa ma tylko jeden element
- Problem z wykorzystaniem SaveTable () z tabelami wartości null
- copy () Błąd przy pierwszym argumentem było prymitywne i drugi argument był kompozyt,
- Problem z podróży (), który wkradł się w przypadku, gdy operator # wprowadzono
- sporadyczne zawieszanie przy start.zoo próbował flagą błąd
- komunikat ostrzegawczy w niektórych kompilatorów (extrnl.c)
- SaveTable () teraz pilnuje de-alias tabel, jeśli to się nazywa nieprawidłowo
- błąd w SaveTable (), gdy przeszedł zakaz kompozytowe "tabeli"
- Błąd oznaczony w niewłaściwym miejscu,
- niezręcznie banderą błąd podczas Kalkulator próbował wydrukować własny odwołanie obiektu
- Usprawnienia:
- usunąć "to". Przedrostek przy definiowaniu zmiennych. Będzie to powodować problemy w procedurach, które definiują zmienne o tej samej nazwie, jak zmienne globalne!
- =b działa teraz, gdy b jest nieważna. Oznacza to, że "pułapka (x)" nie jest już sposobem wykrywania pustych członków; używać "jeśli x ==nothing" zamiast.
- dodał "niedopełnienie" kod ostrzegawczy, czas pracy,
- dodany kota (), aby user.zoo
- dodany save (), która próbuje wszystkie ścieżki katalogów (to jest analogiczne do ładowania ())
- SaveTable () teraz próbuje wszystkich ścieżek katalogów
- dodany ls () zmienne wyświetlającą się w bieżącym katalogu,
- dodany compile_and_do_in (), aby user.zoo
- dodany round (), która działa do najbliższej liczby całkowitej,
- przyspieszyło zmiany rozmiaru tabel przy użyciu ReadTable ()
Co nowego w wersji 1.4:
- błędy:
- poprawiła run () jest wielkość liter obsługa nazw plików, kiedy run.CleanUp jest
- true
- błędny komunikat o błędzie podczas zamykania lub powrocie z user.zoo
- błędy w ReadTable () obejmujące zmiany rozmiaru tabel
- problemy z komunikatów o błędach z ReadTable ()
- Usprawnienia:
- dodany # operatora zastąpić RunCode (), RunConstructor ()
- dodanej ";" jako alternatywny symbol "kodu",
- Kalkulator domyślnie 'na'
- dodać małe litery () / wielkie litery () funkcje user.zoo
- dodaje kody błędów do ReadTable ()
Co nowego w wersji 1.3.1:
- poprawka do dawna błąd, który czasami rozbił się podczas korzystania z programu odejść ().
- Nowa funkcja automatycznego czyszczenia z run (), wprowadzono również w ostatnim delegowania, został konieczności unreproducible problemy i możliwe jest, że ten bug-fix zajmuje się, że zbyt.
- Dwa ulepszenia znacznie zwiększyć kalkulatora: 1) jego stosowanie sprintu () zamiast print (), oraz 2) wprowadzenie zmiennej takie, że często w środowiskach naukowych znajduje programowania Za "ANS".
Co nowego w wersji 1.3.0.1:
- Fixed błąd.
Co nowego w wersji 1.3:
- błędy:
- potencjalnie śmiertelne problem lekceważąc znak null na końcu start.zoo lub inny skrypt począwszy
- load () i save () zostały niedbale w trybie ASCII, a nie binarny, który spowodował problemy na komputerach,
- dwa kolejne wycieki pamięci i jeden błąd odsyłania (potencjał 3rd mem. Przeciek)
- kalkulator nie działa w wersji poprzedniej,
- wiele błędów z udziałem [^ ..], [+ ..] + [..], =! lub wywołania funkcji z lewej zdefiniować / utożsamiają-w / etc. Operator
- problemy, gdzie [+ ..] / + [..] operatorzy dołączyć do ukrytych członków
- wypadków z udziałem size-0 tablice proxy
- Problemy w / w rejestrach druku Kalkulator (maskowane przez wcześniejszego obl. Problemu, ale ten problem w poprzednich wersjach, jak również),
- problem, który spowodował powolną zmianę rozmiaru dużych tablic,
- rozbierać () drukowane błędne nazwy zmiennych na maszynach 64-bitowych,
- resize () pozwala teraz nieważne ostatni argument
- niewygodne zdemontowany błąd podczas rodzaje & quot użytkowników; powrócić my_array [a, b] & quot; z wiersza polecenia,
- Crash wiersza poleceń po powrocie wiele indeksów tablicy
- Problem słabnącym błędy na linii rozpoczynających | ** | -Style komentarze
- rozbierać () rozbił się przy podawaniu działające skrypty NULL
- Usprawnienia:
- skonfigurowany Yazoo więc może być osadzony w / wywoływana przez kod C; także rekursywnie od wewnątrz Yazoo
- na ponowne uruchomienie skryptu, uruchom () Pierwszy usuwa członków jest zdefiniowane po raz ostatni: nie więcej pułapka (usuń ..) potrzebne
- dodany przejdź () / pwd zmiany / oglądania zmienna robocza wierszu polecenia w
- dodany operatorów porównania referencyjny: "== @ 'i' / = @"
- dodał operatora proxy zdefiniować: "# ::"
- wykonane load () szybsze i bardziej wydajne pamięci
- struny print " D n" jako jeden koniec-linii
- run () może zwrócić wynik instrukcji return skrypt w
- dodaje suma (), średnia () funkcje user.zoo
- dodaje char (), C_string () funkcje user.zoo
- transformacji () pozwala obecnie użytkownikowi dostosować ścieżkę przeszukiwania kodu przekształconej
- throw () może dostosować położenie rzucony błędu i rzucać ostrzeżenia oraz
- run () pozwoli ostrzeżenia w skrypcie do stawienia się w linii poleceń (zakładając brak odstępie pułapkę () po ostrzeżeniu)
- rozbierać () można pominąć skompilowanego kodu bajtowego wyrażenia w
- zastąpiony RunHobbish () z bardziej funkcjonalnych do_in () rutyny w user.zoo
- dodany RunCode () w user.zoo; RunConstructor () jest obecnie szczególnym przypadkiem tego rutynowego
- konsekwentnie czytania kodu bajtowego jak slongs
- teraz prawidłowo z wykorzystaniem wskaźnika NULL zamiast 0 w kodzie C
- ulepszone niektóre komunikaty o błędach,
- Różne:
- zmienił słowa kodu bajtowego dla operatorów tablica-integracyjnych ([+ ..] + [..]) i usuń
- wyeliminowane CheckType () z user.zoo - & quot; pułapka (=b) & quot; jest zwykle lepsze
- wyeliminowane istnieje () z user.zoo - & quot; istnieje (& quot; A & quot;) & quot; był w dużej mierze pokrywać z & quot; pułapka () & quot;
Co nowego w wersji 1.2:
- 1.2 wersja Yazoo właśnie została wydana przed terminem po liczba śmiertelnych błędów na maszynach 64-bitowych wyszła na jaw w zeszłym tygodniu. Yazoo jest wiersza polecenia interpretować język skryptowy, który użytkownik ma na celu dostosowanie osadzając swoje C lub C ++ procedury na język. Nowością jest skrypt Yazoo sposób, że zasady za jego składni konserwatywnym wyglądzie można ekstrapolować do produkcji wielu rzadkich i użytecznych konstrukcji skryptów, które autor nie spotykane w innych językach.
- naprawdę krytyczna zmiana w obecnej wersji było usunięcie tych założeń o całkowitych rozmiarach, które spowodowały natychmiastowe awarii. To wymagało innej znaczącej korekty: rejestr R_ulong upadł z niepodpisane do podpisał, i tak przemianowano R_slong. Zmiana nazwy w zasadzie może spowodować problemy ze zgodnością, choć na szczęście rzadko rejestr liczbą całkowitą należy powoływać się wyraźnie. Wreszcie, w odniesieniu do czegoś nieciekawą większości użytkowników, ale czasochłonne autora, C / C ++ pliki źródłowe zostały poddane stylistyczne aktualizacji:. Zostali (wreszcie) skomentował, a ich formatowanie została poprawiona,
- Ponieważ ten czerwony na twarzy autor kodowany trochę odpowiedzieć z aktualnego wydania, to jest możliwe, że 64-bitowe błędy czają się jeszcze w kodzie. Jeśli tak jest, to inna, zmieniona wersja będzie prawdopodobnie nadejdą w bardzo niewielu dni, jako autor używa swojego programu chciwie.
Co nowego w wersji 1.1:
- błędy:
- nieprawidłowo oflagowane wiadomości o błędach w prawie każdym skrypcie z inlined stałych
- Operator append-kod ":" nie działa poprawnie w niektórych sytuacjach, np w operatora kodu zastępczego
- zmuszony-utożsamiać nie kopiowanie elementów tablicy w odpowiedniej kolejności, gdy wiele indeksy miały wyraźnie (np [*]! = ... ... = B [1, 2])
- problemy numeryczne podczas drukowania numerów na skraju rozdzielczości podwójnej precyzji,
- nieprawidłowo komunikaty o błędach, banderą, endf następujące endif lub endw
- błędne nazwy członkowskie w błędów członkowskich-not-found z plików, które są prowadzone user.zoo
- Pierwsza liczba zwracanych przez random () nie był całkowicie losowy,
- copy () nie sprawdzić samorządu odniesienia
- błąd w SaveTable (), gdy drugi wymiar tabeli został przesiany do zera
- sort () rzucił niepotrzebne błąd na długości 0 list
- błędne odczytywanie komentarz zerowej "| *** | 'z nieparzystej liczby' * 's
- Usprawnienia:
- ścieżki poszukiwania nowych {} definicji teraz zawsze przejść przez skrypt, który go zdefiniowała, niekoniecznie skrypt zakrywające ***
- dodany resize (), aby user.zoo
- dodany min (), max () funkcje user.zoo
- sort () teraz sortuje listy, a także stoły,
- new () przyjmuje różne zmienne źródłowe typu i danych
- copy () zwraca kod błędu,
- lepszym argumentem sprawdzanie SaveTable ()
Komentarze nie znaleziono