Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Zgodność i bezpieczne wydanie

ADVANCED40 min
Postęp nauki 0 / 3
Zaloguj się na konto użytkownika, aby zachować postęp.

Czego się nauczysz

  • Prześledź źródła i wyjaśnij opisany kontrakt.
  • Przeanalizuj CoreCompatibility. Oddziel poprawność manifestu, zgodność wersji i decyzję hosta; wskaż dowód dla każdego z tych trzech etapów.
Wymagania wstępne
  • Ukończ Podstawy i wcześniejszy poziom tej ścieżki.

Wyjaśnienie krok po kroku

Zestaw minimum Core/API z wersją rzeczywistego hosta. check ocenia projekt według SDK, lecz nie potwierdza polityki instalacji w Core. Nie obniżaj deklarowanej wersji, aby ominąć odmowę: przeczytaj raport zgodności i zmień środowisko testu.

Praca z kodem źródłowym

Ten sam manifest w SDK i w Kret Engine (Core)

Pełniejszy manifest z sekcjami `environment`, `recovery`, `dependencies`, `runtimeData` i wszystkimi dziewięcioma operacjami cyklu życia. Ten sam projekt jest sprawdzany parserem SDK (`kret check`) i walidatorem referencyjnym Core (`KretCore.Test.exe check`), który dodaje reguły układu hosta (`Disk/`, mapa KretM, jedna generacja manifestu).

module Main

