Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2017-09-21 00:00:00Z and 2017-09-22 00:00:00Z
<heinrich5991> Learath2: you should learn a functional language as well, it changes the way you think :)
13:21
<Ryozuki> hehe
13:21
<Ryozuki> i was learning nasm these lasts 2 days
13:22
<Ryozuki> (linux)
13:22
<Learath2> I've had the pleasure of working with Racket last year
13:22
<heinrich5991> deen: why C++14 as opposed to C++11? ^^
13:22
<Learath2> functional languages and their obsession with no side effects only pure functions nearly drove me insane
13:23
<heinrich5991> try to embrace it :) don't work against it, try to understand how they work
13:23
<Learath2> i understand how they work and i don't like it
13:23
<heinrich5991> heh, that's a bold statement
13:24
<Learath2> the extremes of everything is stupid, the obsession with OOP in java is retarded, the obsession with having no state in functional languages is also stupid
13:25
<heinrich5991> I don't think you understand how they work; I don't think I understand how they work
13:27
<Learath2> heinrich5991: what is there not to understand? they define functions in the mathematical sense
13:27
<heinrich5991> to understand how you would write programs in it
13:28
<Learath2> makes them good for mathematical concepts but also inconvenient to code on without changing your entire perspective + are not very indicative of how cpu's compute stuff
13:28
<heinrich5991> "inconvenient to code on without changing your entire perspective"
13:28
<heinrich5991> that's what you should try ^^
13:28
<Learath2> i
13:28
<Learath2> i'd rather keep my perspective == the cpus perspective
13:29
<heinrich5991> you can keep that as well
13:29
<heinrich5991> but broaden your horizon ^
13:29
<heinrich5991> ^
13:30
<Learath2> I mean if you have the time, sure they are nice toys to play around with
13:31
<heinrich5991> don't think about them like that
13:31
<Learath2> don't expect them to perform well or be convenient for using as a general language
13:31
<heinrich5991> try to approach new things without prejudice ^^
<Learath2> heinrich5991: i approached it without prejucide when i used racket, i formed some conclusions which are "they are not performant, not memory efficient, not good at writing general programs, are nice to express mathematical constructs in"
13:34
<heinrich5991> I'd say 3 is wrong, they're good at writing general programs
13:34
<Learath2> either haskell or rust is next on my list so it's not like i scratched them off completely
13:36
<heinrich5991> haskell is also at most one category slower than C
13:40
<Learath2> heinrich5991: it's not haskells fault that it's slower, recursions are not performant and hard to optimize, functional languages use a lot of it
13:40
<heinrich5991> haskell can optimize them away
13:41
<Learath2> some of them surely
13:42
<heinrich5991> also, function calls aren't that expensive
13:42
<heinrich5991> they compile to a direct jump :) that can be predicted
13:43
<Learath2> they compile to a call unless the compiler does some clever optimizing, calls are atleast 2x worse then jmps
13:45
<Learath2> think llvm/gcc can do tail recursion nowadays
13:46
<heinrich5991> on cpu level, call is just a push and a jmp if you want to talk in asm terms
13:46
<heinrich5991> but it's a direct jump so it can be predicted
13:47
<heinrich5991> the worst thing for modern processors is mispredicted jumps AFAIK
13:49
<Learath2> if it's tail recursion it just gets optimized to a loop anyways
13:49
<Learath2> non-tail recursion should cause lots of mispredicted jumps
13:50
<heinrich5991> no
13:50
<heinrich5991> whether tail or non-tail recursion doesn't matter for mispredictions
13:50
<heinrich5991> the if branches are what matters
13:51
<Learath2> true nvm
13:52
<Learath2> could run out of cpu cache \o/
13:53
<Learath2> the point is it's hard to think what would be performant while thinking in terms of a functional language
13:56
<Learath2> my turn to ask questions: heinrich5991 why do you think that they are good for writing general programs while also claiming you don't understand much about them?
13:58
<heinrich5991> because I know people who are very fluent in haskell
14:01
<Learath2> and do these people use haskell day to day for everything?
14:01
<heinrich5991> this one person actually only uses haskell
14:01
<heinrich5991> and I try to get them to learn a bit more about C, but just like you, they think they don't need it ^^
14:02
<Learath2> can he match my claim of "I can do anything the CPU allows in C"?
14:04
<heinrich5991> can he match the claim you tried to make up to be unmatchable?
14:04
<heinrich5991> but probably yes
14:04
<Learath2> apparently haskell can now do asm and your friend is a compiler
14:05
<heinrich5991> asm isn't in C, do you want to use compiler extensions?
14:06
<Learath2> I'm pretty sure I can hack up something in C to move the EIP around
14:08
<Learath2> I'm fairly confident in my claim that nothing matches C that is higher level then C in flexibility thus generality
14:08
<heinrich5991> anyway, I'm sure he can similarly make up a claim that tries to be unmatchable with C
<Learath2> rust has the most obnoxious memory-safety rules, thus less flexible. c++ is basically c with classes that decided it no longer wanted to be c with classes so got their own compiler, but i'll give you that one
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology; often written as SMART) is a monitoring system included in computer hard disk drives (HDDs) and solid-state drives (SSDs) that detects and reports on various indicators of drive reli...
<Learath2> heinrich5991: no i mean, your argument that "it is not possible to craft..." is completely correct in this case because haskell does allow non-pure functions
14:55
<Ryozuki> that looks good
14:55
<heinrich5991> the function is pure though
14:55
<Learath2> Ryozuki: i thought so too but it takes some time to get used to having a billion shortcuts
<Learath2> heinrich5991: that function might be but haskell does allow non pure functions which means it's probably impossible to craft a problem such that it's solvable in C but not in haskell
14:57
<heinrich5991> dunno, depends on what you want, Ryozuki
14:57
<Ryozuki> "suckless-tools should also be installed to enable dmenu and i3status for application launching and system information respectively. "
14:58
<Learath2> Maybe it is but I do not possess another quality of haskell that limits it which i can use to craft said problem
14:59
<Learath2> Ryozuki: well using a tiled wm means you have no desktop and they work better on bigger screens
14:59
<Ryozuki> i have a 24' and a 21' screen
15:00
<Learath2> i reccommend it more then gnome but i'd reccommend anything more then gnome :P
15:00
<Ryozuki> hmm
15:00
<heinrich5991> gnome is also fine
15:00
<heinrich5991> I also know a lot of people who use that
15:00
<Learath2> yeah my issues with it is purely from a principle standpoint
15:01
<Learath2> i don't like the bloat and i don't like that it's helping systemd take over the world
15:01
<Learath2> kde is acceptable, openbox and lxde look cute but i've never used them personally
15:02
<Learath2> Ryozuki: you need to try a lot of them before you choose :P
15:02
<Ryozuki> Learath2: i see you dislike a lot of things xD
15:03
<Learath2> I like a lot of things aswell so they balance out to make me a normal human being :P
<Learath2> the thing is I don't like some things that are common nowadays, e.g. gnome-systemd. So it seems like I am a bitter cunt who doesn't like anything new
15:17
<Learath2> and sometimes i'm quick to judge things so I like to discuss them over with other people to make sure I'm not missing something
Ulrich Drepper recently approached us asking if
we would be interested in publishing a lengthy document he had written on
how memory and software interact. We did not have to look at the text for
long to realize that it would be of interest to many LWN readers. Memory
usage is often the determining factor in how software performs, but good
information on how to avoid memory bottlenecks is hard to find. This
series of articles should change that situation. Click below (subscribers
only) for the first installment.
Ulrich Drepper war der Chefentwickler und Verwalter des „GNU C standard library“-Projektes, glibc.
Drepper erlangte sein Diplom im Fach Informatik an der Universität Karlsruhe. Ab 1996 arbeitete er für die Firma Cygnus Solutions. Von 1999 b...
16:26
<deen> after my audio has problems on windows and android I'm not that unhappy with pulseaudio anymore
16:26
<heinrich5991> how dare you not insult poettering's software
after having a short look it should be no problem to replace our semaphores with condition_variables, we might want to think about some wrappers or classes we want for threading tho