Tak odpoczalem z rozowa na wakacjach, ze nie moge sie doczekac, az wroce do krakowa, siade na cala noc do kompa i skoncze kodowac kompilacje expressions z AST do PST (program structure tree - forma posrednia uzywana do crossplatformowej kompilacji Intuicio++)! :3

Nim zrobie kompilacje do asma VMki, pierwej powstanie kompilacja I++ do JS w architekturze modulow (kompatybilne z Node.js) - oczekujcie publicznych testow w przeciagu tygodni! ^^


A dla przypomnienia, jak wyglada skladnia Intuicio++:
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PsichiX: daj link do swojego githuba colego, od kilku miesięcy obserwuję i wydajesz się być prawdziwym programistycznym wymiataczem ( ͜͡ʖ ͡€)
  • Odpowiedz
via Android
  • 1
@GlenPL: na githubie trzymam tylko opensource'owe projekty, ktore az tak nie wymiataja, jak to, co skrywam na bitbuckecie - tam to dopiero sie projekty o----------a! ;>
  • Odpowiedz
No, Misie Kolorowe - czas siąść dalej do kompilatora #intuicio #ipp!
A ponad to, dziś wrzucę swoje dwa moduły do Node.js, które zrobiłem na potrzeby lepszego zarządzania budowania gier w JavaScriptcie do nowego projektu w pracy! ^^
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Korutyny, czy wątki - oto jest pytanie ( ͡° ͜ʖ ͡°)
A tak serio: rozkminiam, jak połączyć API korutyn i wątków tak, by twór ten działał zarówno na platformach wielowątkowych (np. desktopy, mobile, konsole), oraz jednowątkowych (np. przeglądarki). Ma ktoś jakiś pomysł? ʕʔ

#programowanie #gamedev #pytanie #intuicio #ipp
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

