Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Pierwszy program KretS

BASICRUNNABLE_LOCALKretS

Moduł `Main`, funkcja `Start` zwracająca `String`, zmienna `let`, łączenie tekstów i wpis w dzienniku (`log.info`, wymaga `logs.own.write`).

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.

Kanoniczne pliki projektu

module Main

// Pierwszy program: zmienna, tekst, dziennik.
fn Start() -> String {
    let name = "Kret"
    log.info("Witaj, " + name + "!")
    return "Witaj, " + name + "!"
}

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. // Pierwszy program: zmienna, tekst, dziennik.Komentarz autora; nie jest wykonywany.
  4. fn Start() -> String {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  5. let name = "Kret"Wiązanie wartości; typ i możliwość zmiany zależą od użytej deklaracji.
  6. log.info("Witaj, " + name + "!")Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. return "Witaj, " + name + "!"Zwrócenie wartości z funkcji; nie jest zapisem do dziennika.
  8. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  9. Pusta linia oddziela fragmenty źródła.
  10. fn Shutdown() {Sygnatura funkcji: nazwa, argumenty i ewentualny typ wyniku.
  11. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  12. Pusta linia oddziela fragmenty źródła.

Wynik i typowy błąd

Wynik `start`: „Witaj, Kret!”, ten sam tekst w dzienniku pluginu.

Na co uważać

Użycie `log.info` bez `logs.own.write` w manifeście → błąd kompilacji `KCS-KRL-0302`; bez przyznania w polityce hosta → odmowa w czasie wykonania.

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. checkkret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0
  2. 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 — KRETS-B01-HelloWorld
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:39Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.
# Actual output of the run. Paths replaced by placeholders.

### 1. check  (exit 0, PASS)
> kret check . --json
{
  "format": "kret-diagnostics/1",
  "project": "<project>",
  "succeeded": true,
  "plugin": {
    "id": "LOCAL-KPL-KSB2HELL",
    "name": "HelloWorld",
    "version": "1.0.0",
    "profile": "standard",
    "database": false
  },
  "permissions": {
    "required": [
      "logs.own.write"
    ],
    "optional": []
  },
  "handlers": {
    "lifecycle": [
      "start",
      "shutdown"
    ],
    "events": [],
    "commands": []
  },
  "diagnostics": []
}

### 2. run  (exit 0, PASS)
> kret run . --policy host-policy.json --data {DATA}
{
  "broker": {
    "pid": 31396,
    "startupMs": 45.5636,
    "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
    "allowProvisionalRisk": true,
    "memoryIdle": {
      "managedBytes": 1193296,
      "allocatedBytes": 1190656,
      "workingSetBytes": 32526336,
      "privateBytes": 10104832,
      "peakWorkingSetBytes": 32526336,
      "cpuMs": 93.75
    }
  },
  "brokerWithPlugins": {
    "memory": {
      "managedBytes": 1514400,
      "allocatedBytes": 1511352,
      "workingSetBytes": 38850560,
      "privateBytes": 13774848,
      "peakWorkingSetBytes": 38875136,
      "cpuMs": 171.875
    }
  },
  "plugins": [
    {
      "package": "<project>\\Build",
      "admitted": true,
      "startMs": 147.1632,
      "subject": "LOCAL-KPL-KSB2HELL",
      "instance": "01a19725-cd89-7702-b7e9-e940234ac3fd",
      "pid": 33680,
      "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": "Witaj, Kret!",
          "brokerMs": 15.0156,
          "vmMs": 11.0985,
          "instructions": 14,
          "hostCalls": 1,
          "pluginReportedMemory": {
            "managedBytes": 741200,
            "allocatedBytes": 739136,
            "workingSetBytes": 32116736,
            "privateBytes": 11153408,
            "peakWorkingSetBytes": 32329728,
            "cpuMs": 78.125
          }
        },
        {
          "operation": "shutdown",
          "ok": true,
          "status": "Completed",
          "type": "Unit",
          "value": null,
          "brokerMs": 0.6449,
          "vmMs": 0.0013,
          "instructions": 1,
          "hostCalls": 0,
          "pluginReportedMemory": {
            "managedBytes": 749424,
            "allocatedBytes": 747336,
            "workingSetBytes": 32149504,
            "privateBytes": 11153408,
            "peakWorkingSetBytes": 32329728,
            "cpuMs": 78.125
          }
        }
      ],
      "processMemoryMeasuredByBroker": {
        "workingSetBytes": 32149504,
        "privateBytes": 11153408,
        "peakWorkingSetBytes": 32329728,
        "cpuMs": 93.75
      },
      "summary": {
        "exitCode": 0,
        "killed": false,
        "hostCalls": 1,
        "denials": 0,
        "peakCommitBytes": 11943936,
        "log": [
          "[info] Witaj, Kret!"
        ]
      }
    }
  ],
  "brokerAfterClose": {
    "memory": {
      "managedBytes": 576040,
      "allocatedBytes": 1511352,
      "workingSetBytes": 39772160,
      "privateBytes": 14401536,
      "peakWorkingSetBytes": 39772160,
      "cpuMs": 187.5
    }
  },
  "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 — KRETS-B01-HelloWorldOdczytaj 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:39Z). Ś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. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. > kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. "format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  9. "project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  10. "succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  11. "plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  12. "id": "LOCAL-KPL-KSB2HELL",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "name": "HelloWorld",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  14. "version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  15. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  16. "database": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  17. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  18. "permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  19. "required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  20. "logs.own.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  21. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  22. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  23. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  25. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  26. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  27. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  28. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  29. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  30. "commands": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  31. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  32. "diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  33. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  34. Pusta linia oddziela fragmenty źródła.
  35. ### 2. run (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  36. > kret run . --policy host-policy.json --data {DATA}Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  37. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  38. "broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  39. "pid": 31396,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  40. "startupMs": 45.5636,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  41. "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  42. "allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  43. "memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  44. "managedBytes": 1193296,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  45. "allocatedBytes": 1190656,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  46. "workingSetBytes": 32526336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  47. "privateBytes": 10104832,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  48. "peakWorkingSetBytes": 32526336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  49. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  50. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  51. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  52. "brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  53. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  54. "managedBytes": 1514400,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  55. "allocatedBytes": 1511352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  56. "workingSetBytes": 38850560,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  57. "privateBytes": 13774848,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  58. "peakWorkingSetBytes": 38875136,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  59. "cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  60. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  61. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  62. "plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  63. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  64. "package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  65. "admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  66. "startMs": 147.1632,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  67. "subject": "LOCAL-KPL-KSB2HELL",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  68. "instance": "01a19725-cd89-7702-b7e9-e940234ac3fd",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  69. "pid": 33680,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  70. "jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  71. "isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  72. "level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  73. "restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  74. "lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  75. "appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  76. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  77. "limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  78. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  79. "scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  80. "processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  81. "cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  82. "maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  83. "clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  84. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  85. "calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  86. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  87. "operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  88. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  89. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  90. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  91. "value": "Witaj, Kret!",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  92. "brokerMs": 15.0156,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  93. "vmMs": 11.0985,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  94. "instructions": 14,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  95. "hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  96. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  97. "managedBytes": 741200,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  98. "allocatedBytes": 739136,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  99. "workingSetBytes": 32116736,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  100. "privateBytes": 11153408,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  101. "peakWorkingSetBytes": 32329728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  102. "cpuMs": 78.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  103. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  104. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  105. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  106. "operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  107. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  108. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  109. "type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  110. "value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  111. "brokerMs": 0.6449,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  112. "vmMs": 0.0013,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  113. "instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  114. "hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  115. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  116. "managedBytes": 749424,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  117. "allocatedBytes": 747336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  118. "workingSetBytes": 32149504,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  119. "privateBytes": 11153408,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  120. "peakWorkingSetBytes": 32329728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  121. "cpuMs": 78.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  122. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  123. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  124. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  125. "processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  126. "workingSetBytes": 32149504,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  127. "privateBytes": 11153408,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  128. "peakWorkingSetBytes": 32329728,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  129. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  130. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  131. "summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  132. "exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  133. "killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  134. "hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  135. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  136. "peakCommitBytes": 11943936,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  137. "log": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  138. "[info] Witaj, Kret!"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  139. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  140. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  141. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  142. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  143. "brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  144. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  145. "managedBytes": 576040,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  146. "allocatedBytes": 1511352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  147. "workingSetBytes": 39772160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  148. "privateBytes": 14401536,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  149. "peakWorkingSetBytes": 39772160,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  150. "cpuMs": 187.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  151. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  152. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  153. "audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  154. "entries": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  155. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  156. "grantsIssued": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  157. "denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  158. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  159. "exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  160. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  161. Pusta linia oddziela fragmenty źródła.
  162. 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_LANGUAGE_KRETS.zip:KretS/Examples/BASIC_HelloWorld/example.json

02_PLAYGROUND/EXAMPLES/KRETS-B01-HelloWorld.json
SHA-256 5A9C8481279E68FD83DFD04FDB65EE33A643CE7D7A23A706B7EFCC1D19243141

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.

KRETS-B01-HelloWorld — Pierwszy program KretS

KRETS-B01-HelloWorld — Pierwszy program KretS

🇬🇧 English version below.
PoleWartość
TechnologiaKretS
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

Moduł Main, funkcja Start zwracająca String, zmienna let, łączenie tekstów i wpis w dzienniku (log.info, wymaga logs.own.write).

Pliki

Plik
Script/Main.krs
host-policy.json
plugin.kretl

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 check . --json — walidacja
  2. kret run . --policy host-policy.json --data {DATA} — uruchomienie

Oczekiwany wynik

Wynik start: „Witaj, Kret!”, ten sam tekst w dzienniku pluginu.

Najczęstszy błąd

Użycie log.info bez logs.own.write w manifeście → błąd kompilacji KCS-KRL-0302; bez przyznania w polityce hosta → odmowa w czasie wykonania.

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