|
290 | 290 | bottom: 0; |
291 | 291 | width: 100%; |
292 | 292 | } |
| 293 | + /* Improved styles for programming languages section */ |
| 294 | + .nested-tabs-container { |
| 295 | + background-color: #1A1A1A; |
| 296 | + border-radius: 12px; |
| 297 | + padding: 20px; |
| 298 | + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); |
| 299 | + margin-top: 20px; |
| 300 | + } |
| 301 | + .nested-tab-menu ul { |
| 302 | + display: flex; |
| 303 | + justify-content: center; |
| 304 | + list-style: none; |
| 305 | + padding: 0; |
| 306 | + margin-bottom: 20px; |
| 307 | + border-bottom: 2px solid #2F3A44; |
| 308 | + } |
| 309 | + .nested-tab-menu li { |
| 310 | + padding: 12px 24px; |
| 311 | + cursor: pointer; |
| 312 | + font-size: 18px; |
| 313 | + font-weight: bold; |
| 314 | + color: #B0B0B0; |
| 315 | + transition: color 0.3s, border-bottom 0.3s; |
| 316 | + border-bottom: 2px solid transparent; |
| 317 | + } |
| 318 | + .nested-tab-menu li:hover { |
| 319 | + color: #FFFFFF; |
| 320 | + } |
| 321 | + .nested-tab-menu li.active { |
| 322 | + color: #FFFFFF; |
| 323 | + border-bottom: 2px solid #55AAFF; |
| 324 | + } |
| 325 | + .lang-tab-pane { |
| 326 | + display: none; |
| 327 | + } |
| 328 | + .lang-tab-pane.active { |
| 329 | + display: block; |
| 330 | + } |
| 331 | + .lang-tab-pane h3 { |
| 332 | + color: #55AAFF; |
| 333 | + margin-bottom: 15px; |
| 334 | + } |
| 335 | + .lang-tab-pane p, .lang-tab-pane ul, .lang-tab-pane ol { |
| 336 | + margin-bottom: 15px; |
| 337 | + } |
| 338 | + .lang-tab-pane ul li { |
| 339 | + list-style-type: disc; |
| 340 | + margin-left: 20px; |
| 341 | + } |
| 342 | + .lang-tab-pane ol li { |
| 343 | + margin-left: 20px; |
| 344 | + } |
| 345 | + .lang-tab-pane .emoji-header { |
| 346 | + font-size: 20px; |
| 347 | + color: #00FF00; |
| 348 | + margin-top: 20px; |
| 349 | + } |
293 | 350 | </style> |
294 | 351 | <script> |
295 | 352 | document.addEventListener('DOMContentLoaded', () => { |
@@ -453,6 +510,8 @@ <h3>Edycja Xfce</h3> |
453 | 510 | <p>Jest to to samo co edycja Official, ale ze środowiskiem graficznym Xfce.</p> |
454 | 511 | <h3>Edycja LTS</h3> |
455 | 512 | <p>Edycja LTS to to samo co edycja Official, ale zamiast Debiana Testing używa Debiana Stable.</p> |
| 513 | + <h3>Edycja Atomic</h3> |
| 514 | + <p>Edycja Atomic bazuje na gałęzi Debiana stabilnego lub na gałęzi Debiana testowego. Edycja Atomic jest okrojona z narzędzi HackerOS oraz posiada własne narzędzie do instalacji aktualizacji pakietów - hammer. UWAGA: Aktualnie edycja Atomic jest w fazie pre-release. Użyj 'hammer issue', aby zgłosić błąd (mogą być ogromne problemy z ogólnym działaniem narzędzia).</p> |
456 | 515 | </div> |
457 | 516 | <div id="games" class="tab-pane"> |
458 | 517 | <h2>Gry HackerOS</h2> |
@@ -492,14 +551,14 @@ <h2>Granie na HackerOS</h2> |
492 | 551 | </div> |
493 | 552 | <div id="programming-languages" class="tab-pane"> |
494 | 553 | <h2>Języki programowania HackerOS</h2> |
495 | | - <div class="nested-tabs-container" style="display: flex; flex-direction: column; align-items: center;"> |
496 | | - <div class="nested-tab-menu" style="width: 100%; max-width: 300px; margin-bottom: 20px;"> |
497 | | - <ul style="display: flex; justify-content: space-around; list-style: none; padding: 0;"> |
498 | | - <li class="lang-tab-link active" data-tab="hacker-lang" style="cursor: pointer; padding: 10px; border-radius: 5px; transition: background-color 0.3s;">Hacker Lang</li> |
499 | | - <li class="lang-tab-link" data-tab="hacker-script" style="cursor: pointer; padding: 10px; border-radius: 5px; transition: background-color 0.3s;">HackerScript</li> |
| 554 | + <div class="nested-tabs-container"> |
| 555 | + <div class="nested-tab-menu"> |
| 556 | + <ul> |
| 557 | + <li class="lang-tab-link active" data-tab="hacker-lang">Hacker Lang</li> |
| 558 | + <li class="lang-tab-link" data-tab="hacker-script">HackerScript</li> |
500 | 559 | </ul> |
501 | 560 | </div> |
502 | | - <div class="nested-tab-content" style="width: 100%;"> |
| 561 | + <div class="nested-tab-content"> |
503 | 562 | <div id="hacker-lang" class="lang-tab-pane active"> |
504 | 563 | <h3>Język Programowania Hacker Lang</h3> |
505 | 564 | <p>Opis składni:</p> |
@@ -559,48 +618,72 @@ <h3>Język Programowania Hacker Lang</h3> |
559 | 618 | <div id="hacker-script" class="lang-tab-pane"> |
560 | 619 | <h3>Język programowania HackerScript</h3> |
561 | 620 | <p>Przykładowa składnia:</p> |
| 621 | + <div class="emoji-header">Zarządzanie Pamięcią:</div> |
| 622 | + <ul> |
| 623 | + <li>--- automatic ---: (Domyślne) Pamięć zarządzana przez Python GC.</li> |
| 624 | + <li>--- manual ---: Aktywuje dostęp do libc i bezpośrednią alokację (wymaga ctypes).</li> |
| 625 | + </ul> |
| 626 | + <div class="emoji-header">Importy Systemowe i Zewnętrzne:</div> |
| 627 | + <ul> |
| 628 | + <li>import <core:moduł>: Standardowe biblioteki (np. import <core:math>).</li> |
| 629 | + <li>import <virus:pkg> lub <vira:pkg>: Automatyczne pobieranie statycznych bibliotek .a przez narzędzie hspm.</li> |
| 630 | + <li><rust:crate=wersja>: Integracja z Cargo – kompilator automatycznie doda zależność do backendu Rust.</li> |
| 631 | + <li><c:ścieżka>: Dynamiczne ładowanie bibliotek współdzielonych (.so / .dll).</li> |
| 632 | + </ul> |
| 633 | + <div class="emoji-header">Modułowość:</div> |
| 634 | + <ul> |
| 635 | + <li>require <plik.hcs>: Rekurencyjne włączanie kodu źródłowego (odpowiednik #include).</li> |
| 636 | + </ul> |
| 637 | + <div class="emoji-header">Zmienne, Typy i Super-obliczenia</div> |
| 638 | + <p>HackerScript 2026 stawia na wysoką wydajność obliczeniową:</p> |
| 639 | + <ul> |
| 640 | + <li>Typowanie: Dynamiczne z silną inferencją (Inferred).</li> |
| 641 | + <li>Struktury danych:</li> |
| 642 | + <ul> |
| 643 | + <li>tekst = "Hacker" (String)</li> |
| 644 | + <li>liczba = 100 (Int)</li> |
| 645 | + <li>lista = ["a", "b"] (Standardowa tablica)</li> |
| 646 | + </ul> |
| 647 | + <li>Obliczenia Macierzowe (Native Support):</li> |
| 648 | + <ul> |
| 649 | + <li>tensor / matrix / vector: Zmienne automatycznie konwertowane na obiekty NumPy.</li> |
| 650 | + <li>zeros(shape) / ones(shape): Szybka inicjalizacja struktur.</li> |
| 651 | + <li>dot: Operator mnożenia macierzowego (mapowany na @).</li> |
| 652 | + </ul> |
| 653 | + <li>Interpolacja: "V: {zmienna}" – automatyczne formatowanie f-string.</li> |
| 654 | + </ul> |
| 655 | + <div class="emoji-header">High-Performance Functions</div> |
| 656 | + <p>To unikalna cecha najnowszej wersji, widoczna w kompilatorze:</p> |
| 657 | + <ul> |
| 658 | + <li>fast func nazwa(p) [...]: Funkcja dekorowana przez Numba (@njit). Jest kompilowana do kodu maszynowego przy pierwszym uruchomieniu, oferując prędkość zbliżoną do C.</li> |
| 659 | + <li>func nazwa(p) [...]: Standardowa funkcja interpretowana.</li> |
| 660 | + <li>Bloki kodu: Zawsze zamknięte w nawiasach kwadratowych [...].</li> |
| 661 | + </ul> |
| 662 | + <div class="emoji-header">Programowanie Obiektowe (OOP)</div> |
| 663 | + <p>HackerScript używa słowa kluczowego object zamiast tradycyjnego class:</p> |
| 664 | + <ul> |
| 665 | + <li>Definicja: object Nazwa [ ... ]</li> |
| 666 | + <li>Metody: Zawsze przyjmują self jako pierwszy parametr.</li> |
| 667 | + <li>Inicjalizacja: obj = new Nazwa() (mapowane na standardowy konstruktor klasy).</li> |
| 668 | + </ul> |
| 669 | + <div class="emoji-header">Kontrola Przepływu i System</div> |
| 670 | + <ul> |
| 671 | + <li>Warunki: if expr [...] else if expr [...] else [...].</li> |
| 672 | + <li>Pętle: for element in kolekcja [...].</li> |
| 673 | + <li>Obsługa Błędów: ] except Exception [...] (specyficzna składnia zamykająca blok i otwierająca handler).</li> |
| 674 | + <li>Shell Integration:</li> |
| 675 | + <ul> |
| 676 | + <li>sh [ komenda ]: Bezpośrednie wywołanie systemowe.</li> |
| 677 | + <li>Obsługuje zmienne: val_zmienna wewnątrz bloku sh jest automatycznie wstrzykiwane do powłoki.</li> |
| 678 | + </ul> |
| 679 | + </ul> |
| 680 | + <div class="emoji-header">System Kompilacji (Backend)</div> |
| 681 | + <p>Twój kod jest procesowany przez star, który wykonuje następujące kroki:</p> |
562 | 682 | <ol> |
563 | | - <li>Struktura i Importy |
564 | | - <ul> |
565 | | - <li>Dyrektywy: --- automatic --- (domyślne zarządzanie pamięcią) lub --- manual ---.</li> |
566 | | - <li>Importy: import <c:stdio> (biblioteki systemowe C).</li> |
567 | | - <li>import <virus:nmap> (lokalne moduły .hcs).</li> |
568 | | - </ul> |
569 | | - </li> |
570 | | - <li>Zmienne i Typy |
571 | | - <ul> |
572 | | - <li>Typowanie: Dynamiczne/Inferred (kompilator sam zgaduje typy: int, char*, Array, struct).</li> |
573 | | - <li>Literały: tekst = "Hacker" (Stringi).</li> |
574 | | - <li>liczba = 100 (Integery).</li> |
575 | | - <li>lista = ["a", "b"] (Tablice).</li> |
576 | | - <li>Interpolacja: "Wartość: {zmienna}" (Automatyczne formatowanie tekstu).</li> |
577 | | - </ul> |
578 | | - </li> |
579 | | - <li>Programowanie Obiektowe (OOP) |
580 | | - <ul> |
581 | | - <li>Klasy: Definiowane za pomocą class Nazwa [ ... ].</li> |
582 | | - <li>Metody: Pierwszy parametr to zawsze self.</li> |
583 | | - <li>Tworzenie obiektów: obj = new Klasa().</li> |
584 | | - <li>Dostęp do pól: self.pole = wartość (Działa jak struktury w C).</li> |
585 | | - </ul> |
586 | | - </li> |
587 | | - <li>Kontrola Przepływu |
588 | | - <ul> |
589 | | - <li>Bloki kodu: Zawsze w nawiasach kwadratowych [...].</li> |
590 | | - <li>Instrukcje warunkowe: if expr [...] else if expr [...] else [...].</li> |
591 | | - <li>Pętle: for element in kolekcja [...] (Iteracja po tablicach).</li> |
592 | | - </ul> |
593 | | - </li> |
594 | | - <li>Funkcje i System |
595 | | - <ul> |
596 | | - <li>Definicja: func nazwa(paramy) [ return wartość ].</li> |
597 | | - <li>Funkcja Main: func main(args) [...] – punkt startowy programu.</li> |
598 | | - <li>Wbudowane:</li> |
599 | | - <li>log "msg" – Wypisywanie do konsoli.</li> |
600 | | - <li>curl_get(url) – Żądania HTTP.</li> |
601 | | - <li>allocate(size) / deallocate(ptr) – Zarządzanie pamięcią.</li> |
602 | | - </ul> |
603 | | - </li> |
| 683 | + <li>Translation: Zamiana .hcs na zoptymalizowany kod Pythona (logic.py) z obsługą numba i numpy.</li> |
| 684 | + <li>Rust Wrapping: Wygenerowanie kodu w Rust, który inicjalizuje maszynę wirtualną Pythona (PyO3).</li> |
| 685 | + <li>Static Linking: Jeśli użyto import <virus:...>, kompilator generuje plik build.rs i linkuje biblioteki .a bezpośrednio do końcowej binarki.</li> |
| 686 | + <li>Final Binary: Wynikiem jest pojedynczy, szybki plik wykonywalny, który nie wymaga zainstalowanego Pythona w systemie (dzięki izolowanemu venv wewnątrz cache).</li> |
604 | 687 | </ol> |
605 | 688 | <p>Narzędzia/komendy:</p> |
606 | 689 | <ul> |
|
0 commit comments