02:19:13 | * | q66 quit (Quit: Quit) |
06:58:36 | * | EfTwelve quit (Remote host closed the connection) |
09:32:03 | * | Boscop quit (Disconnected by services) |
09:32:05 | * | Boscop joined #nimrod |
10:03:13 | shevy | oh a question |
10:03:25 | shevy | say, I would write something in nimrod-gtk |
10:03:43 | shevy | in 2 years, would that code still be expected to work? or may there be large changes to nimrod-gtk in between |
10:27:37 | * | q66 joined #nimrod |
11:19:59 | dom96 | shevy: Hard to say. The wrapper shouldn't change too much, but someone might make a |
11:20:08 | dom96 | nicer binding to it. |
11:20:23 | dom96 | The only changes to the actual wrapper will be bug fixes though. |
11:20:35 | dom96 | The interface shouldn't change, unless gtk actually changes. |
11:20:50 | dom96 | But that's gtk3 so... yeah. It is expected to work :P |
16:36:12 | * | shevy quit (Ping timeout: 268 seconds) |
16:48:51 | * | shevy joined #nimrod |
17:07:45 | * | XAMPP_ joined #nimrod |
17:17:39 | * | XAMPP quit (Ping timeout: 246 seconds) |
17:37:16 | * | Trix[a]r_za is now known as Trixar_za |
17:38:28 | dom96 | Trixar_za: Have you tried compiling Aporia recently? |
17:38:38 | dom96 | It should compile for you now. |
17:38:50 | Trixar_za | Nope. I should try updating it and Nimrod |
17:39:00 | Trixar_za | I may just do that now |
17:39:00 | Trixar_za | :P |
17:39:26 | dom96 | Let me know how it goes :D |
17:39:50 | Trixar_za | ... still freaks me out that I know the web addresses by heart |
17:40:50 | dom96 | hehe |
17:46:23 | Trixar_za | Right, here we go with bootstrapping Nimrod |
17:46:24 | Trixar_za | :P |
17:57:53 | Trixar_za | Nearly done |
17:59:34 | dom96 | You know you could have just downloaded a build from nimbuild :P |
17:59:58 | Trixar_za | Yes, but this way I look sexy |
18:00:22 | Trixar_za | And when I work as a programmer, it will look like I'm actually doing some work |
18:00:27 | dom96 | haha |
18:05:50 | Trixar_za | This last stage always takes a while |
18:05:51 | Trixar_za | :P |
18:06:43 | dom96 | Your computer is quite slow :P |
18:06:50 | Trixar_za | Yeah :( |
18:07:18 | Trixar_za | It's a little faster now. At 9 minutes for me now instead of the usual 15 |
18:08:06 | dom96 | Interesting. |
18:09:08 | Trixar_za | btw |
18:09:29 | * | Trixar_za is listening to: Haters by HoN Raps |
18:09:35 | Trixar_za | I actually tracked down a copy of the song |
18:09:36 | Trixar_za | :P |
18:16:44 | Araq | dom96: try to scroll by clicking on the arrow in aporia |
18:17:03 | Araq | do that once a day |
18:18:09 | dom96 | huh? |
18:19:04 | Araq | it often opens a new tab :P |
18:19:14 | Araq | which doesn't help when scrolling |
18:19:20 | Araq | it's really annoying |
18:19:21 | fowl | you mean doubble clicking on the scroll bar |
18:19:31 | Trixar_za | Aporia seems to be compiling |
18:19:33 | dom96 | I see. |
18:19:49 | dom96 | Araq: Come on, it's a known issue. |
18:19:59 | Trixar_za | lol |
18:20:05 | Trixar_za | Yeah, I discovered that on myself |
18:20:07 | Araq | fix it |
18:20:12 | Araq | fix it |
18:20:13 | Araq | fix it |
18:20:14 | Trixar_za | one* |
18:20:45 | fowl | what i need is some kind of layout/splitting options |
18:21:33 | dom96 | Araq: You could always you know, use a scroll wheel like a normal person :P |
18:21:41 | fowl | i work best like this: http://minus.com/lFOq6tKBRTlco |
18:21:47 | Trixar_za | Yay, it compiled |
18:21:53 | Trixar_za | Did one of you fix it? |
18:21:53 | Trixar_za | :P |
18:22:16 | dom96 | Trixar_za: I fixed it :P |
18:22:36 | dom96 | fowl: Vertical split is in the todo list, not sure if I will get it in for 0.1.3 though |
18:23:24 | Trixar_za | I like piekno |
18:23:38 | dom96 | Trixar_za: :D |
18:31:55 | Trixar_za | I, like all my bachelor forefathers, will now have breakfast foods for dinner |
18:35:44 | fowl | breakfast for dinner is the best |
18:36:36 | Trixar_za | I'm newly single, so celebrating like a guy |
18:36:39 | Trixar_za | :P |
18:36:49 | Trixar_za | That and I'm too broke to go on a drinking binge |
18:51:00 | shevy | lol |
18:51:07 | shevy | Trixar is one funny guy |
18:55:31 | fowl | Trixar_za: i used to have tons of fun for $5 i'd go to the gas station and buy two bottles of cough drops, they sold this brand that only had DXM in it so it didnt make you sick when you downed 40 pills |
18:58:35 | * | zahary joined #nimrod |
19:02:43 | Trixar_za | Probably will only work once on me. My body sucks because it builds tolerance to most things pretty quickly |
19:47:21 | * | EfTwelve joined #nimrod |
20:06:36 | Araq | hi EfTwelve, welcome back |
20:09:36 | EfTwelve | hi |
20:29:22 | Araq | ping zahary |
20:30:06 | Araq | semtypes.nim:830 |
20:30:16 | Araq | result = copyType(result, getCurrOwner(), false) |
20:30:18 | Araq | for i in countup(1, n.len - 1): |
20:30:19 | Araq | result.rawAddSon(semTypeNode(c, n.sons[i], nil)) |
20:31:04 | Araq | this is only supposed to be triggered if result.kind == tyTypeDesc, right? |
20:36:23 | reactormonk | Araq: would you accept some random overloads? |
20:36:45 | Araq | reactormonk: like? |
20:37:31 | reactormonk | Araq: random(int) 0..<int random(x,y) x..<y and same for floats |
20:38:20 | fowl | proc random(x: TSlice[int]): int = result = random(x.b - x.a) + x.a |
20:38:39 | Araq | random(int) already exists, right? |
20:38:46 | reactormonk | oh, they're called slices, not ranges... |
20:38:49 | reactormonk | Araq: yep |
20:39:33 | fowl | isnt there a standard randomfloat func we can import from c |
20:39:40 | reactormonk | fowl: sure there is |
20:40:01 | Araq | dunno I think random(int) should become a template |
20:40:15 | reactormonk | huh? |
20:40:34 | Araq | so you'd have: case random() mod 3 |
20:40:47 | Araq | of 0, 1, 2: echo "yummy" |
20:40:56 | Araq | --> no 'else' required |
20:41:10 | Araq | compiler is smart enough to perform the interval analysis :P |
20:41:30 | Araq | it can't do this interval tracking through procs though |
20:41:35 | Araq | so we'd have: |
20:41:50 | Araq | template random(n: int): int = random() mod n |
20:42:52 | Araq | same for random(x.b - x.a) + x.a |
20:44:56 | Araq | thinking about it -- it's wrong for negative numbers :-| |
20:45:11 | Araq | -5 mod 2 == -1 according to the REPL |
20:45:57 | Araq | oh well, I'll fix it somehow |
20:52:24 | fowl | there's always %% |
20:53:44 | Araq | true |
23:22:56 | zahary | Araq, about your question: no, it would be true for tyExpr too |
23:23:46 | Araq | well sure, but was that your intention? |
23:23:59 | Araq | the code does not contain any check |
23:24:37 | Araq | and I changed it for anything != tyTypeDesc :P |
23:24:44 | Araq | to support: |
23:24:55 | Araq | expr{lit|call, noalias} |
23:28:29 | Araq | also you setting typ.n for tyExpr in sigmatch is evil |
23:30:09 | Araq | but it's a minor grief as I introduced typ.constraint for the new features |
23:32:23 | Araq | template optRe{re(X, Y)}(X: string{lit}, Y: varargs[expr]) = |
23:32:24 | Araq | let cached {.global, gensym.} = re(X, Y) |
23:32:26 | Araq | cached |
23:32:39 | Araq | --> problem: it triggers an endless recursion |
23:33:04 | Araq | as the resulting code is searched for TRMs again |
23:33:20 | Araq | and 're(X, Y)' matches just like it did the first time |
23:41:45 | Araq | zahary: well? |
23:47:48 | zahary | my reasoning was that this T{foo, bar} syntax is always likely to work by introducing children to the type whatever the implemented feature is so I didn't put any restrictions there. feel free to change it |
23:48:01 | zahary | anything != tyTypeDesc doesn't sound right tho |
23:48:37 | Araq | but it is: string{lit} |
23:49:05 | Araq | is natural to do |
23:49:27 | Araq | expr{lit} is often not good enough |
23:49:34 | Araq | and you can also have: |
23:49:43 | Araq | string{skVar} |
23:50:15 | Araq | which matches a node of kind nkSym with a symbol of kind skVar of type 'string' |
23:51:15 | Araq | in fact, I've implemented a stack based virtual machine for efficient pattern matching of these ... |
23:51:17 | zahary | do we disagree somewhere? feel free to add a switch statement based on the type of the constraint |
23:51:34 | Araq | well I did |
23:51:46 | Araq | and you said != tyTypeDesc doesn't sound right to you ;-) |
23:51:53 | Araq | which is my 'switch' |
23:52:53 | zahary | I meant result.kind != tyTypeDesc doesn't sound right (because tyExpr{string} should continue to work) - is that what you meant? |
23:53:19 | Araq | yes |
23:53:35 | Araq | I broke tyExpr{string} |
23:54:02 | Araq | why was that useful btw? |
23:54:14 | zahary | this is compile-time string value |
23:54:43 | Araq | hrm |
23:55:35 | zahary | we probably have some overlap now between string{lit}, expr{nkStrLit} and expr{string{ |
23:55:43 | zahary | expr{string} |
23:56:12 | Araq | not really as the patterns only work in TR patterns |
23:56:16 | zahary | expr{string} is any kind of compile-time evaluatable expression that returns a string |
23:56:38 | zahary | expr{nkStrLit} is supposed to be stronger, requiring a real literal node |
23:56:47 | Araq | I see now why you used static{string} for that |
23:56:58 | Araq | well |
23:57:13 | Araq | I'll change it so that: |
23:57:36 | Araq | the [] will introduce a type class |
23:57:47 | Araq | and {} a pattern |
23:58:02 | Araq | typedesc[int] # no problem, right? |
23:58:13 | Araq | expr[string] |
23:59:06 | zahary | well, no problem, but they sound more pattern-like to me than generic-like (i.e. seq[int]) |
23:59:23 | Araq | well T[] produces a type |
23:59:33 | Araq | and T{} does not |
23:59:55 | zahary | I mean expr[string] is more of a pattern to me than a type |