<<22-07-2012>>

00:01:48*Boscop quit (Ping timeout: 255 seconds)
00:02:25Araqbtw with 'raiseHook' plus a stack of callbacks (with closures) we can get Lisp's condition system :-)
00:02:44Araqand it still maps nicely to C++ :-)
00:04:03zaharyyeah, it would be really cool - I remember the axis of eval blog you posted once about it :)
00:05:29Araqfor the others then: http://axisofeval.blogspot.de/2011/04/whats-condition-system-and-why-do-you.html
00:05:35Araqhere is it again
00:10:55zaharybtw yield is supposed to come to javascript at some point in the future
00:10:55zaharyI stumbled on this library, which is a perfect match for what I've been trying to explain before about async futures + yield
00:10:56zaharyhttp://taskjs.org/
00:11:04zaharyalso this https://github.com/mozilla/task.js
00:13:29AraqI still don't get the asyncio stuff
00:14:01AraqI mean, I'd rather have Go-like lightweight tasks/threads/whatever
00:14:10Araqand do sequential programming with those
00:14:31Araqit's not like you can do anything useful when waiting for a webpage to arrive ...
00:15:40Araqnode.js requires manually CPS coding
00:15:46*q66 quit (Quit: Leaving..)
00:15:50Araqit's obvious that's just stupid
00:17:26zaharywell, doesn't this yield + futures code look exactly like synchronous programming to you? lightweigh tasks for me means "execution stacks that don't consume too much memory" and generators/couroutines are supposed to be exactly that
00:17:36Araqah but that's what taskjs is about
00:17:43Araqso yeah I agree
00:18:55Araqspeaking of which
00:19:08Araqon a 64bit machine you could have 4 billion stacks of size 4GB
00:19:18Araqthe address space allows for that I mean
00:19:42Araqso why is it that we need segmented stacks for lightweight concurrency?
00:19:52zaharyyou need 3 components for this to work - async event loop that dispatches completion events to their coroutine, working coroutines and a good futures library with all the combinators that are super in creating algorithms for manipulation tasks
00:20:01zaharysuper useful
00:25:11zaharyabout the unlimited threads on 64-bit system… I've thought about this too - I don't know enough about all the costs of additional threads for the OS scheduler, etc
00:26:17zaharybut in practice if you look at the web servers market for example, it's clear that the async servers are doing better performance-wise even on 64bit systems
00:31:24Araqtrue but that may be because they better interact with the OS: they tell the OS "look I'm waiting for these things" whereas the thread based solution does that implicitely
00:34:47Araqbut I have to sleep now
00:34:49Araqgood night
00:35:42zaharygood night
00:39:50*Bosc0p is now known as Boscop
00:39:50*Boscop quit (Changing host)
00:39:50*Boscop joined #nimrod
00:58:57*Amrykid quit (Quit: Goodbye!)
01:01:37*Amrykid joined #nimrod
01:01:45*Amrykid quit (Changing host)
01:01:45*Amrykid joined #nimrod
05:33:08*Boscop quit (*.net *.split)
05:33:09*jyyou quit (*.net *.split)
05:33:09*zahary quit (*.net *.split)
05:33:10*Trix[a]r_za quit (*.net *.split)
05:33:10*CodeBlock quit (*.net *.split)
05:33:11*comex quit (*.net *.split)
05:33:13*Reisen quit (*.net *.split)
05:33:13*Nafai quit (*.net *.split)
05:33:13*ccssnet quit (*.net *.split)
05:33:14*silven quit (*.net *.split)
05:33:14*Araq quit (*.net *.split)
05:33:15*XAMPP quit (*.net *.split)
05:33:16*fowl quit (*.net *.split)
05:33:17*shevy quit (*.net *.split)
05:33:17*mal`` quit (*.net *.split)
05:33:18*JStoker quit (*.net *.split)
05:33:18*dom96 quit (*.net *.split)
05:33:19*Roin quit (*.net *.split)
05:33:19*Amrykid quit (*.net *.split)
05:33:20*Tasser quit (*.net *.split)
05:42:47*Roin joined #nimrod
05:42:47*fowl joined #nimrod
05:42:47*XAMPP joined #nimrod
05:42:47*jyyou joined #nimrod
05:42:47*Boscop joined #nimrod
05:42:47*dom96 joined #nimrod
05:42:47*Araq joined #nimrod
05:42:47*silven joined #nimrod
05:42:47*comex joined #nimrod
05:42:47*CodeBlock joined #nimrod
05:42:47*Reisen joined #nimrod
05:42:47*Nafai joined #nimrod
05:42:47*ccssnet joined #nimrod
05:42:47*JStoker joined #nimrod
05:42:47*Tasser joined #nimrod
05:43:04*shevy joined #nimrod
05:43:04*mal`` joined #nimrod
05:43:07*Amrykid joined #nimrod
05:43:12*zahary joined #nimrod
05:43:12*Trix[a]r_za joined #nimrod
08:57:19*q66 joined #nimrod
10:51:53dom96This would be pretty cool for Nimrod's JS backend: http://www.reddit.com/r/haskell/comments/wxi3l/fay_programming_language_a_strict_subset_of/c5hbvss
12:08:25*Bosc0p joined #nimrod
12:11:04*Boscop quit (Ping timeout: 255 seconds)
13:56:06*Trix[a]r_za is now known as Trixar_za
14:02:05Araqdom96: all that it takes is proper documentation
14:02:14Araqand good compiler error messages
14:02:34dom96huh what?
14:02:37Araqwe can only translate a subset to JS anyway; 'cast' for example cannot be supported
14:02:41Trixar_zaBtw Araq, somebody finally packaged Nimrod (although the old stable) for SliTaz
14:02:50dom96oh, you're talking about that.
14:03:31AraqTrixar_za: that's .... nice I guess
14:04:13Trixar_zaYeah, seems when I don't try to strong arm the use of Nimrod into SliTaz, but rather start an open conversation (and Q&A) about it, people are more willing to accept it
14:04:18Trixar_zaPeople are weird
14:06:41Araqpeople don't actually can't grasp arguments
14:06:52Araq(lol, broken sentence ...)
14:07:35Trixar_zaYou talk like you code
14:07:36Trixar_za:P
14:07:37*Trixar_za runs
14:09:37Araqmy code is a piece of art :P
14:10:30Trixar_zahttp://listengine.tuxfamily.org/lists.tuxfamily.org/slitaz/2012/07/msg00014.html
14:10:44Trixar_zaSee - weird how it combined those two threads though
14:10:58Trixar_zaThat's what I get for clicking reply rather than starting a new thread
14:10:58Trixar_za:P
14:11:50AraqI never read what others say about nimrod :P
14:12:09Araqdanger is too high that I get annoyed
14:12:30dom96Trixar_za: Do people actually use Aporia for things other than Nimrod, because if they do then I will try to make it more saner for other common languages I suppose. :)
14:12:56dom96Mailing lists confuse the hell out of me...
14:12:57Trixar_zaNot that I would know dom96, but I use it for working with python code too
14:13:04dom96Trixar_za: cool
14:13:13Trixar_zaNah, it's my bad mailing list practices
14:13:22Trixar_zaI should rather start new threads than use reply
14:13:33dom96Why don't they create a saner viewer?
14:13:42dom96This feels like 70s technology... :P
14:13:51Trixar_zalol, it's a free service
14:14:48dom96But anyway, i'm surprised that you find Aporia better than gedit.
14:15:04Araqdom96: it's the 'search' feature :D
14:15:09Araqit kicks ass
14:15:13Trixar_zaWell, I can't use gedit with SliTaz, since gedit by design is WAY too integrated into GNOME
14:15:36Araqas it doesn't open in a window overlaying your code XD
14:15:38Trixar_zaAnd recently geany has become resources heavy and slow
14:15:56Trixar_zaAnd Beaver just sucks :P
14:16:03AraqI looked at geany's source browsing feature
14:16:03dom96I see. In that case I will make sure I never do anything to integrate Aporia at all with GNOME :D
14:16:23dom96Araq: Actually, the new gedit has that feature now too.
14:16:28Trixar_zaGTK is alright, since that's what we use :P
14:16:34dom96But the stupid thing disappears when there are no more results...
14:16:54dom96Causing you to insert many new lines into your code and causing me to get pissed off :P
14:17:04Araqthey can't even design a search widget
14:17:17Araqlike most other text editors
14:17:23dom96Araq: And you still need to test the new error list feature!!!
14:17:32Trixar_zaA feature I would like dom96, is a tabulation to spaces converter
14:17:34Araqyeah I know, sorry
14:17:39Trixar_zalike geany has. Then it can do everything I need
14:17:39Trixar_za:p
14:18:01dom96Trixar_za: Submit an issue on github and I shall get to it eventually :)
14:18:38dom96Do you just want a simple thing which basically does s/\t/ / ?
14:18:47dom96or rather a couple of spaces.
14:20:22Trixar_zaWell, the one in geany ops up and asks you how many spaces an tabulation should be replaced with
14:20:34Trixar_zapops up a dialog*
14:21:00Trixar_zaGreat, I'm speaking like Araq now
14:24:13AraqTrixar_za: I had 3 beers already :P
14:24:37Araqso I'm allowed to stutter
14:25:01Trixar_zaHopefully you're not at the drunk-dialing stage
14:25:12Araqfar from it
14:25:26AraqI'm at the "dont care about single letters" stage
14:39:12dom96cool: http://hg.slitaz.org/nim-tools/file/088ebb05975c
14:39:15*dom96 looks at the code
14:39:54dom96Araq: Look what he wrote: http://hg.slitaz.org/nim-tools/file/088ebb05975c/tazpkg-web/i18n.nim
14:40:34Trixar_zaHis understanding of Nimrod amazes and confuses me at the same time :P
14:41:13dom96He could use Nimrod's templating system for this: http://hg.slitaz.org/nim-tools/file/088ebb05975c/tazpkg-web/page.nim
14:41:36dom96Trixar_za: Does he hang out on IRC at all?
14:41:59Trixar_zaSometimes. He's more active on the forums though
14:42:24dom96Does he know about Nimrod's forum?
14:42:30Trixar_zaYes
14:42:46Trixar_zaI pointed it out once as an example of what Nimrod can do
14:44:14dom96This is pretty cool.
14:44:25dom96I need to check out SliTaz sometime.
14:44:49Trixar_zalol, you are idling in the channel
14:45:09Trixar_zaWe're actually having a cross-pollination of the two projects now
14:45:17dom96I idle in way too many channels :P
14:49:50dom96Trixar_za: Can SliTaz run on ARM? :P
14:50:04Trixar_zaThey're experimenting with the idea @ dom96
14:50:26Trixar_zapankso also wrote some cross-compiling tools
14:50:46dom96From the description on the site it seems like it would be a perfect distro for the Raspberry Pi.
14:53:30*shevy quit (Ping timeout: 264 seconds)
15:07:14*shevy joined #nimrod
15:07:27Araqnice ... you can write a forum in nimrod ...
15:07:39Araqthat's surely way more impressive than a *compiler* ...
15:07:54dom96of course it is. :D
15:08:17Araqor the whole stdlib including a world-class garbage collector ...
15:09:10Trixar_zaWhich means absolutely nothing to the layman
15:09:28Trixar_zaYou have to show the natives pretty trinkets to get their attention
15:10:03AraqI see alright
15:24:59dom96Trixar_za: What GTK theme, icon theme et al. does SliTaz use in this screenshot? http://upload.wikimedia.org/wikipedia/commons/e/ee/Slitaz-4.0.png
15:26:10Trixar_zaNot exactly sure dom96. The icon theme is the new SliTaz standard, but it's based on the Ubuntu boxes icon theme I think
15:26:30*dom96 likes the look of it heh
15:26:40dom96I want to copy it for my desktop now...
15:26:47Trixar_zaThe panels are using the SliTaz Brown theme
15:27:04Trixar_zaAnd it's two Lxpanel panels :P
15:27:42Trixar_zaIt also uses the polar mouse cursor theme, which you don't see in the screenshots
15:27:54dom96hrm, i'm running xfce. Any ideas how to get the exact same look and feel? :P
15:29:46Trixar_zaAh
15:29:48Trixar_zaI checked
15:29:55Trixar_zaThe icon theme is called Faenza
15:31:47Trixar_zaAs for the Brown theme, it's mostly just an orange and brown replacement of the standard Clearlooks
15:31:55Trixar_za:P
15:32:14dom96I see.
15:32:16dom96thanks
15:34:58dom96Faenza is quite nice :D
15:36:40Trixar_zaIt's better than the old one we were using :P
15:37:20Trixar_zaWhich was like a standard gtk theme
15:37:21Trixar_zaI forget it's name
15:37:22Trixar_za:P
15:37:44Trixar_zaTango
15:37:48Trixar_zathat was it's name
15:43:17dom96ooh, Aporia has nice icons now too :P
15:44:26Trixar_zaYeah, I kind of just added that one from the Faenza icon set
15:44:26Trixar_za:P
15:44:28*apriori_ joined #nimrod
15:45:20apriori_hey guys
15:45:31Trixar_zaHey apriori_
15:45:34apriori_did something change with the type system in the last say 2 weeks?
15:46:12apriori_I've got a strange case in which nimrod seems to implicitly cast a cint into int and won't allow a call to a function which takes a cint
15:46:39dom96Yes, new "integer promotion" rules have been introduced
15:47:18apriori_so.. I guess one should only use cint on external interfaces then and rather use normal ints in new code?
15:48:59dom96I think so. Take a look here for more info: http://forum.nimrod-code.org/t/48
15:49:18apriori_dom96: thank you
15:49:27dom96Unsigned ints are also available now. So you may need to use cuint in some places.
15:49:52dom96It depends on what you are wrapping. In normal Nimrod code you probably should only use only the int types.
15:50:26apriori_well, this results in some type inconsistenties
15:50:49apriori_say, I wrap OpenCL, which has several functions taking ints (one needs cint for the wrapper)
15:51:06apriori_with the current promotion rules I can't reuse the type aliases used in the wrapper
15:51:19apriori_and need to "guess" what happened to those types used in the interface
15:52:48dom96I think Araq is still looking for feedback on this, I recall him saying that if it becomes too much of a pain he will remove it.
15:53:14dom96You're going to have to wait until he shows up unfortunately. I'm not sure if he's here or not.
15:54:21apriori_okay
15:59:45Trixar_zaHe may be passed out by now
15:59:59Trixar_zaWe all know Germans are weak drinkers :P
16:00:08apriori_Trixar_za: he drunk?
16:00:21Trixar_zaLast we heard, he was on 3 beers
16:00:24apriori_Trixar_za: and.. I'm half-german, too ;)
16:00:51dom96The Polish are obviously the best drinkers. :P
16:01:01Trixar_zaNope, South Africans are
16:01:02Trixar_za:P
16:01:20apriori_don't try to compete with russians
16:01:22Trixar_zaAlthough we sometimes voluntarily go sit under the table
16:01:25Trixar_zaEspecially the women
16:04:06apriori_I was once invited to a drink by a russian group... 4 people in total
16:04:42Trixar_zaOuch, Russians are in a league of their own
16:05:01Trixar_zaAlthough I do admit to rolling around in the snow naked once
16:05:15apriori_after 3 series of 20 tequila shots and 3.5 l bacardi cola I had to give up.. an really, I was totally beaten by a russian women of about 99 lbs
16:05:24apriori_(those amounts as a group, not only me)
16:05:46Trixar_zaYeah, Russian women can kick ass
16:08:45Araqback
16:08:50Araq(an sober :P )
16:08:54Araqdamn
16:08:56apriori_:P
16:08:57AraqXD
16:08:57apriori_fail
16:08:59apriori_:D
16:09:40Araqapriori_: the compiler used to allow implicit conversions from 'int' to 'int32' (= cint)
16:09:53Araqbut since this loses information, I disallowed it
16:10:14Araqhowever the compiler now gives int literals their own type to lessen the pain
16:10:32apriori_yeah, literals...
16:10:47apriori_but the question, what would be the proper way to solve the showed issue
16:11:06Araqwhich issue? the wrappers need to use what's necessary
16:11:18apriori_wait a sec
16:13:16apriori_http://pastebin.com/zfCkxG8K
16:14:44Araqsorry have to go
16:14:49apriori_ok
16:14:51AraqI'll be back in about an hour
16:14:57apriori_okay
16:14:58Araqbye
16:15:00apriori_bye
16:16:03dom96hrm, that seems like a compiler bug. It happens on `clError(error)` right?
16:16:47apriori_y
16:17:06apriori_like.. it converts TCLInt (cint) -> int and can't convert that back to cint again
16:17:17apriori_which is somewhat right.. but why did it convert cint -> int in the first place?
16:17:32dom96I see.
16:17:41dom96So error is declared as: var error: int
16:17:49apriori_nope, type inferred
16:17:59dom96where is error declared?
16:18:01apriori_oh, hell no
16:18:03apriori_var error = 0
16:18:06apriori_that's the error
16:18:26dom96Yes. Just make it `0.cint`
16:18:32dom96I guess.
16:19:05apriori_yeah, that works
16:19:20apriori_so my error was the initialization.. and the resulting type inference
16:20:20dom96yeah
16:56:49dom96apriori_: Done anything interesting in OpenCL using Nimrod yet?
16:56:58apriori_not quite, due to lack of time
16:57:16apriori_currently I'm thinking about writing an API on top of my opencl binding
16:57:22apriori_because I hate the usual C-API so much
16:58:34dom96great idea.
17:00:41apriori_yeah, but I need to think more about that.. how to design it etc.
17:00:50apriori_because I can't really fix the design flaws in OpenCL
17:04:14apriori_funny thing is.. even khronos realized what a fucked up mess their C API is.. and wrote a C++ API, which heavily uses template metaprogramming to build a sane API
17:05:31dom96It seems to me that most C APIs are fucked up in some way or another unfortunately.
17:11:24apriori_yeah, well.. it actually makes sense, because the C API is usually the absolute basic layer of an API
17:11:37apriori_I really doubt that its actually intended to be used directly
17:12:45apriori_one could, of course.. but it's really unconvenient
17:13:26Araqback
17:14:16Araqso you found the problem, apriori_ ?
17:14:46apriori_Araq: yup, my error.. initialized a variable with 0 and expected it to be compatible to cint, while it wasn't
17:15:21apriori_cint->int was working, but of course not int->cint
17:24:36*Bosc0p is now known as Boscop
17:24:36*Boscop quit (Changing host)
17:24:36*Boscop joined #nimrod
17:31:06*Trixar_za is now known as Trix[a]r_za
17:49:16Araqso apriori_, I'm willing to make the codegen support opencl
17:49:29Araqbut you need to tell me what you need and test it :-)
17:49:58apriori_Araq: as germans say: "das macht ein dickes fass auf"
17:50:17apriori_I've thought about that quite a bit.. and it's really far from being easy.
17:50:50apriori_the problem was with..macros getting the AST of e.g. a block.. but maybe it will need a hell lot more context
17:50:58apriori_like the declaration of variables mentioned in the AST etc.
17:51:18AraqI'm not talking about macros
17:51:31AraqI'm talking about an 'opencl' pragma for procs
17:51:40Araqthat are compiled into some other file
17:51:47apriori_yeah, ok...
17:51:57apriori_but that's not even easy, either ;)
17:52:27apriori_for such a thing to work properly, one needs to add some annotations to that proc.. some meta information
17:53:02apriori_because, as you of course know, there is no single way to do parallelism properly.. a compiler nearly always needs some extra info
17:53:12apriori_but anyway.. I'll think more about it, when I have time.
17:57:39Araqalright
17:58:32apriori_but you're of course right.. some openmp like annotations for procs for opencl would be awesome
18:07:51Araqwell before you implement a macro that traverses the Nimrod AST and produces "opencl C", we should re-use the compiler's existing C code generator
18:08:10Araqthat's my point
18:16:57apriori_okay
18:26:40apriori_I need to go now
18:26:42apriori_bye
18:26:43*apriori_ quit (Quit: Konversation terminated!)
19:36:43*shevy quit (Remote host closed the connection)
20:15:16Araqping zahary
20:19:11zaharyhi
20:19:25AraqI'm puzzled by the DLL problems
20:19:52AraqI tested the server.nim and it failed to load nimrtl_popFrame
20:20:47Araqwell it crashed with a nil error (call to a nil proc pointer)
20:21:00Araqargh ... hard to explain
20:21:25Araqwell the problem amounts to: tinkering with this code seems to trigger "cannot load XYZ" errors randomly
20:21:41Araqit's deterministic
20:21:56Araqbut some changes trigger it
20:22:03Araqfor instance if I do in system.nim:
20:22:09Araqwhen defined(useNimRtl):
20:22:17Araq {.deadCodeElim: on.}
20:22:31Araqthen the error pops up ... which doesn't make much sense
20:23:32zaharyare you getting random failures of the system function like dlsym or just the initialization code for some proc disappears?
20:24:18Araqrandom failures of dlsym
20:27:04zaharysounds crazy
20:29:38Araqnm lists 'nimrtl_popFrame' and the client imports it too
20:29:43Araqand now it works ..
20:37:31Araqbtw I'm checking out various coroutine libraries for C/C++
20:37:45Araqas I want the stack flipping
20:38:02Araqand then I'll see how to abstract over that with languages features
20:38:28AraqI remember iterating over all bernoulli graphs in python and it was a PITA
20:38:46Araqdon't want that in Nimrod
20:44:21zaharywell, the APIs are pretty straight forward I think - asymmetric coroutines have a type like Corotoutine[In, Out], you pass them around as values and they have yield and resume methods
20:46:22Araqwell as I said I need to modify the implementation for the GC
20:46:37zaharyyou need to wrap it a little bit
20:47:34AraqI may also rewrite it in Nimrod ;-)
20:47:59zaharyif you want more code to support :)
20:48:55Araqit's likely not more than 100 lines
20:49:56Araqmost C/C++ code consists of lots of tamtam ;-)
20:50:59zaharyfibers on windows are very annoying because there is a initialization function you are supposed to call exactly once per thread
20:51:27zaharyso, if you make a dumbed down library, you must use thread local storage and less efficient creation code
20:52:37AraqI have to use thread local storage for the linked lists of stacks already
20:52:46Araqthe GC needs to traverse all the stacks
20:53:12Araqthe nice thing though is that no locks are required and we have no concurrency issues with coroutines
20:54:18AraqI think it's a fundamental error to have "leight weight" concurrency
20:55:04Araqit seems much more preferable to have coroutines + threads and not mix these two
20:55:50Araqif you conflate them a la erlang and go you have locking issues even in the "coroutines"
20:55:55Araq(if you know what I mean)
20:57:36zaharyI usually vote for plurality of implementations - the programmer (or some fancier system architect) should be educated enough to decide what's the best approach for his problem
21:03:35AraqI know that's your opinion, can't see how it applies here though
21:04:54AraqI'm arguing that coroutines + threads separated > erlang styled concurrency
21:05:56zaharywhat do you mean by separated?
21:06:40zaharythey are usually separated in the sense that when you use coroutines, you have a single thread (or multiple threads, but without data sharing)
21:07:26Araqwell yes, I'm arguing this "old" way is nice
21:08:00Araqok admittedly, erlang has no shared state so it's a non issue there too
21:08:10Araqbut Go does
21:08:22zaharywhat's special about erlang besides the message passing emphasis?
21:11:46Araqthe erlang runtime provides light weight processes
21:12:02Araqthese are implemented as coroutines running on a thread pool
21:12:37Araqwhich means that every coroutine is exposed to non deterministic behaviour
21:13:14zaharyand erlang uses cooperative scheduling?
21:14:00Araqno
21:14:30zaharyso it uses what is called green threads? the "threads" are scheduled by the erlang VM
21:14:36Araqexactly
21:15:23zaharywell, that's just regular threads with some additional diagnostics and introspection support - I'm not exited much about it either
21:15:38zaharynot to mention that languages with green threads usually have global locks and the like
21:16:05Araqthe usual argument is that their overhead is so small that you use millions of them
21:16:20Araqchanging the way to program
21:19:30zaharydunno, there is no faster way to implement preemptive scheduling than what the OS is doing (copying a bunch of registers and signal handlers)
21:20:02zaharyand million of preemptive threads is certainly not easier, but harder (but that's your point I think)
21:20:15Araq(yes)
21:20:34Araqer no not really
21:20:55Araqer yes
21:21:06zaharydata parallel code is the story where you want more threads (and possible the ability to transparently distribute computations to other machines too)
21:21:37AraqI mean cooperative is much easier than preemptive
21:21:50Araqand I think nobody disagrees really
21:22:06Araqpreemptive is of course more efficient for multiple cores
21:23:01Araqbut data parallel is only an optimization
21:23:04zaharywell, preemptive was invented to deal with blocking and bad programs (a single bad program in cooperative system brings all others to a halt)
21:23:33Araqyou could do it sequentially and in fact that would be preferable (easier code)
21:24:36Araqpreemptive introduces nondeterminism
21:24:47zaharywell, what other justifications for concurrency exist besides performance - that's the whole point
21:25:36Araqnondeterminism is far worse unless you are talking about an operating system
21:26:16zaharybut yeah - I've shown you yesterday what I believe is better than blocking multi-threaded code
21:26:47Araqfor an OS of course cooperative is stupid
21:27:32zaharyin the game engines, we try to have a replay feature where every user and network input is recorded and even tho parallelism is used in some part of the engine, you still want to have deterministic replays
21:27:44zaharyit's good for debugging and it's good for performance testing
21:29:06zaharyfurthermore, the network protocols of some games send only delta updates or commands that must have the exact same side effect on all connected systems
21:29:39AraqI can image that
21:29:51Araqwouldn't do anything else either :-)
21:30:07zaharyand yet, I've not seen a game in the recent years that doesn't max out all CPUs - as I've explained there is plenty of opportunities for data parallelism and that's where you must put your efforts
21:30:45Araqthat's new, I remember you saying the opposite
21:30:57zaharyhmm, don't think so
21:31:16Araqalright
21:31:43zaharyI explained that we dont' have "wild" multi-threading? only for specific data parallel algorithms
21:31:56Araqyeah I guess that's it
21:34:28Araqspeaking of which ... in Dialbo 3 my character is often "beamed back" a bit
21:34:46AraqI guess the server forces its world view on my machine
21:35:00Araqto prevent discrepancies
21:35:11Araqit's however quite noticable
21:35:41Araqthe speculative logic must really suck :D
21:36:00zaharyyeah, this is called client side prediction - if you waited all input to be confirmed by the server then there would be significant latency after each key stroke
21:36:28zaharyso you computer speculates what the server is going to answer, but if it didn't guess right you must fix this somehow
21:37:13zaharysome games try to gradually interpolate your position until you are aligned with the server, but obviously it really depends on lag, the accumulated error, etc
21:37:39Araqyeah I remember reading about it
21:38:00Araqwas already done back in the quake days afaik
21:38:11zaharyyep
21:38:39zaharyit's hard thing to do, really - especially with modern physics engines
21:46:16Tasserso you execute code twice - once on the client, once on the server?
21:49:37Araqquite interesting forum post has arrived :D
21:50:26Araqwe need nimbot to track the forum
21:50:34Tasserlink?
21:50:35AraqTasser: yes
21:50:44Araqhttp://forum.nimrod-code.org/t/59
21:50:56zaharywell, of course - I think there were some very old DOS games that first implemented multiplayer and it was possible for one of the clients to send over the network "I just killed you"
21:50:56dom96Araq: hehe, I was actually thinking about implementing that
21:51:42Araqdom96: I wouldn't expect anything else ;-)
21:51:53dom96:)
21:52:49zaharybtw I was about to bring 3) at some point :)
21:53:27zaharywe need a configurable copyright banner in the generated code and more liberal license for the library
21:54:03Araqboth are fine with me
21:54:12AraqBSD for the library?
21:54:30*Trix[a]r_za is now known as Trixar_za
21:54:35AraqI'd like the compiler itself to stay GPL version 2 though
21:54:36zaharymost "professional" companies use apache these days
21:54:54zaharyyeah, I agree
21:56:08Araqwhat's the difference between apache and bsd license?
21:56:35Trixar_zaWhat's with the licenses? Oo
21:56:43TasserAraq, apache adds that you may not name your fork 'nimrod'
21:56:55Tasserfor the lulz: http://blog.fefe.de/?ts=aef29160
21:57:16zaharyI'm not interested in these law details either, but it has something to do with the additional patent related texts inside it
21:57:22Trixar_zaPersonally I like the Beer License or CC0
21:57:34Trixar_zaBut I really don't like supporting stuff I create
21:57:35Trixar_za:P
21:58:34Trixar_zaBeerware*
21:59:29AraqTasser: that must be why no conservative party is left in germany ... they are all thinking too much ...
21:59:37Trixar_zaAnd the WTFPL: http://en.wikipedia.org/wiki/WTFPL
21:59:46Trixar_zaGPL compatible too :/
21:59:48dom96Trixar_za: You like all the silly licenses, eh?
21:59:54Trixar_zaYes dom96
22:00:13Trixar_zaThey're all generally public domain licenses (or anti-licenses)
22:00:19*dom96 does not really pay attention to licensing.
22:00:31dom96Because my projects are usually too small, so it doesn't matter.
22:00:56Trixar_zaThe GPL is generally permissive enough. Well GPL 2 anyway
22:01:04Trixar_zathe GPL 3 adds a few things
22:03:49Trixar_zaSometimes I just like the idea of creating something for the sake of creating it. Then I really don't care what happens to it.
22:04:04Trixar_za... somehow I may one day be a terrible father
22:05:54Araqalright I'll read some licenses and then decide
22:06:07*Araq cares about these things
22:06:28Trixar_zaWow, ZeroBin is under the WTFPL
22:08:08Araqnimbase.h could actually be public domain
22:08:14Trixar_zaThere are generally 4 choices: Apache, GPL, Creative Commons and BSD. Most other licenses are variations of them.
22:08:18Araqit's irrelevant
22:10:07Trixar_zaWhat level of control do you want?
22:10:30ccssnetArtistic 2.0 license is a decent one as well. its comparable to gpl/bsd/CC-BY-SA
22:10:48dom96THere was this website...
22:10:58dom96which was basically a nice explanation of each software license
22:11:02dom96Saw it on reddit a while ago.
22:11:30ccssnethttp://www.gnu.org/licenses/license-list.html
22:11:38ccssnetthere ^ most likely
22:11:56Trixar_zaYeah, I use the Creative Commons Attribution Share Alike license myself
22:11:59Trixar_zaFor my Wiki
22:12:23ccssnetcool. i use it for my site: atccss.net
22:12:36ccssneti use gpl-v2 for most of my scripting currently
22:12:41Trixar_zahttp://www.irc-wiki.org
22:12:42Trixar_za:P
22:13:24ccssnetyour site Trixar_za ?
22:13:30Trixar_zaI still have to fix some stuff with it
22:13:32Trixar_zaYes ccssnet
22:13:35ccssnetcool
22:13:38Trixar_zaI'm one of the founders
22:13:48ccssneti got a list of clients to add to it then i see like 5 missing already
22:14:25ccssnetill get to it later. for now bookmarked
22:14:26Trixar_zaMost of the entries need updating too
22:14:27Trixar_zalol
22:15:49Trixar_zaJust use one of the other entries as a template
22:15:58ccssnetjust worked for 5 hours in the sun pulling and cutting vines and small trees
22:16:11Trixar_zaThe main page gets updated automatically based on the categories
22:16:28ccssnetso im kinda tired and lazy atm
22:16:44Trixar_zaThat's most people including me
22:17:02ccssnetlol
22:17:39Trixar_zaI still have to work on a new theme based on Vector
22:17:45Trixar_za(the current default theme of Wikipedia)
22:19:09Trixar_zaYou know how my temper gets me in trouble with SliTaz
22:19:20Trixar_zaWell, that's how IRC Wiki got made. First boredom, then me losing my temper and making it better out of spite
22:19:47Trixar_zaNow it's the only IRC related Wiki still alive :P
22:19:49Trixar_zaSo I guess I win
22:22:39Araqbtw what's wrong with lib*.so on ios?
22:23:07Araqany reason why the guy can't use that instead?
22:23:28Araq(except that it's currently kinda broken...)
22:23:30ccssneteh?
22:23:47Trixar_zaDistribute or access?
22:24:09ccssnetlib*.so is like saying all linking or filesystem is broken
22:26:05dom96Does iOS even support *.so?
22:26:46ccssnetnever used it O:-)
22:27:01Araqit should ...
22:27:09Araqcan't image it doesn't
22:27:23dom96I guess it would be pretty weird if it didn't.
22:27:44ccssnetit possibly has some sort of high security access controls?
22:27:46ccssnetunlikely
22:27:57ccssnetlike. permision to link
22:27:59ccssnetor something
22:28:02dom96yeah
22:28:46ccssnetbut i imagine ACL has somewhat that ability depending on how the FS is setup
22:29:15ccssnetACL refering to anything GPL based
22:34:23Araqyour commit messages are too long, dom96 ;-)
22:34:23ccssnet gaze what acl
22:34:25ccssnetacl:
22:34:27ccssnetacl is a file system access control lists management program.
22:34:38ccssnetgaze what gradm
22:34:41ccssnetgradm:
22:34:43ccssnetThe userspace interface to the ACL system in grsecurity.
22:34:45ccssnetFeatures password authentication and an enabling/disabling feature.
22:34:48dom96Araq: oh? Is there a law which states I cannot make them longer than X amount of characters? :P
22:35:01Araqyes
22:35:09Araq"Added asyncio... 2 more lines" :P
22:35:42Araqnimbot watches the law :P
22:35:48ccssnetAraq: i will assume iOS uses 1 of the 2 mentioned ACL's above. check if it has the filesystem seperated for security reasons
22:35:52dom96hehe
22:36:01*dom96 needs to fix that
22:36:08dom96it should be 'x more characters'
22:36:18*dom96 isn't sure how he managed that
22:36:40Araq"2 more characters?"
22:36:58dom96That's definitely wrong too
22:37:09dom96That is what I am wondering, where is it getting the 2 from?
22:46:17ccssnetAraq: http://pastebin.com/WW9aZ11w
22:47:11Araqccssnet: thanks, but I don't care :-)
22:47:44ccssnetok
22:52:14Araqhrm I guess luacoco is the best lib
22:52:23Araqas it's from Mike Pall
22:53:03*Trixar_za doesn't know who Mike Pall is
22:53:08Araqwhich reminds me ...
22:53:21AraqI always wanted to study luajit's source code
22:53:22Trixar_zaI just won't ever work with John Murga
22:53:32Trixar_zaHe's an idiot that doesn't understand the GPL AT ALL
22:53:45Araq"Murga" sounds funny to a German :D
22:54:09Trixar_zaHe created MurgaLua which was used by Damn Small Linux for it's application development
22:54:28Trixar_zaThey modified it, but ol' Johnny boy had some weird ideas about that
22:54:42Trixar_zaHe even called the fair use of the GPL code 'illegal'
22:55:08Trixar_zaLet's just say, he's personally responsible (by his idiocy) for the demise of DSL
22:55:13Trixar_zaSo yeah, I don't like him :P
22:55:22ccssnetAraq: whats Murga mean in german?
22:55:59ccssnetTrixar_za: ya i guess that would suck
22:56:01Araqccssnet: nothing but it sounds funny
22:56:13ccssnetDSL was good. i liked lua use in it
22:56:30ccssnettinycore is interesting
22:56:38ccssnetid rather use slitaz though
22:56:38Trixar_zaAnyway, he's just my token example of when somebody doesn't understand the license they release they're software under
22:57:09Trixar_zaActually TinyCore was started by the guy from the DSL team that disagreed with Mr. Murga
22:57:22ccssnetTrixar_za: good to know
22:57:51ccssnetso two main devs for DSL?
22:57:53AraqI have to sleep now
22:57:57Araqgood night
22:58:02ccssnetgn Araq
22:58:06Trixar_zaGoodnite Araq
23:00:18ccssnetso Trixar_za, was there 2 main devs for DSL?
23:00:35Trixar_zaThere were a few
23:02:13ccssnethmm
23:02:42ccssnethave you coded in lua?
23:02:42Trixar_zaWell, actually that was one of the reasons
23:02:54ccssnetmakes sense ^
23:03:10Trixar_zaThe other was that John (other John) was too restrictive
23:03:30Trixar_zaHe had to check everything before releases
23:03:36dom96bah, the tester just fails even when there are warnings ...
23:03:54ccssnetwell they where conservatively 95% stable for that time general computing. restrictive may have been a good thing
23:04:02Trixar_zahttp://mephost.co.uk/flash/Frontier_Psychiatrist.swf <--- addictive song this
23:04:33Trixar_zaYes, but if you have to review everybody's changes before even allowing a release, then you're too restrictive
23:04:40ccssnetwhat i mean by that is it worked on 95% of the in use systems by general public
23:04:48Trixar_zaOne man with too much power is always bad :P
23:04:52dom96Trixar_za: I bet by tomorrow that song will be stuck in my head!
23:05:00ccssnetehh maybe not. security is a must. that means review of code
23:05:02Trixar_zaIt will be dom96
23:06:32Trixar_zaccssnet: But now how he did it. There is developing something in a community and then there is locking down everything out of paranoia and personally testing and reviewing everything that gets submitted
23:06:55Trixar_zaAnd say you've got a full time job and it's a pretty active Distro
23:06:59dom96Time for me to sleep too. Bye.
23:07:02Trixar_zaAnd you have 2 months between changes
23:07:02ccssnetTrixar_za: in defense for the john guy you mention being restrictive. if say for example i allowed someone to help me on a project im working on, all patches someone else contributed i would review before use.
23:07:29ccssnetTrixar_za: yea would get to be alot of work
23:08:18ccssnetgood night dom96
23:51:23*XAMPP[0] joined #nimrod
23:51:41*XAMPP[0] quit (Client Quit)
23:54:42*XAMPP quit (Ping timeout: 248 seconds)
23:59:24*XAMPP joined #nimrod