00:00:11 | * | Kooda quit (Ping timeout: 245 seconds) |
00:00:18 | filwit | i've been meaning to work on compiler stuff more, but i'm also pretty dedicated to my own nimrod project ATM |
00:00:39 | NimBot | Araq/Nimrod devel 9502f38 Micky Latowicki [+0 ±1 -0]: dynlib: optionally pass RTLD_GLOBAL to dlopen |
00:00:39 | NimBot | Araq/Nimrod devel 067927f Andreas Rumpf [+0 ±1 -0]: Merge pull request #897 from micklat/devel... 2 more lines |
00:01:09 | filwit | i read the last couple days of logs, and looks like skyfex jumped right into fixing issues. that's awesome. someone needs to buy him a beer ;-) |
00:01:19 | Araq | indeed |
00:01:52 | Araq | he came here and praised our code base |
00:02:08 | Araq | that was enough to know he's up for the task :P |
00:02:16 | filwit | lol |
00:03:25 | vbtt | haha |
00:04:53 | filwit | it seems that Dr Dobbs article has brought a few more folks to the forums as well |
00:05:55 | vbtt | i hope so |
00:06:31 | vbtt | you could createa google form survey and ask newcomers to fill it out if they want. |
00:07:11 | filwit | anyways, I'm glad you didn't decide to throw away the new VM either. I want to get really familiar with it to the point I can eventually use it directly inside my editor. |
00:07:38 | vbtt | for what? |
00:08:05 | filwit | scripting without compiling |
00:08:09 | filwit | basically |
00:08:34 | filwit | but that's a bit down the road from where i'm at |
00:11:17 | vbtt | ok |
00:11:50 | * | Matthias247 quit (Quit: Matthias247) |
00:15:22 | * | FireFly joined #nimrod |
00:15:32 | Varriount | Hi FireFly |
00:15:38 | FireFly | Heya |
00:16:20 | vbtt | hi FireFly welcome |
00:16:29 | dom96 | hello FireFly :) |
00:17:37 | NimBot | Araq/Nimrod devel 5f839ef Dominik Picheta [+0 ±2 -0]: Modified website news titles and made ticker titles consistent. |
00:17:37 | NimBot | Araq/Nimrod devel 8fbc06d Dominik Picheta [+0 ±2 -0]: Improved community page and fixed ticker links. |
00:17:37 | NimBot | Araq/Nimrod devel 4e853c2 Dominik Picheta [+0 ±1 -0]: Fix line-height for h1 in website. |
00:17:37 | NimBot | Araq/Nimrod devel 0c0551d Dominik Picheta [+0 ±1 -0]: Added google analytics to website. |
00:17:37 | NimBot | 1 more commits. |
00:19:04 | filwit | hey, Google Analytics. Cool. :) |
00:19:45 | Araq | I can soon pay my bills by having some advertisement on the site |
00:19:56 | filwit | lol |
00:20:13 | vbtt | dom96: I see you capitalized the ticker text but only the first word is capitalized on the site tickers. |
00:20:54 | vbtt | also, long news titles wrap and don't look great. |
00:21:04 | vbtt | anyway, minor issues. |
00:21:45 | dom96 | Well, actually you capitalized it in your commit :P |
00:21:51 | dom96 | But yeah, i'll change it |
00:22:02 | vbtt | yeah and then i fixed it. |
00:22:32 | dom96 | not in news.txt |
00:22:58 | vbtt | right, news.txt has capitalized titles. |
00:23:16 | vbtt | oh hmm |
00:23:20 | dom96 | It doesn't. |
00:23:21 | vbtt | actually you're right. |
00:23:27 | vbtt | nevermind. |
00:24:15 | vbtt | not sure why i didn't fix that. |
00:24:22 | vbtt | anyway, g2g. thanks for fixing. |
00:24:34 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
00:26:02 | NimBot | Araq/Nimrod devel 5c1ac1b Dominik Picheta [+0 ±1 -0]: Make ticker title consistent. |
00:26:16 | filwit | is there any way to do this: for var child in something.children: procWhichTakesAVar(child) |
00:26:29 | filwit | with a custom iterator maybe? |
00:26:32 | Araq | mitems |
00:26:40 | Araq | I have a deaj-vu |
00:26:42 | filwit | yeah that doesn't exist anymore i don't think |
00:26:45 | Araq | *deja-vu |
00:26:48 | filwit | no, i remember |
00:26:49 | * | oxful_ joined #nimrod |
00:26:53 | Araq | so add it |
00:27:06 | Araq | but this bloat of system.nim has to stop |
00:27:31 | filwit | well, let me change my question: how to return a var type from an iterator? |
00:27:52 | filwit | i mean.. i can just 'var c = child' inside the loop... |
00:29:23 | filwit | i don't know why i even ask these things. it works that way, i guess I'm just expecting it to one-day break due to stricter 'const ref' rules or something |
00:29:43 | * | oxful quit (Ping timeout: 260 seconds) |
00:30:44 | dom96 | You're not changing the value inside the collection you are iterating over though if you do that. |
00:30:52 | dom96 | You will just chance 'c' |
00:30:55 | dom96 | *change |
00:31:14 | filwit | c is a copy of child? |
00:31:31 | filwit | i though c would just be a reference to child through an un-const reference |
00:32:12 | EXetoC | aka mutable, but it depends on whether or not it's a value type |
00:32:28 | filwit | it's a PNimrodNode |
00:36:14 | * | brson quit (Ping timeout: 264 seconds) |
00:36:35 | EXetoC | well there you have it |
00:36:39 | EXetoC | return 'var' is possible |
00:36:47 | Araq | no |
00:36:57 | Araq | it doesn't work that way |
00:37:24 | EXetoC | well, it's limited |
00:37:31 | Araq | filwit: PNimrodNode is a 'ref' when you yield it, you can modify the node but not the pointer itself |
00:37:52 | Araq | but usually that's what one wants |
00:38:10 | Araq | good night |
00:38:23 | filwit | okay, bye |
00:41:01 | filwit | so: https://gist.github.com/PhilipWitte/9062277 |
00:41:27 | filwit | i don't need 'var PNimrodNode' in hasPragma cause PNimrodNode is a ref? |
00:42:35 | filwit | i guess that makes sense since i'm not modifying the reference of 'this' itself, just adding to it's parts. I was just expecting all modifications to be errors and thought this only worked cause it was a compile-time proc or something. |
00:42:37 | EXetoC | right |
00:42:48 | filwit | okay |
00:47:49 | NimBot | Araq/Nimrod devel 8023128 Zahary Karadjov [+0 ±3 -0]: fix #204; |
00:47:49 | NimBot | Araq/Nimrod devel c4f0466 Zahary Karadjov [+0 ±2 -0]: fix tbindtypedesc and tactiontable2 |
00:47:49 | NimBot | Araq/Nimrod devel 9dcbe49 Zahary Karadjov [+3 ±7 -3]: fix some trivial errors in the test suite and some more regressions caused by tyTypeDesc[tyNone] |
00:47:49 | NimBot | Araq/Nimrod devel 1a2c847 Zahary Karadjov [+1 ±10 -0]: Merge branch 'devel' of gh:/Araq/Nimrod into devel |
00:54:53 | EXetoC | im in ur devel, merging into ur devel |
01:00:15 | * | zahary1 quit (Quit: Leaving.) |
01:00:30 | filwit | any way to get the module name of a specific expr passed to a macro? |
01:02:06 | * | carum joined #nimrod |
01:07:11 | filwit | guess i can extract it from macros.lineinfo |
01:16:36 | renesac | https://gist.github.com/ReneSac/d14e00e60dfe052ebd10 <-- why this error happens? |
01:16:46 | renesac | and what I can do to avoid it while using a template? |
01:17:54 | filwit | maybe cause the template doesn't specify a return type? |
01:18:22 | renesac | it gives the same error if I specify ":expr" |
01:18:37 | renesac | oh, no it doesn't |
01:18:42 | renesac | strange |
01:19:37 | renesac | very strange |
01:20:16 | renesac | If I use if instead of when in the example above, the compiler exits with a "SIGFPE: Arithmetic error." |
01:20:21 | EXetoC | it works pretty much like it does for procs |
01:20:54 | renesac | but if I use when instead of if in my code, with the rest of the template exactly the same, the compiler exits with SIGSEGV: Illegal storage access. (Attempt to read from nil?) |
01:21:22 | renesac | and if I use 'if' in my code, I get that "discard" error |
01:21:57 | renesac | I can't produce a minimum example... |
01:22:24 | EXetoC | looks pretty minimal to me |
01:22:34 | renesac | but it don't behave the same way as in my code |
01:22:55 | renesac | in my code, that causes a SIGSEGV |
01:23:40 | renesac | if I exchange "when" for "if", with ":expr" as return type, it gives that "discard" error anyway |
01:23:40 | EXetoC | don't try too hard reducing it |
01:25:13 | EXetoC | I don't know why it needs to be a template, but try assigning to result or specify an actual type as the return type |
01:25:32 | EXetoC | x.type perhaps |
01:26:31 | renesac | now my reduced example don't gives any error |
01:26:49 | renesac | well, I want to use 'when' so I need a template |
01:27:01 | renesac | I also wanted to learn better how to use templates |
01:28:37 | EXetoC | perhaps you need to use a literal constraint then (x: TInteger{lit} for example) |
01:31:26 | EXetoC | otherwise it has to infer that property for every instantiation, which might not be a good idea |
01:34:09 | renesac | well, that is constraining... |
01:35:53 | EXetoC | yes, but 'when' implies compile-time evaluation |
01:36:00 | renesac | I know |
01:36:06 | renesac | but I wanted something like: https://gist.github.com/ReneSac/d14e00e60dfe052ebd10 |
01:36:25 | renesac | not sure if the {lit} will bite me there |
01:38:11 | EXetoC | http://build.nimrod-lang.org/docs/manual.html#static-t |
01:39:22 | EXetoC | I don't know how well that works. it's pretty new |
01:39:46 | renesac | hum, and only gives procs as examples |
01:40:15 | renesac | and says that it will be compiled separatedly for each unique supplied value, but I only need the difference between 0 and not 0 |
01:40:29 | renesac | I will have to rethink that |
01:40:37 | renesac | maybe a boolean |
01:40:38 | Varriount | Can xor help? |
01:40:45 | renesac | xor? |
01:40:58 | EXetoC | renesac: oh and I forgot about the 'static' block |
01:41:22 | Varriount | Nimrod has an xor logic operator. This OR That, but not this AND that |
01:41:53 | renesac | I know, but I don't see how that hellps |
01:42:37 | EXetoC | http://build.nimrod-lang.org/docs/manual.html#static-statement-expression |
01:43:10 | renesac | humm |
01:43:16 | renesac | I will try those |
01:43:20 | EXetoC | if all this fails, then you might have to use a proc annotated with the compileTime pragma |
01:43:45 | renesac | now I'm making a bug report because it seems I finally nailed the recipes to cause the compiler to crash |
01:48:09 | * | brson joined #nimrod |
02:04:28 | Varriount | It just occurred to me that, when nimrod gets return type inferencing for procedure selection, we will be able to do things like (0 < x < 7) |
02:04:50 | fowl | eh |
02:05:04 | Varriount | Eh? |
02:06:56 | EXetoC | I can't see how that would allow for something like that |
02:07:17 | Varriount | Hm, then what would? |
02:08:31 | OrionPK | int < bool? |
02:08:32 | filwit | nothing.. (0 < x < 7) is ((0 < x) < 7) is ((bool) < int) |
02:08:39 | OrionPK | or bool < int |
02:09:32 | Varriount | But if it was inferred that `<`(0, x) needed to return an int |
02:09:47 | OrionPK | then you'd have an int at the end |
02:09:49 | fowl | maybe if < returned some crazy boxed value |
02:10:02 | OrionPK | 0 < x < 7 == some int? |
02:10:13 | filwit | so (0 < x) == x ? |
02:10:19 | Varriount | OrionPK: No, the second function would return a bool |
02:10:30 | fowl | ie 0 < x returned Trueish[int] with x as the val, then have < for (trueish[int], int) |
02:13:32 | renesac | https://github.com/Araq/Nimrod/issues/939 <-- crazy issue reported, with lots of snippets to make your compiler cry :) |
02:14:08 | * | renesac proud of reducing those crashes |
02:14:14 | renesac | XD |
02:14:29 | renesac | probably not very high priority though... |
02:18:29 | EXetoC | Varriount: so maybe, but then you could invoke that overload in other situations |
02:18:52 | Varriount | EXetoC: Yeah, your probably right. |
02:19:16 | Varriount | I started doing some sketches of the idea, and it got complicated pretty quickly |
02:19:56 | EXetoC | and somehow you'd need to optionally allow the return type to be omitted at the call site |
02:20:08 | fowl | Varriount, you know you can do `x in 0 .. 7` right |
02:20:18 | EXetoC | Varriount: how about some term-rewriting wizardry :> |
02:22:29 | Varriount | fowl: Yes, I was just thinking about another way. |
02:22:50 | Varriount | I know, it's a dangerous thing to do, thinking; I just can't help it. |
02:23:17 | Varriount | I wonder how python does it. |
02:23:35 | EXetoC | does what? |
02:24:14 | * | carum quit (Remote host closed the connection) |
02:24:38 | fowl | Varriount, probably expands it in a > b > c to a > b && b > c |
02:25:04 | Varriount | fowl: Probably. |
02:25:13 | EXetoC | yeah special-casing, just a tad more than in nimrod |
02:25:44 | fowl | i can probably make this work with tmaybe |
02:26:16 | Varriount | A macro to do something like that would be helpful, even if it needed to be explici |
02:28:20 | fowl | https://gist.github.com/fowlmouth/c7af1fe926629fd932f6 |
02:29:01 | fowl | have you guys seen this http://www.twitch.tv/twitchplayspokemon |
02:29:36 | EXetoC | < 'a' == ',' |
02:30:01 | Varriount | fowl: What's TMaybe? |
02:30:13 | EXetoC | that's pretty subtle. I wanted to try my own `<` but there's already an unary `<` :> |
02:30:32 | fowl | Varriount, tmaybe[t] = tuple[has: bool; val: T] |
02:30:50 | Varriount | 'has' being..? |
02:31:16 | EXetoC | whether it has a value |
02:31:23 | fowl | ^ |
02:31:35 | fowl | in this case its used as the result of < though |
02:31:58 | fowl | just convenient since i have a converter so you can use it in an if stmt |
02:33:04 | Varriount | fowl: As always, you are full of surprises. |
02:47:17 | fowl | lol |
02:47:33 | * | brson quit (Ping timeout: 248 seconds) |
02:49:20 | * | brson joined #nimrod |
03:03:55 | reactormonk | https://github.com/Araq/Nimrod/commit/2f24475d2854b2b5d0cf90cc8e6cdf767e7c06c6 <- debug code left over? |
03:28:18 | * | brson quit (Quit: leaving) |
03:32:41 | * | aftershave_ joined #nimrod |
03:52:07 | * | aftershave_ quit (Quit: Computer has gone to sleep.) |
04:02:25 | * | [Pete_27] quit (Remote host closed the connection) |
04:07:33 | * | ics joined #nimrod |
04:15:02 | * | carum joined #nimrod |
04:26:28 | * | [Pete_27] joined #nimrod |
04:27:00 | * | Amrykid quit (Ping timeout: 252 seconds) |
04:27:33 | * | dom96 quit (Ping timeout: 252 seconds) |
04:28:48 | * | Amrykid joined #nimrod |
04:30:48 | * | dom96 joined #nimrod |
04:33:24 | * | dmac joined #nimrod |
05:40:54 | * | gour joined #nimrod |
05:59:40 | * | carum quit (Remote host closed the connection) |
06:03:27 | * | filwit quit (Quit: Leaving) |
06:03:40 | * | carum joined #nimrod |
06:14:59 | * | xtagon quit (Ping timeout: 240 seconds) |
06:19:07 | * | zielmicha-cloud_ quit (Ping timeout: 272 seconds) |
06:20:25 | * | zielmicha-cloud_ joined #nimrod |
06:30:34 | skrylar | hrm. was looking around with tcl/tk for nimrod, and noticing something i didn't care for (though maybe slightly OT) |
06:31:01 | skrylar | Lua has legitimate usertypes for exposing black boxes; Tcl makes you hashtable your own string identifiers |
07:04:07 | * | carum quit (Remote host closed the connection) |
07:27:00 | skrylar | hrm |
07:28:04 | skrylar | It might be something to introduce an actual 'unsafe' tag, so you could use the tag/effect system to block pointer operations from modules that aren't extensively tested for them |
07:39:14 | * | Kooda joined #nimrod |
07:44:02 | * | BitPuffin quit (Ping timeout: 264 seconds) |
08:25:16 | * | dmac quit (Ping timeout: 245 seconds) |
08:46:01 | * | [Pete_27] quit (Remote host closed the connection) |
08:47:49 | * | [Pete_27] joined #nimrod |
08:50:06 | * | [Pete_27] quit (Client Quit) |
08:50:25 | * | [Pete_27] joined #nimrod |
09:07:48 | * | q66 quit (Quit: Leaving) |
09:23:07 | skrylar | Araq: i broke it. if you make a child object which has no parameters to itself, nimrod makes invalid C which tries to call 'Sup' (but doesn't generate the sup) |
10:03:35 | skrylar | nevermind, the issue oddly had to do with using a "var ref" type |
10:04:40 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
11:01:28 | Araq | skrylar: known bug, has already been reported |
11:58:39 | * | BitPuffin joined #nimrod |
12:04:35 | BitPuffin | hey dom96 |
12:04:45 | BitPuffin | I tried doing it the way that the template does it |
12:04:48 | BitPuffin | but the bind part fails |
12:04:50 | dom96 | hi BitPuffin |
12:05:14 | BitPuffin | https://gist.github.com/BitPuffin/9069692 |
12:05:20 | BitPuffin | maybe it doesn't work to do it the exact same way |
12:05:24 | dom96 | let's see here |
12:05:29 | BitPuffin | dom96: do you want me to report the problem to the compiler or to jester? |
12:05:36 | dom96 | compiler |
12:05:57 | dom96 | ahh, yeah. You don't need to use the 'bind' |
12:06:40 | dom96 | Do the other templates fail too? |
12:06:45 | dom96 | Specifically resp? |
12:07:02 | BitPuffin | don't think so no |
12:07:34 | * | zielmicha-cloud_ quit (Ping timeout: 245 seconds) |
12:07:42 | BitPuffin | dom96: can't use TCActionSend |
12:08:17 | dom96 | gah, I guess Jester really does rely on templates too much heh |
12:08:27 | dom96 | Just export TCActionSend as a workaround |
12:08:43 | dom96 | or you could switch to master I think |
12:08:46 | dom96 | I bet it works there |
12:08:54 | * | zielmicha-cloud_ joined #nimrod |
12:11:02 | BitPuffin | dom96: master jester? |
12:11:07 | dom96 | no |
12:11:09 | dom96 | master compiler |
12:12:08 | BitPuffin | dom96: so do you mean master or devel or newasync |
12:12:20 | BitPuffin | I should probably be using newasync when developing my game btw |
12:12:36 | dom96 | Didn't I just say 'master'? |
12:12:49 | BitPuffin | you did bitch |
12:12:55 | BitPuffin | but you never know :P |
12:13:06 | BitPuffin | Maybe you could be used to the old system brah |
12:13:41 | dom96 | I'm working in the devel branch on the newasync stuff now anyway |
12:14:04 | BitPuffin | dom96: nope still the same internal error on the latest master |
12:14:18 | BitPuffin | guess I'll try it in sinatra or something |
12:14:24 | BitPuffin | but I wanted to use nimrod at work :'( |
12:14:44 | BitPuffin | just gonna report the issue first |
12:14:59 | dom96 | Can't you wait? Maybe Araq will fix it for you. |
12:15:23 | BitPuffin | if he can fix it within 5-10 minutes maybe |
12:15:39 | BitPuffin | but it was just to test if an objective-c library can understand redirects |
12:16:08 | dom96 | He's likely at work now. So no. |
12:16:31 | dom96 | I will try to come up with a workaround |
12:18:02 | BitPuffin | https://github.com/Araq/Nimrod/issues/941 |
12:18:05 | BitPuffin | There we go |
12:18:15 | BitPuffin | Although I will probably need it fixed regardless, since I am working on my website |
12:18:24 | BitPuffin | and since I have a server now I actually have some real incentive hehe |
12:18:33 | dom96 | huh |
12:18:40 | dom96 | tests/asynctest compiles |
12:18:46 | BitPuffin | yes? |
12:18:47 | dom96 | Show me your full code.l |
12:18:59 | dom96 | oh, it's in the issue. |
12:19:30 | dom96 | Yeah, that compiles for me. |
12:19:58 | dom96 | Although my compiler is pretty old |
12:20:23 | dom96 | '2014-01-27' |
12:20:34 | BitPuffin | dom96: try with latest |
12:20:56 | dom96 | Are you sure master also fails? |
12:21:56 | BitPuffin | dom96: what do you mean also, I am using master all the time :P |
12:22:40 | dom96 | Still compiles for me... |
12:23:05 | BitPuffin | wtf |
12:23:11 | BitPuffin | OSX+ |
12:23:13 | BitPuffin | OSX? |
12:23:14 | dom96 | Yep |
12:23:19 | dom96 | That's the problem. |
12:23:31 | dom96 | We should get an OSX tag :P |
12:23:37 | BitPuffin | probably |
12:23:41 | BitPuffin | macs suck dick |
12:23:43 | BitPuffin | don't get one |
12:23:50 | BitPuffin | regardless of what zahary might tell you |
12:24:21 | dom96 | I don't have enough money for that kind of purchase. |
12:24:22 | BitPuffin | although I guess in this case it's more a problem of nimrod's support for mac |
12:28:03 | dom96 | BitPuffin: I will need your help later. |
12:28:06 | dom96 | Since you have a mac. |
12:28:18 | BitPuffin | dom96: sure thing my brother |
12:28:25 | BitPuffin | dom96: what is it you need help wiz? |
12:28:42 | dom96 | kqueue support for async |
12:28:49 | BitPuffin | in english |
12:28:55 | BitPuffin | no but what is kqueue |
12:28:55 | dom96 | although I guess I could get a BSD vm |
12:29:11 | dom96 | It's like epoll but for BSD/OSX |
12:29:17 | BitPuffin | what's epoll |
12:29:25 | dom96 | lol |
12:29:31 | BitPuffin | :) |
12:29:36 | dom96 | Look it up :P |
12:31:46 | BitPuffin | no u |
12:37:04 | skrylar | epoll and kqueue are high-performance file descriptor checkers |
12:37:35 | skrylar | basically, "select" is the berkeley socket way of asking if one of a set of sockets has been updated and its portable; epoll is the linux version IIRC |
12:37:51 | skrylar | and kqueue is the FreeBSD version which is the fastest of all of them IIRC but the least portable |
12:38:50 | dom96 | really? kqueue is fastest? |
12:38:56 | dom96 | Never heard that before. |
12:40:29 | BitPuffin | FreeBSD is known for having pretty much the best network stac |
12:40:31 | BitPuffin | k |
12:49:46 | * | aftershave_ joined #nimrod |
12:55:18 | BitPuffin | dom96: doood |
12:55:35 | * | FireFly quit (Ping timeout: 272 seconds) |
12:55:37 | BitPuffin | dom96: wouldn't it be kind of sweet to make a websocket backend to the asyncio/sockets modules? |
12:55:52 | BitPuffin | dom96: so that it would work when compiling to js |
12:55:56 | skrylar | http://www.eecs.berkeley.edu/~sangjin/2012/12/21/epoll-vs-kqueue.html |
12:56:24 | skrylar | tl;dr kqueue also acts as a transciever for *all* events at once, whereas epoll is only for sockets |
12:56:37 | BitPuffin | so we could basically make a website that let's you run jester in the browser to try it out |
12:56:39 | BitPuffin | :3 |
12:57:13 | BitPuffin | BSD is the shit |
12:57:18 | BitPuffin | although my server runs arch |
12:57:20 | BitPuffin | lol |
12:57:29 | skrylar | eh, FBSD is known for taking longer to turn the ship |
12:57:41 | skrylar | the impression i remember is FBSD devs talking about multi-cpu support |
12:57:48 | BitPuffin | skrylar: have you seen FBSD 10? |
12:57:56 | BitPuffin | Whole new package management system and everything |
12:58:18 | skrylar | as the story goes Linux just janked SMP support in and called it done, freebsd took extra time to rearchitect things. So Linux "got it first", FBSD's experiences less inefficiency... |
12:58:37 | skrylar | But there is no love for BSD, because they demand order while Linus and pals love chaos |
12:58:50 | BitPuffin | Yeah but when it reaches BSD it is polished |
12:59:06 | skrylar | well one key benefit is that a BSD is actually an OS |
12:59:10 | BitPuffin | It's just two different ways to go about it |
12:59:13 | BitPuffin | yeah exactly |
12:59:14 | skrylar | there is none of this "no no thats just the kernel" sidestep |
12:59:45 | skrylar | I tend to use linux if nothing else because FBSD's drivers tend to lag on the workstation |
12:59:57 | skrylar | And if you ask a hosting provider for BSD, they stare at you |
13:00:08 | BitPuffin | Well yeah Linux is a better desktop |
13:00:15 | BitPuffin | especially with wayland on the way |
13:00:16 | skrylar | not really. |
13:00:31 | skrylar | its "better" in that for some reason its the favorite |
13:00:38 | BitPuffin | Well I just mean in terms of hardware support and tech. FBSD is nicer since it is more cohesive |
13:00:42 | skrylar | FBSD's mutilated corpse is used to run mac desktops |
13:00:42 | dom96 | is there anything like linode or digital ocean which offers BSD VPS'? |
13:00:48 | BitPuffin | dom96: RootBSD |
13:00:50 | skrylar | I think Rackspace offers it |
13:00:59 | BitPuffin | dom96: Amazon |
13:01:06 | BitPuffin | dom96: there are a few |
13:01:12 | BitPuffin | and there is another one on the way |
13:01:29 | skrylar | BitPuffin: I'm not entirely sure what the deal is; you would think that FBSD appealed to people's expectations of stability et all, especially since the kernel tends to have more security |
13:01:54 | BitPuffin | skrylar: Yeah I'm not sure what the reason is |
13:01:58 | BitPuffin | skrylar: I guess it's luck |
13:02:03 | BitPuffin | one managed to get the hype up |
13:02:09 | skrylar | the licenses are even more liberal for BSD o_O |
13:02:15 | BitPuffin | waay more liberal |
13:02:18 | BitPuffin | the GPL sucks dick |
13:02:27 | skrylar | its literally *better* in every imaginable way, and yet it has zero mainstream support |
13:02:35 | BitPuffin | Well |
13:02:38 | BitPuffin | I wouldn't say zero |
13:02:45 | BitPuffin | I mean the Playstation 4 runs it haha |
13:02:49 | skrylar | pfff lol |
13:03:07 | skrylar | I love the thunder stealing valve is doing lately |
13:03:12 | BitPuffin | And everyone who uses Netflix uses FreeBSD |
13:03:18 | BitPuffin | indirectly |
13:03:29 | BitPuffin | Their CDN runs FreeBSD |
13:03:42 | skrylar | they hijacked the 'early access' moniker from an indie model they had nothing to do with, now they are basically taking credit for games on linu |
13:04:05 | BitPuffin | Haha |
13:04:06 | skrylar | though I loved when they ported Source to a derpy OpenGL wrapper, and it outperformed direct-x on windows >_< |
13:04:07 | BitPuffin | yeah |
13:04:13 | BitPuffin | I'd say it's more thanks to HIB |
13:04:32 | BitPuffin | Hahaha yeah |
13:04:35 | skrylar | well Sam tried to bring games to Linux with lokisoft |
13:04:41 | skrylar | that's the legacy of SDL |
13:04:52 | skrylar | and then everyone took SDL to run games on the xbox o_O |
13:05:03 | BitPuffin | The OpenGL on windows outperformed d3d, and OpenGL on linux outperformed OpenGL on windows lol |
13:05:24 | skrylar | i rather like the newer GL pipes |
13:05:35 | skrylar | it seems like they're letting smart people design it again, instead of... autodesk. |
13:06:23 | skrylar | but yeah HIB did a great job when they started forcing linux support as part of the deal, then people started really getting the hint that linux people pay more |
13:06:34 | skrylar | sadly wolfire decided to almost exclusively sell steamshit bundles now |
13:06:47 | BitPuffin | Yeah |
13:06:53 | BitPuffin | And they have dropped the linux requirement |
13:06:55 | BitPuffin | which such |
13:07:08 | skrylar | I was peeved when they ran the THQ bundle twice |
13:07:30 | skrylar | the original THQ bundle turned out to just be a golden parachute for the execs, I don't think anything from it made it to any devs |
13:08:10 | skrylar | I unsubbed finally; if i want steam games i'll buy them when steam harasses me about them, i don't use NOT STEAM to hear about steam |
13:08:33 | skrylar | 'least we've still got GOG |
13:08:50 | BitPuffin | skrylar: I usually buy on HIB to get the steam games but also the DRM free version |
13:08:56 | BitPuffin | I think it's even worth paying extra for that |
13:09:06 | BitPuffin | and GOG doesn't even support Linux because they are Retards |
13:09:11 | skrylar | GOG can't |
13:09:13 | BitPuffin | They have the most bullshit excuse ever |
13:09:20 | BitPuffin | They can |
13:09:42 | skrylar | they could let indies give binaries for it, but a chunk of their catalogue barely runs on Windows |
13:10:18 | skrylar | i think its hilarious they sell King of Dragon Pass, which has a hit-and-miss compatability with XP/7 |
13:10:27 | BitPuffin | Well the reason they gave was basically that the versions of the libraries are different on different distros, and grow out of date quickly |
13:10:30 | BitPuffin | but so fucking what |
13:10:32 | BitPuffin | the solution is simple |
13:10:39 | BitPuffin | ship the game with the stupid libraries then |
13:10:44 | BitPuffin | then they won't change |
13:10:47 | BitPuffin | idiots |
13:10:57 | skrylar | the real sad bag is that the people who made King of Dragon Pass remade it as a native iOS game |
13:11:13 | skrylar | apparently the fact people still buy the game isn't a hint to make an HD version for the PC... |
13:11:40 | skrylar | BitPuffin: thats a small hell still, though :/ |
13:11:54 | skrylar | compatability on linux is a massive vortex of masochism |
13:12:27 | * | aftershave_ quit (Quit: Computer has gone to sleep.) |
13:12:40 | skrylar | sometimes you get a game that wants a *just* slightly older glibc, and then you have to go through tiny hells to find one |
13:13:02 | skrylar | so just pack half a distro with the game? now you have to triple check you didn't just step on some GPL clause |
13:13:28 | skrylar | so to be safe you now have to act as an FSF mirror for their source code for the next two years, just to be safe that someone won't claim you modified glibc |
13:14:03 | skrylar | *or* you go and extricate yourself from GNU libs, which is really effing hard to do but you can. there are things like uLibC which are basically a C runtime you can fully embed |
13:14:16 | skrylar | Of course if you use C++ (you probably did), you still got saddled with the g++personality crap |
13:14:43 | skrylar | Static link? Okay, you can use -fstatic or similar to make a fully self-sufficient binary. Except the G++ lib is GPL-y, so you're technically violating the license again. |
13:16:11 | skrylar | BitPuffin: see the problems yet? :) |
13:18:43 | BitPuffin | skrylar: not really |
13:19:02 | BitPuffin | there aren't that many libraries that the games use |
13:19:21 | BitPuffin | so shipping them with the libs is not even close to shipping half a distro |
13:19:28 | BitPuffin | in fact that's how I will distribute my games for linux |
13:19:34 | BitPuffin | it's easy and painless |
13:19:42 | BitPuffin | and I won't violate any GPL |
13:19:47 | BitPuffin | but yeah I agree GPL is shit |
13:20:03 | skrylar | you can kind of get around it if you link loosely, but then you're at risk for weird bugs |
13:20:20 | skrylar | e.g. TCL does this cool thing where they have a 'stubs' library, so you can write your extensions completely decoupled from version |
13:20:34 | BitPuffin | what do you mean? |
13:20:38 | BitPuffin | and nobody uses TCL haha |
13:20:48 | skrylar | yeah tcl is... really wonky |
13:21:12 | skrylar | BitPuffin: well if you link to glibc-2.6 instead of glibc-2.6.0.4.1.donkey19 |
13:24:15 | BitPuffin | I'm not sure I follow |
13:24:35 | skrylar | if you link to a less specific library |
13:24:45 | skrylar | usually in /usr/lib you have a lot of symlinks |
13:27:38 | skrylar | hrm |
13:27:46 | skrylar | BitPuffin: i think i accidentally infinite looped myself |
13:28:10 | skrylar | i thought calling HigherType(X) and then calling a method would let me go one level up, but the crash appears as though its just dispatching to itself |
13:28:43 | Araq | BitPuffin: if you're around tonight we can try and fix this macosx specific bug for good |
13:29:02 | Araq | as a workaround bootstrap with --gc:markAndSweep and then the compiler works afaik |
13:38:32 | skrylar | Araq: is there a way to force a parent's multimethod to be called? I poked the manual, doesn't seem to be one |
13:38:51 | skrylar | I tried to be clever and do TheMethod(BaseClass(ref)) and it outsmarted me with an infinite loop |
13:39:05 | Araq | there is the plan to support just that, yes |
13:39:22 | skrylar | alright, i'll just split the methods apart for now then |
13:39:32 | Araq | but I fear it's very bad for metaprogramming |
13:39:57 | Araq | so type conversions prevent dynamic binding, that might bite us |
13:40:02 | skrylar | I already do that for the constructor, there's an "InitThisMorph(PMorph)" which does the actual init, and a separate method which does new() and init() |
13:40:49 | Araq | well I want to get rid of methods in the long run |
13:41:03 | Araq | and replace them with dispatch table generating macro |
13:41:31 | skrylar | i haven't done much to see if i could use macros to disect info from types |
13:52:52 | krusipo | 4~ |
14:04:07 | * | aftershave_ joined #nimrod |
14:05:52 | BitPuffin | Araq: Yeah I think I will be around |
14:07:01 | BitPuffin | skrylar: I think hat you meant is that you link to .donkey instead of the regular one |
14:07:16 | BitPuffin | or oh you mean like that |
14:07:29 | BitPuffin | yeah but then you can just link ship it with the one you linked with |
14:08:42 | * | io2 joined #nimrod |
14:17:21 | skrylar | hrmm. my ncurses has decided that the vertical bar character is actually a P |
14:18:04 | * | darkf quit (Quit: Leaving) |
14:30:40 | * | aftershave_ quit (Quit: Computer has gone to sleep.) |
15:04:42 | * | t4nk161 joined #nimrod |
15:05:22 | * | t4nk161 quit (Client Quit) |
15:05:52 | * | eggy_ joined #nimrod |
15:06:16 | * | eggy_ is now known as Guest47425 |
15:06:16 | Guest47425 | Hello, anybody on? |
15:06:27 | * | Guest47425 quit (Client Quit) |
15:31:20 | * | aftershave_ joined #nimrod |
15:32:13 | EXetoC | cmon, he gave you one minute to respond. slowpokes! |
15:32:46 | skrylar | i am soup |
15:34:32 | EXetoC | you're roleplaying as soup? |
15:34:51 | skrylar | nah, thats just a strange thing i sometimes say |
15:35:03 | EXetoC | :> |
15:52:22 | * | [1]Endy joined #nimrod |
15:55:16 | * | ics joined #nimrod |
16:07:57 | * | eridu joined #nimrod |
16:08:22 | dom96 | hello eridu |
16:08:29 | eridu | hello dom96 |
16:10:53 | eridu | I'm not sure if you're a bot that does that to everyone in this channel, but this channel got plugged in multiple comments in a hacker news thread about good irc channels; I'm going to idle here for a while and see if there's anything interesting |
16:11:08 | eridu | this is the first time I've heard of nimrod; it seems interesting |
16:11:20 | dom96 | hah. I'm not. |
16:11:43 | eridu | but isn't that what a bot would say... |
16:11:47 | * | dom96 just likes to say hi to everyone that is new |
16:12:01 | eridu | thanks! I can see why this channel is popular, then. |
16:12:31 | dom96 | No problem. You are of course welcome to idle here :) |
16:12:39 | * | skrylar is now known as HAL-9000 |
16:12:43 | HAL-9000 | hello eridu |
16:12:47 | HAL-9000 | i am the greeterbot |
16:12:52 | dom96 | hah |
16:12:58 | * | HAL-9000 is now known as Skrylar |
16:13:27 | * | gour quit (Quit: WeeChat 0.4.2) |
16:16:58 | EXetoC | good to hear. I still think it'd be a good idea to talk about games and such elsewhere |
16:17:22 | EXetoC | on steam for example, but can we create an offtopic channel? |
16:20:31 | Discoloda | #nimrod-offtopic ? |
16:20:56 | EXetoC | sure |
16:21:19 | dom96 | Yeah, good idea. |
16:21:56 | dom96 | But sometimes there is too little discussion here as it is IMO. |
16:22:06 | dom96 | Perhaps people fear going off topic? |
16:34:43 | * | aftershave_ quit (Quit: Computer has gone to sleep.) |
16:52:30 | Skrylar | Do we already have a module to make sets out of enums? |
16:53:06 | Discoloda | thats built in |
16:53:14 | Skrylar | wasn't sure |
16:53:18 | Discoloda | set[TYourEnumName] |
16:53:25 | Skrylar | i was thinking about a set enum module, or possibly one to pack multiple enums in to a single int |
16:54:47 | Skrylar | i'm starting to accrue a lot of tiny enums in my gui code, might be worth it to do some templates for dealing with packed bits |
16:59:05 | EXetoC | I wanted to implement that a couple of days ago |
17:01:06 | EXetoC | it's definitely useful |
17:02:00 | EXetoC | I don't think there's a generic way to get the value represented by an enumerator, but working around it shouldn't be too hard |
17:02:07 | Skrylar | ord() |
17:02:15 | EXetoC | oh |
17:02:22 | EXetoC | well, there you go :> |
17:03:00 | Skrylar | now i'd be curious to know if high() worked on enums |
17:03:32 | Skrylar | because if it did, there you go; easy enough it would seem to have a macro accept N enums and throw a fit if it can't fit them all |
17:03:58 | Skrylar | all though i was probably going to do something trivial like a fixed 'byte per enum' type or something like that |
17:06:50 | EXetoC | "bla {.size: sizeof(int8).} = enum\n x = 5000" uh oh |
17:07:13 | Skrylar | nimrod allows that to compile but borks the value? |
17:07:24 | EXetoC | what's the reason for not actually being able to specify the type? |
17:07:33 | Skrylar | because you can't do it in C, probably |
17:08:00 | Skrylar | I don't think specifying the type is ANSI C |
17:08:24 | EXetoC | oh right. good old C |
17:08:25 | Skrylar | though if you care *really* hard you can work around that |
17:08:42 | Skrylar | e.g. distinct uint8, conversion templates to/from the enum |
17:08:44 | EXetoC | but it doesn't have to map to C's enum construct |
17:08:47 | EXetoC | but whatever |
17:09:13 | Skrylar | i like that unlike Rust you can work around the derp in nimrod, and the derp is usually small and out of the way |
17:09:20 | Skrylar | specifying the type of an enum is already an edge case |
17:09:53 | EXetoC | the size anyway |
17:16:09 | EXetoC | well, both :> |
17:18:47 | bstrie | Skrylar: I think you chose a bad example, rust trivially allows you to specify the size of an enum, and also yells at you with good error messages if you give it a value larger than the specified type :P |
17:19:01 | bstrie | Skrylar: https://gist.github.com/bstrie/9075358 |
17:19:19 | Skrylar | bstrie: who said I was using enum size as an example? |
17:19:48 | Skrylar | i was talking about how you can drop a template or a distinct type around most of the problems [that i've run in to so far] instead of waiting on a corefix |
17:20:19 | bstrie | Skrylar: fair enough :) |
17:20:51 | Skrylar | the last bug i had was when they removed managed pointers, put in ref count boxes and weak refs, and then there was a critical segfault in actually using those ._. |
17:21:43 | Skrylar | i don't know why but that combined with the amount of times i heard their IRC talk about not fixing something because "oh well the AST would need touching" or "well LLVM ought to fix that at some point" kinda gave me the impression Rust isn't really ready for use at all |
17:22:06 | bstrie | Skrylar: we keep telling people *not* to use rust, because it's true, we're not ready |
17:22:20 | bstrie | unstable is unstable. will eat your laundry. stay away! |
17:22:39 | Skrylar | i haven't had any showstopping bugs in nimrod yet |
17:23:15 | Skrylar | i'd prefer tabs over spaces but otherwise i'm happy, plus my pinky isn't dying from pressing shift 20 times per line anymore :) |
17:23:36 | bstrie | also, we muck with the ast all the time. I find it hard to believe anyone of any authority would be averse to touching it |
17:23:53 | Skrylar | i saw it mentioned a lot |
17:24:07 | Skrylar | especially with regards to "oh well this runs in a separate pass so we're not going to fix that ever" |
17:24:18 | Skrylar | macros felt incredibly crippled |
17:25:17 | bstrie | if you're talking about conflating typechecking and parsing, yes, we refuse to do that |
17:25:25 | bstrie | we also tell people to use D and nimrod if they crave metaprogramming :) |
17:25:32 | Skrylar | i like that in nimrod a macro/template feels like it actually belongs there, and they seem to be generally useful; I kept running in to derp where macros couldn't do things like insert methods inside a method block :/ |
17:25:48 | Skrylar | er, methods inside an impl |
17:26:50 | EXetoC | Skrylar: you have an average nest level of ~15? :p |
17:27:26 | Skrylar | EXetoC: not usually |
17:27:49 | Skrylar | EXetoC: i just tend to like tabs, and they were sort of put in ASCII to be used as delimiters |
17:28:56 | Skrylar | all though i also sometimes do silliness like using 3-cell indents, because i saw emacs do that once and thought it looked neat |
17:33:06 | EXetoC | right. well I think having a fixed max width is important </subjective> |
17:40:58 | EXetoC | though I would like to be able to have four spaces per indent instead of two, but I read in the wiki not long ago that four-space indents are also acceptable, so I think I'll go with that in my own projects |
17:43:20 | EXetoC | Skrylar: ord gives you the specified value as an int even with sizeof(int8), but when converting the enumerator to a string you get something like (136 (invalid data!)). |
17:43:42 | EXetoC | there, right window. I'll report it and see what the BDFL has to say |
17:49:24 | Skrylar | i'm not actually sure if nimrod is a hardass about how many spaces |
17:49:27 | Skrylar | i've never tested it |
17:50:20 | Skrylar | EXetoC: the best bet right now is probably an implicit conversion with a distinct type, probably |
17:50:33 | Skrylar | that sounds the least likely to break completely |
17:51:00 | Skrylar | though yeah, it shouldn't bork when stringifying an 8-bit enum |
17:52:40 | * | shodan45 joined #nimrod |
17:56:07 | Varriount | Skrylar: Did you just say that macros are crippled? |
17:57:03 | Varriount | Because I would have to disagree. |
17:58:03 | EXetoC | he wasn't referring to Rust's macros? |
17:58:19 | * | BitPuffin quit (Ping timeout: 260 seconds) |
17:59:11 | Varriount | Maybe he was, I might have misread. |
17:59:14 | EXetoC | Skrylar: the enumerator is already "invalid" at that point (x = 5000, with size: sizeof(int8)) |
18:00:04 | * | aftershave_ joined #nimrod |
18:02:12 | Skrylar | Varriount: i was referring to Rust macros, which are boxed in to one specific pass of the compiler and stick out obviously at their call sites |
18:02:22 | * | brson joined #nimrod |
18:02:24 | * | Matthias247 joined #nimrod |
18:02:36 | Skrylar | there are also a lot of strange syntax restrictions that seem almost arbitrary in their current state |
18:02:56 | Skrylar | EXetoC: seems like it should throw an error that you've made an invalid type though |
18:04:36 | * | aftershave_ quit (Client Quit) |
18:07:09 | NimBot | Araq/Nimrod devel 69e2dfb Zahary Karadjov [+1 ±3 -0]: fix #931 and few more tests |
18:11:49 | * | DAddYE joined #nimrod |
18:13:27 | OrionPK | import dom; Error: This module only works on the JavaScript platform |
18:13:35 | OrionPK | this kinda hurts unit testing.. |
18:15:11 | EXetoC | import conditionally |
18:16:28 | EXetoC | OrionPK: how about "when defined(JS)"? |
18:17:33 | OrionPK | yeah, but then you dont have mocks for all the dom functions |
18:23:00 | Skrylar | do we have a good mocks unit? |
18:27:53 | Varriount | Not at the moment. |
18:30:01 | Skrylar | hm. the CMock framework is probably simple enough to use as a base |
18:30:24 | Skrylar | at least for design sporking |
18:30:34 | Varriount | "Design Sporking"? |
18:30:43 | Skrylar | copying |
18:33:58 | OrionPK | i feel like mocks would be easier to implement in nimrod than in C |
18:34:04 | OrionPK | using some C library |
18:38:55 | Skrylar | you could look at the C library's design and implement it in nimrod ._. |
18:39:06 | Skrylar | which is what i was trying to say |
18:40:39 | Skrylar | all though it was a pretty simple design; mostly shim structs and functions that you could operate a queue behind to make sure the call orders were correct |
18:54:23 | OrionPK | ah |
18:56:17 | * | carum joined #nimrod |
19:03:49 | * | carum quit (Ping timeout: 260 seconds) |
19:04:49 | reactormonk | EXetoC, not too far :-( |
19:05:16 | reactormonk | looks like math.h wasn't imported well enough |
19:05:26 | Varriount | dom96: the github hooks for the nimrod-sublime repo need to be changed - the repo's name has changed. |
19:05:39 | dom96 | ok, what's the new repo name? |
19:06:21 | Varriount | NimLime |
19:07:16 | dom96 | !addrepo Varriount NimLime |
19:07:16 | NimBot | Done. |
19:07:22 | Matthias247 | Varriount: and I have an update soon. That enables activating and disabling auto-complete through a settings file |
19:07:47 | EXetoC | reactormonk: Araq doesn't want to add additional includes. I asked why but he didn't respond. I suppose he's busy with more important stuff |
19:07:52 | EXetoC | what else? native implementations perhaps |
19:07:56 | Varriount | Matthias247: Good, Because currently it's quite unusable. (speed) |
19:11:06 | Skrylar | i hate auto-complete plugins :( |
19:11:12 | Skrylar | I remember using the haxe module and it was so dog slow |
19:11:32 | Skrylar | though i would love to have the fuzzy matching mechanic in vim/emacs, but i couldn't find a way to get it in either |
19:11:54 | Varriount | Matthias247: I have a question: When you use the 'check' command, does sublime text freeze up for you? |
19:12:02 | * | q66 joined #nimrod |
19:12:02 | * | q66 quit (Changing host) |
19:12:02 | * | q66 joined #nimrod |
19:12:21 | Matthias247 | Varriount: it doesn't |
19:12:33 | Varriount | I mean, does it freeze temporarily? |
19:13:09 | Matthias247 | tested it only on small modules. There I don't notice a freeze |
19:14:37 | * | q66 quit (Remote host closed the connection) |
19:27:18 | * | q66 joined #nimrod |
19:27:18 | * | q66 quit (Changing host) |
19:27:18 | * | q66 joined #nimrod |
19:31:09 | * | micklat joined #nimrod |
19:35:13 | * | fowl quit (Ping timeout: 272 seconds) |
19:36:57 | * | carum joined #nimrod |
19:37:26 | * | carum quit (Read error: Connection reset by peer) |
19:37:47 | * | carum joined #nimrod |
19:48:32 | * | fowl joined #nimrod |
19:49:10 | Araq | hi eridu welcome |
19:49:22 | eridu | thanks Araq |
19:51:33 | * | micklat quit (Remote host closed the connection) |
19:56:13 | * | BitPuffin joined #nimrod |
20:01:40 | * | BitPuffin quit (Quit: WeeChat 0.4.3) |
20:05:41 | * | shodan45 quit (Quit: Konversation terminated!) |
20:14:42 | * | gour joined #nimrod |
20:15:10 | * | carum quit (Remote host closed the connection) |
20:19:03 | * | Demos joined #nimrod |
20:22:43 | reactormonk | Skrylar, well, for starters, we need idetools to work ;-) |
20:24:58 | reactormonk | Skrylar, wanna give it a try? https://github.com/Araq/Nimrod/issues/804 |
20:28:57 | nequitans | A potentially noob-like question: has anyone implemented/thought about how a list comprehension library could be made using macros in nimrod? |
20:29:16 | Demos | I have been planning to spend a weekend just reading the idetools (and other compiler) code. I don't think the person who wrote idetools is around any more |
20:29:20 | * | carum joined #nimrod |
20:29:49 | nequitans | i imagine that the syntax would generate an iterator somehow |
20:30:41 | Araq | Demos: iirc me and zahary wrote idetools |
20:31:24 | fowl | nequitans, i dont think its possible to generate anonymous iterators yet |
20:31:36 | Araq | fowl: you're not up to date :P |
20:31:41 | Araq | it is possible |
20:31:48 | fowl | i dont use devel because my code doesnt work on it |
20:31:56 | Demos | oh, well then the people who wrote it have better things to do :D. |
20:32:32 | Araq | fowl: bug report please, keine_schweine compiles |
20:32:36 | * | gour quit (Quit: WeeChat 0.4.2) |
20:39:05 | reactormonk | nequitans, [ ] is array, I'm not sure how far down it's reserved |
20:39:23 | reactormonk | iirc `[]` is for foo[1] |
20:40:18 | * | gour joined #nimrod |
20:41:11 | nequitans | reactormonk, i see. perhaps assuming some other character like `{}`? not sure if that's reserved tho |
20:41:53 | Araq | nequitans: just use map and fold etc. python's "list comprehensions" are weird |
20:43:35 | reactormonk | Araq, doesn't matter if they're `weird`. Is it possible to create them? |
20:43:46 | nequitans | Araq: agreed. I like to use the functional methods and chain them. was more of a 'metaprogramming chops' kind of question |
20:44:27 | Araq | reactormonk: sure with slightly different syntax |
20:44:39 | reactormonk | Araq, then enlighten us with the syntax |
20:45:44 | reactormonk | Araq, and would it be possible to mess with the compiler to get the syntax? |
20:45:53 | reactormonk | nequitans, you can certainly get p[ ], but not [ ] |
20:46:07 | fowl | i dunno how to get past this CONFLICT (content): Merge conflict in compiler/ropes.nim |
20:46:10 | * | fowl sucks at git |
20:46:17 | reactormonk | fowl, ask #git |
20:46:27 | reactormonk | fowl, or run `git mergetool` and see what happens |
20:46:31 | Araq | ![(a,b) in foo()] |
20:47:29 | fowl | reactormonk, whats a good tool? |
20:47:41 | fowl | reactormonk, or at least a gtk one |
20:47:56 | fowl | nvm, meld sounds familiar, ill jus use that |
20:49:13 | * | carum quit (Remote host closed the connection) |
20:51:41 | * | carum joined #nimrod |
20:54:27 | reactormonk | fowl, that's what I use |
20:54:34 | reactormonk | I'd prefer opendiff, but that's mac only :-/ |
20:55:44 | * | psquid joined #nimrod |
20:57:49 | Demos | there exist windows merge tools that are really good, I use notepad++ myself for the more nightmarish merges, vim for the easy ones |
20:57:59 | * | [1]Endy quit (Ping timeout: 260 seconds) |
20:58:45 | OrionPK | winmerge on windows |
20:59:31 | Demos | yeah I hear that is a good one |
21:04:55 | * | vbtt joined #nimrod |
21:07:12 | * | zahary1 joined #nimrod |
21:09:01 | * | Demos quit (Ping timeout: 245 seconds) |
21:11:22 | vbtt | what's the plan to improve the nimrod doc generator? |
21:12:33 | OrionPK | woot |
21:12:38 | OrionPK | got my cubox-i finally :D |
21:13:30 | reactormonk | vbtt, there's none |
21:13:36 | reactormonk | .... iirc |
21:13:46 | Araq | reactormonk: what? o.O |
21:13:59 | Araq | we have a PR to be merged and lots of features planned |
21:14:01 | reactormonk | Araq, I've heard some, but are there any _concrete_ plans? |
21:14:23 | Araq | what's more concrete than a PR? |
21:14:35 | reactormonk | Araq, https://github.com/Araq/Nimrod/pull/850 <- this one? |
21:14:52 | Araq | yes |
21:15:02 | reactormonk | why isn't it accepted yet? |
21:15:30 | Araq | nobody pushed me enough and whenever I start to review it, something happens |
21:16:04 | EXetoC | still have other stuff to focus on eh :> |
21:17:01 | vbtt | right, i'm not trying to raise the priority, just curious about the plans for doc improvement. |
21:17:09 | vbtt | e.g. is there any desire for something like pydoc -p |
21:17:15 | vbtt | or searchability |
21:17:50 | Araq | google search? the allmighty index? |
21:18:40 | Araq | tbh I don't get the complaints about our docs being bad. they are better than anything else out there |
21:19:12 | Araq | surely I'm highly biased |
21:19:39 | Araq | but python's is verbose and spends lots of ink to describe the (nonexisting) *types* |
21:19:51 | EXetoC | I think he was referring to doc *generation* this time as well |
21:20:03 | vbtt | right - generated docs for libraries (including stdlib) |
21:20:12 | Araq | C# lacks examples, Java is dull |
21:20:27 | Araq | ruby's uses annoying frames which I can't stand |
21:20:48 | Varriount | Java also uses frames |
21:20:55 | Araq | true |
21:21:11 | * | Varriount likes documentation he can view on his phone |
21:22:27 | vbtt | I would like e.g. 'find all functions accepting TType in stdlib and other modules' |
21:22:51 | Varriount | So, a cross reference, essentially |
21:22:56 | vbtt | google search is good for many things but it requires that the library docs be published. |
21:23:14 | vbtt | also - you search all versions, rather than the one you have installed. |
21:23:57 | vbtt | I would also like a nice index, something I can just Ctrl-F. |
21:24:16 | * | wan joined #nimrod |
21:25:35 | Araq | vbtt: what's from with: http://nimrod-lang.org/theindex.html ? |
21:25:42 | Araq | *what's wrong |
21:25:55 | Araq | and yes, grouping by type is a planned feature |
21:27:20 | wan | That page should be linked from the website, I've never seen it before (and it seems useful, especially for those ctrl-f cases) |
21:27:29 | Varriount | wan: It is linked. |
21:27:43 | wan | oh, I guess I missed it |
21:27:58 | Varriount | http://nimrod-lang.org/documentation.html |
21:28:03 | Varriount | At the very bottow |
21:28:06 | Varriount | *bottom |
21:28:13 | Araq | but in bold :P |
21:28:54 | vbtt | heh I missed the index too (expected it in the lib docs) |
21:29:05 | Araq | -.- |
21:29:10 | EXetoC | it's easy to miss if it isn't blinking |
21:29:29 | Varriount | Araq: How efficient would marshal.nim's procedures be compared to a similar procedure implemented statically (eg, no run-time type interpretation) |
21:29:55 | Araq | I think tut1 should mention the index |
21:30:02 | Araq | and the manual |
21:30:13 | Varriount | Or to rephrase, how costly is the run-time type evaluation? |
21:30:18 | Araq | and everything else should link to it |
21:30:34 | Araq | Varriount: my educated guess: factor of 2 or 3 |
21:30:34 | wan | The docs page could also show some more visual organisation (more h1 and sub-lists) and avoid pages like tools.html that add another click to finally get to the right place. |
21:31:21 | Araq | wan: then the list in documentation.html would be even longer and more people miss the index :P |
21:31:25 | Varriount | wan: Just an FYI - Improving the documentation is a possible GSoC project. |
21:31:28 | vbtt | yeah the docs seem disconnected (different styles, not cross links) would be nice to have overall structure. |
21:31:57 | gour | julia does eveyr |
21:32:06 | gour | *everything with sphinx |
21:32:08 | vbtt | typically you have 'index' and 'contents' at the top/bottom of every page of a library reference. |
21:32:18 | vbtt | yeah i'd suggest sphinx but it's written in Python |
21:32:21 | vbtt | i.e. NIH |
21:32:23 | vbtt | ;D |
21:32:44 | vbtt | if you write them for sphinx you can just host them on readthedocs |
21:33:16 | Araq | I used python's docutils before I wrote my own, you know |
21:33:39 | * | carum quit (Remote host closed the connection) |
21:35:19 | vbtt | actually i'm happy there is a pure nimrod implementation of rst. |
21:35:32 | vbtt | but not sure how it's superior to python's. |
21:35:40 | wan | My reference 'good docs' page is the django one https://docs.djangoproject.com/en/1.6/ , I always used it as a kind of starting page for my learning and problem-solving |
21:36:45 | wan | Right now, I see nimrod's library page as a kind of equivalent: ctrl-f the page to find the thing you want to do, then go to the designated page |
21:37:05 | reactormonk | Araq, http://rubydoc.info/stdlib/core/frames or also without frames, but I gotta say the frames somewhat of work here |
21:37:06 | wan | but a searchable interface a la devdocs.io could be great also |
21:37:35 | Varriount | Too bad we don't have any web design specialists :( |
21:37:43 | Varriount | Well, except for filwit |
21:37:56 | reactormonk | Varriount, I have some experience with web backend... :-/ |
21:37:58 | vbtt | i can do some web design. |
21:38:23 | vbtt | i.e i can fix the css to make it look better to me. |
21:38:47 | Araq | vbtt: it is not superior to python's but it is an order of magnitude faster |
21:38:48 | reactormonk | vbtt, but I'd actually settle for some already existing tools and modify them a bit |
21:39:09 | reactormonk | at least the frontend part, the backend which generates the doc is nimrod |
21:39:16 | reactormonk | http://www.scala-lang.org/api/current/#package e.g. |
21:39:20 | Araq | vbtt: without even trying, I never optimized anything about it |
21:40:12 | vbtt | Araq: not surprising. |
21:43:04 | vbtt | reactormonk:sphinx is decent and very widely used. |
21:45:57 | dom96 | Julia's docs are nice and they even have translations. |
21:47:06 | vbtt | julia uses sphinx |
21:47:48 | dom96 | IMO tut1/tut2 should be split up so that we have a separate document talking about each Nimrod feature. |
21:48:17 | Araq | tut1 and tut2 were good documents before so many cruft was added :P |
21:48:26 | Araq | *so much |
21:48:44 | Araq | well actually gradha is doing a great job |
21:48:46 | dom96 | Araq: Why are so many PRs left unmerged btw? |
21:49:15 | dom96 | Not enough time to review them? |
21:49:30 | gour | dom96: how do you like julia language-wise? |
21:49:31 | Araq | dom96: I told you I won't merge until the 'diff' feature for nimbuild exists |
21:49:53 | Araq | gour: Julia is a fine language, just use it and please stop bothering us |
21:49:56 | dom96 | Araq: It exists doesn't it? |
21:50:25 | Araq | dom96: it exists but is unreliable |
21:50:39 | dom96 | How so? |
21:50:55 | Araq | the number of reported tests differ between platforms |
21:51:26 | dom96 | gour: Dunno. Never tried Julia. |
21:53:01 | dom96 | Araq: Any ideas why that may be? |
21:56:09 | * | nande joined #nimrod |
21:57:09 | Araq | dom96: I suspect git didn't download some test files |
21:57:35 | Araq | but I have no idea, the tester simply iterates over the various directories |
21:58:54 | dom96 | What does it look for? Just file with a .nim extension? |
21:59:55 | Araq | files matching the pattern t*.nim |
22:00:04 | Araq | though there are lots of additions |
22:02:05 | * | gour left #nimrod ("WeeChat 0.4.2") |
22:04:22 | dom96 | Count of .nim files in tests/ for both matches. |
22:04:32 | dom96 | (ppc64 and x86_64) |
22:04:38 | Araq | examples too? |
22:04:44 | Araq | stdlib modules? |
22:05:37 | dom96 | yes |
22:05:40 | dom96 | everything |
22:06:25 | dom96 | Lets diff the testresults. |
22:07:08 | dom96 | What are those errors at the top of the page? http://build.nimrod-lang.org/commits/linux-x86_64/69e2dfbc6690/testresults.html |
22:11:12 | Araq | old git version |
22:11:33 | Araq | this means it couldn't get the hash |
22:12:13 | dom96 | x86_64 tests highlite, ppc64 doesn't. |
22:13:39 | dom96 | It exists in both |
22:15:20 | OrionPK | who wrote the dom module? |
22:15:21 | OrionPK | dom96? |
22:15:32 | Araq | me |
22:15:44 | OrionPK | how do I get a TElement from a TNode |
22:15:58 | dom96 | Araq: Well, i'll let you figure out the rest. |
22:17:24 | NimBot | Varriount/NimLime master 8af6c5a Matthias Einwag [+1 ±2 -0]: Added a settings menu and an option to disable the suggestions |
22:17:24 | NimBot | Varriount/NimLime master 4f9177a Matthias Einwag [+0 ±6 -0]: Refined the auto completion functionality... 2 more lines |
22:18:06 | Araq | testStdlib(r, "lib/packages/docutils/highlite", options, cat) |
22:18:14 | Araq | unconditional |
22:18:35 | dom96 | what file is that in? |
22:19:15 | Araq | tests/testament/categories.nim |
22:19:24 | fowl | oh yea this was my prob on devel: csfml.nim(306, 50) Error: expression '"sfRenderWindow_$1"' has no type (or is ambiguous) |
22:20:26 | Matthias247 | OrionPK, Varriount: You can retest the autocomplete now. I changed the default now that you need a second ctrl+space to request completions. But it can be changed in the settings |
22:21:23 | dom96 | Araq: Well I don't know what is going on. |
22:22:58 | renesac | is there equivalent to python generators in nimrod? I want to call a 'proc foo(openarray[float])' but only have an integer seq, how do I apply the conversion to call the function w/o creating a new seq? |
22:24:37 | EXetoC | I don't anything is being converted. have you read about openarray? |
22:25:38 | EXetoC | *I don't think |
22:27:14 | vbtt | renesac:look for 'closure iterators' |
22:29:44 | EXetoC | I misread slightly, but I don't think it's possible, because you don't know what's being passed in |
22:31:12 | vbtt | hmm openarray may not work with iterators..not sure. |
22:34:59 | EXetoC | or maybe I didn't misread :p I think it's being passed by reference, but I'm not sure |
22:36:56 | EXetoC | either way, both arrays and sequences can be passed to it |
22:38:25 | Varriount | Matthias247: You might want to start drafting up some code that makes use of nimrod's CAAS mode (even though CAAS mode doesn't entirely work yet) |
22:38:57 | Matthias247 | Varriount: jup, that's on the todo list :) |
22:39:54 | Varriount | Matthias247: Also, a heads up, if serve mode doesn't respond to anything after the first request it gives, try sending a 'reset' command |
22:41:18 | vbtt | what's CAAS |
22:42:48 | * | carum joined #nimrod |
22:42:57 | Matthias247 | vbtt: compiler as a service |
22:44:09 | vbtt | oh, why is it a CAAS mode and not just 'the compiler module' |
22:44:15 | reactormonk | vbtt, I'm very well aware of sphinx. But it's non-static, which makes it harder to use |
22:45:11 | vbtt | reactormonk:good point. which is why i suggested readthedocs. I think they stay updated by automatically pulling from your git repo if desired. |
22:45:31 | vbtt | but I understand the need to generate static docs locally. |
22:45:36 | Varriount | vbtt: The compiler module is not the same as CAAS |
22:45:54 | Varriount | CAAS is when you run nimrod with the 'serve' command |
22:45:59 | EXetoC | vbtt: see nimrod --advanced |
22:46:10 | vbtt | ok |
22:46:54 | EXetoC | look for serve |
22:46:58 | reactormonk | vbtt, yup. I'd prefer a JS search. |
22:47:13 | vbtt | a js search would be sweet. |
22:47:23 | Varriount | Hm. What is a sensible tool for web page mockup? |
22:59:39 | * | filwit joined #nimrod |
22:59:56 | Skrylar | isn't there that nvu tool thats open source? |
23:00:25 | Skrylar | unless you just mean a diagram markup, in which case you could see if Pencil or Inkscape does what you want Varriount |
23:01:40 | reactormonk | Varriount, just hack something with bootstrap |
23:03:25 | reactormonk | http://lunrjs.com/ |
23:03:27 | reactormonk | found it |
23:03:30 | NimBot | Varriount/NimLime master 7d15c3d Matthias Einwag [+0 ±2 -0]: Added definitions for procs and methods to enable goto symbol |
23:04:48 | reactormonk | Varriount, any way to drop all the information from nimrod doc into a JSON so I can load it into lunr? I know my way around lucene, and lunr seems to be similar. |
23:08:14 | Araq | argh, not again |
23:09:46 | Araq | hi filwit |
23:10:13 | Araq | in an attempt to fix the last bugs with the vm, I'm changing the representation of values ... |
23:11:10 | Araq | so ... all the crazy invariants are then gone and instead the type system ensure we don't screw up |
23:11:23 | Araq | if it works out, that is |
23:12:06 | * | BitPuffin joined #nimrod |
23:12:15 | Araq | ping BitPuffin |
23:13:07 | filwit | hi Araq |
23:13:16 | filwit | one sec |
23:16:46 | * | vbtt quit (*.net *.split) |
23:16:47 | * | fowl quit (*.net *.split) |
23:16:47 | * | io2 quit (*.net *.split) |
23:16:48 | * | zahary quit (*.net *.split) |
23:16:48 | * | vendethiel quit (*.net *.split) |
23:17:16 | * | vendethiel joined #nimrod |
23:18:36 | * | vbtt joined #nimrod |
23:18:36 | * | fowl joined #nimrod |
23:18:36 | * | io2 joined #nimrod |
23:18:36 | * | zahary joined #nimrod |
23:21:26 | * | noam_ joined #nimrod |
23:24:46 | filwit | Araq: okay, so what's the replacement for the invariants in the VM? I find it hard to believe you would replace them with object inheritance :P |
23:25:01 | * | noam quit (Ping timeout: 272 seconds) |
23:25:21 | NimBot | Varriount/NimLime master 6b86c3c Matthias Einwag [+0 ±1 -0]: Pretty printing for methods |
23:25:23 | filwit | zahary: concerning my bug report (940), I wouldn't mind trying to take a stab at fixing it if you're busy with other things. But I would love any pointers you can give me about what you think is causing it if you have any. I haven't taken a look yet (reported right before bed last night), but I'm not sure exactly where to start without a stacktrace. |
23:27:02 | filwit | zahary: it seems to be an overloading issue, but so far I've only really worked on the VM inside the compiler, and don't know even know where overloading resolution occurs in the compiler (and it's hard to find out without a proper debugger). |
23:28:03 | filwit | ping zahary, zahary1, zahary_ |
23:28:04 | Araq | filwit: sigmatch.nim |
23:28:17 | filwit | Araq: ah, right. I knew that... |
23:28:20 | filwit | thanks |
23:31:51 | filwit | Araq: i see what you where saying about invariants in the VM. You're only replacing value invariants, not all node invariants, correct? |
23:32:36 | Araq | well the seq[PNode] that is used for the registers, will become seq[TRegister] |
23:32:52 | Araq | where TRegister is a simple union type |
23:33:09 | filwit | ah, okay i see |
23:33:37 | Araq | also the way addressing works is changing quite a bit |
23:33:55 | Araq | but you'll see soon |
23:34:31 | filwit | okay, i'll check with you later about it |
23:35:55 | filwit | i'm wondering how changing from a seq[PNode] to seq[TRegister] is going to help solve anything though really, considering PNode's invariant is basically the same thing |
23:36:16 | filwit | you just want a clear distinction between a register and a NimrodNode? |
23:36:36 | Araq | that distinction already exist, albeit implictly |
23:37:02 | Araq | you must not use regs[ra] = foo as this aliases foo |
23:37:11 | Araq | and regs[ra] might get *reused* for different things |
23:37:58 | Araq | you have to load 'foo' into regs[ra] with asgnComplex or asgnRef |
23:38:23 | filwit | yeah i like the sound of that already |
23:39:59 | filwit | that will probably make things easier to follow in the code too, since it matches what a real stack is doing (i assume). |
23:40:09 | filwit | the* real stack.. |
23:41:36 | filwit | one more question though, what does asngComplex do that asngRef does not? |
23:41:49 | filwit | put a deep copy on the stack? |
23:41:52 | Araq | performs a deep copy |
23:41:56 | filwit | okay |
23:43:24 | filwit | what are the performance implications of this? It looks like potentially more memory copies, but also less memory per register (i assume TRegister wont have everything TNode does) |
23:44:02 | Araq | should end up being slightly faster |
23:45:19 | filwit | ah, right, i'm thinking wrong |
23:45:44 | filwit | that all makes sense to me. I like it. |
23:46:17 | BitPuffin | pong Araq |
23:47:02 | Araq | BitPuffin: the bug disappears with --gc:markAndSweep? |
23:47:21 | BitPuffin | Araq: I'll have a look |
23:49:25 | * | EXetoC quit (Read error: Connection reset by peer) |
23:52:28 | BitPuffin | Araq: nope |
23:52:57 | Araq | bootstrapped with --gc:markAndSweep? |
23:53:46 | BitPuffin | oh |
23:53:50 | BitPuffin | thought you meant when compiling |
23:54:38 | * | Araq is good at guessing other people's mistakes |
23:57:47 | * | carum quit (Remote host closed the connection) |
23:59:27 | Araq | good night |