00:06:23 | * | darkf joined #nimrod |
00:07:23 | * | quasinoxen quit (Quit: No Ping reply in 180 seconds.) |
00:07:47 | * | quasinoxen joined #nimrod |
00:12:00 | * | FreezerburnV quit (Quit: FreezerburnV) |
00:17:34 | * | quasinoxen quit (Quit: No Ping reply in 180 seconds.) |
00:18:06 | * | quasinoxen joined #nimrod |
00:20:13 | * | noam quit (Ping timeout: 260 seconds) |
00:25:45 | * | quasinoxen quit (Quit: No Ping reply in 180 seconds.) |
00:26:09 | * | quasinoxen joined #nimrod |
00:41:25 | * | quasinoxen quit (Quit: No Ping reply in 180 seconds.) |
00:41:49 | * | quasinoxen joined #nimrod |
00:42:27 | * | brson quit (Ping timeout: 246 seconds) |
00:44:36 | * | brson joined #nimrod |
00:45:23 | * | johnsoft quit (Ping timeout: 258 seconds) |
00:46:10 | * | johnsoft joined #nimrod |
00:55:21 | * | quasinoxen quit (Ping timeout: 258 seconds) |
01:01:06 | * | brson quit (Ping timeout: 240 seconds) |
01:03:02 | * | brson joined #nimrod |
01:11:44 | * | FreezerburnV joined #nimrod |
01:12:20 | FreezerburnV | Is there a way to have empty object variants? |
01:18:08 | EXetoC | FreezerburnV: as in no fields? |
01:18:25 | FreezerburnV | EXetoC: Yeah. Trying to create an Option type that can have Some or None |
01:18:49 | FreezerburnV | (couldn’t find any mention of something like tha tin the standard library so far, so I figured I’d try to make one) |
01:21:47 | EXetoC | just add nil to the body |
01:22:00 | EXetoC | it should be discard but it doesn't work |
01:22:55 | FreezerburnV | Awesome, thanks! |
01:23:38 | superfunc_ | yeah |
01:24:04 | superfunc_ | FreezerburnV: http://github.com/superfunc/monad |
01:24:11 | EXetoC | this doesn't rely on variants: https://github.com/fowlmouth/nimlibs/blob/master/fowltek/maybe_t.nim |
01:25:52 | FreezerburnV | superfunc_, EXetoC: Thanks a ton for the links. I’ll take a look at them (though I don’t know if my head is ready to be exploded by trying to comprehend monads again) |
01:26:54 | superfunc_ | That's ok, the maybe type doesn't really require understanding monads to find it useful. The example code I wrote under examples/ may help clear things up a bit too |
01:27:51 | FreezerburnV | superfunc_: Will definitely take a look at it. Maybe I’ll get it a bit more with this attempt. I seem to get closer every time I try |
01:28:36 | superfunc_ | Right on, be sure to hit me up if anything in there is confusing |
01:28:48 | FreezerburnV | Thanks, will do! |
02:09:27 | FreezerburnV | Is there a way to copy/clone something into a new instance? Such as a TTable or TSet |
02:09:47 | FreezerburnV | I don’t see any methods in their modules that specifically do this |
02:12:49 | Varriount | FreezerburnV: Well, there's always memcpy |
02:13:03 | FreezerburnV | Varriount: Fair enough |
02:13:07 | Varriount | But that would probably screw up GC |
02:13:27 | Varriount | Araq would know, but he's probably asleep |
02:14:31 | FreezerburnV | Varriount: Actually, looks like system might have an answer: shallowCopy |
02:14:47 | FreezerburnV | Just found it while looking for a wrapped memcpy in the system library |
02:14:53 | EXetoC | not the same thing is it? |
02:15:05 | EXetoC | I think Table is a value type |
02:15:56 | * | elnerdo joined #nimrod |
02:16:23 | superfunc_ | Why not just write a clone that iterates through the keys and copies? (Besides being slower) |
02:16:45 | FreezerburnV | I can, was just hoping there was something built in |
02:17:28 | EXetoC | what is the type in question? |
02:17:49 | Varriount | If the type you want to copy is an object, and not a reference, simply assigning it to another variable will copy it. |
02:18:01 | FreezerburnV | TTable[someEnum, someStructRef] |
02:18:17 | FreezerburnV | Gotcha |
02:18:44 | Varriount | Which reminds me, I need to post an issue concerning string optimization |
02:19:02 | EXetoC | there could be a standard way I guess, but it gets hairy with complex types |
02:19:52 | EXetoC | but type reflection is indeed possible |
02:20:36 | EXetoC | see the typeinfo module |
02:20:46 | * | saml_ joined #nimrod |
02:27:28 | * | flaviu quit (Remote host closed the connection) |
02:38:00 | * | brson quit (Quit: leaving) |
02:42:33 | * | rpag quit (Ping timeout: 260 seconds) |
02:45:10 | Varriount | Hm. I wonder if typeinfo.fields iterates through private fields... |
02:46:22 | Varriount | FreezerburnV: If typeinfo.fields iterates through private fields, you should be able to put together a simple generic 'copy' procedure. |
02:46:53 | Varriount | Of course, it gets a bit complex if you want to do deep copying. |
02:47:01 | FreezerburnV | Varriount: By using the default = copy I assume. That could be useful |
02:49:49 | FreezerburnV | Parallel for loop using `||` operation. That’s pretty darn cool. |
02:50:32 | Varriount | FreezerburnV: That's an untested & rarely used feature. |
02:50:42 | Varriount | I think it was more of a proof of concept. |
02:51:05 | FreezerburnV | Varriount: Gotcha. I found an article that compares nimrod to a few other languages in speed, and they used it in their code |
02:51:12 | Varriount | Or rather, not too tested. I know it's been used. |
02:52:08 | Varriount | FreezerburnV: I *think* (though I'm not sure) that the || operation is only meant to be used with numerical stuff. |
02:52:12 | FreezerburnV | I’m guessing it’s more idiomatic to manually spin up threads and use actors or something? (considering the homepage mentions thread local stuff and message passing) |
02:52:50 | Varriount | FreezerburnV: The latest nimrod versions have a new threading library that makes parallelizing simple tasks easy. |
02:53:04 | Varriount | Again, it's not bee tested too much - it's relatively new. |
02:53:11 | Varriount | *been |
02:53:41 | FreezerburnV | Fair enough |
02:54:58 | Varriount | FreezerburnV: Unfortunately, the dev team primarily consists of Araq. I try to help when I can, but I tend to either have my time taken up by classes, or get too distracted to be useful. |
02:55:27 | FreezerburnV | I have to say: Araq is a beast of a coder to have done most of this |
02:56:04 | FreezerburnV | If I actually get good enough with nim, maybe I’ll try to contribute to the thread support. Actors, threading, etc. is something I’m generally pretty interested in |
03:08:37 | FreezerburnV | Time for bed. Night all |
03:08:42 | Varriount | Goodnight. |
03:09:33 | * | FreezerburnV quit (Quit: FreezerburnV) |
03:27:57 | * | kemet joined #nimrod |
03:57:15 | * | fowl joined #nimrod |
04:16:32 | * | kemet quit (Quit: Instantbird 1.5 -- http://www.instantbird.com) |
05:01:37 | * | johnsoft quit (Ping timeout: 260 seconds) |
05:02:22 | * | johnsoft joined #nimrod |
05:03:02 | * | saml_ quit (Ping timeout: 265 seconds) |
05:06:58 | * | elnerdo quit (Quit: Leaving.) |
05:16:31 | Varriount | Araq: I made the installer add mingw and aporia to the path variable. I also enhanced the error handling mechanism when a download fails - the user can select whether to retry the download, ignore the error, or abort the installation. |
05:19:44 | superfunc_ | hey fowl, long time no speak |
05:19:56 | fowl | hello |
05:20:11 | superfunc_ | hows it going? |
05:21:34 | fowl | its going alright |
05:21:38 | fowl | whats up |
05:26:10 | * | gokr_ joined #nimrod |
05:27:21 | * | gokr quit (Ping timeout: 246 seconds) |
05:38:13 | superfunc_ | not much, just messing around with different nim stuff |
05:42:17 | * | xenagi quit (Read error: Connection reset by peer) |
05:49:49 | * | elnerdo joined #nimrod |
05:58:32 | * | gokr joined #nimrod |
05:58:49 | * | jpoirier joined #nimrod |
06:00:55 | * | gokr_ quit (Read error: Connection reset by peer) |
06:01:08 | * | gokr_ joined #nimrod |
06:02:42 | * | gokr quit (Ping timeout: 246 seconds) |
06:36:41 | Araq | Varriount: that's great but where is your PR? |
06:39:33 | Varriount | Araq: One moment, my RDP connection cut out just as I was going to push the 'submit pr' button |
06:39:55 | Varriount | Araq: https://github.com/Araq/Nimrod/pull/1578 |
06:41:42 | Araq | btw how did you install plugins? |
06:41:50 | Araq | I copied them around manually |
06:41:57 | * | elnerdo quit (Quit: Leaving.) |
06:42:48 | Varriount | Well, the only plugin I needed was that zip one. I just put the DLL in the 'Plugins' folder, and the header in the 'Includes' folder |
06:43:57 | Varriount | Araq: Don't look at the EnvVarUpdate.nsh file too much, it's like staring into the depths of insanity. |
06:46:25 | Araq | ok thanks |
06:46:28 | Araq | gotta go |
06:46:33 | Araq | see you later |
06:47:59 | Varriount | Goodnight. |
07:37:30 | Varriount | Araq: You'll need to add babel/nimble to nimrod.ini |
07:37:54 | * | gokr_ quit (Ping timeout: 246 seconds) |
07:41:20 | Varriount | Araq: I still think hardcoding more data into the install file would be better. |
07:43:52 | * | gokr_ joined #nimrod |
07:44:33 | Varriount | Hi gokr1 |
07:44:39 | Varriount | Er, gokr_ |
08:03:22 | * | jpoirier quit (Quit: Leaving) |
08:08:11 | fowl | Varriount, is bigbreak the branch to use at the moment? |
08:08:17 | fowl | for nimrod |
08:13:30 | * | gokr_ quit (Ping timeout: 258 seconds) |
08:14:24 | * | Pisuke quit (Read error: Connection reset by peer) |
08:15:16 | NimBot | Araq/Nimrod devel d73d752 Clay Sweetser [+0 ±1 -0]: Update and clarify the purpose of the nimrod.ini file |
08:15:16 | NimBot | Araq/Nimrod devel cdd5b50 Clay Sweetser [+1 ±1 -0]: Update the NSIS Installer Script |
08:15:16 | NimBot | Araq/Nimrod devel 3cf1939 Andreas Rumpf [+1 ±2 -0]: Merge pull request #1578 from Varriount/update-nsis-installer... 2 more lines |
08:16:16 | * | Pisuke joined #nimrod |
08:46:23 | * | Ven joined #nimrod |
08:47:45 | * | Ven quit (Client Quit) |
08:49:01 | Araq | fowl: yes use bigbreak if you can |
08:49:23 | * | BlaXpirit joined #nimrod |
09:01:07 | * | rpag joined #nimrod |
10:03:26 | * | gokr_ joined #nimrod |
10:07:43 | * | Matthias247 joined #nimrod |
10:08:59 | * | gokr_ quit (Read error: Connection reset by peer) |
10:21:25 | * | gokr_ joined #nimrod |
10:27:54 | * | vendethiel joined #nimrod |
10:28:12 | * | vendethiel- quit (Ping timeout: 245 seconds) |
10:28:12 | * | gokr_ quit (Read error: Connection reset by peer) |
10:28:20 | * | gokr_ joined #nimrod |
10:35:59 | * | kemet joined #nimrod |
10:36:45 | * | kemet quit (Remote host closed the connection) |
11:07:32 | * | Ven joined #nimrod |
11:08:48 | * | Ven quit (Client Quit) |
11:46:48 | * | Ven joined #nimrod |
11:58:13 | * | Trustable joined #nimrod |
12:06:29 | * | Francisco joined #nimrod |
12:10:34 | * | Fr4n quit (Ping timeout: 272 seconds) |
12:12:19 | * | FreezerburnV joined #nimrod |
12:13:17 | Araq | hi FreezerburnV |
12:13:29 | Araq | don't use hash for enums, that's a waste |
12:13:30 | FreezerburnV | Araq: Morning! How’s it going? |
12:13:41 | Araq | use an array with an enum index type instead |
12:13:51 | Araq | that's why 'hash' doesn't exist for enums |
12:14:00 | FreezerburnV | Duly noted. I did not know you could do that |
12:14:17 | Araq | and Table is a value type so '=' already performs a deep copy |
12:15:35 | FreezerburnV | I believe that was actually mentioned last night, so I’m using that now. I’m assuming that any ref types inside a Table will just have the pointer copied and not have a copy made of the contents? |
12:16:15 | Araq | yup |
12:16:28 | Araq | there is system.deepCopy in bigbreak |
12:16:44 | FreezerburnV | When is that going to happen? |
12:16:52 | FreezerburnV | Or is that still undetermined? |
12:17:09 | Araq | with some luck ... today |
12:17:23 | FreezerburnV | Best of luck to you then! |
12:21:44 | * | noam joined #nimrod |
12:57:09 | * | flaviu joined #nimrod |
13:05:29 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:10:25 | * | FreezerburnV quit (Quit: FreezerburnV) |
13:21:17 | * | FreezerburnV joined #nimrod |
13:21:30 | * | FreezerburnV quit (Client Quit) |
13:23:17 | * | q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com) |
13:31:31 | gokr1 | Hey guys! |
13:31:39 | gokr1 | Working hard on the release? |
13:32:13 | gokr1 | Been busy today - taking up the boat - and we also had a fire by the boats, so one house and 5 boats gone. |
13:32:57 | * | epsylon quit (Quit: ZNC - http://znc.in) |
13:33:26 | * | untitaker quit (Ping timeout: 240 seconds) |
13:35:39 | gokr1 | Btw, if anyone wants to submit my bootstrapping article on Nimrod to reddit- feel free. I am not a member there. yet. |
13:35:56 | gokr1 | That would be this one: http://goran.krampe.se/2014/10/15/bootstrapping-nim/ |
13:36:04 | gokr1 | Ok, time to put some Ikea stuff together. |
13:36:10 | Araq | hi gork1 |
13:36:15 | gokr1 | Hey! :) |
13:36:35 | gokr1 | Pushing out 0.9.6 today? |
13:36:35 | Araq | I'm writing the release messages, yes |
13:36:40 | gokr1 | Oh way nice! |
13:36:54 | Araq | well I am thinking of how to structure it |
13:36:57 | gokr1 | Sorry, didn't have much time this weekend to do any helping on install etc. |
13:37:07 | Araq | since we release 0.9.6 and 0.10.0 today |
13:37:14 | gokr1 | Ooohh, neat! |
13:37:25 | Araq | unless something unexpected happens of course |
13:37:29 | gokr1 | Hehe. |
13:37:39 | Araq | what about that fire? sounds awful |
13:37:44 | gokr1 | Yeah, it was. |
13:38:00 | gokr1 | Thank god the wind wasn't that bad - in that case 20 boats could have gone up in smoke. |
13:38:07 | Araq | you lost 1 house and 5 boats? |
13:38:30 | gokr1 | Not me personally, but our local community's marina. It was the club house, and 5 boats next to it. |
13:39:02 | gokr1 | So... yeah, we suspect one of the boats was the source. |
13:39:08 | gokr1 | But not clear yet. |
13:39:21 | * | untitaker joined #nimrod |
13:39:49 | gokr1 | So I went down there early in the morning to help take up my boat and 3 more. And well, fire department and police all over ;) |
13:40:30 | gokr1 | Someone woke up when the ... LPG (?) tank in one of the boats went BOOOM. But it was of course way too late for them to do much. |
13:41:00 | Araq | but your boat is fine? |
13:41:06 | gokr1 | Yeha, sure, no prob. |
13:41:43 | gokr1 | This is a pic of our boat, we love it: http://malmonsmarina.se/wp-content/uploads/1_340_Commander-570x263.jpg |
13:42:44 | gokr1 | So, ok, gotta put together some Ikea stuff for my daughter - then I need to go play badminton :) |
13:42:54 | gokr1 | But I will check in later tonight. |
13:43:17 | gokr1 | cia |
13:43:25 | Araq | ok bye |
13:48:48 | * | q66[lap] joined #nimrod |
13:48:55 | * | darkf quit (Quit: Leaving) |
13:56:23 | * | kemet joined #nimrod |
14:07:35 | NimBot | Araq/Nimrod devel 6f1b33e Araq [+0 ±2 -0]: readme.txt is not readme.md |
14:07:35 | NimBot | Araq/Nimrod devel a4dcebd Araq [+1 ±2 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
14:07:35 | NimBot | Araq/Nimrod devel dc8d8eb Araq [+0 ±7 -0]: website updates for 0.9.6 |
14:21:01 | * | Matthias247 quit (Read error: Connection reset by peer) |
14:31:06 | * | rpag quit (Ping timeout: 245 seconds) |
14:41:06 | NimBot | Araq/Nimrod devel 4cca562 Araq [+0 ±1 -0]: minor updates to koch.nim |
15:01:55 | * | kemet quit (Ping timeout: 255 seconds) |
15:17:48 | * | vendethiel quit (Ping timeout: 246 seconds) |
15:18:53 | * | vendethiel joined #nimrod |
15:19:49 | * | Ven joined #nimrod |
15:23:41 | * | vendethiel quit (Ping timeout: 260 seconds) |
15:25:01 | * | Ven quit (Ping timeout: 244 seconds) |
15:27:03 | * | vendethiel joined #nimrod |
15:29:23 | * | Ven joined #nimrod |
15:36:39 | * | gokr joined #nimrod |
15:39:09 | * | gokr_ quit (Ping timeout: 246 seconds) |
15:39:35 | * | vendethiel quit (Ping timeout: 265 seconds) |
15:39:55 | * | vendethiel joined #nimrod |
15:40:12 | * | Ven quit (Ping timeout: 246 seconds) |
15:41:14 | * | gokr quit (Ping timeout: 258 seconds) |
15:41:51 | * | Ven joined #nimrod |
15:48:19 | * | xcombelle joined #nimrod |
15:50:04 | * | dom96_ quit (Remote host closed the connection) |
15:53:30 | * | dom96_ joined #nimrod |
16:07:15 | * | johnsoft quit (Read error: Connection reset by peer) |
16:07:55 | flaviu | gokr1: IIRC the C compiler on windows isn't deterministic, the issue came up a couple months ago |
16:20:02 | * | dom96_ quit (Read error: No route to host) |
16:22:43 | * | kemet joined #nimrod |
16:23:27 | * | kemet quit (Client Quit) |
16:24:25 | * | brson joined #nimrod |
16:29:33 | * | mko joined #nimrod |
16:38:49 | * | johnsoft joined #nimrod |
16:39:03 | * | rpag joined #nimrod |
16:40:16 | * | Mat3 joined #nimrod |
16:40:18 | Mat3 | hi all |
16:44:27 | * | brson quit (Quit: leaving) |
16:44:41 | * | brson joined #nimrod |
17:03:26 | * | brson quit (Quit: leaving) |
17:04:52 | * | rpag quit (Ping timeout: 245 seconds) |
17:05:49 | * | brson joined #nimrod |
17:05:50 | Araq | hi Mat3 |
17:06:32 | Mat3 | hi Araq |
17:08:05 | Araq | brb |
17:13:40 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:14:00 | * | kostya joined #nimrod |
17:16:43 | kostya | hi, how can nimrod modify variable in for? `for a in aa: a.x += 1` this code gives error `Error: for a 'var' type a variable needs to be passed` |
17:17:50 | * | calde joined #nimrod |
17:18:14 | calde | Hi all. Does anyone know the best way to pass a TChannel into a spawned procedure? |
17:18:37 | calde | Because when I try just passing it I get this: Error: 'spawn'ed function cannot have a 'var' parameter |
17:19:55 | Mat3 | brb |
17:22:44 | EXetoC | kostya: I think you need to make a var copy in most cases |
17:23:23 | EXetoC | calde: simply remove 'var' |
17:24:18 | Mat3 | kostya: Do not know but probably you can define the variable as 'var'iable |
17:25:14 | * | FreezerburnV joined #nimrod |
17:25:32 | kostya | `for var a in aa: a.x += 1` like this? |
17:25:37 | kostya | this is not compiled |
17:26:07 | kostya | aa is seq[A] |
17:27:12 | calde | EXetoC: Remove 'var' from the function definition? Will it still be the same channel if I pass by value? |
17:27:29 | calde | *procedure definition :-) |
17:30:41 | calde | Oh never mind, 'var' is like Rust's mut / anti-C++-const. (Is that right?) |
17:31:03 | EXetoC | no. I think there's a good reason why 'var' is disallowed, so maybe you should take another approach |
17:31:24 | calde | When I try to actually send to the channel inside the proc, I now get this: Error: for a 'var' type a variable needs to be passed |
17:31:41 | calde | Ah, what's the reason? |
17:32:10 | calde | Or maybe I should ask, what's the better way of implementing a MPMC channel? |
17:32:44 | EXetoC | is the variable also a var? |
17:33:01 | calde | Yes. Should it not be? |
17:33:25 | EXetoC | var for non-parameters means mutable, while it also mean by-reference for parameters |
17:33:43 | EXetoC | calde: it ought to work if it is a var. I guess I need to see the code |
17:33:58 | calde | Ok, I'll put together a simplified example |
17:35:49 | Araq | calde: 1. don't use channels if a FlowVar can do the same |
17:36:02 | Araq | 2. you need to pass via 'ptr TChannel' |
17:36:03 | * | xcombelle quit (Ping timeout: 246 seconds) |
17:36:42 | Araq | it's this way to remind you to keep track of ownership for yourself |
17:37:00 | Araq | *to remind you that you need to track the ownership yourself |
17:37:41 | Araq | EXetoC: no, 'spawn' is a special case |
17:37:42 | * | kostya quit (*.net *.split) |
17:37:42 | * | flaviu quit (*.net *.split) |
17:38:10 | * | kostya joined #nimrod |
17:38:11 | * | flaviu joined #nimrod |
17:39:24 | EXetoC | Araq: what do you mean? I just recall not being able to use 'var' with it |
17:40:04 | calde | Like this? https://gist.github.com/Calder/7713efed7b4d5669e3bd |
17:40:22 | calde | Because that gives me this: |
17:40:23 | calde | Error: type mismatch: got (ptr TChannel[int], int) but expected one of: system.send(c: var TChannel[TMsg], msg: TMsg) |
17:41:57 | EXetoC | it must be dereferenced (queue[].send..) |
17:42:01 | * | kostya quit (Client Quit) |
17:42:10 | EXetoC | it might not work, in which case you should introduce a temporary var |
17:43:59 | * | nullmove joined #nimrod |
17:44:04 | Varriount | Araq: So, did you find the installer modifications suitable? |
17:44:04 | EXetoC | you could allocate the channel on the stack and then replace ptr with var in the parameter, if it makes sense in your code (var for parameters is kind of like & in c++) |
17:44:30 | EXetoC | I'm repeating that in case it wasn't clear |
17:45:02 | Araq | EXetoC: yes, you cannot use 'var' with spawn. didn't mean anything else |
17:45:11 | Araq | Varriount: as far as I tested it. yes |
17:45:38 | EXetoC | ok |
17:54:16 | calde | Thanks so much! That worked perfectly. |
17:59:04 | Varriount | Araq: So what else needs to be done to release? |
17:59:38 | Araq | well I finished everything |
17:59:50 | Araq | however I'm looking into nimble's createDir issue |
17:59:59 | Araq | would be nice if we could fix that for 0.9.6 |
18:00:09 | Araq | oh |
18:00:27 | Araq | Varriount: please build a 64 bit version; I can't be bothered :P |
18:01:04 | Varriount | Araq: Of what? Nimrod or Nimble? |
18:01:24 | Varriount | Or do you mean an installer for 64 bit machines? |
18:02:46 | Araq | the latter |
18:03:16 | * | silven quit (Ping timeout: 272 seconds) |
18:05:21 | NimBot | Araq/Nimrod devel 2e4447c Araq [+0 ±3 -0]: documentation improvements |
18:06:04 | Varriount | Araq: I need the url for the 64 bit mingw binary. |
18:06:32 | Araq | set --var:mingw=mingw64 |
18:06:56 | Araq | the url is the obvious one: http://nim-lang.org/download/mingw64.zip |
18:18:09 | * | gokr joined #nimrod |
18:19:45 | * | Matthias247 joined #nimrod |
18:22:11 | * | xcombelle joined #nimrod |
18:22:15 | fowl | hrm why is glossolalia missing frmo packages.json |
18:24:08 | flaviu | fowl: Git log says you never added it. |
18:24:16 | fowl | having looked at all my commits on nimrod-code/packages, i now believe i did not add it ._o |
18:24:29 | flaviu | git log --all -p | grep 'glossolalia' turns up nothing |
18:24:36 | fowl | thats a mindf*ck |
18:24:45 | * | xenagi joined #nimrod |
18:28:37 | fowl | Araq, I still get an error if I try to compile with --cs:none: lib/system.nim(2442) Error: redefinition of 'fileHandle' |
18:29:08 | * | dloss joined #nimrod |
18:29:55 | Araq | fowl: well bigbreak requires cs:partial |
18:30:18 | Araq | guys, I updated the website, that means the release is official |
18:30:22 | fowl | oh |
18:30:25 | * | FreezerburnV quit (Quit: FreezerburnV) |
18:30:26 | Araq | so please test it out |
18:31:06 | calde | Woo! :) |
18:31:14 | nullmove | congrats on the release! |
18:33:45 | * | johnsoft quit (Ping timeout: 272 seconds) |
18:33:58 | * | FreezerburnV joined #nimrod |
18:34:44 | * | johnsoft joined #nimrod |
18:35:06 | * | dloss quit (Remote host closed the connection) |
18:36:08 | * | dloss joined #nimrod |
18:36:15 | Araq | FreezerburnV: if you want to help with 'spawn' be my guest. Most pressing is a new channel type that uses automatic memory management |
18:37:41 | FreezerburnV | Araq: I can certainly try at some point |
18:39:43 | * | dloss quit (Remote host closed the connection) |
18:43:37 | * | calde quit (Ping timeout: 246 seconds) |
18:45:12 | * | dloss joined #nimrod |
18:48:04 | Araq | Varriount: I just tested the installer again. Excellent work! |
18:48:39 | * | dloss quit (Remote host closed the connection) |
18:51:30 | superfunc | Will do |
18:55:39 | NimBot | Araq/Nimrod master 8b8a21c Reimer Behrends [+1 ±1 -0]: Fixed parsing of float literals.... 7 more lines |
18:55:39 | NimBot | Araq/Nimrod master cea2a90 katlogic [+0 ±3 -0]: More human readable `$`(float)... 3 more lines |
18:55:39 | NimBot | Araq/Nimrod master 9532951 katlogic [+1 ±2 -0]: Tests for `$`(float) |
18:55:39 | NimBot | Araq/Nimrod master bd8f5c8 Billingsly Wetherfordshire [+0 ±1 -0]: json.== handles nil now |
18:55:39 | NimBot | 332 more commits. |
18:55:52 | Araq | so now we know |
18:55:59 | Araq | 332 commits since 0.9.4 |
18:56:14 | Araq | and that's not even with bigbreak merged |
18:56:52 | * | calder joined #nimrod |
18:57:47 | Trustable | Araq: Please pull my CSS fix. |
18:58:22 | * | brson quit (Ping timeout: 272 seconds) |
18:58:24 | calder | I'm back. :) Is there a simple example of a producer-consumer pattern with the new thread analysis enabled? |
18:58:37 | * | xcombelle quit (Remote host closed the connection) |
18:58:55 | Araq | Trustable: I did weeks ago? |
18:59:33 | Trustable | Araq: Yes, but it was in CSS code which is not used, therefore it had no affect. |
18:59:33 | * | gokr quit (Read error: Connection reset by peer) |
18:59:42 | * | gokr joined #nimrod |
18:59:50 | * | brson joined #nimrod |
19:00:01 | Trustable | My new PR ist tested |
19:00:11 | * | rpag joined #nimrod |
19:00:28 | * | FreezerburnV quit (Quit: FreezerburnV) |
19:00:34 | Varriount | Araq: Hello rpag |
19:01:42 | Varriount | Araq: So... bigbreak is being merged back into devel |
19:02:09 | rpag | hello Varriount |
19:11:53 | Araq | Varriount: yes |
19:14:08 | Araq | Varriount: but I won't do it today |
19:15:07 | * | calder quit (Ping timeout: 246 seconds) |
19:17:04 | NimBot | Araq/Nimrod bigbreak 753733e Clay Sweetser [+1 ±1 -0]: Improve the trimcc tool's batching algorithm. |
19:17:04 | NimBot | Araq/Nimrod bigbreak 99b36cb Clay Sweetser [+0 ±1 -0]: Allow koch.nim to be run without a failure if given no arguments. |
19:17:04 | NimBot | Araq/Nimrod bigbreak e0bdf4f Andreas Rumpf [+1 ±2 -0]: Merge pull request #1575 from Varriount/enhance-trimcc... 2 more lines |
19:17:43 | Araq | Trustable: where is your PR? https://github.com/Araq/Nimrod/pulls?q=is%3Aopen+is%3Apr |
19:17:59 | NimBot | Araq/Nimrod devel 6043194 Simon Krauter [+0 ±1 -0]: Fixed missing color definion in docs CSS |
19:17:59 | NimBot | Araq/Nimrod devel f09af72 Andreas Rumpf [+0 ±1 -0]: Merge pull request #1573 from trustable-code/PR1... 2 more lines |
19:18:04 | Araq | never mind, I'm blind |
19:18:48 | Trustable | thx for merging |
19:20:27 | Araq | will re-generate the docs soon |
19:21:09 | * | calder joined #nimrod |
19:21:11 | calder | Is there a simple example of a producer-consumer pattern with the new thread analysis enabled? |
19:21:29 | flaviu | Araq: Will https://github.com/Araq/Nimrod/pull/1497 and https://github.com/Araq/Nimrod/issues/1479 be merged? |
19:21:51 | flaviu | The last link should have been https://github.com/Araq/Nimrod/pull/1364 sorry |
19:22:07 | Araq | flaviu: yes otherwise I would have them closed already |
19:22:32 | Araq | but I didn't want it to merge for 0.9.6 |
19:22:59 | flaviu | Ok. Should I rebase them onto bigbreak? |
19:23:10 | flaviu | err, just #1364 |
19:23:30 | Araq | that would be nice |
19:23:41 | Araq | calder: no. |
19:23:57 | Araq | it is not hard but we have no good examples for multithreading yet |
19:24:34 | Araq | and the new thread analysis is not as strict as you may think |
19:25:30 | gokr1 | Any trivial testing needed to be done? I got a mac, win7, Ubuntu. |
19:25:42 | gokr1 | Just back from badminton and my brain is in slo-mo. |
19:26:00 | calder | Ok. Would it help for me to write one once I figure it out? |
19:26:11 | Araq | gokr1: read the download page and test it |
19:26:12 | reactormonk | Araq, I could see if I still have my simple NLP example with multiple processes, it's a simple map/reduce, would that be relevant? |
19:26:31 | reactormonk | or rather map/collect, doesn't do any reducing |
19:26:32 | gokr1 | Ohh, already out! :) |
19:26:44 | gokr1 | yumyum... |
19:26:46 | Araq | reactormonk: multiple processes don't cut it, I'm afraid |
19:27:50 | Araq | I need to write and finish my parallel processing example |
19:29:28 | calder | Any advice for debugging "'foo' is not GC-safe errors? |
19:29:52 | Araq | --warn[gcSafety]:on |
19:30:10 | Araq | --warning[...]:on |
19:30:23 | calder | Thanks! |
19:32:58 | gokr1 | Sidenote: No archive of older releases or? |
19:33:53 | Araq | gokr1: if you manage to guess the old name. it's still on the server |
19:34:27 | reactormonk | Araq, sorry, better specification: rewrite that example to use threading |
19:35:07 | calder | Can I throw out two possible feature requests? |
19:35:31 | Araq | reactormonk: ok, sounds good |
19:35:44 | Araq | calder: sure. |
19:36:34 | gokr1 | One good thing for tar balls/zips - include the version in the directory name that will be unzipped. |
19:37:06 | gokr1 | I think that is "customary" in unix country at least. |
19:37:37 | Araq | gokr1: yeah we should do that. eventually. |
19:37:47 | calder | 1. When you get a 'foo' is not GC-safe error, it would be awesome to tell you why it's not rather than making you comment out the whole function and slowly start commenting things back in to find out what non gc-safe function you're calling. |
19:38:07 | calder | 2. It would be great to have a GC-safe logging mechanism |
19:38:21 | calder | 3. And a pony :) |
19:38:50 | Araq | (2) is provided via the warning |
19:38:56 | calder | ? |
19:39:14 | Araq | should have made it the default ... |
19:40:07 | EXetoC | (3) will be the highest reward on kickstarter |
19:40:15 | calder | You mean 1? |
19:40:24 | calder | Haha |
19:41:10 | calder | I'm compiling with "nim c -w:on --threads:on foo.nim". Is that the wrong way to enable warnings? |
19:41:33 | reactormonk | Araq, but can't guarantee anything, any coding time is currently going to my thesis :-/ |
19:42:00 | Araq | calder: no idea what that does. warnings are in general activated on a case by case basis |
19:42:17 | Araq | "turn on all warnings" is rather meaningless |
19:43:43 | Araq | can somebody check that I tagged 0.9.6 on master properly? I tag so rarely that I never can remember how it's done |
19:43:50 | calder | Ah, in that case, what am I doing wrong here? |
19:43:51 | flaviu | git tag -a |
19:43:51 | calder | bash-3.2$ nim c --warning[gcSafety]:on --threads:on test.nim command line(1, 1) Error: invalid command line option: '--gcSafety]:on' |
19:44:15 | calder | Oops, newlines |
19:44:19 | calder | bash-3.2$ nim c --warning[gcSafety]:on --threads:on test.nim |
19:44:22 | reactormonk | calder, yeah, [ ] is bash. |
19:44:22 | calder | command line(1, 1) Error: invalid command line option: '--gcSafety]:on' |
19:44:31 | reactormonk | "--warning[gcSafety]:on" |
19:44:40 | calder | Ah, derp. X-) |
19:44:41 | calder | Thanks! |
19:44:42 | gokr1 | Araq: Looks properly tagged from here. |
19:44:47 | reactormonk | [ ] in command line options is bad manners imo. |
19:45:00 | reactormonk | calder, trips everyone, don't worry |
19:45:06 | Araq | it's --warning[gcUnsafe]:on, calder |
19:45:09 | Araq | my bad |
19:45:50 | calder | Ah, thanks! |
19:47:32 | calder | Ok, that's pretty helpful. It would be great if that were the default behavior (possibly with a traceback going back to the root unsafe operation). |
19:49:23 | Varriount | Araq: Have you noticed that Aporia is larger than MingW? |
19:49:35 | Araq | Varriount: yes |
19:49:58 | gokr1 | Btw, the testsuite you can run via koch - is it meant to be green or so? |
19:50:17 | Varriount | gokr: It's never 100% green |
19:50:46 | Araq | it's 100% for version 1.0 |
19:51:08 | gokr1 | I haven't looked into the test mechanisms you guys use. |
19:51:36 | Araq | the test suite is lots of awful constructs and hard corner cases |
19:52:06 | gokr1 | One idea is of course to make the "expected" result known - like, ok, if all goes well you should have 189/250 green or whatever. |
19:52:33 | flaviu | gokr1: Track regressions? |
19:52:36 | Araq | nimbuild tells us the diff instead |
19:52:47 | Araq | that's good enough for now |
19:53:12 | flaviu | gokr1: FWI, tests are here: http://build.nimrod-lang.org/ |
19:53:23 | gokr1 | ok |
19:55:08 | flaviu | dom96: Will https://github.com/nimrod-code/nimbuild/pull/16 be merged? |
19:57:34 | Araq | gokr1: in fact, your suggestion doesn't work any better than simply to keep all tests green or disabled |
19:58:20 | gokr1 | Araq: Given the build result I can see where it "should" be, just didn't notice it had that info before. |
19:58:51 | Araq | gokr1: depends. the results are different for different OSes |
19:58:59 | gokr1 | right |
19:59:19 | Araq | and often a test simply fails because some shared object is not around |
19:59:24 | superfunc_ | Araq: It looks like the compiler in the tagged release still marks itself as 0.9.5 |
20:00:24 | Araq | superfunc_: how so? |
20:00:44 | Araq | my master version has 0.9.6 in compiler/nversion.nim |
20:00:47 | superfunc_ | I checked out the tag and built, when I run ./bin/nimrod -v it says 0.9.5 |
20:01:16 | Araq | works for me (TM) |
20:01:59 | gokr1 | I just built the zip, and my nimrod says 0.9.6. |
20:02:01 | superfunc_ | nvm, I was checking only after building csources |
20:02:05 | superfunc_ | my bad |
20:02:21 | Araq | oh yeah I need to update csources too |
20:03:29 | * | Trustable quit (Quit: Leaving) |
20:04:05 | gokr1 | Ah, right, the zip doesn't include the tests, reasonably. |
20:04:21 | gokr1 | (consider me a blabbering n00b) |
20:04:24 | * | brson quit (Quit: leaving) |
20:07:25 | gokr1 | Hmmm, wondering... is koch.nim even useful in the zip? |
20:08:00 | gokr1 | It may be, just looks like most things it can do is meant for the git clone. |
20:08:12 | Araq | IMO koch.nim and compiler/*.nim shouldn't be in the zip, but people expect it to be |
20:10:53 | * | johnsoft quit (Ping timeout: 240 seconds) |
20:11:02 | * | johnsoft joined #nimrod |
20:18:30 | superfunc_ | is the process for building on bigbreak different from building on devel? |
20:18:49 | Varriount | superfunc: Nope. You just need to use the 'bigbreak' branch of csources |
20:19:36 | superfunc_ | that must be it |
20:19:38 | superfunc_ | thanks |
20:20:09 | * | dom96_ joined #nimrod |
20:27:52 | * | nullmove quit (Quit: Page closed) |
20:31:48 | Varriount | Araq: https://drive.google.com/file/d/0B077nrrf63xtS1EtVlFOZzdMZVk/view?usp=sharing |
20:31:56 | Varriount | There's the 64 bit installer |
20:32:15 | Varriount | Do you need the 32 bit one as well? |
20:33:51 | * | vendethiel- joined #nimrod |
20:34:05 | Araq | Varriount: look at the website |
20:34:10 | Araq | I have the 32 bit version |
20:35:44 | Araq | Varriount: thanks. you'll get server access once we moved over to our new host |
20:35:52 | * | vendethiel quit (Ping timeout: 265 seconds) |
20:35:58 | * | calder quit (Ping timeout: 246 seconds) |
20:49:12 | superfunc_ | dom96_: is nimble able to build on bigbreak for you? |
20:50:12 | dom96_ | superfunc_: yeah |
20:52:11 | Onionhammer | so is bigbreak merged into devel? |
20:52:34 | superfunc_ | dom96_: I'm getting undeclared identifier for FD_SET |
20:52:38 | superfunc_ | (http://lpaste.net/112898) |
20:52:44 | Onionhammer | what's the main development branch now? |
20:53:30 | dom96_ | superfunc_: You using latest bigbreak? |
20:53:39 | superfunc_ | yeah |
20:54:45 | dom96_ | superfunc_: Linux? |
20:54:56 | superfunc_ | osx |
20:57:06 | * | johnsoft quit (Ping timeout: 240 seconds) |
20:57:21 | * | johnsoft joined #nimrod |
20:57:50 | dom96_ | superfunc_: I see. |
20:58:09 | dom96_ | I think there is a PR which fixes that. |
21:00:27 | Araq | yup |
21:03:32 | * | dloss joined #nimrod |
21:04:30 | * | FreezerburnV joined #nimrod |
21:05:43 | Araq | Onionhammer: still bigbreak |
21:06:53 | * | dloss quit (Remote host closed the connection) |
21:06:59 | * | Varriount|Pool joined #nimrod |
21:07:38 | Araq | Varriount|Pool: er why is this installer even smaller? |
21:07:57 | Varriount|Pool | And before anyone asks, I'm *at* the pool, not *in* the pool |
21:08:04 | Araq | over a megabyte smaller, in fact |
21:08:24 | Araq | and yeah I was about to ask what "pool" means :-) |
21:08:44 | Varriount|Pool | Araq: I dunno. Are you comparing the old installer generated with the old script to the one I just put up a link for? |
21:09:02 | Araq | well no, I used your script for the 32 bit build, obviously |
21:09:43 | Varriount|Pool | Araq: I don't know why. I generated with a clean download of Nimrod, into a new directory. |
21:10:07 | Araq | nimrod_debug.exe missing? |
21:10:13 | Varriount|Pool | Oh, that might be it. |
21:10:20 | Varriount|Pool | One moment, I'll fix that. |
21:10:31 | Araq | koch.nim produces one for you |
21:10:43 | Varriount|Pool | Araq: Under what command? |
21:10:59 | Araq | but defaults to mingw32 and I'm not sure you can override it without touching the code |
21:11:05 | Araq | "koch nsis" |
21:11:13 | Varriount | -_- |
21:11:37 | Araq | well come on, it's dead simple to edit it |
21:11:38 | Varriount | Or I could just bootstrap nimrod with -d:release --stacktrace:on --linetrace:on |
21:11:48 | Varriount | and then rename it. |
21:12:05 | Araq | that is not a debug version then |
21:12:08 | Araq | that's a hybrid |
21:16:20 | Varriount|Pool | Meh, it's what I use. |
21:17:02 | Varriount|Pool | Araq: Here's the fixed version. https://drive.google.com/file/d/0B077nrrf63xtNkE1V293bHRibk0/view?usp=sharing |
21:18:16 | Varriount|Pool | I wonder how fast a nimrod compiler compiled in debug mode with -O3 turned on for the C compiler. |
21:24:06 | Varriount|Pool | Araq: http://michaeltunnell.com/blog/15-miscellaneous/53-14-potential-alternatives-to-sourceforge-for-binary-downloads |
21:25:58 | Araq | Varriount|Pool: what's the point? we have servers |
21:26:58 | superfunc | dom96_: which pr? |
21:29:17 | fowl | c2nim fails to compile, missing llstream |
21:30:08 | dom96_ | superfunc: https://github.com/Araq/Nimrod/pull/1566 |
21:30:45 | Araq | fowl: it needs the compiler's source which are not a babel package yet |
21:31:21 | gokr1 | fowl: I wrote an article on c2nim where I described that. Just add a path option and it works. |
21:31:28 | fowl | Araq, i thought this was done with path=$compiler or something similar |
21:32:06 | gokr1 | I did this: nimrod -p:../Nimrod.devel/compiler/ c c2nim |
21:32:26 | Araq | fowl: yes, but $nimrod/compiler can expand to /usr/compiler ... |
21:32:36 | fowl | gokr1, how can i pass that to nimble install though |
21:33:15 | gokr1 | And that problem only happens if you run from an installed compiler, otherwise it finds compiler. |
21:33:36 | Onionhammer | hm, csources bigbreak isnt making a bin/nim, it's making a bin/nimrod? |
21:34:38 | Onionhammer | why 'deduplicate' instead of unique? |
21:34:39 | Onionhammer | :| |
21:35:12 | Araq | Onionhammer: unique is not a verb |
21:35:30 | Onionhammer | getUnique |
21:36:19 | Araq | that's uglier. also we may want to use 'unique' for pointers |
21:36:59 | Onionhammer | deduplicate is uglier.. |
21:37:03 | Onionhammer | ugliest probably |
21:37:32 | fowl | so c2nim is a package but its not installable because..why? |
21:38:31 | Araq | Onionhammer: well this is what happens when you're not around all the time! |
21:38:51 | Araq | we make the wrong decisions! |
21:38:55 | gokr1 | In Smalltalk one often use a distinction of destructive imperative operations, and operations that return a new object - so "deduplicate" would make me think of a destructive operation, and "deduplicated" would be to get another seq as a result. Or "sort" vs "sorted" etc. Any similar naming in Nim? |
21:39:28 | Varriount|Pool | Onionhammer: Where's 'deduplicate'? |
21:39:31 | Araq | gokr1: no, we got a type system instead. If it returns void, it's destructive. |
21:39:50 | gokr1 | True, point taken ;) |
21:39:59 | Araq | but no, you're right |
21:40:12 | Araq | there is no overloading of return types |
21:40:18 | Araq | so the problem exists |
21:40:38 | Araq | sort vs sorted sounds good, but we got no sorted. |
21:40:57 | * | skyfex quit (Read error: Network is unreachable) |
21:41:12 | Onionhammer | @Varriount http://nimrod-lang.org/news.html#Z2014-04-21-version-0-9-4-released |
21:41:22 | Onionhammer | seq[T].deduplicate |
21:41:27 | fowl | er path:"$nimrod/compiler" is in c2nims cfg but it doesnt seem to work |
21:41:51 | gokr1 | fowl: It seems to resolve to "../compiler" relative to the location of nimrod. |
21:41:58 | gokr1 | See "nimrod dump" |
21:42:08 | Onionhammer | also Araq, the front page doesnt have the news |
21:42:11 | Onionhammer | http://nimrod-lang.org/ |
21:42:12 | gokr1 | Like... /usr/local/compiler on my box. |
21:42:30 | Onionhammer | ls |
21:42:32 | Araq | Onionhammer: browser cache |
21:42:33 | Onionhammer | oops |
21:42:38 | gokr1 | fowl: As I describe here: http://goran.krampe.se/2014/10/16/nim-wrapping-c/ |
21:42:43 | Onionhammer | ah doh |
21:45:27 | fowl | gokr1, my paths shown by nim dump are correct |
21:45:40 | fowl | (/home/x/src/Nimrod/lib/...) |
21:46:00 | gokr1 | So you are not using an "installed" nim? |
21:46:16 | fowl | gokr1, no, thats a huge hassle |
21:46:25 | gokr1 | Ok, and it still doesn't find compiler? |
21:46:30 | Araq | fowl: does it work when you pass -p:$nimrod/compiler manually via the command line? |
21:46:35 | Varriount|Pool | Hm.Overloading by return type sounds complex. What happens when I have two procedures 'foo' with the same argument types, but different return types, and do something like 'let x = foo(...)'? |
21:46:51 | Araq | Varriount|Pool: ambiguity error |
21:47:06 | Araq | but yeah we're not gonna get it for 1.0 |
21:47:47 | fowl | Araq, no it still doesnt work |
21:48:20 | fowl | also it looks like nim is looking for packages in ~/.babel/pkg still |
21:48:48 | Araq | fowl: well I guess you need to escape the $ like so \$ because of shell |
21:49:23 | fowl | Araq, that works |
21:50:08 | Araq | most interesting |
21:50:08 | fowl | aha |
21:50:16 | fowl | nimrod.cfg needs to be nim.cfg |
21:50:55 | Araq | I thought nim still reads nimrod.cfg |
21:52:23 | gokr1 | It may be due to "flux" or whatever, but clicking on source links in the docs on nimrod-lang.org gives me 404s on github. |
21:52:45 | Varriount|Pool | I guess overloading via return type is just one of those language features you have to be careful not to abuse, like macros and templates. |
21:53:36 | Varriount|Pool | gokr1: Well the docs are being updated at the moment. Something might have glitched. |
21:53:40 | Araq | Varriount|Pool: not really. once IDEs can expand code, it's no big deal. |
21:54:06 | Araq | gokr1: thank. I'm looking into it |
21:55:02 | gokr1 | Feeling silly pointing out stuff - but you know - just trying to help. Really great work btw! Exploring nimrod is fun. |
21:55:42 | fowl | Araq, on my fresh install from bigbreak, nim.cfg is required |
21:56:07 | Varriount|Pool | Be back in a bit. |
21:56:17 | * | Varriount|Pool quit (Quit: Page closed) |
21:56:32 | fowl | also config/nim.cfg needs to be updated for ~/.nimble/pkgs |
21:56:58 | Araq | well there is some discussion about .nimble vs .babel |
21:58:35 | fowl | i'll just make a symlink for now |
22:03:24 | Araq | ugh |
22:03:39 | Araq | thank god I merged this "see source" PR |
22:04:01 | Araq | now I need to figure out how it is supposed to work |
22:04:10 | Araq | gosh why gradha is not in irc anymore |
22:11:12 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:13:55 | gokr1 | Hmm, did I stumble over a new homepage of nim? http://reign-studios.net/philipwitte/nim/ |
22:14:39 | Araq | that's the design we're trying to merge for 0.10.0, or perhaps 1.0 |
22:17:16 | gokr1 | Perhaps a tad darkish - but hey, it looks quite good. |
22:17:33 | Araq | tell that Onionhammer |
22:18:35 | Araq | (iirc he is a professional web designer and doesn't like it) |
22:19:43 | gokr1 | I am trying to ... figure out what kind of "feeling" it has. Too darkish gives me personally feelings of ... A bit of naive, gaming, "cool kids with light grey fonts on black in vim"-kinda feeling. :) |
22:20:32 | Araq | hey, gaming is the ultimate purpose of computers |
22:20:40 | gokr1 | But I sure can't do anything remotely as good - so whoever puts in the effort :) |
22:20:45 | gokr1 | Hehe |
22:22:04 | Araq | "Der Mensch ist nur da ganz Mensch, wo er spielt." |
22:22:39 | gokr1 | Hehe |
22:25:10 | Mat3 | ciao |
22:25:19 | * | Mat3 quit (Quit: Verlassend) |
22:25:37 | Onionhammer | Araq not a designer, developer |
22:25:46 | Onionhammer | that link isnt loadig |
22:26:16 | gokr1 | The reign-studios link? |
22:26:19 | Onionhammer | yeah |
22:26:49 | gokr1 | he... you are right. Something broke. |
22:27:13 | EXetoC | no #ffffff bg then? good :> |
22:27:20 | gokr1 | Oh, perhaps this one: http://reign-studios.net/philipwitte/nim/home.htm |
22:27:39 | gokr1 | no, still "broken". |
22:28:20 | gokr1 | I broke Jester! ;) |
22:28:55 | Araq | I don't think that runs jester |
22:29:05 | gokr1 | Oh, it did say Jester at the bottom though. |
22:29:06 | FreezerburnV | Hm. So I’m declaring a var TChannel, and then calling open on it. I then cast it to a ptr type by using addr and using that as an argument to a function in two separate threads. I send a message over the channel in one thread, while another thread is sitting on a recv, but the other thread never actually gets the message from recv and just blocks forever. I am the confus |
22:31:18 | Araq | gokr1: that's part of the design |
22:31:25 | gokr1 | ah :) |
22:32:25 | Araq | FreezerburnV: gist it please |
22:32:31 | FreezerburnV | Araq: Sure |
22:34:14 | FreezerburnV | Araq: https://gist.github.com/Freezerburn/87c8ec9d5c984ee3d36c |
22:34:33 | * | BlaXpirit quit (Quit: Quit Konversation) |
22:35:40 | * | superfunc_ quit (Ping timeout: 246 seconds) |
22:36:17 | Araq | FreezerburnV: var tickIn = tickInP[] # creates a copy of the channel with undetermined consequences |
22:36:47 | FreezerburnV | Araq: Right, crap, forgot about the copying. |
22:37:21 | EXetoC | yolo |
22:37:49 | FreezerburnV | Araq: Is there a way I can avoid the copy and use the channel? |
22:38:34 | Araq | template tickIn: expr = tickInP[] |
22:38:59 | Araq | or simply write tickInP[] |
22:39:10 | Araq | that deref won't kill you |
22:40:26 | FreezerburnV | Araq: Got it. I just wasn’t sure of how that would interact with other things, or if I could even do something like tickInP[].send or something along that line |
22:41:53 | Araq | btw your code should use createThread instead of spawn. because the 2nd spawn is not really guaranteed to be run before the first returns. I think. |
22:42:37 | Araq | That's one difference between concurrency and parallelism. |
22:42:56 | FreezerburnV | Araq: Duly noted. Though in this case, I’m not sure it matters. One deals with input from the user, and other just sits on recv, so I don’t think it matters |
22:43:46 | FreezerburnV | Parallelism is… “fun” to deal with, sometimes. (though I enjoy it, in some masochistic way) |
22:44:34 | Araq | FreezerburnV: the point is: the compiler is allowed to translate spawn foo() to foo(). |
22:44:35 | FreezerburnV | (one of the most interesting things I had to debug dealt with was a multithreaded message queue I wrote intereacting with the Python GIL, and finding out how the GIL was causing a deadlock across 3 threads) |
22:44:58 | FreezerburnV | Araq: Oh! |
22:45:07 | Araq | it doesn't do that for now ;-) |
22:45:22 | FreezerburnV | Well then. I certainly do not want that to happen under me |
22:54:36 | * | superfun[c] joined #nimrod |
22:58:31 | Araq | so ... no more broken "view source" feature |
22:58:39 | Araq | disabled that feature completely |
22:59:26 | Araq | and I knew that would happen when I merged that PR |
22:59:45 | Araq | dom96_: see? I'm always right. |
22:59:46 | FreezerburnV | Araq: So apparently tryRecv returns a tuple with “dataAvaliable” rather than “dataAvailable” ;) |
23:00:09 | Araq | FreezerburnV: tryRecv is broken |
23:00:16 | FreezerburnV | Araq: :( |
23:00:17 | Araq | it does block |
23:00:27 | Araq | let me fix it |
23:00:39 | FreezerburnV | Is there a way to deal with multiple channels in a select-ish fashion then? |
23:00:48 | * | vendethiel joined #nimrod |
23:01:03 | dom96_ | Araq: What are you right about now? |
23:01:52 | Araq | read the logs |
23:02:22 | FreezerburnV | Is there some kind of sleep function? Didn’t see anything in threads or system |
23:02:26 | Araq | FreezerburnV: flow vars support that via awaitAny |
23:02:31 | Araq | os.sleep() |
23:02:35 | FreezerburnV | Bah |
23:02:43 | FreezerburnV | I should check os module more oftn |
23:03:00 | Araq | as I said, the channels need to be updated |
23:03:10 | Araq | we can support much better ones |
23:03:13 | * | vendethiel- quit (Ping timeout: 258 seconds) |
23:03:39 | FreezerburnV | I thought i heard something about a new threading system or something? Are channels not being updated yet? |
23:03:56 | FreezerburnV | Where’s awaitAny? And what’s a flow var? |
23:03:58 | Araq | exactly |
23:05:29 | dom96_ | Araq: Just tell me. I don't know where to start reading. |
23:05:50 | Araq | dom96_: "view source" feature is broken |
23:06:15 | dom96_ | In a web browser? how so? |
23:06:25 | Araq | github doesn't like the links |
23:06:50 | Araq | and the implementation always was fragile, relying on things that are not guaranteed in any way |
23:07:39 | dom96_ | what links? |
23:08:32 | Araq | the "view source" links |
23:08:40 | dom96_ | oh |
23:10:22 | NimBot | Araq/Nimrod devel 1ddc42f Araq [+0 ±1 -0]: default to warnGcUnsafe for threads:on |
23:10:22 | NimBot | Araq/Nimrod devel 4aab018 Araq [+0 ±4 -0]: disable 'view source' feature |
23:10:22 | NimBot | Araq/Nimrod devel 60a7532 Araq [+0 ±1 -0]: fixes tryRecv |
23:10:41 | Araq | FreezerburnV: there you go. tryRecv should work now |
23:10:53 | FreezerburnV | Araq: Sweet, thanks |
23:11:14 | Araq | use the devel branch to get it |
23:13:12 | FreezerburnV | Now I just have to actually build Nim for the first time ever. Exciting! |
23:15:28 | Araq | hrm this new win installer already paid off |
23:15:58 | Araq | I can easily update packages without rebuilding everything and uploading hundreds of megabytes |
23:16:57 | * | noam quit (Ping timeout: 245 seconds) |
23:20:40 | NimBot | Araq/Nimrod devel 849484f Simon Krauter [+0 ±1 -0]: Do not allow self import |
23:20:40 | NimBot | Araq/Nimrod devel 27585ee Simon Krauter [+0 ±1 -0]: Compare fileIndexes instead of file names |
23:20:40 | NimBot | Araq/Nimrod devel 8b70e2c Simon Krauter [+1 ±0 -0]: Added test case |
23:20:40 | NimBot | Araq/Nimrod devel b29c0da Andreas Rumpf [+1 ±1 -0]: Merge pull request #1574 from trustable-code/PR3... 2 more lines |
23:21:17 | Varriount | FreezerburnV: I have a batch script that downloads and builds nimrod for you. |
23:21:33 | Varriount | FreezerburnV: All it needs is git and gcc in your path |
23:21:45 | FreezerburnV | Varriount: Don’t worry, I followed the instructions in the repo. They’re pretty simple |
23:22:03 | FreezerburnV | Varriount: At least, I’m assuming that the few steps listed were all I needed |
23:22:44 | Varriount | Download Nimrod Repo -> Download CSources Repo -> Compile CSources -> Compile Koch -> Run Koch Bootstrap |
23:23:02 | Araq | no need for csources when you use 0.9.6 |
23:23:17 | superfun[c] | Can I ask, what is koch? |
23:23:25 | Araq | german for "cook" |
23:24:06 | FreezerburnV | Araq: koch install seems to be a little broken on OS X. “Error: unhandled exception: format string: key not found: mingw [EInvalidValue]” |
23:25:20 | FreezerburnV | This was after a succesful boot |
23:25:36 | Araq | er where do we tell you to run fucking "koch install"? |
23:26:01 | FreezerburnV | readme.md |
23:26:11 | fowl | is TObject still TObject? |
23:26:17 | FreezerburnV | Right after the block telling you to run koch boot |
23:26:37 | Araq | fowl: TObject still works, but it's RootObj now |
23:26:46 | fowl | ty |
23:26:54 | FreezerburnV | I can add the compiled binary to my path, but i figured I would try to use that |
23:27:38 | Araq | oh well I think somebody knows about that one |
23:28:02 | gokr1 | FreezerburnV: readme.md hasn't been updated it seems. The current instructions are probably install.txt |
23:28:51 | gokr1 | FreezerburnV: The idea being that doing a "install by spreading it out in various Unixy-places" is actually more hassle than good. |
23:29:42 | FreezerburnV | gokr1: I agree with that. I thought it was going to just dump the necessary stuff (such as the nimrod binary) into the folder I specified rather than spreading all over the system. I’ll just modify the path a bit |
23:30:14 | gokr1 | or symlink it into some place you have a path to. |
23:34:12 | Araq | dom96_: btw is Nimble still dependent on git? |
23:35:37 | fowl | iirc symlinking nim doesnt work on bsd (or osx) |
23:36:11 | NimBot | Araq/Nimrod devel 2495ceb Araq [+0 ±1 -0]: much better quote for the frontpage |
23:36:11 | NimBot | Araq/Nimrod devel 1a36a42 Araq [+0 ±2 -0]: 'koch install' works again |
23:36:11 | NimBot | Araq/Nimrod devel 59c6433 Araq [+1 ±1 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
23:44:02 | gokr1 | Would be interesting to port the micro-benchmark that Julia uses to compare with C/Python/Fortran/js/Go and a few more. Its not that long. |
23:44:53 | * | vendethiel quit (Ping timeout: 260 seconds) |
23:44:54 | Araq | nah. micro-benchmarks by definition are not interesting at all. ;-) |
23:45:12 | gokr1 | Well, if it turns out favorably - it can be for marketing :) |
23:45:22 | Araq | that's true |
23:46:57 | gokr1 | Was there any useful stuff to borrow from Julia? It too has a bit of meta programming. |
23:48:13 | Araq | last time I looked at it its meta programming indeed was very good, but I didn't see anything novel. |
23:48:39 | FreezerburnV | Araq: channels.nim line 237 still have the dataAvaliable typo |
23:48:49 | gokr1 | Gotta get to bed, gnite all |
23:48:50 | FreezerburnV | I’d submit a pull request if I could figure out how to do so in the github UI |
23:48:56 | FreezerburnV | Night gokr1 ! |
23:50:11 | NimBot | Araq/Nimrod devel b0179f9 Araq [+0 ±1 -0]: 2nd attempt to fix tryRecv |
23:50:23 | superfun[c] | later |
23:51:33 | Araq | FreezerburnV: there you go |
23:51:37 | Araq | good night guys |
23:51:50 | FreezerburnV | Araq: Night! |
23:52:41 | * | vendethiel joined #nimrod |
23:54:36 | * | FreezerburnV quit (Quit: FreezerburnV) |
23:56:22 | superfun[c] | night Araq |