O-------------e, udało się! Po długich godzinach designowania i implementowania w parserze drzewa AST, mega-w-pytke-finalna-i-nie-ruszam-jej-już składnia nowego języka programowania Intuicio++ jest w końcu gotowa! ^^ Teraz muszę wracać do implementacji w kompilatorze translatora kodu do assemblera VMki.
(Gist: https://gist.github.com/PsichiX/15b708b6f3675b86fbe4)

Teraz możecie hejcić, albo chwalić składnię, czy też rzucać propozycje (które by weszły do implementacji po opublikowaniu toolsetu) ()


#intuicio #ipp #
PsichiX - O-------------e, udało się! Po długich godzinach designowania i implementow...

źródło: comment_i0lTIisduSUmMFJOuqgz79VDpDqffU5M.jpg

Pobierz
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie mogłem zasnąć, więc dla zmęczenia zakodowałem finalną składnię języka Intuicio++. Aktualnie trwają prace nad kompilacją wyrażeń (staram się nie zrobić z tego kobyły, ale kompilacja wyrażeń to chyba najcięższy kawałek kompilatora ()).
Link do tekstowej wersji: https://gist.github.com/PsichiX/15b708b6f3675b86fbe4 :3

#intuicio #ipp #ptakopysk #xenoncore3 #gamedev #programowanie #gamedev #nocnazmiana
PsichiX - Nie mogłem zasnąć, więc dla zmęczenia zakodowałem finalną składnię języka I...

źródło: comment_K4I6pOmXFYlBvUNadP4CH2brDngWOszQ.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

cholibka, źle rozplanowałem analizowanie wygenerowanego drzewa AST w kompilatorze i dziadostwo ma problemy z optymalizowaniem outputu assemblera - czeka mnie chyba przepisanie analizatora od nowa ;____;

#intuicio #ipp
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

A więc to już chyba oficjalne! Nowy Ptakopysk v2 będzie zintegrowany z Qt (aplikacje osadzone w QtApplication; przeportowany renderer Xenon Core 3 opierający się o Qt3D; Językiem programowania będzie Intuicio++, a kod będzie uruchamiany w VMce Intuicio lub kompilowalny do C++, miast QML + JavaScript, jak robią to inne edytory gier)! A po tym etapie zostanie dopisany export do HTML5 (kompilacja Intuicio++ do asm.js) :3
Toolset będzie miotał
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Yep, dziś podczas kodowania na #nocnazmiana, powstała finalna wersja bazowa składni I++! ^^ Jutro zaczynam implementować kompilację tego wszytkiego do assemblera Intuicio - do końca tygodnia pewnie będzie można już wrzucić toolset (kompilator, runner i jakąś podstawową dokumentację języka) do testów publicznych :333

https://gist.github.com/PsichiX/15b708b6f3675b86fbe4

#ipp - otwieram tag związany wyłącznie z nowinkami z samego Intuicio++!
#intuicio #xenoncore3 #ptakopysk #
PsichiX - Yep, dziś podczas kodowania na #nocnazmiana, powstała finalna wersja bazowa...

źródło: comment_4Hn2GBC7T2Oopzxb3CzRXLKuiOIzT8gU.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

TL; DR:
https://gist.github.com/PsichiX/15b708b6f3675b86fbe4

Po dłuższej zabawie w robienie parsera drzewa AST doszedłem do wniosku, że zdobyłem wystarczającą wiedzę do tego, by móc zacząć kodować właściwy kompilator Intuicio++ (a.k.a. I++) - zmodyfikowałem nieco pierwotną składnię, najwcześniej po weekendzie dojdą funkcje oraz wstawki ASMowe i od tego momentu zajmę się procesem konwertowania drzewa AST do assemblera Intuicio, tym samym testując jego bazową funkcjonalność. Gdy osiągnę ten etap, zbuduję paczkę do testów publicznych, co każdy by mógł pobawić się językiem i wirtualką, a także zgłosić błędy :3
BTW. jak widać, w kompilatorze zastosowałem PEGTL do parsowania składni - muszę przyznać, że jest to fantastyczne narzędzie <3
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Nie rób parsera używając RegExa - mówili. Namęczysz się więcej, niżeli to osiągniesz, o ile osiągniesz - mówili. A takiego lolka! Powiedziałem, że zrobię, to zrobiłem i udało się zrobić nawet sprawnie działające rekurencje regexowe (yup, ominąłem dosyć prostym trickiem problemy wynikające z tego, że silnik RegExowy w .NET to maszyna stanu skończonego!) ^^
Tworzenie reguł składni I++ ciąg dalszy :3

Oto pliki (bo obrazek tylko 'na zachętę'): https://gist.github.com/PsichiX/b1c121444e67f685ed3b

#intuicio #xenoncore3 #ptakopysk #programowanie #gamedev #nocnazmiana
PsichiX - Nie rób parsera używając RegExa - mówili. Namęczysz się więcej, niżeli to o...

źródło: comment_J0QRclGy50IKwDd0VnDvRaxf17HVQtTv.jpg

Pobierz
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Powolutku (bo czasu bardzo mało i co kilka dni mogę siadać do kodu) powstaje regexowy generator drzewa AST. W obecnej postaci kod zdaje się jest już skończony, teraz pozostaje uzupełnić plik gramatyki i voila (potem na podstawie tejże gramatyki i++ powstanie już docelowy kompilator napisany w c/c++ - ten parser służyć ma głównie do testowania poprawności kompilowania nowych języków do asma Intuicio) :3
W skrócie: coraz bliżej ukończenia i wydania toolsetu mej
PsichiX - Powolutku (bo czasu bardzo mało i co kilka dni mogę siadać do kodu) powstaj...

źródło: comment_lViODTPiaaegfUtjdpO6mZPqXs3WVwch.jpg

Pobierz
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Ten uczuć, gdy piszesz parser drzewa AST w #cpp i zajmuje to 3 dni (z czego masę czasu zajmuje szukanie i kompilowanie odpowiednich bibliotek), a potem robisz to samo w #csharp i zajmuje to 3 godziny <3
Bogowie, czemu ja się jeszcze nie nauczyłem, że #csharp == szybciej i prościej? ()


#gorzkiezale #nieprogramowanie #gamedev #
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

W przerwie od spamowania nowymi ficzurami #intuicio, pokażę Wam jeden z fajniejszych już wbudowanych w VMkę: obiekty zarządzane
{ to takie 'małe' przygotowanie do kompilacji ILasm (.NET) -> Intuicio :3 }
A tutaj łapcie Gista kodu bez kolorowania składni: https://gist.github.com/PsichiX/8cbc054472c803e17ea3

#xenoncore3 #ptakopysk #gamedev #programowanie
PsichiX - W przerwie od spamowania nowymi ficzurami #intuicio, pokażę Wam jeden z faj...

źródło: comment_43UNrRMOmVJ6gYLFYve3LG0MbgtWhD5k.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

A dziś zrobiłem działającą multipikację bloku współbieżnego, przydatnego np. do zrobienia bloku tych samych operacji wykonywanych na różnych zakresach tej samej kolekcji danych (możnaby na tej zasadzie zrobić np. software'owy symulator pipeline'u shaderów ;3). Przykład na obrazku to uproszczenie, pokazujące iż działa, ot. Następnym razem zarzucę bardziej fancy przykładem! ^^


#gamedev #programowanie #xenoncore3 #intuicio
PsichiX - A dziś zrobiłem działającą multipikację bloku współbieżnego, przydatnego np...

źródło: comment_sqtYQkWyd4ZIkrRBVcZsURAemxyZPi4M.jpg

Pobierz
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PsichiX: jakby co to bitcode można też interpretować: http://llvm.org/docs/CommandGuide/lli.html
LLVM nie bez powodu stał się "wspólnym mianownikiem" wielu nowych języków: jedyne co musisz zrobić to napisać kompilator wypluwający LLVM IR a resztę dostajesz gratis: asm reader/writer, analizę, optymalizacje, backendy do kodu natywnego (x86, arm, etc...), interpreter/jit.

Dodatkowo decydując się na użycie llvm IR jako języka skryptowego w silniku, użytkownik sam może wybrać jakiego języka (frontendu) użyje - byle by produkował
  • Odpowiedz
YAAAAY! Udało się! ^^ co prawda napieprzyłem się z implementacją, bo musiałem przerobić sygnalizowanie zakończenia wątków współbieżnych, ale działa! :3 jeszcze tylko dodać wymuszone punkty synchronizacji, co by logi mogły się poprawnie wyświetlać i będzie perfekcyjnie <3

#gamedev (bo kiedyś trafi do #ptakopysk-a); #programowanie #xenoncore3 #intuicio
PsichiX - YAAAAY! Udało się! ^^ co prawda napieprzyłem się z implementacją, bo musiał...

źródło: comment_wYlBrNt0wTlz6Ihoqp4HcGVuSGrR55kt.jpg

Pobierz
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Ilythiiri: ten potwór to assembler mej maszyny wirtualnej. normalnie będzie się pisać w jakimś dialekcie wysokopoziomowym, kwestia napisania w końcu kompilatora jakiegoś języka do tego assemblera i będzie można używać :3
  • Odpowiedz
Do końca tygodnia planuję zaimplementować główny ficzur mej maszyny wirtualnej - bloki współbieżnie wykonywane, czyli możemy 'zmusić' dwa lub więcej fragmenty kodu do wykonania się współbieżnie, bez tworzenia osobnych wątków do tego. To taki draft początkowy. Ma to być dostępne już w kolejnej większej wersji #ptakopysk-a ^^
Co o tym myślicie? :3


#programowanie #gamedev #intuicio #xenoncore3
PsichiX - Do końca tygodnia planuję zaimplementować główny ficzur mej maszyny wirtual...

źródło: comment_KD1tO3OdyQOaQ6AHqMOw5PahF12QW2hN.jpg

Pobierz
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach