Z tym plikiem main.yml wyskoczy błąd 128 oznacza że projekt nie ma uprawnień do zapisu w gałęzi gh-pages trzeba to zmienić klikając
128
Wejdź w:
Settings → Actions → General
Przewiń do Workflow permissions
Ustaw:
✅ "Read and write permissions
Save
Teraz skompiluje bez błędu 128 ale żeby wyświetlić stronę potrzeba czegoś jeszcze
Settings → Pages
-
Wybierz:
-
Branch:
gh-pages
-
Folder:
/ (root)
albo/docs
, zależnie od projektu
-
-
Kliknij Save
Żeby wyświetlić stronę
Wejdź w:
Repozytorium → Settings → Pages
Na górze powinno być coś takiego:
Your site is live at:
https://twoj-uzytkownik.github.io/twoje-repo/
Kliknij ten link – to jest Twój publiczny adres strony.
Więc udało się jest już strona która prosi o dane do aplikacji ale co to pętla nieskończona
Krótkie przypomnienie, że printf() działa od razu w WebAssembly.
scanf() jednak nie działa bez dodatkowej konfiguracji, bo w przeglądarce nie ma terminala i stdin jest pusty.
➡️ scanf() W WebAssembly powoduje zawieszenie, pętlę lub pusty wynik.
➡️ Dlaczego? Bo scanf() czeka na dane ze standardowego wejścia (stdin), którego w przeglądarce nie ma.
Jak to naprawić? Rozwiązanie: prompt() jako stdin
scanflag++ jako kontrola, żeby nie dublować prompta.
Jak chcemy żeby działał trzeba zmodyfikować plik .js który jest generowany podczas kompilacji o dosłownie dwie linijki ale potrzebne też będzie narzędzie do wyszukiwania słowa w pliku .js zwykła wyszukiwarka wystarczy ten plik jest sporych rozmiarów w odpowiednim miejscu trzeba dodać scanflag++ żeby okno do wejścia "windows.prompta" nie wpadało w wieczna pętlę.
Edytuj plik .js
Znajdź linijkę:
typeof window.prompt == 'function') {
//Zamień po browser // Browser. if(!scanflag) result = window.prompt('Input: '); scanflag++;
//Pomiędzy komentarzem
Już prawie jeszcze trzeba ustawić zmienna scanflag na pozycję zero
Znajdź :
read:function(stream, buffer, offset, length, pos /* ignored */) {
//Dodaj po zawiasie
scanflag=0;
Na githubie ciężko się szuka trzeba najpierw wyszukać (wyszukiwarka w przeglądarce tam gdzie jest nowa karta historia zakładki)a później edytować ta pierwsza linijka jest ważniejsza ta druga tylko definiuje zmienna scanflag i ustawia na zero. Ai jakoś inaczej rozwiązuje ten problem ale całkiem podobnie nie szuka dwóch linijek tylko odrazu ustawia zmienna var scanflag nad windows.prompt ale tego nie próbowałem.
No comments:
Post a Comment