<< 30-10-2013 >>

00:02:40*Raynes_ is now known as Raynes
00:02:45*Raynes quit (Changing host)
00:02:45*Raynes joined #nimrod
00:03:33*Associat0r joined #nimrod
00:10:21*NimWolf quit (Quit: Nettalk6 - www.ntalk.de)
00:24:33*wlhlm quit (Ping timeout: 252 seconds)
00:34:28*BrazPaul joined #nimrod
00:34:51BrazPaulHi guys.
00:35:09Araqhi BrazPaul welcome
00:35:51BrazPaulthe man himself, I'm honored.
00:37:37Araqwell actually I'm sleeping ;-)
00:38:07BrazPaulnot everyone can brag about having created a computer language and made hacker news first page a couple times.
00:40:19Araqthanks
00:41:10BrazPaulnimrod features are almost my entire wish list for a computer language. I hope you don't mind the flattery.
00:44:11Araqreally? how come? we still lack row polymorphism ... ;-)
00:46:35BrazPaulI'm thinking about writing a DNS library.
00:46:52BrazPaulAny advice?
00:47:18*DAddYE quit (Remote host closed the connection)
00:47:27AraqI think there already is a DNS library somewhere, perhaps in Babel
00:49:09Araqhmm I think I'm wrong
00:54:14Araqany advice I can give is to check out the critbits.nim module, a crit bit tree is comparable to Patricia
00:57:35BrazPaulok, thanks...
00:58:31BrazPaulgithub is not on its best.
01:10:45Araqgood night
01:20:32BrazPaulgood night
01:27:02*Varriount joined #nimrod
01:27:30*Varriount quit (Client Quit)
01:33:58*xenagi joined #nimrod
01:40:36*xenagi quit (Ping timeout: 245 seconds)
01:44:09*xenagi joined #nimrod
01:50:21*DAddYE joined #nimrod
01:55:15*DAddYE quit (Ping timeout: 272 seconds)
02:28:23*BrazPaul left #nimrod (#nimrod)
02:39:12*dyu_ joined #nimrod
02:51:45*fowl quit (Quit: Leaving)
02:59:45*Varriount joined #nimrod
03:07:28*DAddYE joined #nimrod
03:07:30*DAddYE quit (Remote host closed the connection)
03:07:38*DAddYE joined #nimrod
03:10:21VarriountAnyone home?
03:11:43OrionPKyope
03:14:55VarriountOrionPK, I'm stuck in torturous maths
03:15:15OrionPKthat sucks
03:29:27OrionPKi just finished my sha1 implementation in nimrod
03:30:09*brson quit (Ping timeout: 240 seconds)
03:30:42xenaginice OrionPK
03:30:53xenagidid you do it from scratch?
03:31:24OrionPKno, it's a combination of a couple libraries I ported from C and C++
03:31:51xenagioh i see
03:31:55xenagithat makes sense
03:32:02*mflamer joined #nimrod
04:02:12*DAddYE quit (Remote host closed the connection)
04:08:46*Boscop joined #nimrod
04:08:46*Boscop quit (Changing host)
04:08:46*Boscop joined #nimrod
04:21:07*OrionPK quit (Quit: Leaving)
04:47:37*xenagi quit (Quit: Leaving)
04:52:22*mflamer quit (Ping timeout: 268 seconds)
04:56:14*Endeg joined #nimrod
05:03:34*DAddYE joined #nimrod
05:07:41*DAddYE quit (Ping timeout: 245 seconds)
05:19:40*Endeg quit (Ping timeout: 246 seconds)
05:52:48*XAMPP_ quit (Read error: Connection reset by peer)
06:04:26*DAddYE joined #nimrod
06:09:13*DAddYE quit (Ping timeout: 272 seconds)
06:30:37*Endeg joined #nimrod
07:05:18*DAddYE joined #nimrod
07:09:35*DAddYE quit (Ping timeout: 245 seconds)
07:37:50*Jackneill joined #nimrod
08:06:15*DAddYE joined #nimrod
08:10:28*DAddYE quit (Ping timeout: 246 seconds)
08:45:44*XAMPP joined #nimrod
09:02:15*ics quit (Ping timeout: 260 seconds)
09:04:38*Endeg quit (Read error: Connection reset by peer)
09:04:58*ics joined #nimrod
09:08:29*wlhlm joined #nimrod
09:33:12*ics quit (Ping timeout: 246 seconds)
09:34:44*ics joined #nimrod
09:44:39*CarpNet joined #nimrod
10:15:40BitPuffindom96: I should make the wm portable and you should improve the kernel and we'll make it all run in a full nimrod stack :P
11:08:51*DAddYE joined #nimrod
11:13:51*DAddYE quit (Ping timeout: 272 seconds)
11:32:35BitPuffinAraq: one day (probably sometime next year) I wanna make an hpkg for nimrod :D
11:35:53Araqwhat's a hpkg?
11:37:22BitPuffinAraq: haiku's new package manager
11:38:20Araqok yay
11:38:23BitPuffinit works in a pretty interesting way
11:38:33BitPuffinthey are kind of file systems that are mounted
11:39:35BitPuffinso you don't have to keep track of where on the filesystem a package's files are
11:39:52BitPuffinand to remove a package you can just remove the hpkg manually if you so please
11:43:53BitPuffinanyways enough nerding about haiku
11:44:06BitPuffinI'm just gonna tidy up the houst and them I am gonna code on my site :D
11:59:28wlhlmBitPuffin: kind of like *.app directories in Mac OS?
12:03:47wlhlmBitPuffin: nevermind, you mean something different…
12:06:38wlhlm*ment
12:06:51dom96hello
12:07:02wlhlmhi
12:09:02*faassen joined #nimrod
12:09:45*DAddYE joined #nimrod
12:14:55*DAddYE quit (Ping timeout: 272 seconds)
12:16:35BitPuffinhey dom96!
12:16:48dom96hello BitPuffin!
12:16:53BitPuffindom96: wassup?
12:17:01dom96nm, just woke up :P
12:17:05BitPuffinhehe :P
12:17:35BitPuffindom96: the optimization of jester is not in jester itself right? Rather in the nimrod httpserver?
12:17:52dom96yeah
12:18:06BitPuffinI see
12:18:11dom96Will try to fix sockets today
12:18:18BitPuffinwell I am not very worried about performance for this website
12:18:29BitPuffinbut the next website I'll make is a bit more critical
12:19:31dom96and I will make it set SO_REUSEADDR, so that it's not as annoying to test.
12:20:22olaholdom96: I'm about to submit a babel package (my first one) is it possible for you to check if it's well formated? https://github.com/olahol/nimrod-murmur
12:20:46dom96olahol: Awesome!
12:20:47*dom96 checks
12:21:24BitPuffindom96: nice!
12:22:07BitPuffinolahol: cool! never heard of that hash, what's the purpse of it?
12:22:21dom96olahol: looks good.
12:22:57olaholBitPuffin: it's a fast hash that's good for implementing bloom filters and hash tables
12:23:21olaholdom96: ok, i'll submit a pull request to nimrod-code/packages :)
12:23:24BitPuffinolahol: what you probably should do though is to either put a license file in the project or license text in the source
12:23:33BitPuffinrather than just saying MIT in babel file
12:23:36dom96olahol: oh, what would be nice is if you tag the commit as 'v0.1.0'
12:24:04olaholBitPuffin: ah, knew i forgot something
12:24:06BitPuffinolahol: are you swedish by any chance?
12:24:15dom96so that when you update it later users can still install 0.1 specifically.
12:24:20BitPuffinsince you have ö in your last name
12:24:33olaholBitPuffin: yep
12:24:37BitPuffinolahol: gött :D
12:24:46olaholdom96: ok will do
12:24:48BitPuffinone swede leaves, one swede comes
12:25:05dom96I miss EXetoC, where is he!?
12:25:11BitPuffinI don't know
12:25:16BitPuffinhe's been compromised
12:25:50BitPuffindom96: Keep a buffer of a private chat with him open and we will be able to see if he's cheating on nimrod
12:25:58BitPuffindom96: /query EXetoC
12:26:15dom96BitPuffin: I don't think xchat tracks users like that :P
12:26:28BitPuffindom96: it does say if they come online
12:26:52BitPuffindom96: so if you are online and he comes online while you have him open in a buffer. It will say something like EXetoC came online etc
12:26:57dom96In any case, /ns info EXetoC
12:27:11dom96Really? I've never seen that happen.
12:27:20BitPuffinwell
12:27:23BitPuffinI don't use xchat
12:27:28BitPuffin:P
12:27:41dom96That's what I thought.
12:27:54dom96NickServ says he's last seen on Oct 20th
12:27:58dom96Which is when he was here.
12:30:06BitPuffinawh
12:30:45BitPuffindom96: he does have a skype
12:30:51BitPuffinwith a face!
12:30:55BitPuffinI KNOW HOW HE LOOKS
12:31:00BitPuffin</stalk>
12:31:05dom96his gravatar also shows his face :P
12:32:04BitPuffinhaha
12:32:32BitPuffinhmm
12:32:38BitPuffinwell he lives in sthlm
12:32:44BitPuffinand I am not going there xD
12:33:23BitPuffinmaybe his computer exploaded
12:33:34BitPuffinkilling him in the process :(
12:33:37*BitPuffin is getting worried
12:33:56dom96:(
12:34:49BitPuffindom96: try emailing him. If he has an android phone he'll at least be able to check his gmail in case his computer is broken
12:36:36dom96there, sent
12:38:03BitPuffingoodie
12:39:51olaholdom96: I've added the version tag and the license and sent a pull request to packages.
12:40:54BitPuffincool!
12:41:05BitPuffinolahol: where in sweden do you live btw?
12:41:16NimBotnimrod-code/packages master 37989ac Ola Holmström [+0 ±1 -0]: added murmur
12:41:16NimBotnimrod-code/packages master c556138 Dominik Picheta [+0 ±1 -0]: Merge pull request #28 from olahol/master... 2 more lines
12:41:22dom96olahol: Thank you :)
12:41:22BitPuffinwooo
12:41:25BitPuffingbg!
12:41:27olaholBitPuffin: Göteborg
12:41:48BitPuffinolahol: me too :D
12:42:21olaholdom96: yay! my first nimrod module
12:42:30dom96:D
12:42:39olaholBitPuffin: nice, we should start a nimrod meetup group
12:42:40BitPuffinolahol: keep it up :D
12:42:48olahol:)
12:44:46BitPuffinme and olahol can have a mini nimcon right here in sweden lol >.<
12:45:11dom96Where are the Irish programmers :(
12:45:37dom96I want a mini nimcon in Ireland.
12:45:58BitPuffindom96: it's probably not expensive for you to come to gothenburg for a day :P
12:50:29dom96£269 apparently
12:50:36dom96with a 12h layover in London D:
12:52:00BitPuffinwat :/
12:53:00BitPuffinhaha I accidentally left olahol's profile picture open in a tab on the screen while I was making some sadwitches, kind of funny to come back to with him standing there xD
12:59:16*Ricky_Ricardo joined #nimrod
12:59:42capisceI'm from Göteborg too
12:59:48capiscebut don't live there
13:00:00BitPuffinwhere do you live then?
13:01:50capisceOslo atm
13:01:59BitPuffinah cool
13:02:07BitPuffinfor work I assume?
13:02:32capisceyep
13:03:00*Jesin quit (Remote host closed the connection)
13:03:31*ievleff quit (Remote host closed the connection)
13:05:50*mkb quit (Ping timeout: 240 seconds)
13:10:38*DAddYE joined #nimrod
13:15:08*DAddYE quit (Ping timeout: 245 seconds)
13:17:31*Dispatch joined #nimrod
13:18:20Araqhi Dispatch welcome
13:20:03DispatchHi
13:20:35DispatchI am playing with nimrod, so I though I'd check out the irc channel
13:22:05capisceto see what it's all about?
13:22:32DispatchTo see if there is help when I need it
13:22:52DispatchSo good to see there are people here
13:25:20DispatchI am playing with opengl and I found this: https://github.com/rafaelvasco/nimrod-glfw and this: http://pastebin.com/7pfYer7u
13:25:52DispatchWith the second example I now have a triangle running with shaders. Anyone know of any other nimrod opengl examples?
13:27:29*OrionPK joined #nimrod
13:28:16Araqthere are quite a few, I think but I don't know where to find them either
13:28:35AraqOrionPK: have some opengl code lying around?
13:29:16OrionPKonly webGL
13:29:47DispatchOk, np, I'll try and figure it out
13:32:50*mkb joined #nimrod
13:34:23Araqsee you later
13:36:59BitPuffinDispatch: well if you get stuck on something we'll try and help you out best we can. I am currently working on a game with nimrod but I have some stuff to do before I can get some serious work done in it.
13:37:15OrionPKAraq, why does base64.encode break into newlines?
13:38:10dom96OrionPK: I think that's just how base64 works
13:38:42OrionPKcould be I guess..
13:39:13OrionPKI've never gotten newlines out of something i base64 encode though
13:39:27OrionPKfor example, converting an image to a datauri
13:39:29OrionPKit's all on 1 line
13:39:32Dispatchok, thx.
13:39:56dom96Dispatch: https://github.com/fowlmouth/nimlibs/tree/master/fowltek/musings/nim3d
13:40:06dom96That may be an opengl example too
13:40:25dom96OrionPK: Take a look at the example on wikipedia
13:40:39OrionPKI looked for "75"
13:40:42OrionPKin that article
13:40:50OrionPKwhich is the current line length in base64.encode
13:41:02dom96https://en.wikipedia.org/wiki/Base64#Examples
13:41:22dom96It's not all a single line there
13:41:22OrionPKI mean.. they would wrap that reguardless
13:41:39OrionPKor it would be very wide
13:41:42Dispatchdom96: thx, I'll check it out
13:42:15dom96I was thinking the same thing when I was using it.
13:42:19dom96Now I can't remember where i've used it.
13:42:23OrionPKdom96 I think several formats want newline separators, but not base64 encoding itself
13:42:40dom96But if it was a problem I would've fixed it
13:42:49OrionPKdom96 like MIME
13:43:36dom96OrionPK: You can always override newline to ""
13:43:52OrionPKyeah
13:44:07OrionPKdom96 I'm submitting a patch for it, is there an easy way to specify that a generic can be any integer type
13:44:20OrionPKint|int8|int16 etc is kind verbose
13:44:40dom96TNumber
13:44:55OrionPKperfect, thanks
13:45:04dom96actually, you probably want TInteger
13:45:18dom96TNumber will match float
13:45:20OrionPKyeah probably better
13:47:24C0C0OrionPK: at least ruby and python both add newlines unless one uses strict encoding
13:47:25OrionPKdom96 what about something with an [int] index and .len support
13:47:41OrionPKC0C0 thanks
13:48:02C0C0(have seen so many people building broken code because of this)
13:48:42dom96OrionPK: dunno, look through system you might find something
13:49:32OrionPKdom96 what about a way to pass a string to an openarray of chars
13:50:21dom96just use: openarray[char] | string
13:51:36OrionPKhmm, not working
13:51:40OrionPKgetting a type mismatch with my call
13:53:30dom96gist the code
13:53:35OrionPKsec
13:57:59OrionPKdom96 using template instead
13:58:06OrionPKI just wanted to avoid code duplication
13:58:18dom96alright
14:01:22*mflamer joined #nimrod
14:08:19OrionPKdom96 https://github.com/Araq/Nimrod/pull/646
14:11:24dom96why not just convert the integer into a string?
14:11:33*DAddYE joined #nimrod
14:14:37OrionPKyou're basically treating the string as a series of integers
14:15:36OrionPKso might as well expose the ability to pass in a series of integers
14:15:44dom96and then you can't decode into an integer anyway
14:16:14dom96what is the use case here?
14:16:15*DAddYE quit (Ping timeout: 272 seconds)
14:16:28OrionPKI'm encoding an array of uint8's in my sha1 module
14:16:46OrionPKwhich is also coming
14:17:13dom96well, I dunno. Araq wrote base64 so i'll let him decide.
14:21:19*mflamer quit (Ping timeout: 272 seconds)
14:22:28DispatchAnyone know how I pass a Pointer with a value of 9?
14:29:44BitPuffinDispatch: pointer or reference?
14:29:51BitPuffinnot that it makes a difference
14:30:10Dispatcha pointer to define the offset in glVertexAttribPointer
14:30:40Dispatchdon't ask me why opengl wants it as a pointer
14:32:08Dispatchcasting makes it compile but it crashed with a sigsegv
14:35:33Dispatchno wait, crashing was another problem
14:35:50Dispatchruns, but I don't see the expected result
14:42:43*pinchuk joined #nimrod
14:44:47dom96hello pinchuk
14:46:44Dispatchfyi, solved my problem, pointer offset is in bytes not element :-s
14:48:30*pinchuk quit (Read error: Connection reset by peer)
14:56:42*Ricky_Ricardo quit (Quit: Ricky_Ricardo)
14:57:05*io2 joined #nimrod
15:10:17OrionPKdom96 araq https://github.com/onionhammer/onion-nimrod/blob/master/websockets/sha1.nim
15:10:26OrionPKthis depends on that change I submitted
15:10:40OrionPKand websockets depends on it
15:12:05*DAddYE joined #nimrod
15:14:07*MFlamer joined #nimrod
15:16:38*DAddYE quit (Ping timeout: 240 seconds)
15:20:29dom96OrionPK: good work :)
15:21:10Dispatchthx people, cya next time
15:21:21*Dispatch quit (Quit: Page closed)
15:25:53*Associat0r quit (Quit: Associat0r)
15:55:32MFlamerAraq: what looks sketchey in my bug fix?
15:55:43Araqthe logic :P
15:56:12MFlamerok, I'll take a look at it
15:57:29Araqthe thing is ... I didn't write that drunk :P
15:57:40Araqso it should be a 1-line fix
15:57:42MFlamerYou had mereged it into your working branch and noticed a problem?
15:57:52Araqyeah
15:58:31MFlamerSo, I need to get drunk before I'll see the compiler clearly
15:58:43MFlamerno prob
15:58:47Araqlol
15:58:53MFlamerbrb
15:58:55*MFlamer quit (Remote host closed the connection)
16:13:22*DAddYE joined #nimrod
16:14:03OrionPKAraq, candidate for standard lib or a separate package? https://github.com/onionhammer/onion-nimrod/blob/master/websockets/sha1.nim
16:16:49AraqOrionPK: since you're the author and thus maintainer (you will maintain it, right?) it should be a babel package
16:17:16OrionPKyeah.. if so then so should md5
16:17:30*DAddYE quit (Ping timeout: 245 seconds)
16:17:32Araqtrue I guess
16:17:34OrionPKmd5 and sha1 are such basic operations I thought it might be worth it to put it into the standard lib
16:17:44Araqyes and you're right
16:17:57Araqbut it's also a question of who owns the code ;-)
16:18:01OrionPKlol
16:18:19OrionPKI can submit patches if it breaks :P
16:19:43OrionPKafk
16:23:40AraqOrionPK: you instantiate computeInternal twice ... this leads to code bloat which is unnecessary
16:24:46Araqwell I think it's unnecessary ... does compute make sense for openarray[int], for instance?
16:35:10*MFlamer joined #nimrod
16:40:49NimBotAraq/Nimrod master 5e8a24f Dominik Picheta [+0 ±1 -0]: TPort is now uint16 and other small sockets fixes.
16:40:49NimBotAraq/Nimrod master 1ff2f4f Dominik Picheta [+0 ±4 -0]: Implemented boolean socket options.... 2 more lines
16:41:37NimBotdom96/jester master 4e3fe6b Dominik Picheta [+0 ±3 -0]: Implemented SO_ReuseAddr.
16:41:37NimBotdom96/jester master bed6fac Dominik Picheta [+0 ±1 -0]: Merge branch 'master' of github.com:dom96/jester
16:41:57dom96BitPuffin: voila.
16:42:11AraqOrionPK: it's not that you can't submit patches, it's that we then need to review your patches and apply them in time
16:42:22AraqWhich is getting harder and harder for me. :-/
16:49:27MFlamerI wish I could take a couple weeks and do nothing but learn the compiler's inner workings...
16:52:35OrionPKAraq it makes sense if the situation calls for it
16:52:52OrionPKI would make it a generic [T:string|openarray[int]] but that doesnt seem to work
16:56:27AraqOrionPK: fine I guess ... I prefer 'cstring' over openarray[byte] but it's not important
16:58:11OrionPKwebsockets depend on sha1
16:58:27OrionPKso those would have to be two new babel packages I guess
16:59:11Araqyeah I agree
17:00:38Araqping zahary1, zahary___
17:01:45AraqI plan to get rid of this 'nkDo' insertion rule. It's too confusing for macro writers. Instead we need a "skipDo" proc in macros.nim that lets you handle both syntaxes transparently. Any downsides with this solution?
17:02:56OrionPKAraq also line 57 depends on a modification I submitted to base64 earlier
17:03:00Araqanything that violates wysiwyg aspects for the AST is a no go
17:08:30*hoverbear joined #nimrod
17:09:31AraqOrionPK: promise me you tested the changes to base64
17:09:52OrionPKAraq I did
17:10:13NimBotAraq/Nimrod master 126451f onionhammer [+0 ±1 -0]: Added base64 encode overload for arrays of integers/bytes
17:10:13NimBotAraq/Nimrod master 09569c4 Andreas Rumpf [+0 ±1 -0]: Merge pull request #646 from onionhammer/patch-1... 2 more lines
17:11:10OrionPKThe change is only really 3 or 4 lines, idk why it highlights all that.
17:11:31Araqyou changed the newlines I guess
17:11:59OrionPKI assumed git stripped out \r\n's and replaced with \n
17:12:38Araqyeah git is pretty smart when it comes to newlines. It'll happily corrupt binary files when you're not careful and doesn't know they are irrelevant in a diff at the same time.
17:16:21*DAddYE_ joined #nimrod
17:16:25*DAddYE_ quit (Remote host closed the connection)
17:16:39*DAddYE_ joined #nimrod
17:23:02*hoverbear quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:28:20Araqso ... here is a tough problem for you guys out there:
17:29:42Araqthe JS backend doesn't want lambda lifting because this makes Nimrod's closures not interoperable with JS. The compile time evaluation engine requires lambda lifting.
17:30:18Araqso if you evaluate a closure both at compile time and then at runtime for the JS backend things can't work.
17:31:58Araqat the same time, relying on JS's closures changes the semantics slightly.
17:34:22dom96why does the eval engine require lambda lifting?
17:34:40dom96oh, I guess it can evaluate lambdas now.
17:35:06dom96can't we just not rely on JS' closures?
17:35:49Araqit's hard. Nimrod's closure is a [fn, env] pair in JS. You can't pass that to JS callback
17:36:02Araqand callbacks are everywhere in JS
17:36:25AraqI can live with the slightly changed semantics but having no interop would be a show stopper
17:37:09OrionPKyou dont need env with a JS closure, right?
17:39:24Araqright that does JS for us
17:39:54OrionPKright, captures parent scope.. cant you just not lift closures for js backend?
17:40:06OrionPKerm, lift lambdas
17:40:21Araqthat's what we currently do
17:40:33Araqbut it breaks compile time evaluation
17:40:51Araqwell it's not too bad really
17:41:15Araqwe can lift closures for macros and .compileTime procs only for the JS target
17:41:31Araqor we could keep both versions of the code around
17:41:36Araqbut I dislike that
17:43:49OrionPKsounds like a conundrum
17:43:56*MFlamer quit (Remote host closed the connection)
17:44:32dom96Former sounds like a better option
17:46:56Araqbbl
17:55:40*MFlamer joined #nimrod
18:35:38*CarpNet quit (Quit: Leaving)
18:59:21Araqping MFlamer
18:59:29MFlamerhey
18:59:51Araqso .. the code is this:
18:59:58Araq if c.cmp == dcEq: result = sameDistinctTypes(a, b) and sameFlags(a, b)
19:00:00Araq else: result = sameTypeAux(a.sons[0], b.sons[0], c) and sameFlags(a, b)
19:00:42Araqwhere sameDistinctTypes() is an alias to sameObjectTypes
19:00:43MFlamerthats the correct code?
19:00:51Araqthat's the original version I think
19:00:54*Endy joined #nimrod
19:01:30Araqand sameObjectTypes creates a new "closure" (btw I keep using "closure" for "environment" in the compiler)
19:02:27MFlameryeah, ok. The fix for the first bug was sending the existing env alog so we dont endup in a run away recursion
19:02:48Araqthe question is why we run into this endless recursion
19:02:56*[1]Endy joined #nimrod
19:03:24Araqhow does the type graph look like that triggers it?
19:03:49MFlamerbecause it just sends the same a & b into the function again
19:04:24Araqaha, good point
19:04:46Araqand we mustn't do this
19:04:51MFlamertheres no real work being done
19:05:01MFlamerwhat is wrong with that fix?
19:05:35Araqyou can't just pass the closure along and expect it to work
19:05:38MFlamerThere were 2 bugs in this code I tried to fix. You see tha, right?
19:05:45Araqyes
19:05:57Araqthe closure merely prevents the endless recursion
19:06:04Araqbut it's not the way to fix it
19:06:14*Endy quit (Ping timeout: 240 seconds)
19:06:14*[1]Endy is now known as Endy
19:06:48MFlameroh. Ok, theres more to this closure and its lazy instiantiation then I understood
19:07:31Araqthe fix is to inline 'sameDistinctTypes' but to recurse into a.sons[0], b.sons[0] in the case they come from a generic instantiation
19:12:06MFlamerinline? sameDistinctTypes already is inline. Or, do you mean something else?
19:18:46wlhlmAraq: the testsuite prints an error message when there is a problem, doesn't it?
19:19:08dom96wlhlm: no. The testresults.html file shows the error.
19:19:24wlhlmdom96: ahh, thanks
19:21:01wlhlmdom96: how many tests are passed/skipped with your compiler?
19:21:53dom96ehh, dunno. I don't run the tester. Check nimbuild.
19:32:19AraqMFlamer: SameTypeAux doesn't inline sameDistinctTypes in my version
19:32:42BitPuffindom96: oh awesome!!
19:34:25*OrionPK quit (Quit: Page closed)
19:34:41MFlamerAraq: I dont understand what you mean by "inline sameDistinctTypes"
19:34:53BitPuffinoh fuck doxygen
19:34:58BitPuffininstalls 1gb of shit
19:42:23AraqMFlamer: if sameFlags(a, b):
19:42:24Araq IfFastObjectTypeCheckFailed(a, b):
19:42:26Araq result = sameTypeAux(a.sons[0], b.sons[0], c)
19:42:48Araqin my line 840
19:42:56Araq(before your patches I hope)
19:43:16MFlamerok
19:47:36BitPuffindom96: I suppose the optimization is a much larger issue to solve?
19:47:48dom96BitPuffin: indeed.
19:47:56BitPuffindom96: what needs to be done?
19:48:04dom96Well first, I want to research it well.
19:48:39dom96And ugh, it's already almost the end of the day...
19:52:41wlhlmthat testsuite is pretty weird - some tests pass locally but fail on build.nimrod-code.org
19:53:26dom96Well there are many factors which affect it: CPU, OS, C compiler and version etc.
19:54:23*enurlyx joined #nimrod
19:55:55wlhlmyeah that might be a thing… do you know which compiler the linux-x86_64 build system is using?
19:56:05*brson joined #nimrod
19:56:33dom96wlhlm: 4.4.5
19:56:44wlhlmgcc?
19:56:48dom96yes
19:59:10*bittermoon joined #nimrod
19:59:20dom96hi bittermoon
20:01:12Araqhi bittermoon, welcome
20:02:41*Dispatch joined #nimrod
20:09:45BitPuffindom96: Ah well then I probably don't have time to do it! Plus you already know the source
20:10:26dom96BitPuffin: ah, yeah. Don't worry, I will get it done ... eventually.
20:10:50BitPuffindom96: no huge rush :D my personal site will do fine without it
20:11:08BitPuffinit's just if I'm gonna write my company site in nimrod
20:11:57*sebcrozet joined #nimrod
20:12:07BitPuffinAraq: do you want me to start maintaining a debian repo for nimrod?
20:12:57*bittermoon quit (Read error: Connection reset by peer)
20:13:57Araqtbh ... I don't care, BitPuffin. Linux package management is not my cup of tea.
20:14:24BitPuffinAraq: I was more thinking for the sake of adoption but okay
20:14:53dom96BitPuffin: Do it. You're using debian nowadays anyway.
20:15:01dom96How is Debian btw?
20:15:17BitPuffinone thing that I found very convenient when I was a D user was to have a debian repo for it that always had latest compiler
20:15:46BitPuffindom96: Well I probably won't use that at least not until nimrod 1.0, I'll be on the git version most of the time
20:15:58BitPuffindom96: It is nice so far, currently setting up the git version of wayland
20:16:07BitPuffinwhich would be a bit nicer in arch
20:16:14BitPuffinbut I switched for the kxstudio repos
20:16:19BitPuffinand arch can't match those
20:25:58*shodan45 quit (Ping timeout: 245 seconds)
20:29:11dom96I'm really tempted to just copy Python's approach to asyncio
20:29:55BitPuffindom96: is it good?
20:30:02dom96yeah, it looks good.
20:31:09*shodan45 joined #nimrod
20:35:43*klubbman joined #nimrod
20:36:23*[1]Endy joined #nimrod
20:36:39dom96it looks pretty similar to what asyncio currently is like :)
20:36:51BitPuffindom96: except?
20:37:09dom96it supports epoll/kqueue/IOCP
20:39:02*Endy quit (Ping timeout: 240 seconds)
20:39:02*[1]Endy is now known as Endy
20:42:58*OrionPK joined #nimrod
20:47:52*Endy quit (Ping timeout: 264 seconds)
20:56:18Araqbbl
20:59:51*MFlamer quit (Ping timeout: 248 seconds)
21:01:56*MFlamer joined #nimrod
21:11:31*faassen left #nimrod (#nimrod)
21:17:30*klubbman quit (Ping timeout: 256 seconds)
21:21:15*kakoo joined #nimrod
21:22:45kakoohey all... I am curious about nimrod. After a first look, it looks really cool, but I have a question: what is the current state of async io alternatives in nimrod?
21:23:27dom96hello kakoo!
21:23:36dom96Funnily enough I am improving asyncio right now.
21:24:00dom96Currently it only supports select so it's not ideal.
21:24:48dom96As for alternatives, you could use libevent if you really wanted to. But hopefully I will be able to get the improvements finished soon.
21:25:36*shodan45 quit (Quit: Konversation terminated!)
21:27:29kakooI am not very familiar with underlying details of async libraries at low level... select, kqueue something-poll, I don't really know what those things are and how they provide async IO
21:27:54dom96Ahh. Well what would you like to use asyncio for?
21:28:20*CarpNet joined #nimrod
21:29:50kakooAn experimental DHT, async network comunications are not a critical must-have. But I feel like in 2013, spawning processes or threads for blocking calls is just ancient bloat
21:30:36kakooor is there any green thread implementation?
21:30:55dom96No, currently just heavy threads.
21:31:22wlhlmHi CarpNet! Did you get your linker problems solved?
21:31:22kakoo:(
21:31:22dom96You can either try the current asyncio implementation or wait for my improvements; they may break some things.
21:31:35*Dispatch quit (Ping timeout: 250 seconds)
21:32:06CarpNetwlhm: unfortunately not so far, i've given up on that at the moment in favour of programming something in Nimrod that doesn't involve dynamically linked libraries :P
21:32:14CarpNeti'll get back to it after that i imagine
21:32:21*dyu_ quit (Quit: Leaving)
21:32:27kakooso to use libevent.... how does that work, how does one use C libraries? I guess I would need to create some binding or something in those lines...?
21:32:52*shodan45 joined #nimrod
21:33:44wlhlmCarpNet: so, have fun with the other parts of nimrod :P
21:33:51CarpNethaha indeed
21:34:10dom96kakoo: DAddYE_ made a wrapper for libuv: https://github.com/DAddYE/node.nim, you could use it if you wish.
21:34:16BitPuffindom96: break what? :O
21:34:33dom96BitPuffin: the asyncio API
21:34:46*MFlamer quit (Ping timeout: 246 seconds)
21:35:18BitPuffindom96: ah so not jester api
21:36:17dom96BitPuffin: nah, but that may change too. But just slightly for optimisation purposes so don't worry.
21:36:38BitPuffindom96: there isn't really much to change :P
21:36:49dom96yeah.
21:37:21dom96Araq told me to optimise the routes into a case statement. So I may do that.
21:37:46dom96That will require a 'routes' macro above all the 'get' etc. So changes should be minimal.
21:37:52BitPuffindom96: you mean internally?
21:38:25dom96no. You will have to place a routes: and put all your routes in its scope.
21:39:16BitPuffindom96: "place a routes"?
21:39:35dom96put it in your code.
21:39:38dom96routes:
21:39:41dom96 get "/": ...
21:39:42BitPuffinoh
21:39:54dom96Sorry, i'm being extremely unclear heh.
21:39:58BitPuffinoh okay so to update my code I would just put routes:
21:40:03BitPuffinand indent everythin below xD
21:40:08dom96yeah.
21:40:13dom96I hope so at least.
21:40:16dom96:P
21:40:41BitPuffinI'm sorry but how much do we even gain from that?
21:40:43dom96But I won't be wildly breaking things, so don't worry.
21:40:54dom96I'll benchmark it and see :P
21:41:40dom96But Araq is an optimisation God, so it may make a huge difference.
21:41:59BitPuffinI guess we'll see
21:42:18BitPuffinAraq is an * god :P
21:42:20BitPuffinkidding
21:42:20BitPuffin:D
21:42:26BitPuffinbut yeah
21:43:11*enurlyx quit (Quit: Nettalk6 - www.ntalk.de)
21:44:02*dymk quit (Ping timeout: 264 seconds)
21:44:41BitPuffinughh
21:45:32BitPuffinthe worst thing about compiling stuff from source or rather configuring before compiling is that it stops as soon as it finds something that is missing. Tell me everything that is missing and not just freaking one at a time
21:46:05dom96Use 'nimrod check'
21:46:15dom96it lists all errors
21:46:25BitPuffindom96: ah I don't mean nimrod
21:46:31BitPuffinI just mean errthing
21:46:44dom96i see
21:49:33AraqCarpNet: it might be some 32bit vs 64bit build issue
21:49:46CarpNethmmm i was thinking that, i never actually got round to testing that
21:50:35CarpNetthough i built Nimrod from source, along with the shared library itself, unless Nimrod just builds as 32 bit anyway?
21:51:31*dymk joined #nimrod
21:51:49Araqnimrod builds as whatever build.sh detected
21:52:00CarpNetshould be 64 bit in my case then
21:53:10Araqjust invoke nimrod and see what it says
21:53:32CarpNetit links correctly in my simple C test case, however the lib does depend on libm so i had to explicity include that... not sure if nimrod handles that?
21:54:03*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:54:15Araqdepends on how you wrap libm. is that just C's math.h?
21:54:21CarpNetyeah
21:54:39Araqnimrod should handle that then
21:55:27BitPuffinyeah nimrod already has math.h in the stdlib but nimrodified doesn't it?
21:56:09BitPuffinAraq: You wanted to make a company for nimrod right?
21:56:48*MFlamer joined #nimrod
21:57:18AraqBitPuffin: in the long term, sure. in short term I don't see a chance.
21:57:32BitPuffinAraq: how come a company and not a non-profit?
21:57:53AraqI like profit.
21:58:46BitPuffinwell you would still be able to earn a living. Just that the goal of the non-profit is to finance nimrod
21:58:55BitPuffinie you
21:59:05*DAddYE_ quit (Remote host closed the connection)
21:59:11Araqhah and I thought we already have that
21:59:31BitPuffinAraq: have what?
21:59:35*simpleirc1 joined #nimrod
22:00:53AraqBitPuffin: http://nimrod-code.org/community.html "Donations"
22:01:12BitPuffinAraq: well yeah but it's not going to a company it is going to an individual
22:01:24BitPuffinAraq: isn't there like a limit on how much we could donate to an individual
22:01:50*DAddYE joined #nimrod
22:02:06BitPuffinplus with a non-profit the money donated would be legally bound to the actual project
22:02:45BitPuffinthere isn't anything legally that says that if I donate 10k to you that you can't use it to throw a burger party for your friends :P
22:02:55BitPuffinI think at least
22:03:01BitPuffinI'm not a lawyer
22:03:11Araqhey it's called "Nimrod Software Foundation" for a reason
22:03:26BitPuffinAraq: so there is a Nimrod Software Foundation?
22:03:27dom96The amount of time and money spent setting up a non-profit probably would outweigh the amount of money donated.
22:04:10BitPuffinif so then great
22:04:41AraqBitPuffin: I'm no lawyer either but currently the donations are used to pay our server
22:04:41BitPuffinthere is no problem in creating a separate for profit corporation that finances nimrod software foundation
22:04:50BitPuffinI believe that's how mozilla does it
22:05:23*OrionPK quit (Ping timeout: 250 seconds)
22:05:41BitPuffinAraq: I wasn't suggesting that money being donated are being used for anything other than nimrod
22:06:05BitPuffinI was saying that if there isn't a foundation there is probably no legal guarantee that that's what the money will be used for
22:06:27VarriountMeep
22:06:38AraqI don't think there is any guarantee anyway, BitPuffin
22:06:42VarriountObjective: Math Exam - Complete!
22:06:56BitPuffinAraq: That's why I said legal guarantee
22:07:20BitPuffinAraq: obviously even if there was a foundation taking the money they still COULD take the money and use it for other stuff
22:07:30BitPuffinAraq: just that the difference would probably be that it would be illegal
22:08:07Araqperhaps. I don't know.
22:08:35Araqit's not a charity foundation
22:08:53Araqyou can't say "omg, poor kids in Africa never saw any money"
22:08:56BitPuffinAraq: but there is a foundation?
22:09:59BitPuffinAraq: lol :P no but I could say "omg. poor us the money wasn't used to pay Araq to work on nimrod". Well I can't because you work on nimrod but you know what I mean
22:10:39AraqBitPuffin: let me put it this way. Given enough money, I'm forced by law to make it official afaik. I haven't yet.
22:12:14BitPuffinAraq: Okay! Well I just wanted to know a little bit more about the current situation and explain what I am wondering. I did not intend any accusations if it came across that way
22:12:25*Varriount slaps BitPuffin around a bit with a average-sized trout.
22:12:53BitPuffinVarriount: xD
22:13:37Varriountdom96, are the test results stored on the hub server in any format other than html?
22:13:53dom96no
22:14:06*dymk quit (Ping timeout: 252 seconds)
22:15:46AraqVarriount: I want them in an sqlite database so I can query test results easily
22:16:01Araqthis html listing doesn't cut it anymore
22:16:39BitPuffintest result for what?
22:16:46BitPuffinfor nimrod compiler?
22:18:05Araqyes
22:19:16dom96But reading sqlite databases for people who don't have tools necessary to do that will suck.
22:19:34BitPuffindom96: Guess we need to make a nice web front end then?
22:20:13*Scramblejams joined #nimrod
22:20:52Araqdom96: it would be an addition to what we have now
22:21:01*dymk joined #nimrod
22:21:03VarriountAraq, unfortunately, dom96 is the only one who knows how the builder, hub, etc work together
22:21:06*OrionPK joined #nimrod
22:21:55AraqVarriount: fortunately dom96 is online and ready for questions
22:22:53*ics joined #nimrod
22:23:17VarriountOne part of me wants to rebuild the entire thing, and another part of me says that A: It would take too much work, and B: Be impolite to dom96
22:23:53BitPuffinVarriount: a full rebuild shouldn't be necessary though, just a significant improvement :D
22:23:55ScramblejamsHi all. Teaching myself Nimrod now, it's pretty exciting. My first application for it is to manipulate a C library. I've looked through the docs, the FFI section, the pragmas, etc., but I'd like to see some real code examples. There are _lots_ of C wrappers in Nimrod -- which would you recommend as an approachable and canonical-ish example?
22:24:16VarriountScramblejams, c2nim and magic.
22:24:21BitPuffinScramblejams: nim-glfw3 perhaps?
22:24:35BitPuffinScramblejams: or libao
22:24:37BitPuffinthat one is small
22:24:43wlhlmVarriount: why is that impolite? When you write the thing and come up with a much better solution, then everybody wins!
22:24:54ScramblejamsVarriount: I'm using c2nim, but I notice it omits some stuff, like header includes, so what's why I'm looking for examples. :-)
22:25:03ScramblejamsOkay, thanks BitPuffin and Varriount, I'll give those a look.
22:25:08VarriountScramblejams, inlcudes should be turned into imports
22:25:19Varriountsometimes you need to turn the imports back into includes.
22:25:40VarriountOr export things imported from another module.
22:25:56ScramblejamsVarriount: I did a 5 line test script, ran it through c2nim, and it lacked any imports at all. I ended up using the header pragma to get the required header file into the proc.
22:26:45VarriountScramblejams, what version of nimrod/c2nim are you using?
22:26:53*Jackneill quit (Remote host closed the connection)
22:27:11ScramblejamsWhat I converted is here: http://pastebin.com/bC6Hq0NB I'm using 0.9.2.
22:27:27ScramblejamsI admit I may be doing things entirely wrong, I'm a Nimr00b, as it were.
22:27:31VarriountAh, that's why.
22:27:34BitPuffinScramblejams: Not related, but it is probably a good idea to switch to 0.9.3, the git version
22:27:43Varriountc2nim skips includes surrounded by <>
22:27:59ScramblejamsBitPuffin: Okay, will do.
22:28:02ScramblejamsVarriount: Interesting, why?
22:28:36*Demos joined #nimrod
22:28:37VarriountIf I had to guess, possibly because includes surrounded by <> are system headers, and thus, if changed to imports would fail.
22:29:01ScramblejamsWould be be inappropriate to always automatically turn them into header pragmas?
22:29:02DemosI do not know the context of this but <> does /not/ denote a system header
22:29:24VarriountDemos, what does it denote then?
22:29:33dom96Varriount: Why do you want to rebuild nimbuild? What's wrong with it?
22:30:02Varriountdom96, It's rather... hardwired.
22:30:05AraqDemos: yeah but it looked like a very good heuristic to me
22:30:11Araqand c2nim is all about heuristics
22:30:43Demosit just tells the compiler to search the include path (whatever that is for your compiler) first, as opposed to the directory of the source file
22:30:53Demosbut in the context of c2nim then sure
22:31:16Varriountdom96, In a perfect vision, there would be a hub program, managing *only* storage of information, data requests, and notifications.
22:31:41dom96Varriount: And what else do you think the hub does?
22:31:45Varriountdom96: Then there would be several kinds of bots - one for building documentation, one for generating html, etc
22:32:12Varriountdom96, Something roughly like what I just described.
22:32:48VarriountCurrently, the building, testing, and html generation are all tied together, at least from what I have seen of builder.nim
22:33:27dom96Yes, but the hub fits your specifications I think.
22:34:39Demosoh! idea for documentation! what if the documentation generator could look at comments and decide to put "member functions" together. It sucks to look at docs and just see like 14 versions of `[]=` all in a row
22:34:41*simpleirc1 quit (Ping timeout: 272 seconds)
22:34:57Demosperhaps select functions where the first param was named self or this....
22:35:23AraqDemos: yeah that's a planned feature in fact
22:35:24dom96They are tied together because they must be. It must happen sequentially: the bootstrap must happen before the testing occurs.
22:35:32DemosOK good
22:35:47Varriountdom96, but how hard-wired is the hubs configuration?
22:35:59Demosas long as it is not truely a language keyword
22:36:15Varriountdom96, not necessarily.
22:36:16Araqfeel free to implement it, it's not even hard ... already hate it when I say that?
22:36:24BitPuffindom96: well that could be insured by some kind of scheduler module
22:36:47Varriountthe hub can manage notifying each bot when whatever action needs to be performed.
22:36:54Demoshm, could be interesting. I want to at least finish binding the lexer to C# and getting highlighting in VS though
22:37:34VarriountMy main gripe is builder.nim - there's just too many hardcoded actions, variables, etc.
22:38:36Demosis builder.nim just for nimrod build servers?
22:38:36dom96Varriount: My plan was to make the build process configurable, and that will happen.
22:38:40Varriountdom96, also, how *secure* is the bot using ftp to upload files?
22:39:07VarriountCould I, for example, completely wipe a bunch of data?
22:39:14dom96no.
22:39:27dom96Worst you could do is fill up my hard drive.
22:40:07BitPuffinVarriount: NOW YOU WOULD NOT DO THAT WOULD YOU?
22:40:13VarriountPlease.
22:40:19BitPuffinI am joking :D
22:40:25dom96But I agree that this particular thing could be improved.
22:40:34dom96Remember that I implemented this when I was in full control of the builders.
22:40:43VarriountTrue.
22:40:54AraqBitPuffin: a dsipatcher that simply linearizes stuff is not a particular smart thing to do
22:41:16Araqlinear execution is a language feature already
22:41:52*simpleirc joined #nimrod
22:41:53dom96Varriount: I'm not sure how splitting up the builder into 3 parts helps.
22:42:00VarriountRedundancy, for one.
22:42:01Demoshm, how about a compiler option --codefry to turn that off :D
22:42:16*simpleirc is now known as Guest21850
22:42:24dom96Varriount: If the bootstrap fails then the testing should not happen.
22:42:24AraqVarriount: at the cost of a more complex state machine
22:42:37BitPuffinAraq: Yeah I never said it was a good thing to do, I am just saying that it would be possible to do that to satisfy Varriount
22:42:39BitPuffinand dom96
22:43:02Varriountdom96, yes, but documentation could still be generated.
22:44:10Araqactually with "doc2" documentation would likely fail too
22:44:14Varriountdom96, currently, what happens if two builders of the same "type" connect to the hub?
22:44:15*io2 quit ()
22:44:17dom96It could be. But there are objectively more important things to improve in NimBuild.
22:44:50dom96Varriount: Likely the hub will reject it.
22:45:05AraqVarriount: the documentation generation now uses "doc" mostly which does semantic checking etc. so if bootstrapping fails chances are high doc building fails too.
22:45:16Araq*uses "doc2"
22:45:38VarriountWhy not use one bot as redundancy? So that if a build fails with one, the other can try?
22:45:38dom96Only one builder performs building also, so it makes this improvement rather unimportant.
22:46:13*Guest21850 quit (Remote host closed the connection)
22:46:48*dymk quit (Ping timeout: 260 seconds)
22:46:54dom96I don't think a second bot trying the build again would make things any different.
22:47:01dom96The build would simply fail again.
22:47:15Araqit's also not at all what we want here
22:47:15VarriountWhat if one got disconnected.
22:47:40Araqwe don't want to hide bugs by restarting processes etc.
22:48:15dom96Varriount: If a builder gets disconnected in the middle of a build then bad things may happen. That is one of my TODOs.
22:48:32VarriountHrm. I was just wondering if something like a peer-to-peer build network would be better.
22:49:27VarriountIf nothing else, I feel that data generated by the builder, tester etc should at least be available in an easily parsed, machine readable format.
22:49:48dom96Yes. The tester should generate JSON.
22:50:04Araqhuh? it DOES generate JSON
22:50:04VarriountAlso, it would be neat if the build bot could initiate builds, or read the results of tests, etc
22:50:14dom96Araq: More detailed JSON.
22:50:23AraqI agree
22:50:35Araqand that JSON result needs to be stored in some sql database
22:50:40dom96Why would the build bot need to read the results of tests?
22:51:01VarriountTo generate a comparitive page of test results.
22:51:21VarriountAraq wants to be able to view, across all the OS builds, which ones fail and which ones don't
22:51:21dom96That's the hub's job.
22:52:01*dymk joined #nimrod
22:52:16VarriountHuh, I was under the misimpression that the builder was the one that generated the test result pages.
22:52:31dom96Araq: What kinds of queries do you plan to perform on this SQL db?
22:52:53dom96Varriount: The tester does. The builder merely executes the tester.
22:54:36Araqselect * from testsuite where platform like 'win%' and state = failed and id in (select id from testsuite where platform like 'linux%' and state = success)
22:55:43Araqand I also need the history of every test
22:56:04Araqso that I know "worked with commit A, failed with commit B"
22:56:27Araq"broken since then"
22:57:34Araqand no, you can't improve the UI easily to provide all these features and it would be much more work anyway
22:59:41dom96But then it won't be easy for others to view it.
22:59:51dom96You first query is easy to support.
23:00:14dom96Well, I guess that query looks at all commits.
23:00:49Araqas I said, you can leave it as it is, so the others get what we currently have
23:01:46AraqI can also "release" my queries of course and we can have some instructions how to attach to the db and execute queries etc.
23:02:10*CarpNet quit (Quit: Leaving)
23:09:10dom96hrm, alright.
23:09:17dom96You've convinced me :P
23:10:16Araqyay
23:10:35dom96But I still feel like putting a web UI in front of it:P
23:11:17dom96I'm not exactly sure how this will work.
23:11:40dom96Like, will the tester generate json, and then the hub will add the info from the json file into a sqlite db?
23:12:14AraqI think so, yes
23:12:35BitPuffinAraq: all your queries are belong to us
23:12:40BitPuffinwe could have them logged
23:13:26dom96So then what do you plan to do? Download the db from the website and run queries on it locally?
23:13:57BitPuffinwhy not have one interface where you can just view them, one with basic search, and one with read only sql queries
23:14:17Araqperhaps. I can also run them on the db directly, dom96
23:15:23kakooSo I am giving a quick look at the libuv bindings... what is the actual binding? the repo at github appears to have a lot of examples and other related code
23:15:24dom96BitPuffin: hrm, does sqlite have an option to execute some arbitrary SQL but restrict it to only read stuff?
23:15:37dom96kakoo: I think uv.nim
23:15:46BitPuffindom96: I don't really know, but having anyone being able to do any kind of query would be bad
23:15:49BitPuffindom96: but however
23:16:05BitPuffindom96: simple workaround would be to do the queries on a copy of the database
23:16:08BitPuffinfor each query
23:16:12BitPuffinnot the greatest thing for performane
23:16:15BitPuffinbut yeah
23:16:40BitPuffinthen they could do REMOVE * or whatever they do how much they want without hurting nnnnnbody
23:17:18dom96yeah, but then they could also overflow the db
23:17:38Varriountdom96, it is possible to open a read-only connection to an sqlite database
23:20:00*wlhlm quit (Ping timeout: 245 seconds)
23:20:04BitPuffinone read only
23:20:48Araqwe can also validate the query with our sql parser quite easily
23:20:53dom96Still would make me feel nervous to allow anything to be executed :P
23:21:09dom96who knows what weird bugs sqlite has
23:21:21Araqlol
23:21:42Araqsqlite is the most stable piece of software on the planet
23:22:15Araqbut we'll do query validation too
23:23:25*wlhlm joined #nimrod
23:24:23BitPuffinyeah dom96, sqlite isn't really known for weird bugs
23:25:46BitPuffinhands down best software in the public domain :D
23:25:52BitPuffinexcept for linagl
23:25:53BitPuffinxD
23:26:55*dom96 can't tell if you guys are being sarcastic or not
23:27:12BitPuffindom96: we aren't
23:27:15BitPuffinat least notme
23:27:25dom96good
23:27:57AraqI'm never sarcastic anyway
23:28:20Araqit's always easy to tell when I am serious
23:29:28BitPuffinAraq: but how can we trust that you aren't sarcastic when you say you are never sarcastic
23:29:58AraqBitPuffin: you can't and I am sarcastic
23:30:07BitPuffinAraq: Thought so
23:30:26BitPuffinI've seen you sarcastic many times :D
23:30:31Araqseriously though, sqlite is superb when it comes to stability
23:30:38BitPuffinyup
23:30:54BitPuffinit's awesome
23:33:51VarriountAraq, this may be a silly question, but does nimrod have forward declarations/prototypes for types/objects?
23:34:26*brson quit (Quit: leaving)
23:34:41*brson joined #nimrod
23:35:50AraqVarriount: it's not a silly question and the answer is "no". and that means you need to resolve cyclic deps within a single 'type' section
23:36:08*p0nce quit (Quit: ZNC - http://znc.in)
23:37:26VarriountAraq, I'm trying to resolve it within a header file :/
23:38:01Araqthat's a very interesting approach given that Nimrod doesn't have header files
23:38:20VarriountAraq, it's translated using c2nim
23:39:32VarriountThe header file contains multiple structs. Two in particular contain function pointers, which use each other's type.
23:39:54Araqthat's fine as soon as you put them in the same 'type' section
23:40:53Araqyou can also "merge" the C typedes so that no functions come in betwen and then c2nim will put the typedefs into the same 'type' section
23:41:48VarriountBy "merge" I assume you mean put them right next each other in the file?
23:42:02Araqyes
23:43:12Araqgood night
23:47:30*wlhlm quit (Ping timeout: 245 seconds)
23:47:43VarriountGood Night Araq.
23:48:57*MFlamer quit (Remote host closed the connection)