ChanServ changed the topic of #lowempire to: Low Level Empire | This channel was created for Algorithms, Compilers, OS, Hardware, CS theory stuff (low-level) | be patient, polite | don't do off top | Ask your question | Paste your codes/long texts https://paste.debian.net/ or "echo just testing! | nc termbin.com 9999" | Logs: https://freenode.irclog.whitequark.org/lowempire
lucid_0x80 has joined #lowempire
marlin has quit [Ping timeout: 256 seconds]
marlin has joined #lowempire
<marlin> bro men indi yatiram :) ama saat 11-e 5 dene alarm var, sende bir zeng edersende pls durmagim ucun :)
<lucid_0x80> okay :-D
<marlin> hazirsan bro? :)
<lucid_0x80> her zaman :-D
<marlin> ejdahaaa :D
<marlin> men yatim ozmaan
<marlin> :)
<marlin> birazdan goruserik :D sen yaxsi tez durmusan bele?)
marlin has quit [Ping timeout: 260 seconds]
dumenci has joined #lowempire
ascii has joined #lowempire
<ascii> hi guys )))
<dumenci> salamlar
lucid_0x80 has quit [Ping timeout: 246 seconds]
<ascii> netersen mellim???
<dumenci> shukur brat
<dumenci> sen necesen?
<ascii> link zad yoxdu hele?
<ascii> shukur))\
<ascii> \]\
<dumenci> nope
<dumenci> birazdan baslayacayiq
dumenci has quit [Remote host closed the connection]
marlin has joined #lowempire
marlin has quit [Client Quit]
marlin has joined #lowempire
lucid_0x80 has joined #lowempire
<ascii> lucid mence sen bu internetnen hewnede :DDD
<lucid_0x80> Parser
<lucid_0x80> Code generation
<lucid_0x80> AST
<lucid_0x80> Optimizasiya texnikaları (e.g copy elision, dead code elimination, tail call optimization)
<lucid_0x80> İntermediate code generation
<lucid_0x80> Coroutines, async, concurrency, memory allocation, thread safety etc.
<lucid_0x80> Data structures (optimization techniques in persistent data structures e.g cow - using copy on write to allocate new element)
<lucid_0x80> Memory Allocation
<lucid_0x80> LLVM - Clang
<lucid_0x80> etaga onnan danisma :-D
<lucid_0x80> marlin burdasan?
<marlin> :Dhe buray
<lucid_0x80> elaa
<marlin> burdayam :)
<marlin> sene gelirdim ki slacka yazim gordum mesjlar geldi ircden))
lucid_0x80 is now known as dumenci
<marlin> nevaxt basliyirsan
<dumenci> indi 2 deqiqeye
<dumenci> baslayiram
<dumenci> ascii
<dumenci> sen zooma qosula bilirsen?
nesibeyyubov has joined #lowempire
nesibeyyubov has quit [Remote host closed the connection]
<ascii> he ne olubki?
<dumenci> okay
<dumenci> indi link atacam
<dumenci> youtube-a
<dumenci> stream
<dumenci> ede bilmirik :-D
<dumenci> nese
<ascii> mezelenme? niye?
<dumenci> zoomda nese tapa bilmirik birdeq
<ascii> mezelensen Shakogil hemiwe elib axi ele
<marlin> alinmir ki?
<marlin> basdadi diyesn
<ascii> ela))
<marlin> lucid biraz zoom elesen
<marlin> 720 iynne baxdan yaxsi imis)
ascii has quit [Ping timeout: 264 seconds]
ascii has joined #lowempire
marlin has quit [Ping timeout: 260 seconds]
marlin has joined #lowempire
<marlin> geldik gorutine :)
<marlin> interntim olubee)))
<marlin> :D
<ascii> live getdiki mellim :DD gizli sobet gedir uje?)))
<dumenci> heee uje private sohbetler gedir :-D
<dumenci> qosulda isteirsen
<dumenci> qebul ederemseni
<marlin> he dayadni artiq?))
<marlin> men yene try edecem olmasa cixcam))
<ascii> thanks man :D
<marlin> 560 kb bes eliyer zoom webe :D?
<marlin> hee ela idi lucid
<marlin> ejdahsan
<ascii> xaxaxa ala besdide :D
<marlin> :))))
<ascii> dumenci trenajoruvuda reklam elirsen a :DDD
<dumenci> ahahaha :-D
<dumenci> babatdi? :-D
<ascii> xaxaxaxa
<ascii> mellim lovhen zadin varki evde :D babat
<dumenci> heeee
<dumenci> :-D
marlin has quit [Quit: Leaving]
<ascii> xaxaxax,Azerbaycanda sennen bashqa kernel development eliyen varki soruwsunda? :DDDDxaxaxaxax
<ascii> dumenci vse innen bele sen oldun goup grup lidee :DDDDD
<dumenci> shahaha men coxdan oranin qrup lideriyem
<dumenci> :-D
<ascii> :DDD bilem, bildinde neye gore direm :DDD
<dumenci> ahahah hee :-D
<ascii> mellim opuremde :D cox sagol:)
<dumenci> acinnan olurem -D
<dumenci> :-D
<dumenci> 4 saatdi
<ascii> etaga mende :DDDD
<dumenci> mende opurem tesekkurler
<ascii> xaxaxa
<dumenci> axira kimi qaldiz
<ascii> be ne qalmaliyigda mellim ,yanindayug hemiwe :D
marlin has joined #lowempire
marlin has quit [Remote host closed the connection]
marlin has joined #lowempire
<marlin> men day live ya qeder qala bildimde :) zoom nese dedi men catdira bilmirem cox suretlidir ))
<marlin> ama ela idi, cox super ejdahsan cox sagol mellim :)
_whitelogger has joined #lowempire
lucid_0x80 has joined #lowempire
dumenci has quit [Ping timeout: 272 seconds]
ascii has quit [Ping timeout: 260 seconds]
<lucid_0x80> test
<lucid_0x80> kimse var?
<lucid_0x80> marlin
<lucid_0x80> burdasan
marlin has joined #lowempire
<lucid_0x80> marin
<lucid_0x80> marlinnnn
<lucid_0x80> burdasan?
<marlin> hee lucid burdayam
<lucid_0x80> ela
<lucid_0x80> birdene
<marlin> netersen
<lucid_0x80> tema var
<lucid_0x80> sagol shukur bro sen necesen
<marlin> yatdim durdum cimdim indi geldim
<marlin> he buyur
<marlin> sagliq
<marlin> ne olmusdu
<lucid_0x80> bayaq
<lucid_0x80> Shahriyarnan
<lucid_0x80> goya baxdige
<lucid_0x80> goroutines-e
<lucid_0x80> sen ona baxdin?
<lucid_0x80> o hisseye
<marlin> hee bildim qulaq asirdim ele o hisseye menede qarisiq geldi acigi men gorotunie leri skip eledim, dedim sonra focus olub baxcam
<marlin> ama nese qeribe idi
<marlin> yeni goya baxadan
<marlin> sizde danisanda maraqli
<lucid_0x80> yox
<marlin> idi yene o hissye baxcam
<lucid_0x80> goroutines
<lucid_0x80> ele deil
<lucid_0x80> biz sehv oxuduq :-D
<lucid_0x80> men sonra yene oxudum
<marlin> )))
<lucid_0x80> orda shakonun dediyinnen
<lucid_0x80> men
<marlin> mezelenmede
<lucid_0x80> ele basha dusdumki,
<lucid_0x80> goroutines
<lucid_0x80> blok olunan threadin
<lucid_0x80> ustune assign olur
<marlin> :)nece olub ki?
<lucid_0x80> teze goroutines
<lucid_0x80> ancaq indi oxuyuram ki
<marlin> aha nese ele deyirdiz
<lucid_0x80> meselen birdene threadin ustunde
<lucid_0x80> 10 dene goroutine var
<marlin> aha
<lucid_0x80> goroutinede
<lucid_0x80> birdene syscal bloklansa
<lucid_0x80> teze thread yaranir
<lucid_0x80> avtomatik olaraq
<lucid_0x80> bloklanmasa oldugu kimi icra olur
<marlin> aha
<marlin> onda her gorotunie ucun teze thread yaranir?
<lucid_0x80> source kodu oxuyuram hal hazirda
<lucid_0x80> men bele basha dusdum
<lucid_0x80> meselen thread1de
<lucid_0x80> 3 dene goroutine var
<marlin> aha
<lucid_0x80> deyek
<lucid_0x80> thread1-de bu goroutinelerin hansininsa
<lucid_0x80> icinde
<lucid_0x80> blocking olsa
<lucid_0x80> deyek ki
<lucid_0x80> goroutine1(); goroutine2(); goroutine3();
<lucid_0x80> goroutine1() icra olunur
<lucid_0x80> sonra goroutine2();
<lucid_0x80> goroutine2 nin icinde
<lucid_0x80> nese
<lucid_0x80> blocking olsa
<lucid_0x80> goroutine3 ucun
<lucid_0x80> teze thread yaranir
<lucid_0x80> ve icra olunmaga baslayir
<marlin> cox maraqli yanasiblare
<marlin> bilirdim ki nese hoqqadir, ama basa dusmurdum tam vaxt ayirmirdim acigi
<lucid_0x80> bla
<lucid_0x80> bu internetde
<lucid_0x80> yazilan
<marlin> bes onlar arasinda swithc nece bas verir
<lucid_0x80> melumatlar vare
<lucid_0x80> 60%i sehvdire
<marlin> coxdur bro fikir verme
<lucid_0x80> proqramlasdirma dilleri haqqinda
<marlin> ele seyler coxdur, dezolu informasiylar
<lucid_0x80> yoxe sehvdir
<lucid_0x80> sehv yazirlar
<marlin> hee hemise ele olurda
<marlin> melumtat coxdur bu deqyq ama duz yazan azdir
<lucid_0x80> gozle indi analiz edirem source kodu
<lucid_0x80> sen bekarsan?
<marlin> normaldir yeni
<marlin> indi bir kod analiz edirem pr var ona baxiram bele ne isteyirdin ki denen bitirecm indi onsuzda
<lucid_0x80> okay
<lucid_0x80> analiz etdikce
<lucid_0x80> yaziram bura
<marlin> gorotunite le bagli
<lucid_0x80> review edek
<marlin> aha gozde usaqlarida cagirim
<lucid_0x80> okay
<marlin> okay
<lucid_0x80> internetim o qeder suretlidir ki gonun source kodu yuklenib qutarmir :-D
<marlin> :) ejdaha interne mexususuq
lucid_0x80 has quit [Remote host closed the connection]
lucid_0x80 has joined #lowempire
<lucid_0x80> marlin
<lucid_0x80> burdasan?
<lucid_0x80> ahaha
<lucid_0x80> eyni videoda
<lucid_0x80> izah etdiyim
<lucid_0x80> kmii
<lucid_0x80> yaziblar :-D
<lucid_0x80> duz imish
<lucid_0x80> streamda izah etdiyim
<lucid_0x80> kimidir
<lucid_0x80> wait queue var
<lucid_0x80> ve running queue var
<marlin> lucid cay goturudum
<marlin> geldim
<marlin> onda duz demisen de ))
<marlin> niye naraht oldun ki
<marlin> :)
<lucid_0x80> texminen he duz demisem :-=D
<marlin> diyan indi onalrdi ki queu nedir ki?
<marlin> biim bildiyuimiz epol kim?
<lucid_0x80> birdene queue runningdir
<marlin> kimi?
<lucid_0x80> biride
<lucid_0x80> wait queue
<lucid_0x80> onlarin icinde de
<lucid_0x80> goroutineler
<lucid_0x80> olur
<lucid_0x80> goroutineler block olanda gelir dusur
<lucid_0x80> wait queue-a
<lucid_0x80> hansisa threadin ustunde icra olanda da
<lucid_0x80> running queue-da olur
<marlin> biri running dir birise waiting, hansini icinde olur her ikisinin?
<marlin> gorotonite niye block olsun orasin anlamdimm?
<marlin> heee
<marlin> okey queue sohbetini tutdum
<lucid_0x80> goroutine ona gore
<lucid_0x80> blok olurki
<lucid_0x80> sen goroutine icine yazmisan meselen
<lucid_0x80> goroutine1() { open("file.txt", NON_BLOCK); }
<lucid_0x80> burda fayl oxunmaga gedende block olmur?
<lucid_0x80> NON_BLOCK olmamalidir sorry sehv yazdim
<lucid_0x80> goroutine1() { open("file.txt"); }
<lucid_0x80> it should be like this
<marlin> aha
<lucid_0x80> goroutine1
<lucid_0x80> bu fayl oxunanda
<lucid_0x80> blocked olur
<marlin> blocked olur?
<lucid_0x80> bunlar scheduler yaziblar
<lucid_0x80> heee
<lucid_0x80> cunki sen 10 gb
<lucid_0x80> fayl oxuyursan axi
<lucid_0x80> gozlemelisen
<lucid_0x80> fayl oxunsun
<marlin> aa onun hec bir seyi yoxdur ki non blocking olsun?
<lucid_0x80> non blockingi
<lucid_0x80> goroutine
<lucid_0x80> ile edirlerde
<marlin> hee okey okey aydidnir dogrusan
<lucid_0x80> cox
<marlin> bes 10 gb fayli gozleyceksen sen?
<lucid_0x80> ejdaha ideal
<lucid_0x80> dusunublere
<lucid_0x80> yox
<lucid_0x80> gozlemeyeceksen
<marlin> onda gozlmek olmayacqda
<lucid_0x80> scheduler blocking goren
<lucid_0x80> kimi
<marlin> aha
<lucid_0x80> bu goroutinei
<lucid_0x80> elave edecek
<lucid_0x80> wait queue-a
<lucid_0x80> gedib novbeti goroutinei
<lucid_0x80> cekib
<lucid_0x80> baslayacaq icra etmeyue
<lucid_0x80> bitmish
<lucid_0x80> goroutinei
<marlin> aha wait queunu kimse gedib check edir?
<lucid_0x80> aha
<lucid_0x80> thread ozu edir
<marlin> okey bes main applciation ozu gorotunie dir sence?
<marlin> bes biz gortunie yazmasaq o onda adi blocking kimi gedecekde
<marlin> birinci cumlem eslinde duz olmalid
<marlin> main application adi bir thread-de isleycek
<lucid_0x80> he
<lucid_0x80> main thread ozude
<lucid_0x80> bir thread
<lucid_0x80> sayilir
<marlin> sen istedyin geder bildiyim qeder gorotuniler cixarda bilersen
<marlin> maraqli duzeldibler cox qerbidir
<lucid_0x80> 2. Goroutine (G) hand-off (G.nextg). Worker threads (M's) frequently hand-off runnable goroutines between each other, this may lead to increased latencies and additional overheads. Every M must be able to execute any runnable G, in particular the M that just created the G.
<marlin> orda chanllerde var
<lucid_0x80> Every Go program is also given an initial Goroutine (“G”), which is the path of execution for a Go program. A Goroutine is essentially a Coroutine but this is Go, so we replace the letter “C” with a “G” and we get the word Goroutine. You can think of Goroutines as application-level threads and they are similar to OS Threads in many ways. Just as OS Threads are context-switched on and off a core, Goroutines are context-
<lucid_0x80> switched on and off an M.
<marlin> aaaaa super sohbetdir
<lucid_0x80> buna bax
<lucid_0x80> The last piece of the puzzle is the run queues. There are two different run queues in the Go scheduler: the Global Run Queue (GRQ) and the Local Run Queue (LRQ). Each P is given a LRQ that manages the Goroutines assigned to be executed within the context of a P. These Goroutines take turns being context-switched on and off the M assigned to that P. The GRQ is for Goroutines that have not been assigned to a P yet. There is a process to move
<lucid_0x80> Goroutines from the GRQ to a LRQ that we will discuss later.
<lucid_0x80> Waiting: This means the Goroutine is stopped and waiting for something in order to continue. This could be for reasons like waiting for the operating system (system calls) or synchronization calls (atomic and mutex operations). These types of latencies are a root cause for bad performance.
<lucid_0x80> Runnable: This means the Goroutine wants time on an M so it can execute its assigned instructions. If you have a lot of Goroutines that want time, then Goroutines have to wait longer to get time. Also, the individual amount of time any given Goroutine gets is shortened as more Goroutines compete for time. This type of scheduling latency can also be a cause of bad performance.
<marlin> prosta men pythonla qarisidiram temalari vallah, python da bu bele deyil deyene mene qeribe gelir, ele bilirem hamsi eyni olmladir, gzode oxuyum bunalri
<lucid_0x80> heee
<lucid_0x80> pythonda
<lucid_0x80> tamam ferqlidir
<lucid_0x80> lool :-D
<lucid_0x80> eyni men shusha
<lucid_0x80> ucun
<lucid_0x80> dusunduyum
<marlin> onda async await keyword olmadan implemnt edibler
<lucid_0x80> conceptdiye
<lucid_0x80> etdikler i:-D
<lucid_0x80> heee burda async await
<lucid_0x80> ele goroutinedir
<marlin> cox qeribedir cox qeyri adi yanasiblar
<lucid_0x80> cox
<lucid_0x80> dehset
<lucid_0x80> tema
<lucid_0x80> etaga
<lucid_0x80> eyni menim dusunduyum
<lucid_0x80> seydir
<lucid_0x80> gozle tam oxuyum
<lucid_0x80> bitirim
<lucid_0x80> izah edecem
<lucid_0x80> temani :-D
<marlin> :)aha yaxsi bas getsin ora snede))
<marlin> men 3 gun bundan qabag baxirdim saxladim kecdim basqa mvozuya dedim bu disscuing teleb edir, oxumaqla cetin olacq
<marlin> :)
lucid_0x80 has quit [Remote host closed the connection]
lucid_0x80 has joined #lowempire
<lucid_0x80> menti nedir marlin
<lucid_0x80> M threaddir
<lucid_0x80> M baslayir islemeye
<lucid_0x80> cox asan
<lucid_0x80> men fikirlesdiyim cure fikirlesibler ancaq biraz
<lucid_0x80> ferqli o terefi dusunmemisdim
<lucid_0x80> men
<lucid_0x80> men nece dusunmusdum
<lucid_0x80> demeli
<lucid_0x80> proqram baslayir islemeye
<lucid_0x80> birdene main thread olur
<lucid_0x80> main threadin icinde
<lucid_0x80> birdene queue olur
<lucid_0x80> oda running queue-di
<lucid_0x80> onun icine sen Goroutineleri yigirsan
<lucid_0x80> yeni meselen
<lucid_0x80> sen bele bir kod yazmisan
<lucid_0x80> fn goroutine1() { open("file.txt", NON_BLOCK); }
<lucid_0x80> bu non blockingdir
<lucid_0x80> yeni burda open syscalli bloklanmayib
<lucid_0x80> amma sen file.txtnin oxunmasin
<lucid_0x80> gozlemelesin bu halda
<lucid_0x80> M1 (thread 1)
<lucid_0x80> goturur bu goroutine1i
<lucid_0x80> oz daxilinde
<lucid_0x80> atir
<lucid_0x80> birdene
<lucid_0x80> queue-a
<lucid_0x80> waiting_queue-a
<lucid_0x80> sonra kecir diger goroutineleri icra etmeye
<lucid_0x80> sen eger
<lucid_0x80> hansisa goroutine icinde
<lucid_0x80> blocking syscall istifade etsen
<lucid_0x80> scheduler ne edir
<lucid_0x80> meselen yazmisan
<lucid_0x80> fn goroutine2() { open("file.txt"); }
<lucid_0x80> burda ne bas verir
<lucid_0x80> open funksiyasina gore
<lucid_0x80> M1 thread bloklanir
<lucid_0x80> cunki threadin isi dayanir
<lucid_0x80> gozleyir opennen cavab gelsin
<lucid_0x80> bunu goren scheduler
<lucid_0x80> goturur M1 threadinin ozunu
<lucid_0x80> atir global queue-a
<lucid_0x80> M2 threadi yaradir
<lucid_0x80> ve
<lucid_0x80> yeni goroutineleri
<lucid_0x80> o threadlerin ustunnen
<lucid_0x80> icra etmeye baslayir
<marlin> onda bir threading icinde queue olur nqeder gorotunie varsa hamsini yigir o queue, ve hemin hazirda geden threadin icinde gorotune yazsan onlar islese ardicil olaraq davam elese, ve her hansi bir funkisya yazsan ve blocking olsa o thread onda dayanir, yeni trhead yaranir he? bes o evvelki threading icinde ki gorotuniler ne olur? kecir teze threade?
<marlin> hee axirda yazmisan indi gordum
<marlin> onda beledir ki eger gorotuniler lazim olan yerde istifade edekde,
<marlin> meselen her hansi non blocking I/O emeliyat olsa onun ucun elverislidirde
<marlin> ve hemin I/O biri blocking olsa hemin thread dagilir
<marlin> yeni gorotuine olmasada
lucid_0x80 has quit [Ping timeout: 240 seconds]
marlin has quit [Ping timeout: 256 seconds]