// Każda operacja cyklu życia to funkcja KretS bez parametrów.
fn Install() {
}
fn Start() {
    log.info("start")
}
fn Suspend() {
}
fn Resume() {
}
fn Update() {
}
fn Repair() {
}
fn Healthcheck() -> Bool {
    return true
}
fn Shutdown() {
}
fn Uninstall() {
}

Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. module MainDeklaracja modułu KretS; porównaj nazwę z nazwą pliku.
  2. Pusta linia oddziela fragmenty źródła.
  3. // Każda operacja cyklu życia to funkcja KretS bez parametrów.Komentarz autora; nie jest wykonywany.
  4. fn Install() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  5. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  6. fn Start() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  7. log.info("start")Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  9. fn Suspend() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  10. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  11. fn Resume() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  12. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  13. fn Update() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  14. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  15. fn Repair() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  16. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  17. fn Healthcheck() -> Bool {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  18. return trueZwrócenie wartości z funkcji; nie jest zapisem do dziennika.
  19. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  20. fn Shutdown() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  21. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  22. fn Uninstall() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  23. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. Pusta linia oddziela fragmenty źródła.

Oczekiwany wynik: Oba narzędzia akceptują projekt (kod wyjścia 0). Core dodatkowo raportuje generację manifestu i wynik SDK.

Typowy błąd: Kod KretS w `Disk/` — SDK może go przyjąć, ale Core odrzuci projekt (`disk_reserved`): `Disk/` jest zastrzeżony dla danych KretDB.

Instrukcja, wersje i zapisane wyniki →

Materiały źródłowe do tego tematu

Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.

KretL — zgodność i wersje / compatibility and versions

KretL — zgodność i wersje / compatibility and versions

Polski

  • KretL 1.0 = manifestVersion "1.0"; zmiana znaczenia → nowy manifestVersion (np. "2.0").
  • Poprawka parsera (PATCH) musi przejść korpus i aktualizuje sumę parsera w kontrakcie; kandydat rc.3+kret.local.3 ma nową sumę (oczekiwane, G-02), zachowanie 21/21.
  • Generacja 0.4.x (KretL/Main.kret) — LEGACY_COMPATIBILITY: tylko walidacja i kret import-legacy.
  • MINOR w KretL 1.0 wyłącznie w metadata.
Otwórz cały rozdział ze źródłem →
KretL — kody diagnostyczne / diagnostic codes

KretL — kody diagnostyczne / diagnostic codes

Kod / codePolski
KCS-KRL-0190platformSupport rozpoznane, nieinterpretowane (informacja)
KCS-KRL-0191nieznana wartość izolacji (ostrzeżenie)
KCS-KRL-0202nieznane pole (tryb ścisły)
KCS-KRL-0204zła albo brakująca wartość (np. brak shutdown, timeout 5parsecs, id rodziny KLIB)
KCS-KRL-0206uprawnienie spoza katalogu KCS
KCS-KRL-0301handler cyklu życia nie istnieje w KretS
KCS-KRL-0302operacja hosta w kodzie bez zadeklarowanego uprawnienia
KCS-KRL-0303handler zwraca niedozwolony typ
disk_reserved / mapping_required / ambiguous_generationreguły układu hosta Core (nie składnia KretL)

Format: kret-diagnostics/1 (kod, plik, wiersz, kolumna, zakres) / (code, file, line, column, range).

Otwórz cały rozdział ze źródłem →
KretL — bezpieczeństwo / security

KretL — bezpieczeństwo / security

Polski

  • Deklaracja uprawnienia niczego nie przyznaje (KCS-PERM-3).
  • Status FROZEN_1_0 nie nadaje uprawnień KCS ani prawa do Production.
  • Host może podnieść izolację, nigdy jej nie obniża; limity są obcinane do sufitów profilu.
  • Uprawnienia PROVISIONAL (np. kretdb.*, logs.own.write, sensory) są w Core blokowane do decyzji D-KCS-01.
Otwórz cały rozdział ze źródłem →
KretL — rozwiązywanie problemów / troubleshooting

KretL — rozwiązywanie problemów / troubleshooting

Problem (PL)Rozwiązanie (PL)
KCS-KRL-0202 przy polu, które „powinno działać”sprawdź listę pól w specyfikacji; dowolne pola tylko w metadata { }
KCS-KRL-0302 po dodaniu log.infododaj logs.own.write do permissions.required
Core odrzuca projekt, SDK akceptujereguły układu hosta: kod w Disk/, własne foldery bez mapy KretM, dwa manifesty różnych generacji
Plugin instaluje się, ale nie startuje w Coreuprawnienie PROVISIONAL zablokowane przez D-KCS-01 (plugin permissions <ID>)
Otwórz cały rozdział ze źródłem →
KretL — samouczek ADVANCED

KretL — samouczek ADVANCED

Status 1.0: `FROZEN_1_0` — pełny zakres 1.0, stabilny kontrakt, testy zgodności. Gramatyka/wersja: kretl-1.0. Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.

Cel: integracja z Core i innymi językami, KretDB, bezpieczny dostęp do API, pluginy, stan, testy, diagnostyka, uprawnienia.

Narzędzia: kret = <SDK>\Compiler\kret.exe (SDK 1.0.0-rc.3+kret.local.3), kretui-host = <SDK>\UiHost\kretui-host.exe. {DATA}/{OUT} = nowe, puste katalogi.

1. Ten sam manifest w SDK i w Kret Engine (Core) (KRETL-A01-CoreCompatibility)

Projekt: ../../Examples/ADVANCED_CoreCompatibility/ · klasyfikacja VALIDATION_ONLY · Playground LOCAL_VALIDATE

Kroki (katalog roboczy: katalog przykładu):

  1. kret check . --json — w wyniku: "succeeded": true
  2. core check {PROJECT}

Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.

Otwórz cały rozdział ze źródłem →

Ćwiczenie i sprawdzenie wiedzy

Przeanalizuj CoreCompatibility. Oddziel poprawność manifestu, zgodność wersji i decyzję hosta; wskaż dowód dla każdego z tych trzech etapów.

Szkic nie jest wysyłany na serwer i znika po opuszczeniu lekcji. Przed wyjściem możesz go skopiować.
Podpowiedzi
  • KretL opisuje plugin: tożsamość, zgodność z Core i API, uprawnienia (deklaracje), cykl życia, tryb wykonania, limity, izolację, obszary danych, zależności i komendy hosta. Nie zawiera logiki. Jedyny manifest bieżącej generacji to `plugin.kretl` w katalogu głównym projektu.
  • Odczytaj ograniczenia i oczekiwane błędy z dostarczonego samouczka; check i run są oddzielnymi krokami.
Omówienie rozwiązania

Odpowiedź oprzyj na pokazanym kodzie i rozdziale źródłowym. Zestaw minimum Core/API z wersją rzeczywistego hosta. check ocenia projekt według SDK, lecz nie potwierdza polityki instalacji w Core. Nie obniżaj deklarowanej wersji, aby ominąć odmowę: przeczytaj raport zgodności i zmień środowisko testu.

Które podsumowanie jest zgodne z lekcją?

To quiz o opisanym kontrakcie. Nie kompiluje kodu, nie potwierdza wykonania programu i nie przyznaje nagród.

Podsumowanie i następny krok

Zestaw minimum Core/API z wersją rzeczywistego hosta. check ocenia projekt według SDK, lecz nie potwierdza polityki instalacji w Core. Nie obniżaj deklarowanej wersji, aby ominąć odmowę: przeczytaj raport zgodności i zmień środowisko testu.

Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności