<< 25-09-2014 >>

00:17:18*yousirwin joined #nimrod
00:17:21*yousirwin left #nimrod (#nimrod)
00:41:09*Jesin joined #nimrod
00:46:22*Jesin quit (Ping timeout: 272 seconds)
00:47:16*Jesin joined #nimrod
00:53:05*Jesin quit (Ping timeout: 272 seconds)
01:12:28*q66 quit (Quit: Leaving)
01:26:22*xenagi joined #nimrod
01:33:51*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:02:52*willwillson quit (Ping timeout: 260 seconds)
02:06:41NimBotVarriount/NimLime master 58e825c Erik O'Leary [+0 ±2 -0]: Added 'declared' keyword
02:23:31*dapz joined #nimrod
02:41:06*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
02:44:41*johnsoft quit (Read error: Connection reset by peer)
02:50:14*johnsoft joined #nimrod
02:51:09*dapz joined #nimrod
03:10:21*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
03:40:28*brson quit (Quit: leaving)
03:40:54*brson joined #nimrod
03:46:39*saml_ joined #nimrod
03:49:28*brson_ joined #nimrod
03:50:27*brson_ quit (Client Quit)
03:50:34*brson_ joined #nimrod
03:52:16*saml_ quit (Ping timeout: 258 seconds)
03:52:20*brson quit (Ping timeout: 244 seconds)
03:52:42*dapz joined #nimrod
03:57:17*dapz quit (Ping timeout: 260 seconds)
04:04:16*saml_ joined #nimrod
04:09:56*saml_ quit (Quit: Leaving)
04:12:35*nande quit (Read error: Connection reset by peer)
04:15:35*fowl joined #nimrod
04:26:01*xenagi quit (Read error: Connection reset by peer)
04:46:23fowlagreed <Onionhammer> Araq you should add an 'else' for for loops, where if the loop has nothing to iterate over it executes that
04:54:50*francisl quit (Quit: francisl)
05:08:10*EXetoC quit (Ping timeout: 258 seconds)
05:11:01*flaviu1 quit (Ping timeout: 260 seconds)
05:19:39*brson_ quit (Ping timeout: 244 seconds)
05:20:34*EXetoC joined #nimrod
05:31:37*kshlm joined #nimrod
05:31:43*kshlm quit (Changing host)
05:31:43*kshlm joined #nimrod
05:47:19*dirkk0 joined #nimrod
06:04:31*bjz joined #nimrod
06:06:00*fowlmouth joined #nimrod
06:08:18*fowl quit (Ping timeout: 250 seconds)
06:25:10*bjz quit (Read error: Connection reset by peer)
06:25:16*bjz_ joined #nimrod
06:25:55*dirkk0 quit (Quit: Leaving)
06:40:02*johnsoft quit (Read error: Connection reset by peer)
06:45:06*johnsoft joined #nimrod
06:48:11*dirkk0 joined #nimrod
07:02:10*dirkk0 quit (Quit: This computer has gone to sleep)
07:06:00*fowlmouth quit (Ping timeout: 246 seconds)
07:34:59*untitaker quit (Ping timeout: 258 seconds)
07:40:52*untitaker joined #nimrod
07:59:20*dirkk0 joined #nimrod
08:19:01*io2 joined #nimrod
08:30:14*wkoch joined #nimrod
08:41:59*tdc joined #nimrod
08:56:50*dirkk0 quit (Quit: Leaving)
09:10:23*CaptainRant joined #nimrod
09:12:23*CaptainRant left #nimrod ("WeeChat 0.4.3")
09:15:13*Fr4n joined #nimrod
09:31:58*Sht0 quit (Ping timeout: 250 seconds)
09:32:21*Sht0 joined #nimrod
09:35:53*BlaXpirit joined #nimrod
09:43:00*BlaXpirit quit (Quit: Quit Konversation)
09:46:01*BitPuffin joined #nimrod
10:20:04*H4k4nn joined #nimrod
10:20:18H4k4nnhi
10:24:46*H4k4nn quit (Client Quit)
10:33:37*kshlm quit (Ping timeout: 272 seconds)
10:38:46*dirkk0 joined #nimrod
10:49:45*willwillson joined #nimrod
11:05:46*BitPuffin quit (Ping timeout: 272 seconds)
11:11:23*flaviu1 joined #nimrod
11:20:37*jasondotstar joined #nimrod
11:23:02*dirkk0 quit (Quit: This computer has gone to sleep)
11:27:27*Fr4n quit (Ping timeout: 272 seconds)
11:43:31*Boscop quit (Ping timeout: 272 seconds)
11:45:56*BitPuffin joined #nimrod
11:49:49*dirkk0 joined #nimrod
11:50:22*dirkk0 quit (Client Quit)
11:56:54*BlaXpirit joined #nimrod
12:08:09*tdc quit (Ping timeout: 260 seconds)
12:17:10*tdc joined #nimrod
12:34:53*BitPuffin quit (Ping timeout: 240 seconds)
12:38:32*[CBR]Unspoken1 quit (Ping timeout: 245 seconds)
12:39:00*BitPuffin joined #nimrod
12:39:15*BlaXpirit quit (Quit: Quit Konversation)
12:39:24*fowl joined #nimrod
12:47:59*kuzy000_ joined #nimrod
13:00:56*[CBR]Unspoken1 joined #nimrod
13:09:22*Boscop joined #nimrod
13:11:06*willwillson quit (Remote host closed the connection)
13:13:29*[CBR]Unspoken1 quit (Ping timeout: 260 seconds)
13:16:44*[CBR]Unspoken1 joined #nimrod
13:27:32*darkf quit (Quit: Leaving)
13:37:13*francisl joined #nimrod
13:42:24*francisl quit (Quit: francisl)
13:42:50*francisl joined #nimrod
13:52:05*fowl quit (Ping timeout: 272 seconds)
13:59:05*fowl joined #nimrod
14:10:44*saml joined #nimrod
14:11:58*BlaXpirit joined #nimrod
14:36:20*bogen quit (Quit: Leaving.)
14:41:02*fowl quit (Ping timeout: 245 seconds)
14:52:26*fowl joined #nimrod
15:05:12*askatasuna joined #nimrod
15:25:04*fowl quit (Ping timeout: 260 seconds)
15:28:25*Ven joined #nimrod
15:30:12*Ven quit (Client Quit)
15:35:14*zlinn_ quit ()
15:36:53*hguux joined #nimrod
15:48:52*edayo joined #nimrod
16:18:27*BlaXpirit-UA joined #nimrod
16:19:40*BlaXpirit quit (Ping timeout: 260 seconds)
16:33:38*q66 joined #nimrod
16:45:02*Fr4n joined #nimrod
16:47:40*EXetoC quit (Read error: Connection reset by peer)
17:09:13*BitPuffin quit (Ping timeout: 258 seconds)
17:23:18*vissborg quit (Remote host closed the connection)
17:29:26*vissborg joined #nimrod
17:32:02*EXetoC joined #nimrod
17:47:25*tdc quit (Ping timeout: 260 seconds)
17:49:36*francisl quit (Quit: francisl)
17:58:51*untitaker quit (Ping timeout: 272 seconds)
18:00:40*xcombelle joined #nimrod
18:04:03*jasondotstar quit (Quit: Leaving)
18:04:09*untitaker joined #nimrod
18:18:04*francisl joined #nimrod
18:23:11woodgiraffeI have a block inside a loop that potentiall throws a set of exceptions, now when an Exception is thrown I'd like to print the same error messages as if it wouldn't be consumed and proceed within the loop.
18:24:05woodgiraffeFrom my understandment I'd have to have separate except clauses for every potentially thrown exception and thus this wouldn't be possible. - Is this correct?
18:24:14EXetoCI don't know of a way to get the actual name of the type
18:24:20Araqwoodgiraffe: getCurrentException() ?
18:24:47Araqexcept EFoo, EBar, EBaz:
18:24:56Araq echo getCurrentExceptionMsg()
18:25:26woodgiraffeAraq: ahh nice, ty
18:26:06EXetoCthat is indeed the actual message, with the type name being just additional information
18:26:51*brson joined #nimrod
18:27:37AraqEXetoC: dunno if that field is exported, but I'm sure you can access it via 'cast' and get the exception *type* as a cstring
18:27:55Araqbut how is that useful?
18:28:05Araqbtw the exception names all changed in bigbreak
18:28:17Araqso ... these names are kind of fragile anyway
18:32:13Araqbbl
18:32:44Araqwoodgiraffe: btw check out getStackTrace(e) and writeStackTrace()
18:32:55Araqthese are *really* useful :-)
18:32:55woodgiraffeAraq: ty will do
18:36:16woodgiraffeI also wondered: I'd like to, I guess at least, parse, a nim-project, resolve all its imports and get out a list of all the files that project depends on, including importcs. - Any rough pointers what parts I could use to achieve this?
18:40:58*Jehan_ joined #nimrod
18:43:58*tdc joined #nimrod
18:45:27Jehan_For what it's worth, I'm not a huge fan of using the type hierarchy as a way to model the exception hierarchy.
18:45:31Jehan_It is very limited.
18:46:16Jehan_You could model each exception as an integer and then have more flexible ways of categorizing them.
18:46:29Jehan_E.g. by membership in a bitset.
18:47:49Jehan_Using the type hierarchy as a poor man's partial order results in too much being hardcoded.
18:59:03*dapz joined #nimrod
19:04:29*noam quit (Ping timeout: 260 seconds)
19:05:28*BlaXpirit-UA quit (Quit: Quit Konversation)
19:07:02*BlaXpirit joined #nimrod
19:08:48*Ven joined #nimrod
19:14:42*edayo_ joined #nimrod
19:15:24*edayo quit (Ping timeout: 246 seconds)
19:18:21*jhc76 joined #nimrod
19:20:19*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:23:33*Fr4n quit (Ping timeout: 260 seconds)
19:27:59Araqwoodgiraffe: 'nimrod gendepend' generates a dependency graph
19:29:59AraqJehan_: I agree
19:30:14Araqbut
19:30:30Araq"extensible" distinct integers are hard
19:30:54Araqconst OverflowError = Error(8) # why 8?
19:31:09Jehan_Only if you want to define them at compile time.
19:31:25Araqconst FloatError = Error(succ(OverflowError)) # lets hope nobody else uses 9
19:31:43Jehan_Mind you, it's not entirely trivial at runtime, either (threads), but a lot more doable.
19:31:52Araqwell yes ofc I want to define them at compile time :-)
19:32:11Jehan_Why? It's not as though exceptions are cheap.
19:33:28*Fr4n joined #nimrod
19:34:17Araqsure but this problem is worth solving for lots of other use cases
19:34:52*hsuh quit (Ping timeout: 245 seconds)
19:34:58Jehan_Speaking of threads, I may be willing to finish the useStackMaskHack implementation if you're interested. While still using the main thread, too.
19:35:43*adrusi joined #nimrod
19:36:20*hsuh joined #nimrod
19:38:14Araqhrm please no. it's yet another version of the stdlib that we have to maintain
19:38:24EXetoCjust start at some relatively high, arbitrary number :>
19:38:45Araq--gc:X -d:release, -d:debug, stdlib as a DLL ...
19:38:50*noam joined #nimrod
19:38:59*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
19:39:52Araqthe combinatorial explosion is a problem
19:41:02*francisl quit (Quit: francisl)
19:43:37*Fr4n quit (Ping timeout: 245 seconds)
19:44:16AraqJehan_: what I consider more important is a new 'channel' type that is GC'ed
19:44:37Jehan_Araq: Yeah, but that would also be more work. :)
19:44:57Araqit is a 'ref' to a payload that is reference counted
19:45:31Araq'deepCopy' is overriden so the payload keeps reference semantics
19:45:48Jehan_Exactly, I'd have to dig into those semantics first.
19:45:50Araqand deepcopy + a finalizer maintain the RC
19:46:07Jehan_The stackmask stuff is pretty trivial (it helps that I've done it several times by now).
19:46:26Jehan_I'm more asking if I'd be wasting my time if I did that.
19:46:58*adrusi quit (Quit: adrusi)
19:48:48Araqwell I'm torn
19:49:08Araqit's a nice hack to get more speed on barbaric OSes like macosX
19:49:19woodgiraffe:)
19:49:34Araqbut it's also yet another thing we need to maintain
19:50:19Araqbtw they found a new security hole in Bash ...
19:51:03woodgiraffepretty bad too
19:54:46Araqyeah and Nim's effect system would have caught it :-)
19:55:38EXetoCC isn't perfect? oh well
19:56:08AraqEXetoC: well to be fair, it's not another buffer overflow
19:56:21Araqit's a feature that can be misused
19:57:11Araqif Microsoft had this bug, the net would be full of "windoze is the shit"
19:58:09Araqbut it's *nix, so it's like "yeah well, no system is perfect"
19:58:45Jehan_Hmm, I saw a lot of people saying rather not so complimentary things about bash.
19:59:36*francisl joined #nimrod
20:00:11Jehan_My own thoughts were along the lines of "oh dear, what were they thinking?"
20:00:42Araqmy thoughts were "yes, that is what you get for using *untyped* byte streams everywhere" :P
20:01:33Jehan_Honestly, there's just so many ways in which processes can communicate with other processes.
20:01:56Jehan_But, the environment is such a common attack vector already ...
20:02:39Jehan_I could accept them even parsing the environment variables to define functions. But executing any code in environment variables?
20:04:55*adrusi joined #nimrod
20:05:36*Fr4n joined #nimrod
20:05:41*Mat3 joined #nimrod
20:06:19Mat3hello
20:06:40Araqparsing environment variables to define functions is already stupid, IMO
20:07:14*edayo_ quit (Ping timeout: 250 seconds)
20:07:31Araqand the underlying problem is that there are no APIs in Unix land, but a couple of byte streams for inter process communication
20:08:04AraqJehan_: well if you look for something easy to do, why not fix the exception handling bug? :-)
20:08:34Jehan_Not sure if that's easy, but I agree that it's high priority.
20:08:44woodgiraffeAraq: dbusdbusdbus :P
20:08:56Jehan_I had a look at the code, and I'm still not sure I fully understand the way it works now.
20:09:13Jehan_If I had a solution, I'd already have submitted a pull request.
20:09:17*tdc quit (Ping timeout: 260 seconds)
20:09:53Jehan_Unrelated question: are defines starting with "nim" reserved for the compiler and stdlib?
20:10:03Araqyes.
20:10:19AraqJehan_: well it's easy to patch sempass2 to do the analysis
20:10:36Araqit could set sfVolatile for locals that are assigned within a try
20:10:44Jehan_It's easy if you already have a deep understanding of what sempass2 does.
20:10:58Jehan_At times, I'm still trying to understand individual functions.
20:13:33Araqwell ok, it's as much effort for me to fix as it is to explain it ...
20:15:25Jehan_Umm, I don't mind investing the time myself.
20:15:40Jehan_I expect that understanding it will pay off later.
20:16:58EXetoCAraq: did you mean "is this" rather than "is the shit"?
20:17:01EXetoC*shit
20:17:52AraqEXetoC: "windows is shit"
20:30:47*Matthias247 joined #nimrod
20:34:06*xcombelle quit (Quit: Quitte)
20:35:46*nande joined #nimrod
20:39:31*askatasuna quit (Quit: WeeChat 1.0)
20:39:55*askatasuna joined #nimrod
20:43:17Araqargh
20:43:40AraqI hate it when you think the compiler is wrong
20:43:44Araqbut it is correct
20:43:50Araqand your code really is wrong
20:44:42Jehan_Heh. :)
20:46:41EXetoCcompilers so strict
20:58:18*Trustable joined #nimrod
21:16:10*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:17:39AraqJehan_: is it allowed to pass the empty string to a C macro?
21:17:52Araq#define f(a, b) a
21:17:57Araqf(34,)
21:18:05Araq<-- valid?
21:18:30Jehan_I believe so, why?
21:19:59Araqcause I'm gonna use it in the codegen
21:22:56EXetoCthe GCC manual seems to indicate that it's allowed
21:24:02EXetoC"If I understand correctly, empty macro argument is allowed since C99 and C++0x(11)." hm
21:24:49EXetoCthat's no good then, is it
21:25:03Mat3would it be a good idea to extend Nim(rod) supporting multible return values (like Go does for example) ?
21:25:52AraqMat3: proc foo(): tuple[a, b: int]
21:26:00Araqlet (x, y) = foo()
21:26:16Araqi.e. it already has them
21:27:13*kuzy000_ quit (Ping timeout: 260 seconds)
21:27:33*askatasuna quit (Quit: WeeChat 1.0)
21:28:14*Demos joined #nimrod
21:30:04Mat3hmm, nice example thanks (I think the documentation should be more detailed on these aspects)
21:33:32Jehan_The problem is that someone need to write a "Programming in Nim" book.
21:33:40Jehan_Which is not exactly a trivial endeavor.
21:33:45Jehan_needs*
21:35:02Jehan_Araq: I've tidied up the setjmp performance PR, but I think it's impossible to turn setjmp() into a compiler proc for the reasons we've discussed.
21:35:24Araqok
21:38:33EXetoCslightly slower than an asm impl, right?
21:38:48Jehan_EXetoC: What is?
21:39:28EXetoCnevermind
21:42:03*francisl quit (Ping timeout: 246 seconds)
21:43:56*BlameStross joined #nimrod
21:44:01*BlameStross left #nimrod (#nimrod)
22:07:46*fowl joined #nimrod
22:19:50*Trustable quit (Quit: Leaving)
22:29:02*silven quit (Ping timeout: 245 seconds)
22:29:31*BlaXpirit quit (Ping timeout: 272 seconds)
22:29:48Mat3ciao
22:29:58*Mat3 quit (Quit: Verlassend)
22:32:04*Varriount_ joined #nimrod
22:34:12*Varriount quit (Ping timeout: 246 seconds)
22:43:23*adrusi quit (Quit: adrusi)
23:02:21*noam_ joined #nimrod
23:05:43*noam quit (Ping timeout: 258 seconds)
23:10:19*Jehan_ quit (Quit: Leaving)
23:16:31*darkf joined #nimrod
23:18:42*Matthias247 quit (Read error: Connection reset by peer)
23:38:57*adrusi joined #nimrod
23:49:29*nande quit (Remote host closed the connection)