<< 30-03-2014 >>

00:36:31*OrionPK quit (Read error: Connection reset by peer)
01:00:41*rleisti quit (Remote host closed the connection)
01:06:20*Demos quit (Quit: Lost terminal)
01:07:40Skrylarfowl, Varriount: what do you think of a finite state machine macro?
01:08:01Skrylari was thinking about writing one since that SMC tool is neat for netcode
01:10:28fowlthat site looked complicated and was missing half the code in the demos
01:21:49Skrylarwhat it mostly does is you give it a list of states and a list of functions, and it codegens it for you
01:22:24Skrylari tested it out with networking once and it was neat, because you can put network messages in it and it will generate runtime errors for you if someone tries to send a message in the wrong state
01:30:15*Mordecai joined #nimrod
01:30:37*Mordecai is now known as Guest46912
01:30:54*psquid quit (Ping timeout: 255 seconds)
01:43:48*Demos joined #nimrod
01:54:16*q66 quit (Quit: Leaving)
02:06:56VarriountSkrylar: What kind of finite state machine?
02:07:00VarriountLike a parser?
02:08:30Skrylarnah it just makes generic state machines
02:08:37Skrylarstates events and transitions
02:16:04VarriountSkrylar: Sounds neat.
02:26:36*noam quit (Read error: Connection reset by peer)
02:27:01*noam joined #nimrod
03:05:09DemosBitPuffin: ping
03:33:06*DAddYE joined #nimrod
04:18:20VarriountDemos: Ping
04:18:31DemosVarriount: pong
04:18:44VarriountDemos: http://forum.nimrod-lang.org/t/409/1#2236
04:19:00VarriountConsider that an.. RFC, of sorts.
04:20:24Skrylarthat avatar is the minecraft moon
04:20:34VarriountSkrylar: Yes. Yes it is.
04:21:15VarriountI haven't bothered to change it to the stylized moon I made in GIMP and Photoshop.
04:26:00VarriountDemos: Sent a reply
04:27:03DemosI mean sure. I think the docs should note that atime is likely to be incorrect
04:31:55VarriountDemos: So, what made you say that access time wasn't correct on most systems? On what systems is it incorrect?
04:32:44VarriountSkrylar: Do you have any suggestions?
04:33:08*BitPuffin quit (Ping timeout: 255 seconds)
04:33:44Varriount(Also, the forum really needs a 'quote' button.
04:34:13Demoslinux 2.6+ usually does not report it. Consider that to report atime correctly requires the system to /write/ to a file every time that file is read... not exactly ideal
04:34:30Demoscheck your fstab, you are probably mounting stuff with the relatime option
04:34:42Demosor the noatime option
04:36:46VarriountI think windows just uses a 1 hour resolution.
04:39:51*brson joined #nimrod
04:44:06*ics joined #nimrod
04:45:58*BitPuffin joined #nimrod
04:47:49Demoswhyyyy is chocolatey so slow! Someone should totally clone that in nimrod
04:48:14fowlwhat is it
04:49:11Demoshttp://chocolatey.org/
04:50:46renesac98,1% PowerShell, 1,9% shell
04:52:41Demosyeah the speed issues are probably just powershell being powershell
04:55:07*DAddYE quit (Remote host closed the connection)
04:55:34*DAddYE joined #nimrod
04:56:01VarriountPowershell is.. interesting.
04:56:24VarriountI just wish there were good tutorials for it.
04:56:33Demosyeah it is. I like the driver for something that sort of resembles consistency
04:58:11VarriountDemos: At the bottom of this page - http://msdn.microsoft.com/en-us/library/windows/desktop/aa364953(v=vs.85).aspx - what does "redistributable" mean?
04:58:51VarriountIs it like, for things that want to support windows xp as well?
05:00:06DemosI have no idea, but the function should be in the dll listed, which comes with windows. So the redistributable is at most just XP support and the headers
05:00:31*DAddYE quit (Ping timeout: 264 seconds)
05:01:23VarriountSkrylar: Changed my gravatar.
05:01:49fowlew powershell
05:02:06fowlquickest way to kill my boner is to mention powershell
05:02:08fowlthanks guys
05:03:25*Varriount is now known as PowerShell
05:03:36fowlgreat-_-
05:03:42*PowerShell whispers in fowl's ear, haunting his dreams.
05:04:00PowerShell:D
05:04:07*PowerShell is now known as Varriount
05:06:21*BitPuffin quit (Ping timeout: 255 seconds)
05:13:33*DAddYE joined #nimrod
05:17:46*[1]Endy joined #nimrod
05:24:44fowlhe makes a good point: http://forum.nimrod-lang.org/t/410
05:25:54fowlwhat does EFloatDivByZero exist for
05:38:49*BitPuffin joined #nimrod
05:57:41*EXetoC quit (Quit: WeeChat 0.4.3)
06:03:31*BitPuffin quit (Ping timeout: 264 seconds)
06:05:30*Demos quit (Read error: Connection reset by peer)
06:08:55*brson quit (Ping timeout: 264 seconds)
06:20:28*brson joined #nimrod
06:39:27*DAddYE quit (Remote host closed the connection)
06:39:53*DAddYE joined #nimrod
06:44:33*DAddYE quit (Ping timeout: 255 seconds)
06:56:22*brson quit (Ping timeout: 252 seconds)
06:58:15*brson joined #nimrod
07:11:36*DAddYE joined #nimrod
07:45:28*[2]Endy joined #nimrod
07:49:27*[1]Endy quit (Ping timeout: 265 seconds)
07:56:45*[1]Endy joined #nimrod
07:59:48*[2]Endy quit (Ping timeout: 252 seconds)
07:59:57*[2]Endy joined #nimrod
08:03:18*[1]Endy quit (Ping timeout: 255 seconds)
08:09:36*brson quit (Ping timeout: 255 seconds)
08:10:21*[1]Endy joined #nimrod
08:10:35*shodan45 quit (Quit: Konversation terminated!)
08:11:28*brson joined #nimrod
08:13:38*[2]Endy quit (Ping timeout: 265 seconds)
08:14:29*BitPuffin joined #nimrod
08:15:43*[2]Endy joined #nimrod
08:18:38*DAddYE quit ()
08:18:57*[1]Endy quit (Ping timeout: 255 seconds)
08:19:36*BitPuffin quit (Ping timeout: 240 seconds)
08:21:02*[1]Endy joined #nimrod
08:23:59*[2]Endy quit (Ping timeout: 255 seconds)
08:32:02*brson quit (Read error: Operation timed out)
08:41:33*[2]Endy joined #nimrod
08:44:08*[1]Endy quit (Ping timeout: 240 seconds)
08:46:38*Gr33n3gg joined #nimrod
08:57:39*EXetoC joined #nimrod
09:02:09*[1]Endy joined #nimrod
09:05:36*[2]Endy quit (Ping timeout: 240 seconds)
09:22:37*[2]Endy joined #nimrod
09:25:08*[1]Endy quit (Ping timeout: 240 seconds)
09:29:19*Matthias247 joined #nimrod
09:43:07*[1]Endy joined #nimrod
09:45:53*[2]Endy quit (Ping timeout: 255 seconds)
10:03:40*[2]Endy joined #nimrod
10:03:53dom96'morning
10:06:15Gr33n3ggoh god, finally
10:06:34Gr33n3ggapparently I didn't read hard enough, & is used to concatenate strings
10:06:35*[1]Endy quit (Ping timeout: 255 seconds)
10:06:47dom96hey Gr33n3gg
10:06:51Gr33n3ggmornin
10:07:17EXetoCGr33n3gg: 'add' is more common I think
10:07:22EXetoCand it's pretty short without the parens
10:07:30Gr33n3ggah, neat
10:08:49EXetoCI was thinking of &=
10:09:52Araqhi Gr33n3gg welcome
10:10:21Gr33n3ggmornin Araq
10:10:22Araqdom96: I think it's a subtle codegen bug; the GC has nothing to do with it
10:10:35EXetoCso what about that write interface? if &/&= gets used for that, do we need add?
10:11:11Araqyes. we need 'add'. I'm not going to change > 100K LOC that use 'add'.
10:11:16dom96Araq: Who introduced this long error? "Error: A nested proc can have generic parameters only when it is used as an operand to another routine and the types of the generic paramers can be infered from the expected signature."
10:11:28dom96zahary I guess?
10:12:07Araqyeah
10:12:10EXetoCyeah ok backwards compatibility
10:12:39dom96He broke my closure macro
10:13:43AraqI noticed but can't fix it easily
10:13:47EXetoCjust introduce a 2-year deprecation path :p
10:16:57dom96Araq: Are these two ASTs the same (except for the param names?) https://gist.github.com/dom96/08f70eee3d9a1bb2576f
10:17:33Araqdom96: yes
10:17:44dom96Then I don't get what the problem is.
10:17:50AraqEXetoC: come on, a single alias won't kill us
10:18:12dom96My macro generates the correct AST.
10:18:13EXetoCno? ok nevermind then
10:20:21Araqdom96: well it surely is a regression
10:24:12dom96hard to fix?
10:24:15*[1]Endy joined #nimrod
10:24:42Araqpointless to fix, it's likely a 1-liner for zahary
10:25:03dom96But he ain't here is he?
10:25:25Araqtrue. we could check his diffs to see how he broke it
10:27:02*[2]Endy quit (Ping timeout: 265 seconds)
10:28:56Gr33n3ggoh wow, I was going to ask what you guys use for syntax highlighting but there's a plugin for nimrod for sublime text
10:30:27Matthias247there are 2, but you should use the NimLime plugin
10:31:02Gr33n3ggah, okay
10:31:49dom96Araq: https://github.com/Araq/Nimrod/commit/40d94436fdbe7ea5c5b508c6916064f803b79155
10:34:23*[2]Endy joined #nimrod
10:36:27Araqdom96: well tbadgenericlambda should fail, tgenericlambda should not
10:36:40Araqwhat's the current situation? both fail?
10:36:50*BitPuffin joined #nimrod
10:37:28*[1]Endy quit (Ping timeout: 252 seconds)
10:39:48dom96tbadgenericlambda fails
10:39:52dom96tgenericlambda does not
10:40:15Araqbut you get the errGenericLambdaNotAllowed message, right?
10:40:21dom96I dunno
10:40:26dom96I just looked at the gist
10:40:34*IrvMG joined #nimrod
10:40:40dom96I think the test spec is wrong?
10:40:50dom96tests/generics/C/tbadgenericlambda.nim (reNimrodcCrash)
10:41:05IrvMGHello :)
10:41:10dom96hey IrvMG
10:41:56*BitPuffin quit (Ping timeout: 240 seconds)
10:42:11Araqhi IrvMG welcome
10:42:31Araqdom96: can we focus on the async stuff instead please?
10:43:39dom96fine
10:43:52Araqat /home/andreas/projects/nimrod/nimcache/stdlib_asyncdispatch.c:583
10:43:54Araq583 (*future).Cb.ClEnv = cb.ClEnv;
10:44:04Araqprint *future
10:44:06AraqCannot access memory at address 0x0
10:45:41Araqcoming from newconnection
10:45:45*BitPuffin joined #nimrod
10:45:57Araqawait client.socket.connect(url.hostname, port)
10:46:18Araqso I guess 'await' expands to 'future', not 'fut'
10:46:26*io2 joined #nimrod
10:48:12dom96yes
10:48:16Araqand future is nil ...
10:48:36dom96Like I said, the macro outputs the generated code
10:49:10*Matthias247 quit (Read error: Connection reset by peer)
10:49:27dom96it should have gotten initialised.
10:49:39dom96so is your lambda lifting wrong?
10:50:00AraqI think so, but how come it works the first time then?
10:52:54dom96no idea
10:54:28Araqhmm you re-use 'client'
10:54:31*BitPuffin quit (Ping timeout: 264 seconds)
10:54:38Araqlets see if it works when I don't do that
10:54:51*[1]Endy joined #nimrod
10:58:08*[2]Endy quit (Ping timeout: 265 seconds)
10:59:24*BitPuffin joined #nimrod
11:04:16*BitPuffin quit (Ping timeout: 240 seconds)
11:05:43EXetoChas anyone used the IRC module recently? messages sent to one of the channels never got through, and I might've had trouble connecting
11:07:34EXetoCI'll try again
11:07:56*bot28423 joined #nimrod
11:08:03EXetoCbot28423: test
11:08:42*bot28423 quit (Read error: Connection reset by peer)
11:09:16EXetoCshould I have received anything with this code: "of evMsg: echo event.raw"?
11:11:11dom96yes
11:11:17*bot28423 joined #nimrod
11:11:23EXetoCbot28423: test
11:11:37*bot28423 quit (Read error: Connection reset by peer)
11:11:55dom96you should be receiving a lot of messages
11:12:06EXetoCparseMessage isn't being called after the connection phase
11:12:10Araqmaybe that's related to Varriount's problems with ftp?
11:12:39dom96EXetoC: what's your code?
11:14:09IrvMGto install in /usr/bin used koch install /usr/bin?
11:14:11*[2]Endy joined #nimrod
11:14:51EXetoCdom96: I just uncommented line 495
11:15:14EXetoCwill gist it
11:15:51AraqIrvMG: dunno, I think the install.sh script works better
11:16:47EXetoCdom96: actually, just do this: "of EvMsg: echo(repr(event))" and then nothing else in that block
11:17:18*[1]Endy quit (Ping timeout: 265 seconds)
11:18:24dom96works for me
11:18:30*NimrodBot joined #nimrod
11:18:40EXetoCNimrodBot: you sure? can you see this?
11:18:45dom96hrm
11:18:50dom96interesting
11:19:00dom96you're right
11:19:04Gr33n3ggalso, there is no doc for parseopt2 on the website, considering cmdLineRest is deprecated
11:19:33*[1]Endy joined #nimrod
11:19:42EXetoCdom96: "if socks.len() != 0 and ret != 0:" is always false after the connection phase
11:20:11dom96Ahh. Nice.
11:20:20Araqzielmicha_beta: Gr33n3gg complains about your parseopt2 ... :P
11:20:28Gr33n3gg:D
11:20:32dom96Changing the behaviour of select was such a great idea...
11:20:46EXetoCwhy when how
11:20:55dom96EXetoC: Change it to socks.len == 0
11:21:07dom96check if it works
11:21:08dom96and make a PR
11:21:41dom96Also how was this missed?
11:21:48EXetoCok
11:21:52*IrvMG left #nimrod (#nimrod)
11:21:59dom96Could you please grep for select and ensure that everything was changed in the stdlib?
11:22:16*[2]Endy quit (Ping timeout: 240 seconds)
11:22:32*[2]Endy joined #nimrod
11:22:51EXetoCdom96: I get no output then
11:23:13dom96oh er.
11:23:34dom96Bad guess.
11:23:42dom96Why is that false then after some time?
11:25:03*[1]Endy quit (Ping timeout: 268 seconds)
11:25:06*NimrodBot quit (Read error: Connection reset by peer)
11:25:57*[1]Endy joined #nimrod
11:28:36*[2]Endy quit (Ping timeout: 240 seconds)
11:30:01dom96ahh, so buffering is the problem.
11:30:13*BitPuffin joined #nimrod
11:31:30dom96hah
11:34:56*BitPuffin quit (Ping timeout: 240 seconds)
11:35:02*[2]Endy joined #nimrod
11:35:10EXetoChow it was missed? apparently no one uses it :p
11:35:41Araqwe do use it, but we don't constantly re-compile what works ...
11:35:48EXetoCok maybe someone with an outdated version
11:35:53EXetoCright
11:36:07*[3]Endy joined #nimrod
11:37:25dom96It would have been nice if the docs were updated to reflect the change to select.
11:37:26dom96Seriously.
11:37:45Araqyeah I missed that, my bad
11:37:56Araqshould have caught it in the review ...
11:38:20*[1]Endy quit (Ping timeout: 252 seconds)
11:38:21Araqnice to see that others do an even shittier job at everything :P
11:39:03dom96I'm still 80% certain that this bug is because of this breaking change.
11:39:08dom96Which I advised against.
11:39:32*[2]Endy quit (Ping timeout: 265 seconds)
11:39:35dom96But why listen to me...
11:39:51Araqorionpk's points were more convincing
11:40:00AraqI did listen to you
11:40:16*[3]Endy quit (Ping timeout: 240 seconds)
11:40:41Araqbut decided against your point. big difference.
11:42:48*[1]Endy joined #nimrod
11:43:45EXetoCso were there any redundancies associated with pairs like these: UnaryPlusI/UnaryPlusI64? I'm once again trying to shorten system.nim
11:44:28EXetoCI can't think of anything to do really, so I'm doing that
11:44:49Araqok, that's super low priority
11:45:01AraqI'm sure I have more pressing stuff for you
11:45:09*Araq checks his todo
11:45:56Araqnew VM: - implement overflow checking; something for you?
11:47:18EXetoCarithmetic overlows?
11:47:28Araqyeah
11:47:32dom96awesome.
11:47:38dom96Looks like my stack is being corrupted.
11:48:44dom96all it takes is the removal of a single line
11:48:54dom96lovely.
11:49:57Araqdom96: client.request hangs
11:50:11Araq var resp1 = await client.request("http://picheta.me/aboutme.html")
11:50:12Araq echo("Got response: ", resp1.status) # --> 404
11:50:51dom96it hangs but gives you a 404?
11:50:51dom96huh?
11:51:13Araqyeah
11:51:28dom96elaborate
11:51:34Araqthought it's because I don't call 'body' but I just added that and it still hangs
11:53:00dom96if it reaches the echo then it completed?
11:54:50*q66 joined #nimrod
11:55:10EXetoCAraq: Do we have any relevant code outside the VM? I don't know much of anything unfortunately, but there's always google
11:55:59AraqEXetoC: semfold has an implementation with overflow checking iirc
11:59:09Araqno ... I was mistaken
11:59:20Araqcool this means the old evals.nim has the same bug, yay
11:59:27Araqnew vm doesn't make it worse :P
12:00:04Araqanyway there is an implementation in lib/system/arithm.nim
12:07:54Araqbbl
12:28:56EXetoC"var pc = start" hm, pc..
12:40:02EXetoCI think I know what to modify in the VM, but I don't know what to do about these: "proc negInt64(a: int64): int64 {.compilerProc, inline.} ="
12:44:41EXetoCaren't they useful for users too? so do I just split it up into foo/fooOverflows and then export?
12:44:56EXetoCI'll check back for an answer in a couple of hours
12:45:31*vendethiel quit (Ping timeout: 264 seconds)
12:59:24*darkf quit (Quit: Leaving)
12:59:35*vendethiel joined #nimrod
13:31:48*BitPuffin joined #nimrod
14:26:26*psquid joined #nimrod
14:27:15*Guest46912 quit (Ping timeout: 265 seconds)
14:28:07*BitPuffin quit (Ping timeout: 264 seconds)
14:30:43*BitPuffin joined #nimrod
14:50:14*Demos joined #nimrod
15:00:48*Mordecai joined #nimrod
15:01:10*Mordecai is now known as Guest67017
15:01:16*psquid quit (Ping timeout: 240 seconds)
15:01:24*Guest67017 is now known as psquid
15:18:33AraqEXetoC: no, just copy, paste modify for the VM for now
15:25:28Araqdom96: it works better when I split the downloads into 2 async procs
15:25:57Araqbut it hangs afterwards in selectors.select
15:26:21dom96maybe there is a bug in selectors
15:28:17Araqargh
15:28:25Araqforget it I'm stupid
15:28:37Araqit calls runForever() at the end -.-
15:32:05Araqok this works
15:32:14Araqgood job
15:32:36Araqreturns the 3rd request before the 2 has finished :-)
15:32:46Araqexactly as it should be, sweet
15:42:32Araqdom96: right? RIGHT!?
15:43:04AraqI wrote secondReq(); thirdReq() and thirdReq() is executed before secondReq() ...
15:43:29dom96ehh what
15:44:27dom96You can't have multiple requests running at the same time.
15:44:40dom96You need multiple clients for that.
15:44:53Araqyeah each request got its own client
15:45:46dom96well no.
15:45:51dom96secondReq should be executed first
15:46:00dom96It may not /finish/ first
15:46:17dom96If you have an echo at the beginning of secondReq and thirdReq
15:46:37dom96then you should see the message from secondReq first
15:46:50dom96however, if it's after some 'await'
15:47:02Araqyeah that's it
15:47:07dom96Then anything can happen
15:48:38dom96In any case, multiple requests on the same client should work
15:48:46dom96just not at the same time
15:51:02Araqok, so this is the problem I think:
15:51:24Araq var future = client.request("http://picheta.me")
15:51:25Araq yield future
15:51:27Araq var resp = future.read
15:51:28Araq...
15:51:37Araq var future = client.request("http://picheta.me/aboutme.html")
15:51:39Araq yield future
15:51:40Araq var resp1 = future.read
15:51:59Araqfuture is nil, so symbol look is screwed?
15:52:02dom96the fact that it uses the same var name?
15:52:06Araqyes
15:52:18dom96Yeah, that's possible.
15:52:26Araqgensym'ed these?
15:52:41dom96everything should be gensym'd now
15:52:47dom96with my latest commit
15:55:49*psquid quit (Quit: groceries)
15:58:55DemosBitPuffin: ping
16:00:35Demosalso is anyone getting ambigous overloads between a user defined `$` and the generic one in system?
16:00:49DemosI think overload resolution may be more screwed up then I thought it was
16:01:49Araqall I know is that has new regressions
16:01:53Araqyay ...
16:02:41Demosmy favorite ones are where it does stuff that depends on what generics (and regular procs) exist in your context. Gives this grand sense of reality falling apart around you
16:03:30Araqbug number?
16:05:14Demos1051 and 1018 (1018 is fixed though)
16:06:54DemosI was also getting overload ambiguities between proc mult*(a: TMat4f, b: TMat4f): TMat4f and proc mult*(a: TMat4f, b: TVec4f): TVec4f. Which was kinda strange
16:07:00Demosand probably related
16:08:43AraqI'm so pissed off by these vector matrix clusterfucks you wouldn't believe it
16:09:46*nolan_d quit (Remote host closed the connection)
16:09:54Araqit's like everyone builds his own, using only unstable voodoo features and then complains nimrod is not stable
16:10:26Araqand what does it do anyway? it's a petty alias for 'array' for fuck's sake
16:10:48Demoswell it does seem like a good way to find bugs in generics
16:12:13Araqsure, I'm not blaming you
16:12:55Araqbut once these work, we will introcude .vector and .matrix pragmas to map structural types back to nominal types to support efficient opencl codegen ...
16:13:47Demosand I just want to point out that one of the first things people wrote with c++ templates was multidimensional array and matrix libraries :D. And it does suck if you are in C and you have to use functions named by a PRNG who could only generate 6 char strings
16:15:05Demosyeah, I think everyone's data layout is at least the same +/- a transpose
16:15:37Araqthe hardware decided long ago for us how to store small vectors and matrixes
16:15:54Araqyet people still think it's "generic"
16:16:44Araqok, go ahead and use your library with bignums. nobody does that for game programming and the math people usually have bigger matrixes than 3x3 or 4x4
16:20:30Demosso we should all just write our own BLAS clone?
16:21:05Araqno, matrix and vector should be built-in for best interop
16:21:53Araqzahary argues for structural typing everywhere instead, I favor the nominal approach right from the 70ies
16:24:30Araqbtw iirc the stdlib got vectors and matrixes long ago for exactly these reasons
16:25:22*Matthias247 joined #nimrod
16:25:36DemosI would not object to vector and matrix builtins, but at the same time our generic systems seems to be expressive enought to support them and it is a great way of finding bugs. As long as I don't have to pass 15 size params to each function
16:50:45EXetoCAraq: ./koch boot ... "lib/pure/strutils.nim(675, 10) Error: interpretation requires too many iterations"
16:50:56EXetoCcompiler/commands.nim(34): const Usage = slurp"doc/basicopt.txt".replace("//", "")
16:52:03*nolan_d joined #nimrod
16:53:40EXetoCAll I did was add an overflow check directly to the opcAddInt branch. I'll show you the code
16:57:26Araqbut before your change it worked, right?
16:57:54EXetoCyes
17:01:07*[1]Endy quit (Ping timeout: 264 seconds)
17:02:55EXetoCAraq: any change causes this, so what do I do? https://gist.github.com/EXetoC/5d5031b9e3134ea7a0a1
17:04:21EXetoCSo I guess I'm missing some step of the process
17:05:07Araqedit vmdef.nim, MaxLoopIterations
17:05:16Araqset it to something higher
17:05:36EXetoCthis includes just doing "regs[ra].intVal = 0", but ok I'll try that
17:06:28EXetoC10_000_000 here we go
17:06:53EXetoCnope
17:07:02Araqer
17:07:07Araqyour patch is wrong, lol
17:07:24Araqyou need to add regs[rb] and regs[rc]
17:07:34Araqnot add the indices rb, rc
17:08:09Araqwith your patch 'opcAddInt' is broken and thus the compiler turns into an endless loop :P
17:08:25Araqthe compiler runs 'replace' at compile-time
17:08:33Araqwhich does 'inc i' somewhere :P
17:09:10Araqkeep in mind the compiler itself uses the VM for compile time evaluation
17:09:25Araqso bugs are exposed with 'koch boot' already
17:09:50Araqfyi 'pc' is a common abbrev for "program counter"
17:10:08EXetoCok
17:13:24EXetoCoops "when false: ... elif false..." -.- Trying again
17:13:53Araqbut you're editing the right thing
17:14:17EXetoCAraq: yes but I was basically commenting out everything. it does work now
17:14:27EXetoC(SUCCESS)
17:14:44EXetoCok time to add some procs and cover the other ops
17:16:00AraqerrConstantDivisionByZero # not quite :P
17:16:02*psquid joined #nimrod
17:16:37EXetoCI just copied something
17:17:17EXetoCthe first instance that I found
17:18:33EXetoCerrOverOrUnderflow
17:19:24EXetoChm time for a second monitor maybe
17:26:11EXetoCAraq: "static: let x = int64.high" ... "vm.nim(183) putIntoNode Error: unhandled exception: intVal is not accessible [EInvalidField]"
17:26:15renesacdoes the '--os:standalone' disable the GC?
17:27:15EXetoCI'll check the type
17:28:26AraqEXetoC: that's likely another unrelated bug
17:28:48Araqput the 'x' into a proc so that it comes a local variable as a workaround
17:29:30Araqrenesac: yes, iirc but use --gc:none to ensure
17:31:06EXetoCit works. time to turn it into a test
17:37:24renesacok, i'm writing this answer on stack overflow: http://stackoverflow.com/questions/3557072/is-there-a-better-c/22747236#22747236
17:38:14renesacthere was already a mention of nimrod in another answer, but no details
17:40:07renesacshould I mention the effect system plans to counter act the rust's safe pointers?
17:45:10Araqnah, but mention that we have "tagged" pointers in the works
17:45:30Araqthat ensure you can't mix kernel level pointers with user level pointers
17:47:18Demosnobody seems to mention fortran either :D
17:47:18*q66 quit (Quit: Leaving)
17:47:29Demosit seems that fortran 2008 is actually a pretty good language
17:47:39*q66 joined #nimrod
17:48:44Araqquite possible, didn't look at it
17:56:06*Matthias247 quit (Quit: Matthias247)
17:58:23*q66 quit (Ping timeout: 252 seconds)
17:59:43*Matthias247 joined #nimrod
18:00:42*q66 joined #nimrod
18:04:18VarriountBah, no-one but Demos has commented on my getFileInfo and FileInfo plans.
18:05:10EXetoCis there a proc that collects an exception that an expr throws?
18:06:01EXetoCnevermind
18:07:17AraqVarriount: lol should I comment?
18:08:21VarriountAraq: Yes, if nothing else, I would like some feedback on the questions I posted at the bottom
18:15:35AraqVarriount: ta-da
18:19:19EXetoCso how are failures reported for tests that rely on asserts?
18:19:58Araqasserts suck for testing
18:20:04Araqkind of
18:20:24EXetoCok using the unittest module then or whatever
18:20:41Demosunittest has been telling me the incorrect value of late, so that is good
18:20:42Araqassert complexOp == simpleOp # now if we have a bug that affects both, the condition remains true and the bug is not detected
18:21:21AraqEXetoC: just look at what the other 600 tests do
18:21:34Araqit's not too hard to figure out
18:22:21dom96That's not assert sucking, that's your usage of assert sucking.
18:22:36dom96I don't see how the unit test module is any better here.
18:23:32Araqit is not
18:23:48AraqI'm talking about our 'discard' specifications in the tests
18:24:18Araqwhich encourages explicit 'output' listings
18:24:29Araqwhich mitigates this problem
18:27:59EXetoChow do I go through only the system test dir for example?
18:28:33Araqtests/testament/tester cat system
18:28:46Araqtests/testament/tester --print html
18:29:45EXetoC"env: wine: No such file or directory" :-)
18:30:01EXetoCI don't even..
18:36:40EXetoCI'll just run everything and then rely on the caching mechanism
18:37:07EXetoCbut I see several modules who uses assert but not "discard..."
18:37:17EXetoC*that
18:48:05renesacok, added a mention to tagged pointers
18:48:28Varriountrenesac: Fight the good fight! Huzzah!
18:49:11*[1]Endy joined #nimrod
18:53:41*foodoo joined #nimrod
18:53:56Araqhi foodoo wb
18:56:11EXetoCisn't it like saying that we shouldn't use the unittest module? which I think is pretty good because it collects the failed cases rather than just exiting on the first failure
18:58:37EXetoCthe output specification gives you less information on failure, right?
18:58:47reactormonkEXetoC, araq doesn't want a brittle api between the tester and unittest :-/
18:59:13reactormonkimo we should have unittest return non-zero on failure and tester should use the exit code...
18:59:39Araqunittest supports non-zero exit codes iirc
19:00:32Araq"brittle api" is a misnomer
19:00:51EXetoCit does, but you still need to specify 'output' for example
19:01:07Araqit's a full DSL that gets in my way when I debug the compiler
19:02:17AraqI have "test program + compiler" to debug
19:02:17reactormonkso you want to extract all the code out form the unittest DSL for one specific test?
19:02:22foodoothanks for the wb Araq
19:02:39EXetoCpeople getting killed just because they support some opposing sports team.. people sure are morons
19:02:43Araqwith unittest i have "test program + unittest layer + compiler" to debug
19:02:54Araqwhy is that so hard to understand?
19:03:04reactormonkEXetoC, s/sports team/religion/ s/sports team/political opinion/ ...
19:03:29reactormonkAraq, because we assume that the unittest layer is tested throughout
19:04:06Demosunittest is quite the bunch of macros as well
19:04:12Araqreactormonk: since it took me weeks to get the unittest module to work with the new VM, I disagree
19:04:46EXetoCYou'd just rely on the exit code in this case so I don't get it, but ok nevermind. still, don't some tests omit "discard ..." and just use asserts? does that even work properly?
19:05:04*ruzu quit (Changing host)
19:05:04*ruzu joined #nimrod
19:05:07Araqno
19:05:09renesaceven if not suitable for compiler debugging, hopefully unittest should be the default for programs developed with nimrod...
19:05:12EXetoCwonderful
19:05:49Demoscan unittest collect stuff so that you can run all the tests for a bunch of different modules at the same time?
19:06:15reactormonkEXetoC, write something that extracts a single test so you can run it without unittest
19:06:17AraqDemos: in theory yes.
19:07:05AraqEXetoC: if there is no 'discard' section, the tester simply checks it still compiles
19:07:16Araqand doesn't run the compiled program
19:08:01EXetoChm, were these only static asserts? I'll check again some time
19:08:36renesachttp://stackoverflow.com/questions/3557072/is-there-a-better-c/22747236#22747236 <-- final version of this answer, I think
19:08:51renesacif I get as many upvotes as the Rust answer, I'm happy
19:10:43Araqrenesac: I'm not on stack overflow so I can't upvote you, sorry
19:10:58renesacno problem
19:11:20renesacI should finish that whitespace FAQ too...
19:12:44renesac"Unlike some other suggestions, (Go, Nimrod, D, ...) Rust can directly compete with C and C++ because it has manual memory management and does not require garbage collection (see [1])." <-- I should comment that the GC is optional on Nimrod and D? (I don't know about Go)
19:15:08renesacok, it seems it isn't optional in Go
19:15:15Araqperhaps but it's getting tiresome already
19:16:42Araqwhen you have a complex structure, Rust's ownership can't cope with it and you're back at RCing which is what nimrod's gc does anyway
19:17:30foodoowhat does happen in that case? The Rust code fails to compile?
19:17:55AraqI think so, but have 0 experience with it
19:18:41*Skrylar puts on reading glasses and peers at the chat
19:18:55Matthias247yes, wo won't make it legal to compile without using either a refcounted/garbagecollected type or using unsafe
19:19:03SkrylarLol, I love that the GC was mandatory in Rust and now they're claiming they don't use it :)
19:19:09dom96In the reddit thread about Go vs. Rust someone mentioned an old programming language called Hermes which tried to do what Rust does with its compile-time memory safety.
19:19:16dom96I wonder how it worked out for Hermes.
19:19:45dom96The history of Hermes can perhaps shed some light on whether Rust is in fact practical.
19:20:09SkrylarI think that GCs are not inherently bad (doesn't the python GC refcount too? which is what most of the "magic" C++STD does), they just have a few warts that need cooperative handling
19:20:30Skrylarits when a GC is the *only* way you're allowed to manage memory that pain sets in
19:20:43foodooSkrylar: Yes, the Python GC does. You need to use the Refcount infrastructure when you write Python libs in C
19:21:18SkrylarIMO one of my biggest complaints about GCs (that they are oblivious to other apps, which leads to overallocation) would be easily solved with some kernel help
19:21:42Demosyeah, it would be nice if garbage collection was a kernel service
19:21:54AraqSkrylar: please explain
19:22:03Matthias247I think the biggest complaints are that it is undeterministic
19:22:05SkrylarAraq: the overallocation issue?
19:22:07Araqoblivious to other apps? how is malloc better at that?
19:22:24SkrylarAraq: i didn't say malloc was better :)
19:22:35DemosMatthias247: hm.. I always figured that was a good thing for memory. I dont really need or want control over exactly when my memory is freed
19:22:39Araqhow is stack allocation better at it?
19:22:55Skrylarthough usually, malloc-based apps will use refcounting or some system to dispose of RAM when they know it is no longer needed, which means they will try to use less memory; a GC will usually return this memory back to the GC pool
19:22:57Demosunless I do. In which case I am probably going to need malloc
19:23:05Skrylarthing is, malloc/free in some OS will have an app pool too
19:23:15Skrylarbut the GC doesn't free that back to the OS, so now *both* are trying to keep conservative pools
19:23:16Matthias247Demos: that's you. But realtime code which should show a deterministic timing can't cope with undeterministic pauses
19:23:35AraqSkrylar: nimrod's GC gives memory back to the OS ...
19:23:46DemosMatthias247: right. But then malloc and free are going to be problems as well
19:23:48SkrylarAraq: okay, but most of them dont
19:23:49Matthias247Demos: automotive code even prohibits malloc because it's undeterministic too
19:24:15AraqMatthias247: that's borderline programming
19:24:21Skrylarif the OS is pooling memory for an app, then the app itself is pooling memory, you end up with programs like MapTool where the JVM is hoarding 200+mb of RAM
19:24:35Skrylarjust to idle
19:24:36Araquse the LTSF allocator and call it a day, Matthias247 :P
19:25:00foodooMatthias247: "automotive" as in "car"?
19:25:05DemosMy problem with GC'd langauges is that they tend to allocate lots of temp objects on the heap. Which is not exactly ideal
19:25:10Matthias247foodoo: yes
19:25:19Skrylarmobile OS nowadays have that "please clean up your memory use" signal they send out, so it wouldn't be that hard to add in a posix signal for "hey can you look in to your insane RAM usage Mr Exe?" to trip GCs at least
19:26:12foodooSkrylar: Add something to a standard and "not hard"? ;)
19:26:31Skrylarfoodoo: i'm only interested in the technical aspects :)
19:26:40Araqfyi when I started nimrod I had no GC
19:27:06AraqI decided to add a GC when I figured writing a compiler without a GC is pure masochism
19:27:13Skrylarpolitical retardation is fundamentally uninteresting :( its just a matter of memorizing social patterns and trickery :/
19:27:21renesacfoodoo, yes, when you have hard realtime systems, you can't call something like malloc in the middle of the program
19:27:22reactormonkAraq, how come?
19:27:24Demosdoes rust use their GC to do their compilers various tree structures?
19:27:31Skrylarrust dumped their GC
19:27:50DemosSkrylar: but it is still optional, heck even GCC uses a GC. In C!
19:27:51foodooGC in Rust is now implemented as a library if I am not mistaken
19:27:56renesacmany automotive programming fits in this, like ABS brakes
19:28:07Demosright, but the compiler is written in rust, and may use a GC
19:28:25Matthias247they used @ pointers, and now these ugly Gc<RefMut<T>> types
19:28:33SkrylarDemos: let me point this out again: i did not say GC use is a sin. i said mandatory GC use is a sin. i also said that it would be more optimal that the OS realize prevalent GC use and factor that in to their design
19:28:42Araqrenesac: yes you can. TSLF is O(1) alloc/dealloc with an guaranteed instruction count of ~160
19:28:43DemosI agree with you
19:29:11Matthias247Araq: but can you guarantee also that you never run out of RAM? That is also one goal that they want to achieve
19:29:20Skrylarthe author of the game "Banished" wrote a blog post where he even chuckled about how if he hadn't used C++ the bug wouldn't have happened; C++ ref counting got really unruly, and he had objects that were deleted stuck in auto-save queues which caused weird crashes
19:29:30AraqMatthias247: now *that* is the real reason
19:29:41renesacAraq, oh, haven't heard about it
19:29:53dom96Skrylar: You shouldn't stereotype GCs :)
19:29:59renesacanyway not a standard malloc
19:30:00Skrylaron the other hand, there was also an article about how .NET's mandatory collector caused infinite problems with an internet cache app, because the MSGC kept grandfathering data that lived *just* too long :(
19:30:05Matthias247when you hae 2MB of RAM some parallel allocations in the wrong timeframe can end bad :)
19:30:15Skrylardom96: most of the GC'd apps i've used have horrendous memory footprints
19:30:50Araqbtw a GC can use another trick that is not used in practice yet
19:31:12Araqwhich is: free memory that is technically still alive but wasn't used for a long time
19:31:26reactormonkMatthias247, that's an interesting idea, but it makes dynamic structures such as maps kinda ugly to code
19:31:31Araqwhen it's accessed, ensure a segfault happens :-)
19:31:35SkrylarAraq: then suddenly, get a random crash because it happened to get used :P
19:31:50AraqSkrylar: the trick is to ensure it crashes
19:32:14Araqthis way the application can run MUCH longer without running out of memory
19:32:14Skrylardoesn't that then become a game of "now i have to figure out how to get the GC to stop that"
19:32:15Matthias247reactormonk: I think it makes many things ugly to code ;) But it's not about beautifulness in that industry
19:32:50Skrylari guess crashing it could in some way force derps to finally rewrite some code, though it would probably annoy the smaller dev teams
19:33:11AraqSkrylar: it's simply another form of memory overcommitting
19:33:26Skrylari'd rather have a better way to introspect the allocations and graph out where all this less-used space is
19:33:52AraqSkrylar: yes. YOU. but the average Java developer likes to not care about leaks
19:34:28SkrylarAraq: would it be bad to say that i don't care about the average java developer because they tend to be idiots? :(
19:34:31Demoswhy not just design a CPU that detected a java app being run and just halted instead
19:34:57EXetoCI like that
19:35:00AraqI fear that's what the JVM will do and it will "fix" all the logical memory leaks in practice
19:35:07Matthias247Demos: that's easy. Simply choose one for which JVM is not ported ;)
19:35:07*Skrylar grumbles at why a glorified die-roller needs TWO HUNDRED MB to do nothing o_o
19:35:33reactormonkSkrylar, I needed 10GB on the jvm to do something ;-)
19:35:38Araqand so people like us have no good argument left ;-)
19:35:44DemosSkrylar: tell that to matlab :D
19:36:02Skrylardelian66: matlab isn't a consumer language though
19:36:08Skrylarand by delian i meant demos
19:36:11Skrylarbecause i tabfail
19:36:19Araqon the other hand, "who cares, it works in practice" is an argument I use myself from time to time
19:36:25Demosmatlab is a java app
19:36:34Matthias247although I don't like Java as a language - the JVM seems to be pretty fast nowadays
19:36:38AraqDemos: what? o.O
19:36:39delian66Skrylar: np
19:36:43DemosI think so at least
19:36:48dom96What we should be able to do is to somehow mark data which can be forgotten but which can be recalculated if it's needed again at some extra CPU cost.
19:36:54SkrylarI usually don't accept "good enough don't care" until i've become exhausted trying to tune the correct ways and seen that the less correct way is actually good enough :(
19:36:56dom96Now THAT would actually be pretty cool.
19:36:59reactormonkdom96, caches \o/
19:37:01Skrylarcase in point the event module i need to push on github
19:37:25Skrylar"i'd rather have O(1) instead of O(n)/O(2n)" <a week later> "Apparently even FLTK uses O(n) so i give up"
19:37:25Matthias247Demos: the GUI might be in Java. The core is C++. I wrote extesions for it in C++ some time ago
19:37:29reactormonkdom96, should be easy enough to code - but you need a guarantee that there are no side-effects
19:38:09dom96Actually, perhaps it would just be easier to dump the extra memory to the hard drive.
19:38:16dom96Instead of ensuring that it can be recalculated.
19:38:21reactormonkdom96, also known as swap? ;-)
19:38:24Demoswait what is O(n)/O(2n) it sounds like something I may want?
19:38:30dom96reactormonk: lol yes
19:38:52reactormonkdom96, tl;dr fuck it. Implement it for standalone, if needed.
19:38:54AraqMatthias247: yeah but it's still a memory hog...
19:39:17Demosalso big-o complexity is dumb for stuff like memory management and such
19:39:22dom96Perhaps recalculating the data would be useful in some circumstances.
19:39:28foodoomodule gtk2: TWindowType* = int32 #does anyone here happens to know how to choose a proper value for a dialog window? I can't find the magic constant/symbol in the GNOME gtk2 docs
19:39:33dom96Instead of swapping.
19:39:58Araqfoodoo: use the dialogs module if you can
19:40:21dom96foodoo: https://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkWindowType
19:40:28EXetoChow do I get the name of the run-time type of an object?
19:40:32Araqdialogs.nim kicks ass, it means aporia doesn't feel weird like shit on windows :-)
19:40:40foodooAraq: Yes, that's what I want to use. But the first argument to each function is an argument of PWindow
19:40:42AraqEXetoC: you can't for now
19:41:01foodooAraq: And PWindow is created with gtk2.window_new( TWindowType )
19:41:17Araqfoodoo: ok, check out how aporia does it then
19:41:23dom96foodoo: The names are likely: WINDOW_TOPLEVEL/WINDOW_POPUP
19:41:40foodooAraq: okay. Yes, dialogs.nim surely kicks as. That's why I want to play around with it
19:41:55SkrylarDemos: nah, the slash is "or" not divided :)
19:41:59EXetoCAraq: ok. validating a test based on a series of true/false outputs seems a little lame
19:42:02foodooMost programming languages don't come with an easy way to create simple dialogs with few lines of code
19:42:21EXetoCwhatever. I can't be bothered to mess about anymore
19:42:53AraqEXetoC: but the fun hasn't even started
19:43:14Araqthe vm should also care about {.push infChecks:on.} ...
19:43:21reactormonkEXetoC, just test unittest to hell and back
19:44:22EXetoCreactormonk: I'd just use assert if it was possible, but I'm just going to output a true/false sequence
19:44:40EXetoCAraq: I meant with trying to output something meaningful
19:46:28Araqdom96: argh. your async stuff makes my head explode
19:46:45Araqso where is this 'future' used? and why is it nil?
19:46:52EXetoCreactormonk: you mean as a way to convince Araq that it's not going to get in the way anymore? :>
19:46:59dom96Araq: Which future?
19:47:18Araq var future = client.request("http://picheta.me/aboutme.html")
19:47:19Araq yield future # that one
19:47:29EXetoCdom96: now?
19:48:11dom96Araq: `request` is a proc which returns a future. It initialises that future at the beginning of its execution.
19:48:23dom96An iterator is defined inside that proc
19:48:28dom96which captures that future
19:49:12foodooAraq: The window is created with a proc called windowNew(). But this proc doesn't seem to be defined in Aporia or in the standard library (I searched the index)
19:50:38reactormonkbtw, what's `export'
19:50:49dom96Araq: when that iterator finishes then that future is completed.
19:51:01reactormonkEXetoC, basically, yup
19:51:11dom96foodoo: The gtk wrapper was moved out of the stdlib
19:51:56VarriountHow would I form a 64 bit int by concatenating 2 32 bit int's?
19:51:59dom96reactormonk: http://build.nimrod-lang.org/docs/manual.html#export-statement
19:53:04reactormonkcool
19:53:15foodoodom96: So the next version of Nimrod won't include the module gtk2?
19:53:44dom96foodoo: Yes.
19:54:04dom96foodoo: You need to get babel and install it by executing babel install gtk2
19:54:06AraqVarriount: lowerBits or (higherBits shl 32)
19:54:38foodoodom96: I guess dialogs will then also leave the stdlib as it depends on gtk2?
19:54:46dom96yeah
19:54:59VarriountAraq: Thanks. I thought it was something like that - Unfortunately I'm not too experienced with bit-shifting.
19:55:28AraqVarriount: there is also code in winlean which does that iirc
19:55:29foodoodom96: What's the rationale behind removing gtk2? Is it because gtk2 is deprecated and people should use gtk3 instead?
19:55:31EXetoCAraq: can't I catch EOverflow in a static block? Am I going to have to copy the output that the exception generates?
19:55:46EXetoCand use that as the expected output
19:56:02AraqEXetoC: exactly
19:56:48reactormonkfoodoo, trim down the stdlib and move stuff to babel isntead
19:57:00EXetoCAraq: but I need to do that multiple times
19:57:03VarriountAraq: Of course, now I'm wondering whether I should combine the lowerBits and higherBit's of a Windows file index in the first place. :/
19:57:06EXetoCin which case I must catch the exception somehow
19:57:08EXetoCbrb
19:57:28dom96foodoo: The gtk2 is updated too often, it is easier for people to update it using babel than by updating the whole stdlib.
19:57:39dom96*gtk2 wrapper
20:00:38Araqdom96: the stack trace comes from newconnection but that does the same as request, right?
20:02:10dom96Araq: Depends what you mean by the same?
20:02:29dom96Similar code is generated, but the procedures do different things
20:03:00Araqyeah that's what I mean
20:03:02Araqhowever
20:03:09AraqnewConnection calls newConnectionIter
20:03:20dom96and like I keep saying: the code that is generated is printed by the macro
20:03:24Araqbut it doesn't crash there
20:03:37AraqI keep looking at what the macro produces, dude
20:03:42dom96then why ask me?
20:04:10Araqlisten to me
20:04:18AraqnewConnection calls newConnectionIter
20:04:28AraqnewConnectionIter has a 'future' that is nil
20:04:32Araqhowever
20:04:43renesachttp://stackoverflow.com/questions/3557072/is-there-a-better-c/22747236#comment34675668_20331936 <-- comment on needing a gc, needs one upvote to not stay hidden
20:04:44AraqnewConnectionIter is *not* part of the stack trace
20:05:28dom96renesac: upvoted, s/requires/require/ btw
20:05:42dom96Araq: what does that mean?
20:09:38Araqdom96: there is an anon proc in newconnection's body
20:09:44Araqand that gets a future
20:09:53Araqand here things are nil
20:10:15Araqbut I don't know where the anon proc comes from
20:10:27Araqseriously just try your example program in gdb
20:10:49dom96I can't right now.
20:11:10EXetoCAraq: so I couldn't catch EOverflow statically. bug or feature?
20:11:24dom96Maybe you're generating some anon proc by accident? There is no anon procs in newConnection.
20:11:55dom96well wait
20:12:06dom96there is
20:12:19AraqEXetoC: known bug
20:12:20renesacdom96, there is no edit button...
20:12:22dom96see the createCb() invokation?
20:12:40Araqyeah I assumed that is the cause, dom96
20:13:02dom96That's defined in asyncdispatch:742
20:13:31AraqcreateCb(cb, newConnectionIterVar, retFuture)
20:13:42Araqbut that does not define a *future* param, does it?
20:14:25dom96ahh. But `callback=` does.
20:14:33dom96`callback=` is overloaded.
20:14:47EXetoCI'll create lots of little tests for now then unless there's some way to work around this
20:15:02dom96asyncdispatch:73
20:15:11Araqyeah I know
20:15:12Araqok got it
20:15:18AraqcbName == future
20:15:29Araqno wait
20:15:44Araqnext == future? wtf
20:17:24Araqdom96: asyncdispatch, line 746
20:17:44dom96yes?
20:18:31Araqwell 'callback=' gets a nil future
20:18:41Araqnow you tell me how that's possible
20:18:49Araqthe if even checks against that
20:18:56dom96I see.
20:19:13dom96Yeah, I don't know man.
20:22:55NimBotnimrod-code/babel master 58a6808 fenekku [+0 ±1 -0]: Update readme.markdown... 2 more lines
20:22:55NimBotnimrod-code/babel master f0fcf5c Dominik Picheta [+0 ±1 -0]: Merge pull request #36 from fenekku/patch-1... 2 more lines
20:25:03foodoo {.pragma: rtl, exportc: "nimrtl_$1", dynlib.}
20:25:49Araqdom96: things are only getting weirder here
20:26:09foodoois there something about the pragma syntax that changed recently? I can't build the nimrod git-package from my Linux distro because it says that there is an invalid exported symbol
20:27:06Araqfoodoo: yeah gradha found it a good idea to add some exportc name checking for idiots
20:27:31foodoofyi: The file is nimrod/lib/system/inclrtl.nim and the line is 27
20:27:45Araqlet me try on this machine
20:28:07Araqwhat command did you use to compile?
20:29:07foodooI used this package script: https://aur.archlinux.org/packages/nimrod-git/
20:29:24foodooso basically the stuff that's defined in build() https://aur.archlinux.org/packages/ni/nimrod-git/PKGBUILD
20:33:37Araqfoodoo: thanks, can reproduce
20:40:48NimBotAraq/Nimrod devel d8ce49c Araq [+0 ±1 -0]: disable extern name checking as it breaks building of nimrtl.dll
20:41:04Araqfoodoo: there you go, thanks for the bug report.
20:41:15foodooAraq: you're welcome :)
20:44:49foodooaaand compiles :)
21:04:43*[1]Endy quit (Ping timeout: 268 seconds)
21:29:09*Matthias247 quit (Read error: Connection reset by peer)
21:55:59*q66 quit (Ping timeout: 252 seconds)
21:57:08*foodoo quit (Ping timeout: 240 seconds)
22:10:00*q66 joined #nimrod
22:13:28*OrionPK joined #nimrod
22:37:37*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
23:04:33*brson joined #nimrod
23:07:25*IrvMG joined #nimrod
23:07:29*IrvMG quit (Read error: Connection reset by peer)
23:07:46*IrvMG joined #nimrod
23:09:16IrvMGHi. convert biggestint to string?
23:10:58EXetoCIrvMG: strutils.intToStr?
23:12:22IrvMGintToStr: type mismatch: got (int64)
23:13:21IrvMGType is biggestint, return from getFileSize
23:16:02EXetoCIrvMG: I don't know what you'd do on x86 for large values, but you can convert it to int if you want
23:16:10EXetoCx.int or int(x)
23:18:37IrvMGThanks. Found with intToStr(getFileSize(f).int)
23:22:53*darkf joined #nimrod
23:40:41dom96IrvMG: Does $ not work?
23:41:04EXetoC:o
23:41:47dom96$ is the ultimate universal toString operator.
23:41:49EXetoCI think I should know that by now
23:41:56dom96Yes :P
23:42:30IrvMGfor example?
23:42:41EXetoC$x
23:44:04IrvMG$getFileSize(f) :O
23:44:51EXetoClooks correct
23:45:01dom96EXetoC: You on arch?
23:45:05EXetoCdom96: yes
23:45:12*BitPuffin quit (Ping timeout: 265 seconds)
23:45:19dom96EXetoC: Wanna become the maintainer of babel-git on AUR? :P
23:47:05*BitPuffin joined #nimrod
23:47:13dom96oh look, I found a picture of zahary: http://www.quora.com/Zahary-Karadjov
23:52:11dom96Araq: Is this a bug? http://stackoverflow.com/questions/22689671/tuples-without-field-names
23:54:08*BitPuffin quit (Ping timeout: 240 seconds)
23:57:42*BitPuffin joined #nimrod
23:59:05dom96well i'm away to sleep.
23:59:16dom96EXetoC: let me know later