Jakby kto pytał co się dzieje z platformą Intuicio, to daję znać, że na dniach pojawi się publicznie pierwsza część toolsetu v4, w postaci kompilatora i interpretera (shellowego), na początek na windowsa (bo Ubuntu muszę na nowo postawić ;<).

PS. Wersja 4 jest pisana od zera, już nie jako część silnika Xenon Core, a osobny projekt, a także nie będzie w zupełności kompatybilny z VMką w wersji 3 - chcę by Kaiju
PsichiX - Jakby kto pytał co się dzieje z platformą Intuicio, to daję znać, że na dni...

źródło: comment_tAoOqrBqrmK4HSVRTsDvAjBnYBKHiezj.jpg

Pobierz
Ah, nie chwaliłem się jeszcze! przepisuję xenona (silnik, którego code base używają inne moje projekty, w tym cały Ptakopysk) na linuxy - tym samym IntuicioVM zostało rozwinięte o nowe ficzury w ramach kompatybilności z unixami, więc powolutku zbliżam się mały mi krokami do momentu, w którym za kilka miesięcy będzie można mówić o początkach konkurencji dla Node.js z językiem wspierającym współbieżność i dualizm zarządzania pamięcią ( ͡° ͜ʖ ͡°
Oż#!$%@?, 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ż#!$%@?, udało się! Po długich godzinach designowania i implementowania w ...

źródło: comment_i0lTIisduSUmMFJOuqgz79VDpDqffU5M.jpg

Pobierz
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
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ł
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
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
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
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
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
@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
@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