Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Biblioteka offline z plikiem blokady

BASICRUNNABLE_LOCALKretLib

Szablon SDK `library`: projekt wymaga `mathx` (zakres `>=1.2.0 <2.0.0`), która zależy od `textutil`. Źródłem jest katalog `vendor`, polityka `offline true` i wydawca `local`. `kret lib restore` rozstrzyga wersje i instaluje do `Libs/` (skróty SHA-256 w `project.klibs.lock`), `kret lib list` pokazuje stan. Kod biblioteki działa z uprawnieniami pluginu — biblioteka niczego nie deklaruje.

Edycja i zapisane wyniki

Witryna nie wykonuje kodu ani nie prowadzi walidacji SDK. Wyniki poniżej pochodzą z eksportu określonej wersji i przestają opisywać kod po jego zmianie.

Pobierz źródła JSON

Format tego przykładu nie jest obsługiwany przez edytor Playground. Źródła i instrukcje pozostają dostępne.

Kanoniczne pliki projektu

module Main

// Projekt wymaga biblioteki mathx; textutil przychodzi jako jej zależność i nie jest tu używana bezpośrednio.
fn Start() -> String {
    let values = [4, 8, 15, 16, 23, 42]
    let text = MathX.describe(values)
    log.info(text)
    return text
}

fn Shutdown() {
}
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. // Projekt wymaga biblioteki mathx; textutil przychodzi jako jej zależność i nie jest tu używana bezpośrednio.Komentarz autora; nie jest wykonywany.
  4. fn Start() -> String {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  5. let values = [4, 8, 15, 16, 23, 42]Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.
  6. let text = MathX.describe(values)Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.
  7. log.info(text)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. return textZwrócenie wartości z funkcji; nie jest zapisem do dziennika.
  9. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  10. Pusta linia oddziela fragmenty źródła.
  11. fn Shutdown() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  12. }Zamknięcie struktury otwartej we wcześniejszych liniach.

Wynik i typowy błąd

`list` pokazuje `mathx 1.2.0` i `textutil`; `run` zwraca opis statystyk złożony przez bibliotekę.

Na co uważać

Użycie w projekcie modułu zależności pośredniej (`TextUtil`) — projekt widzi tylko moduły bibliotek, których sam wymaga.

Wymagania wersji i procedura lokalna

sdk
1.0.0-rc.3+kret.local.3
sdkInfoReports
1.0.0-rc.3
core
1.0.0-test.6.11-draft.1
os
Windows 11 x64
dotnet
.NET 10 runtime

Polecenia poniżej są instrukcją do samodzielnego wykonania z właściwym lokalnym SDK. DATA/OUT muszą wskazywać nowe katalogi testowe. Nie ma przycisku uruchamiania na serwerze.

  1. restorekret lib restore .Katalog: project · Oczekiwany kod wyjścia: 0
  2. listkret lib list .Katalog: project · Oczekiwany kod wyjścia: 0
  3. runkret run . --policy host-policy.json --data {DATA}Katalog: project · Oczekiwany kod wyjścia: 0

Wyniki zapisane w pakiecie źródłowym

To dowód z eksportu, nie wynik bieżącego wykonania w przeglądarce.

# EXPECTED_OUTPUT — KRETLIB-B01-OfflineLibrary
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:33Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.
# Actual output of the run. Paths replaced by placeholders.

### 1. restore  (exit 0, PASS)
> kret lib restore .
zainstalowano 2 bibliotek w <project>\Libs

### 2. list  (exit 0, PASS)
> kret lib list .
mathx 1.2.0 (local) b25c08789f00feaa… ← local:vendor
textutil 1.1.0 (local) 262d5951a1deca88… ← local:vendor
blokada aktualna

### 3. run  (exit 0, PASS)
> kret run . --policy host-policy.json --data {DATA}
{
  "broker": {
    "pid": 11224,
    "startupMs": 40.2433,
    "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
    "allowProvisionalRisk": true,
    "memoryIdle": {
      "managedBytes": 1193368,
      "allocatedBytes": 1190728,
      "workingSetBytes": 32501760,
      "privateBytes": 10108928,
      "peakWorkingSetBytes": 32501760,
      "cpuMs": 93.75
    }
  },
  "brokerWithPlugins": {
    "memory": {
      "managedBytes": 1550048,
      "allocatedBytes": 1546880,
      "workingSetBytes": 38993920,
      "privateBytes": 13860864,
      "peakWorkingSetBytes": 39018496,
      "cpuMs": 171.875
    }
  },
  "plugins": [
    {
      "package": "<project>\\Build",
      "admitted": true,
      "startMs": 146.1355,
      "subject": "LOCAL-KPL-LBB2MTHX",
      "instance": "01a19725-b5c5-7cdd-bb44-dba5c7b656d6",
      "pid": 11860,
      "jobObject": true,
      "isolation": {
        "level": "Restricted",
        "restrictedToken": true,
        "lowIntegrity": true,
        "appContainer": false
      },
      "limits": {
        "profile": "standard",
        "scriptMemoryBytes": 67108864,
        "processMemoryBytes": 201326592,
        "cpuPercent": 25,
        "maxInstructions": 50000000,
        "clamped": []
      },
      "calls": [
        {
          "operation": "start",
          "ok": true,
          "status": "Completed",
          "type": "String",
          "value": "[4, 8, 15, 16, 23, 42] suma=108 max=42",
          "brokerMs": 16.8948,
          "vmMs": 13.1288,
          "instructions": 576,
          "hostCalls": 1,
          "pluginReportedMemory": {
            "managedBytes": 791648,
            "allocatedBytes": 789440,
            "workingSetBytes": 32346112,
            "privateBytes": 11169792,
            "peakWorkingSetBytes": 32587776,
            "cpuMs": 78.125
          }
        },
        {
          "operation": "shutdown",
          "ok": true,
          "status": "Completed",
          "type": "Unit",
          "value": null,
          "brokerMs": 0.5825,
          "vmMs": 0.0013,
          "instructions": 1,
          "hostCalls": 0,
          "pluginReportedMemory": {
            "managedBytes": 805456,
            "allocatedBytes": 803200,
            "workingSetBytes": 32370688,
            "privateBytes": 11235328,
            "peakWorkingSetBytes": 32587776,
            "cpuMs": 93.75
          }
        }
      ],
      "processMemoryMeasuredByBroker": {
        "workingSetBytes": 32362496,
        "privateBytes": 11169792,
        "peakWorkingSetBytes": 32587776,
        "cpuMs": 93.75
      },
      "summary": {
        "exitCode": 0,
        "killed": false,
        "hostCalls": 1,
        "denials": 0,
        "peakCommitBytes": 12017664,
        "log": [
          "[info] [4, 8, 15, 16, 23, 42] suma=108 max=42"
        ]
      }
    }
  ],
  "brokerAfterClose": {
    "memory": {
      "managedBytes": 591064,
      "allocatedBytes": 1546880,
      "workingSetBytes": 40079360,
      "privateBytes": 14499840,
      "peakWorkingSetBytes": 40079360,
      "cpuMs": 171.875
    }
  },
  "audit": {
    "entries": 12,
    "denials": 0,
    "grantsIssued": 1,
    "denied": []
  },
  "exitCode": 0
}


Czytanie kodu linia po linii

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

  1. # EXPECTED_OUTPUT — KRETLIB-B01-OfflineLibraryOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. # Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:33Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. # Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. Pusta linia oddziela fragmenty źródła.
  5. ### 1. restore (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. > kret lib restore .Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. zainstalowano 2 bibliotek w <project>\LibsOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. Pusta linia oddziela fragmenty źródła.
  9. ### 2. list (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  10. > kret lib list .Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  11. mathx 1.2.0 (local) b25c08789f00feaa… ← local:vendorOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  12. textutil 1.1.0 (local) 262d5951a1deca88… ← local:vendorOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  13. blokada aktualnaOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  14. Pusta linia oddziela fragmenty źródła.
  15. ### 3. run (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  16. > kret run . --policy host-policy.json --data {DATA}Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  17. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  18. "broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  19. "pid": 11224,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  20. "startupMs": 40.2433,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  21. "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  22. "allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  23. "memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  24. "managedBytes": 1193368,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  25. "allocatedBytes": 1190728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  26. "workingSetBytes": 32501760,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  27. "privateBytes": 10108928,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  28. "peakWorkingSetBytes": 32501760,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  29. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  30. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  31. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  32. "brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  33. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  34. "managedBytes": 1550048,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  35. "allocatedBytes": 1546880,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  36. "workingSetBytes": 38993920,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  37. "privateBytes": 13860864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  38. "peakWorkingSetBytes": 39018496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  39. "cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  40. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  41. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  42. "plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  43. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  44. "package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  45. "admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  46. "startMs": 146.1355,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  47. "subject": "LOCAL-KPL-LBB2MTHX",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  48. "instance": "01a19725-b5c5-7cdd-bb44-dba5c7b656d6",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  49. "pid": 11860,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  50. "jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  51. "isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  52. "level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  53. "restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  54. "lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  55. "appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  56. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  57. "limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  58. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  59. "scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  60. "processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  61. "cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  62. "maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  63. "clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  64. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  65. "calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  66. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  67. "operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  68. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  69. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  70. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  71. "value": "[4, 8, 15, 16, 23, 42] suma=108 max=42",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  72. "brokerMs": 16.8948,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  73. "vmMs": 13.1288,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  74. "instructions": 576,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  75. "hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  76. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  77. "managedBytes": 791648,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  78. "allocatedBytes": 789440,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  79. "workingSetBytes": 32346112,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  80. "privateBytes": 11169792,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  81. "peakWorkingSetBytes": 32587776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  82. "cpuMs": 78.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  83. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  84. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  85. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  86. "operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  87. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  88. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  89. "type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  90. "value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  91. "brokerMs": 0.5825,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  92. "vmMs": 0.0013,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  93. "instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  94. "hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  95. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  96. "managedBytes": 805456,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  97. "allocatedBytes": 803200,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  98. "workingSetBytes": 32370688,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  99. "privateBytes": 11235328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  100. "peakWorkingSetBytes": 32587776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  101. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  102. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  103. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  104. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  105. "processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  106. "workingSetBytes": 32362496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  107. "privateBytes": 11169792,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  108. "peakWorkingSetBytes": 32587776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  109. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  110. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  111. "summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  112. "exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  113. "killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  114. "hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  115. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  116. "peakCommitBytes": 12017664,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  117. "log": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  118. "[info] [4, 8, 15, 16, 23, 42] suma=108 max=42"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  119. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  120. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  121. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  122. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  123. "brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  124. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  125. "managedBytes": 591064,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  126. "allocatedBytes": 1546880,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  127. "workingSetBytes": 40079360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  128. "privateBytes": 14499840,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  129. "peakWorkingSetBytes": 40079360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  130. "cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  131. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  132. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  133. "audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  134. "entries": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  135. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  136. "grantsIssued": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  137. "denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  138. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  139. "exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  140. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  141. Pusta linia oddziela fragmenty źródła.
  142. Pusta linia oddziela fragmenty źródła.
Diagnostyka i raporty testów

null
Czytanie kodu linia po linii

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

  1. nullOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
Pochodzenie i integralność

KRET_TECH_KRETLIB.zip:KretLib/Examples/BASIC_OfflineLibrary/example.json

02_PLAYGROUND/EXAMPLES/KRETLIB-B01-OfflineLibrary.json
SHA-256 13B8457952DDB6AFE50EE4F344B1DE6985689FF916E4AAE36C9DA3121A652724

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.

KRETLIB-B01-OfflineLibrary — Biblioteka offline z plikiem blokady

KRETLIB-B01-OfflineLibrary — Biblioteka offline z plikiem blokady

🇬🇧 English version below.
PoleWartość
TechnologiaKretLib
PoziomBASIC
KlasyfikacjaRUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu)
PlaygroundLOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie)
SDK1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany)
Wynik testuTEST_RESULTS.json, rzeczywisty wynik: EXPECTED_OUTPUT.txt

Co pokazuje

Szablon SDK library: projekt wymaga mathx (zakres >=1.2.0 <2.0.0), która zależy od textutil. Źródłem jest katalog vendor, polityka offline true i wydawca local. kret lib restore rozstrzyga wersje i instaluje do Libs/ (skróty SHA-256 w project.klibs.lock), kret lib list pokazuje stan. Kod biblioteki działa z uprawnieniami pluginu — biblioteka niczego nie deklaruje.

Pliki

Plik
Script/Main.krs
host-policy.json
plugin.kretl
project.klibs
project.klibs.lock
vendor/mathx/Script/MathX.krs
vendor/mathx/library.klib
vendor/textutil/Script/TextInternal.krs
vendor/textutil/Script/TextUtil.krs
vendor/textutil/library.klib

Jak uruchomić

Katalog roboczy: katalog tego przykładu. kret oznacza <SDK>\Compiler\kret.exe, kretui-host — <SDK>\UiHost\kretui-host.exe. {DATA} / {OUT} to nowe, puste katalogi poza projektem. Wymagania: REQUIREMENTS.md.

  1. kret lib restore . — rozstrzygnięcie + instalacja offline
  2. kret lib list . — zainstalowane biblioteki
  3. kret run . --policy host-policy.json --data {DATA} — uruchomienie z biblioteką

Oczekiwany wynik

list pokazuje mathx 1.2.0 i textutil; run zwraca opis statystyk złożony przez bibliotekę.

Najczęstszy błąd

Użycie w projekcie modułu zależności pośredniej (TextUtil) — projekt widzi tylko moduły bibliotek, których sam wymaga.

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

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