00:00:15 | * | io2 quit (Ping timeout: 250 seconds) |
00:01:01 | Araq | dom96: report it please |
00:01:32 | dom96 | Trying to reproduce it. |
00:04:11 | dom96 | argh, i'll have to do it tomorrow. |
00:05:48 | Araq | ok, good night |
00:06:32 | dom96 | bye |
00:12:17 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
00:15:25 | * | xenagi joined #nimrod |
00:25:48 | * | darkf joined #nimrod |
00:34:36 | Varriount | Hi xenagi, darkf |
00:34:46 | darkf | hi |
00:49:59 | * | carum quit (Remote host closed the connection) |
00:57:27 | * | carum joined #nimrod |
01:08:51 | * | skyfex joined #nimrod |
01:09:13 | Varriount | Hi skrylar |
01:09:23 | Varriount | *skyfex |
01:11:45 | Varriount | Araq: Does niminst generate installers for just the nimrod compiler, or for arbitrary nimrod projects? |
01:12:41 | Varriount | Demos: ping |
01:13:11 | * | skyfex quit (Ping timeout: 245 seconds) |
01:13:52 | * | brihat1 joined #nimrod |
01:15:11 | * | brihat quit (Ping timeout: 245 seconds) |
01:32:31 | * | carum quit (Read error: Connection reset by peer) |
01:32:50 | * | carum joined #nimrod |
01:35:52 | * | doomrobo joined #nimrod |
01:36:31 | xenagi | hi Varriount |
01:36:54 | * | AndChat|206976 quit (Read error: Connection reset by peer) |
01:37:02 | * | vbtt joined #nimrod |
01:39:24 | * | vbtt quit (Client Quit) |
01:39:25 | * | DAddYE quit (Remote host closed the connection) |
01:57:41 | * | carum quit (Remote host closed the connection) |
02:08:51 | * | dmac joined #nimrod |
02:15:18 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
02:17:09 | * | BitPuffin quit (Ping timeout: 272 seconds) |
02:21:09 | * | dmac quit (Disconnected by services) |
02:21:29 | * | dmac joined #nimrod |
02:21:44 | * | dmac quit (Disconnected by services) |
02:28:02 | * | dmac joined #nimrod |
02:32:14 | Demos | Varriount, pong |
02:32:33 | Demos | yeah I know way to respond right |
02:32:38 | * | dmac quit (Disconnected by services) |
02:46:41 | * | carum joined #nimrod |
02:47:39 | * | doomrobo quit (Quit: Leaving) |
02:49:08 | Varriount | Demos: Rats, I forgot what I was going to ask you |
02:51:15 | * | carum quit (Ping timeout: 260 seconds) |
02:51:28 | Varriount | Demos: Oh yes, now I remember. Have you ever built nimrod with the intel or vcc compilers? |
03:00:13 | * | dmac joined #nimrod |
03:00:46 | reactormonk | xenagi, o/ |
03:06:28 | xenagi | hi |
03:08:20 | Demos | Varriount, I have tried with both, I got it to build in debug mode with intel |
03:09:47 | * | skyfex joined #nimrod |
03:14:47 | * | skyfex quit (Ping timeout: 272 seconds) |
03:26:23 | * | brson quit (Quit: leaving) |
03:39:14 | * | aftersha_ joined #nimrod |
03:53:06 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
03:54:14 | * | ics joined #nimrod |
04:22:14 | * | carum joined #nimrod |
04:24:29 | * | Worm_in_a_Box joined #nimrod |
05:10:33 | * | skyfex joined #nimrod |
05:10:52 | * | DAddYE joined #nimrod |
05:15:07 | * | skyfex quit (Ping timeout: 272 seconds) |
05:59:14 | * | xtagon quit (Read error: Connection reset by peer) |
06:05:48 | Araq | Varriount: 'niminst' is for arbitrary nimrod projects |
06:05:59 | * | xenagi quit (Quit: Leaving) |
06:06:22 | Araq | Demos: you could write a bug report for this, you know |
06:09:51 | fowl | Error: internal error: invalid kind for first(tyOrdinal) |
06:09:52 | fowl | No stack traceback available |
06:09:55 | fowl | >:\ |
06:19:22 | * | Worm_in_a_Box quit (Quit: Ex-Chat) |
07:11:26 | * | skyfex joined #nimrod |
07:16:01 | * | skyfex quit (Ping timeout: 260 seconds) |
07:24:41 | * | Demos quit (Read error: Connection reset by peer) |
07:40:19 | * | skyfex joined #nimrod |
07:42:48 | * | skyfex quit (Client Quit) |
07:53:26 | * | skrylar wonders how well nimrod would take to being shoved in a DSSI instrument |
07:53:37 | skrylar | i don't see a particular reason why it couldn't work |
07:54:59 | * | vbtt joined #nimrod |
07:55:11 | vbtt | hello |
07:55:31 | vbtt | so golang's gc will be precise in 1.3. you probably noticed. |
07:57:12 | skrylar | yay GCs that do their jobs \o/ ;) |
08:01:39 | skrylar | sorry, i get that conservative GCs have their use; i just think its silly to confuse integers with pointers in languages where the compiler knows its emitting to a GC platform |
08:04:14 | vbtt | even nimrod's gc does is not precise for stack data, i believe. |
08:06:24 | skrylar | isn't the default gc just a reference counter right no? |
08:06:27 | skrylar | s/no/now |
08:06:31 | vbtt | skrylar: no |
08:06:43 | skrylar | i thought i saw that mentioned in the 0.9.2 release docs |
08:07:03 | vbtt | it's a gc that uses a deferred refcounting technique. different than what's commonly thought of as a reference counter. |
08:09:00 | fowl | how do i get the devel branch? |
08:09:07 | vbtt | it also has cycle detection |
08:10:53 | vbtt | fowl: git checkout? |
08:11:30 | vbtt | fowl:https://github.com/Araq/Nimrod |
08:11:34 | fowl | it doesnt seem to do anything |
08:11:55 | vbtt | fowl:new to git? |
08:12:01 | vbtt | try a tutorial |
08:12:33 | Araq | fowl 'git branch' tells you what branch you're in, maybe you're already on 'devel' |
08:12:37 | vbtt | https://github.com/Araq/Nimrod |
08:12:43 | vbtt | git clone https://github.com/Araq/Nimrod |
08:12:52 | fowl | * (detached from origin/master) |
08:13:29 | vbtt | do a fresh checkout - it's probably easiest. |
08:13:38 | vbtt | i mean fresh 'clone' |
08:17:15 | vbtt | git often has me confused, btw. i don't really like it. |
08:17:44 | vbtt | mercurial is much better from a usability point of view. |
08:18:23 | skrylar | fowl: detached means you aren't on anything, do "checkout master" to get back to a known area |
08:18:30 | Araq | vbtt: I believe you without ever trying mercurial ;-) |
08:19:07 | vbtt | haha |
08:19:13 | skrylar | i like git :/ |
08:19:35 | skrylar | Fossil would be nice but they insist rebase is evil |
08:20:40 | vbtt | it's not the features, it's the command line ui that i dislike about git. seems to be designed to be particularly hard to remember, overly exposes internals and error prone. |
08:20:51 | skrylar | heh |
08:20:55 | skrylar | well git has the traditional linux mindset |
08:21:02 | vbtt | but other's have said it better: http://stevelosh.com/blog/2013/04/git-koans/ |
08:21:06 | skrylar | "if you can't use it its obviously because you're just stupid" |
08:21:46 | vbtt | not a huge fan of linux either (though I don't think linux mindset is particularly bad) |
08:21:56 | vbtt | FreeBSD ftw! |
08:22:22 | skrylar | i'm trying to stomach linux more because I don't care about Windows 8+ and their attempt to force everyone in to locked down tablet PCs |
08:22:33 | skrylar | but I still miss my macbook pretty much weekly |
08:24:07 | skrylar | a lot of the mac devs have a big emphass on "if it doesn't work or we can't document it yet, we leave it out" which gives the impression that some programs are worse than other platforms but they're really straightforward to use when they finally do get them; linux... you end up with tha 300 bin monstrocity known as Git which you have to refer to man pages that sometimes help :) |
08:25:35 | skrylar | my linux machine still crashes on occasion because i plug in a keyboard |
08:26:15 | vbtt | really? in my experience linux is a pretty solid workstation (but i use a laptop). |
08:26:30 | vbtt | i use linux mint. seems well designed for desktop use. |
08:26:35 | skrylar | well, X11 locks up |
08:26:55 | skrylar | and there was an ubuntu bug that broke any opengl based KDE app |
08:27:37 | vbtt | agree that mac apps are usually nice. whatever they do, they do really well and integrate nicely with the rest of the system. |
08:27:57 | skrylar | well pre-iOS there was a central direction |
08:28:10 | vbtt | linux doesn't seem to believe in good integration (that's why i prefer freebsd where i can use it) |
08:28:32 | skrylar | theres the human interface guidelines for free, they used to have design awards to promote good UI |
08:29:32 | vbtt | anyway, g2g. have fun guys. hopefully nimrod will get accepted to gsoc. |
08:29:37 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
08:29:41 | skrylar | besafe |
08:38:44 | fowl | :( lib/pure/dynlib.nim(58, 20) Error: undeclared identifier: 'CString' |
08:40:49 | skrylar | I seem to remember having that problem; you have to go in the file and change it to 'cstring' which worked for me IIRC |
08:40:57 | skrylar | I'm not sure why the case mattered |
08:41:30 | skrylar | i should see if the compilers been updated since i installed it; though i don't know if anything breaking has gotten pushed through as of late |
08:42:05 | * | DAddYE quit (Remote host closed the connection) |
08:42:40 | * | DAddYE joined #nimrod |
08:47:19 | * | DAddYE quit (Ping timeout: 260 seconds) |
08:51:54 | fowl | weird |
08:52:02 | fowl | its like its case-sensitive |
08:57:52 | Araq | compiler/nimrod.nimrod.cfg contains cs:partial so we notice case inconsistencies |
08:58:01 | Araq | that's in devel, not in master |
08:58:13 | Araq | remove it and it works |
09:00:11 | fowl | ty |
09:04:22 | * | ddl_smurf quit (Quit: ddl_smurf) |
09:16:07 | skrylar | i think i'm the only one who does it, but vim fold markers are really nice :( |
09:16:29 | skrylar | especially with the Voom extension installed, you can jump around huge modules pretty easily |
09:26:45 | * | dmac quit (Ping timeout: 265 seconds) |
09:36:10 | * | carum quit (Remote host closed the connection) |
09:43:38 | * | skyfex joined #nimrod |
09:47:46 | * | skyfex quit (Ping timeout: 245 seconds) |
10:20:43 | * | io2 joined #nimrod |
10:32:21 | * | ics quit (Ping timeout: 245 seconds) |
10:35:24 | * | ics joined #nimrod |
10:55:26 | * | zahary_ joined #nimrod |
10:57:37 | zahary_ | I've added my "make Nimrod a GC research platform" idea to the list: |
10:57:38 | zahary_ | https://github.com/Araq/Nimrod/wiki/GSoC-2014-Ideas |
10:58:25 | zahary_ | can someone, who is a native speaker look over the english? |
11:13:18 | * | BitPuffin joined #nimrod |
11:44:29 | * | skyfex joined #nimrod |
11:48:53 | * | skyfex quit (Ping timeout: 248 seconds) |
13:03:51 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
13:13:36 | * | BitPuffin quit (Ping timeout: 245 seconds) |
13:22:04 | * | BitPuffin joined #nimrod |
13:44:34 | * | darkf quit (Quit: Leaving) |
13:45:23 | * | skyfex joined #nimrod |
13:49:43 | * | skyfex quit (Ping timeout: 260 seconds) |
13:59:56 | * | noam joined #nimrod |
14:02:47 | * | noam_ quit (Ping timeout: 260 seconds) |
14:04:34 | OrionPK | zahary_ the GC isnt embedded in the exe if you choose boehm right? |
14:06:22 | OrionPK | I would get rid of the comma in "groups and individuals, without requiring", and "GC roots marking strategies" maybe would be "root marking strategies" |
14:07:59 | OrionPK | zahary_ overall it looks good though |
14:14:34 | * | ub1k joined #nimrod |
14:19:50 | Araq | hi ub1k welcome |
14:21:11 | ub1k | hi Araq :) thanks |
14:25:24 | zahary_ | OrionPK, right (although, there probably is a static lib version of boehm) |
14:36:06 | * | noam_ joined #nimrod |
14:37:31 | * | noam quit (Ping timeout: 272 seconds) |
14:43:05 | * | carum joined #nimrod |
15:12:10 | * | zahary1 joined #nimrod |
15:42:18 | * | micklat joined #nimrod |
15:43:05 | micklat | Is Araq serious about dropping prefixes? |
15:43:16 | micklat | he said so on the forum, but I don't see that he carried through this intention in the stdlib |
15:45:39 | OrionPK | i think it's more of a long term goal |
15:45:53 | EXetoC | so, what about the prefixes other than T? I'd ask on the forum, but I can't log in |
15:46:14 | * | skyfex joined #nimrod |
15:47:56 | * | zahary2 joined #nimrod |
15:47:58 | EXetoC | *apps* hungarian! |
15:48:01 | * | zahary3 joined #nimrod |
15:50:39 | * | [Pete_27] joined #nimrod |
15:50:45 | * | skyfex quit (Ping timeout: 260 seconds) |
15:51:59 | * | skrylar_ joined #nimrod |
15:55:09 | * | epsylon` joined #nimrod |
15:56:40 | * | zahary1 quit (*.net *.split) |
15:56:41 | * | brihat1 quit (*.net *.split) |
15:56:42 | * | epsylon quit (*.net *.split) |
15:56:43 | * | zahary quit (*.net *.split) |
15:56:43 | * | skrylar quit (*.net *.split) |
15:56:43 | * | pe7ed27 quit (*.net *.split) |
15:57:03 | * | renesac quit (Ping timeout: 252 seconds) |
16:02:40 | dom96 | hello |
16:04:05 | * | zahary2 quit (Quit: Leaving.) |
16:04:19 | * | ddl_smurf joined #nimrod |
16:04:27 | * | brihat joined #nimrod |
16:06:25 | OrionPK | ahoy dom96 |
16:06:41 | dom96 | zahary_: looks good. Are you happy with the mentor allocation? |
16:06:47 | dom96 | howdy OrionPK |
16:08:59 | zahary_ | dom96, sure, but have you guys discussed CAAS yesterday and did you come up with these points |
16:09:00 | zahary_ | * Allow the compiler to either track more than one project at a time, or not track any project at all. |
16:09:30 | dom96 | No. I think Varriount (or someone else) just added that. |
16:09:50 | OrionPK | why would it need that |
16:09:53 | dom96 | Is that even possible? I presume CAAS needs that info? |
16:10:00 | OrionPK | each request to the CAAS should be independent from the last |
16:10:02 | zahary_ | This would be extremely large change to the current compiler - I've given up on supporting it in the short term - that's why I use single Nimrod process per project in vim and light table |
16:10:39 | dom96 | Yeah, that's what I thought. |
16:10:47 | dom96 | We can remove that then. |
16:10:57 | dom96 | Any ideas what else CAAS needs? |
16:11:00 | * | [1]Endy joined #nimrod |
16:11:10 | dom96 | I think the macro execution/eval would be very nice. |
16:11:16 | dom96 | Unless that is already possible? |
16:14:17 | * | Mat3 joined #nimrod |
16:14:21 | Mat3 | hi all |
16:15:07 | zahary_ | making CAAS to work in general is not as simple as imagined in this description - you'll need to know a lot about how the compiler goes through the code and then how it uses its cached results (this touches on almost most areas of the compiler). macro expansion and evaluation are more newbie-friendly goals indeed. building look-up tables for semantic highlighting is another easier thing |
16:16:38 | dom96 | zahary_: Can you edit it to whatever you think is viable then please? |
16:16:55 | zahary_ | I'll will when I get home |
16:17:06 | dom96 | Alright. Thanks. |
16:18:02 | * | carum quit (Read error: Connection reset by peer) |
16:18:34 | * | carum joined #nimrod |
16:20:35 | fowl | i had to switch back from devel because it has problems with generics |
16:22:06 | dom96 | Bug report. |
16:23:20 | Mat3 | what's the opinion here about support for the ARM V8 ISA (the 64 bit one) ? |
16:23:55 | * | carum quit (Read error: Connection reset by peer) |
16:24:31 | * | carum joined #nimrod |
16:25:26 | * | [2]Endy joined #nimrod |
16:25:51 | dom96 | Varriount: What do you mean by "Reduce the number of assumptions the Nimrod builder makes about its host system, in order to reduce configuration restrictions. Assumptions include location and usage of external tools, such as git."? |
16:27:35 | * | ics joined #nimrod |
16:28:41 | * | [1]Endy quit (Ping timeout: 265 seconds) |
16:28:44 | * | Demos joined #nimrod |
16:31:41 | Demos | does the builder still fail on BSDs |
16:32:55 | * | carum_ joined #nimrod |
16:33:08 | dom96 | Demos: No idea. You wanted to donate a machine right? |
16:34:00 | * | carum quit (Ping timeout: 265 seconds) |
16:34:08 | Demos | erm, not really. Not a BSD box in any case |
16:34:46 | Demos | someone was talking about the builder for GSoC. I have been planning to test the boot process on a bsd vm for a while, never gotten to it |
16:42:23 | NimBot | nimrod-code/packages master 1aa6717 Micky Latowicki [+0 ±1 -0]: add NimBorg, a package for interfacing with lua and python |
16:42:23 | NimBot | nimrod-code/packages master 120d012 Micky Latowicki [+0 ±1 -0]: fix typos in NimBorg's descriptor |
16:42:23 | NimBot | nimrod-code/packages master b1d0b8f Dominik Picheta [+0 ±1 -0]: Merge pull request #46 from micklat/master... 2 more lines |
16:43:16 | * | zahary joined #nimrod |
16:51:43 | * | micklat quit (Remote host closed the connection) |
16:56:31 | * | zahary quit (Quit: Leaving.) |
17:00:59 | * | Demos quit (Quit: Textual IRC Client: www.textualapp.com) |
17:12:57 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
17:14:48 | EXetoC | if we do get a container interface one day (with the help of user-defined type classes), will 'yield' still be a necessity? |
17:15:25 | * | ics joined #nimrod |
17:20:04 | EXetoC | and is that what the feature will be called? because we already have 'type classes', and aren't they user-defined too? |
17:22:16 | skrylar_ | whats wrong with yield Oo |
17:22:42 | fowl | whats yield have to do with type classes/ |
17:26:24 | * | brson joined #nimrod |
17:27:06 | fowl | my generic issues: https://github.com/Araq/Nimrod/issues/907 |
17:30:41 | EXetoC | fowl: there'd be a potential overlap in that case, unless I'm missing some additional benefits of 'yield' |
17:34:38 | fowl | EXetoC, yield returns a value from an iterator |
17:41:15 | * | askatasuna joined #nimrod |
17:45:01 | * | icebattle joined #nimrod |
17:46:02 | icebattle | nice write up in dr dobbs: http://goo.gl/N8Mwdx |
17:46:52 | dom96 | oh yeah. It's now "officially" released. |
17:47:02 | EXetoC | fowl: yes, and there are other ways to go about it |
17:47:05 | * | skyfex joined #nimrod |
17:47:11 | icebattle | excellent |
17:47:30 | EXetoC | unnecessary or not, it'll be a nice way to test if the UDTC feature works in practice |
17:47:55 | dom96 | Perhaps we should try submitting it to HN again. |
17:48:00 | EXetoC | but I do like the idea of just checking for interface conformity, after which the 'for' loop is translate to a 'while' loop and a couple of calls and something like that |
17:48:14 | * | shodan45 joined #nimrod |
17:51:13 | EXetoC | and then you can just call those functions manually if you want: echo stuff.iter.pop() |
17:51:37 | * | skyfex quit (Ping timeout: 260 seconds) |
17:51:49 | fowl | i dont get it |
17:51:56 | fowl | but that doesnt mean you should stop dreaming |
17:52:29 | * | renesac joined #nimrod |
17:52:38 | EXetoC | fowl: similar to ranges in D, just without some of the problems |
17:53:28 | EXetoC | such as the issues regarding D's approach to interfaces, and then the fact that it doesn't work at all with const |
17:54:49 | dom96 | I also don't get how typeclasses relate to 'yield' at all. |
18:00:41 | * | BitPuffin quit (Ping timeout: 245 seconds) |
18:06:33 | EXetoC | dom96: it would just be a syntactic rewrite, from 'for' to 'while' plus a couple of calls for advancing, popping and determining if the iterator has been exhausted |
18:06:47 | EXetoC | dom96: they are not related, but this approach would be more viable with something like UDTC's |
18:07:14 | * | DAddYE joined #nimrod |
18:09:19 | EXetoC | and you might even get away with a 'for' macro/template then |
18:09:51 | EXetoC | wasn't that discussed 1-2 days ago? I can't remember any details though |
18:10:27 | EXetoC | is the plan to have UDTC's ready for 0.9.4? |
18:14:30 | * | vbtt joined #nimrod |
18:17:40 | fowl | EXetoC, inline iterators are already transformed like that.. |
18:24:41 | EXetoC | ok so there's one similarity |
18:45:18 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
18:45:28 | * | vbtt joined #nimrod |
18:45:45 | Varriount | Hello guys! |
18:46:33 | Varriount | Araq: I was able to get koch to generate the installer (I had to change a string in the inno script to an ansistring, because I'm using a unicode version of inno) |
18:48:58 | * | fowl quit (Ping timeout: 265 seconds) |
18:55:18 | Varriount | Araq: I also did some searching into C implementations of coroutines, and found a couple of links -> https://gist.github.com/Varriount/8962092 |
18:55:41 | * | fowl joined #nimrod |
18:56:03 | Varriount | Currently, all the links in that gist were found on wikipedia, I'll look for more once I get the inno installer fully working |
18:56:09 | Varriount | Hi fowl |
18:56:54 | * | BitPuffin joined #nimrod |
18:57:36 | * | vendethiel quit (Quit: q+) |
18:58:17 | Varriount | Are the libcurl and pdcurses dll's still needed for the base nimrod installation? |
19:03:46 | vbtt | Varriount:that's a good list |
19:07:23 | Varriount | vbtt: I did most of the work this morning, while in bed |
19:08:28 | Varriount | vbtt: I also found that the definition of "coroutine" is a bit.. fuzzy. Technically, the generator in python 2.6 and higher are a sort of coroutine, as they can be sent information once started through their send() method |
19:08:52 | Varriount | And they can start other coroutines through "yield from" |
19:09:35 | * | zahary joined #nimrod |
19:12:26 | * | aftersha_ joined #nimrod |
19:12:32 | Varriount | On an off note, I wonder if the hidden environment parameter passed to closure iterators should be accessable at all. |
19:12:50 | Varriount | It might be helpful for C/C++ interoperability |
19:13:12 | vbtt | Varriount:it's true coroutines are somewhat fuzzy but the imporant thing is they are like userspace threads. |
19:13:36 | vbtt | and they often have cooperative multitasking (rather than preemptive multitasking as with system threads) |
19:14:12 | vbtt | it's probably useful to write some nimrod code that shows how coroutines *will* work and describe it's semantics. |
19:14:42 | vbtt | i think you should just play around with lua coroutines because they are easy to use and you'll see how it's different from generators |
19:14:57 | vbtt | (lua doesn't use 'yield from') |
19:15:47 | reactormonk | dom96, add difficulty to babel |
19:15:47 | vbtt | C coroutines will be harder to understand. |
19:16:08 | dom96 | reactormonk: oh, nice catch. I missed that. |
19:17:22 | reactormonk | dom96, did you sign up for it? |
19:17:29 | dom96 | reactormonk: not yet |
19:17:59 | reactormonk | dom96, do it before it's too late |
19:18:11 | reactormonk | dom96, also make sure you can agree with the FAQ |
19:18:21 | vbtt | Varriount:are you comfortable with multithreaded programming? |
19:21:04 | Varriount | vbtt: Somewhat. I've used threads before, however not on a large or complex scale |
19:21:47 | Varriount | vbtt: However I have used python generators extensively (they are useful when working with the twisted networking framework) |
19:22:35 | Varriount | vbtt: However, I have some theoretical knowledge of how threads work |
19:22:37 | vbtt | another way to think about coroutines (perhaps I should have started with this) is that they are like threads. the difference being that they are implemented entire in user space (i.e. the OS is not aware of them) and that they are often cooperatively scheduled (i.e. the os can suspend and resume threads at will, but coroutines are suspended expli |
19:22:37 | vbtt | citly in code) |
19:22:51 | dom96 | reactormonk: Still got two days |
19:22:59 | Varriount | vbtt: That's a good explanation |
19:23:23 | Varriount | vbtt: Would you be willing to help implement coroutines as well? |
19:23:26 | vbtt | Varriount:before considering implemenation, I'm suggesting you try and understand how coroutines are *used* |
19:23:34 | vbtt | python generators are only one example. |
19:23:41 | vbtt | (and not the best for coroutines, IMO) |
19:23:46 | reactormonk | dom96, better safe than sorry |
19:23:58 | vbtt | if you're comfortable with python, look at greenlet or stackless. |
19:24:09 | dom96 | reactormonk: I know but I want to wait until Araq fixes his ideas. |
19:24:10 | vbtt | those are much better examples of coroutines. |
19:24:57 | Varriount | vbtt: Data parsers are one good use for coroutines (or at least, for a single coroutine) |
19:24:59 | vbtt | Varriount:also if you've used twised, try using gevent and see how good coroutines make writing code cleaner. |
19:25:08 | reactormonk | dom96, point taken. |
19:29:34 | vbtt | Varriount:not sure how data parsers are a good coroutines use case |
19:38:06 | * | vendethiel joined #nimrod |
19:38:30 | Araq | dom96: what do you mean "fix" my ideas? |
19:38:50 | dom96 | Araq: Do what I asked, expand them. |
19:40:31 | vbtt | dom96:can you please re paste link to the proposal? |
19:40:54 | dom96 | You mean the ideas list? https://github.com/Araq/Nimrod/wiki/GSoC-2014-Ideas |
19:41:10 | vbtt | yes, thanks. |
19:47:54 | * | skyfex joined #nimrod |
19:48:16 | * | vendethiel quit (Quit: q+) |
19:49:00 | vbtt | suggesion: dont mention closure iterators in section for coroutines. |
19:49:03 | * | surma joined #nimrod |
19:49:32 | Araq | hi surma welcome |
19:49:41 | Araq | vbtt: why? |
19:49:58 | surma | hey everyone. I have problems running `koch install <dir>` under Ubuntu. It says it can't find libzip_all.o |
19:50:17 | vbtt | Araq:requires too much nimrod specific knowledge to understand what the project is about. |
19:50:26 | * | carum_ quit (Remote host closed the connection) |
19:50:43 | * | carum joined #nimrod |
19:51:14 | * | carum quit (Remote host closed the connection) |
19:52:09 | dom96 | Araq: Figured out why the C gen error happens when capturing the var in my iterator: because I am capturing a genSym'd var. |
19:52:29 | * | skyfex quit (Ping timeout: 260 seconds) |
19:54:11 | * | brson quit (Ping timeout: 260 seconds) |
19:54:20 | Araq | surma: I've never heard of that one before |
19:56:25 | Araq | surma: try to run './install.sh <dir>' instead |
19:56:44 | surma | Araq: Well, everything runs fine including `./koch boot -d:release`. Directly after, `./koch install <dir>` fails because it cant find `nimrod`, so I add $PWD/bin to the $PATH and then the above happens |
19:57:15 | surma | Araq: I don't have a `install.sh` anywhere |
19:57:25 | * | brson joined #nimrod |
19:57:28 | surma | Araq: I am compiling from source, maybe that's relevant? |
19:57:28 | * | brson quit (Client Quit) |
19:58:59 | Araq | surma: do you use "git master"? |
19:59:52 | surma | Araq: uhm, is that a command I don't know? I am on the master branch, if that's what you mean |
20:00:20 | Araq | yeah that was my question |
20:02:25 | * | brson joined #nimrod |
20:02:40 | Araq | surma: libzip_all.o comes from $nimrod/lib/wrappers/zip/libzip_all.c |
20:05:10 | Araq | edit koch.nim around line 70, remove the -d:useLipzipSrc and try again please |
20:05:11 | EXetoC | another indentation hater |
20:05:38 | EXetoC | "I want it to be CLEAR where my control blocks are, and not to need to guess..." when do you need to guess? when you don't know it enough? |
20:08:41 | Araq | EXetoC: maybe he should simply try it |
20:09:03 | Araq | it stopped being weird after 10 minutes |
20:09:10 | Araq | when I started with python |
20:10:13 | surma | Araq: Error remains :( I just noticed the path tho: `gcc: error: tools/niminst/nimcache/libzip_all.o: No such file or directory` |
20:11:14 | EXetoC | though I do think that 2 spaces per indent can be a little hard to read, but it's still logical |
20:15:23 | surma | Araq: my bad, only recompiled `nimrod`, not `koch`, brb |
20:17:34 | surma | Araq: At least it's another error now ^^ `could not load: libzip(|2).so(|.2|.1|.0)` |
20:18:41 | * | vendethiel joined #nimrod |
20:20:05 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
20:20:32 | Araq | surma: please install libzip with ubuntu's package manager |
20:20:35 | surma | Araq: Okay, so I installed libzip from the Ubuntu Repos. `koch install` works now |
20:20:38 | surma | Ha :D |
20:21:00 | surma | Thanks for your effort mate, now I can get started :) |
20:21:06 | * | brson quit (Ping timeout: 245 seconds) |
20:21:47 | * | carum joined #nimrod |
20:26:23 | * | carum quit (Ping timeout: 260 seconds) |
20:36:00 | Mat3 | surma: Which Ubuntu version do you use ? |
20:41:30 | surma | Mat3: 13.10 |
20:42:15 | Mat3 | thanks, I try to build Nimrod from Git beside work here |
20:42:34 | Mat3 | also 13.10 |
20:43:44 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
20:43:57 | surma | So, is there anything in the core library to open an UDP server for example or do I have to look for/write a wrapper? |
20:44:03 | * | BitPuffin joined #nimrod |
20:44:28 | dom96 | surma: sockets module |
20:45:56 | surma | dom96: well... i feel dumb now |
20:46:11 | surma | I ctrl+f'd for a lot, but not sockets. Oh well, thanks :) |
20:46:38 | dom96 | hehe, no worries. |
20:50:45 | * | awestroke joined #nimrod |
20:55:19 | * | xtagon joined #nimrod |
20:55:41 | * | [2]Endy quit (Ping timeout: 245 seconds) |
21:13:34 | Mat3 | ciao |
21:13:50 | * | Mat3 quit () |
21:21:59 | * | skyfex joined #nimrod |
21:22:42 | * | carum joined #nimrod |
21:24:22 | * | brson joined #nimrod |
21:25:41 | NimBot | Araq/Nimrod newasync a9d3551 Simon Hafner [+0 ±2 -0]: removed explicit return in the documentation |
21:25:41 | NimBot | Araq/Nimrod newasync 21b0eba Simon Hafner [+0 ±3 -0]: tracked down a few more returns |
21:25:41 | NimBot | Araq/Nimrod newasync 4e0759b Araq [+0 ±5 -0]: fixes 'newSeq[T]' instantiation bug |
21:25:41 | NimBot | Araq/Nimrod newasync d449117 Araq [+0 ±1 -0]: fixes #882; fixes #853 |
21:25:41 | NimBot | 22 more commits. |
21:27:09 | NimBot | Araq/Nimrod devel 491bd65 Dominik Picheta [+0 ±1 -0]: newProc can now be used to construct iterator defs. |
21:29:12 | NimBot | Araq/Nimrod newasync 491bd65 Dominik Picheta [+0 ±1 -0]: newProc can now be used to construct iterator defs. |
21:29:12 | NimBot | Araq/Nimrod newasync 902ef5c Dominik Picheta [+0 ±1 -0]: Merge branch 'devel' into newasync |
21:30:10 | * | shodan45 quit (Quit: Konversation terminated!) |
21:31:14 | * | zahary quit (Read error: Connection reset by peer) |
21:31:20 | * | zahary1 joined #nimrod |
21:36:48 | surma | I can call TSocket.send() without problems and the data gets send. TSocket.recv(string, size) however fails with SIGSEGV. Does the string parameter need some kind of initialization? |
21:38:22 | dom96 | surma: Yes: var data = "" # should be enough. |
21:40:21 | surma | dom96: Interesting. That works just declaring `var data : string` is not enough. Could you explain why this is (I get it for non-primitive types) |
21:40:45 | surma | I'm coming from golang, so maybe I'm making some wrong assumptions here |
21:41:30 | dom96 | Because strings are initially set to 'nil' |
21:41:38 | dom96 | For efficiency I believe. |
21:41:40 | * | skyfex quit (Read error: No route to host) |
21:41:58 | surma | But strings are immutable, aren't they? |
21:41:58 | * | awestroke quit (Remote host closed the connection) |
21:42:09 | dom96 | No. Strings in Nimrod are mutable. |
21:42:23 | dom96 | Unless you use 'let' |
21:42:28 | surma | ah,, gotta unlearn that ;) |
21:42:54 | surma | But they would still be passed by-value unless the parameter has `var`, right? |
21:43:23 | EXetoC | usually it's only the data that's immutable, to be pedantic |
21:43:43 | * | skyfex joined #nimrod |
21:43:47 | dom96 | They may be passed either way as it's up to the compiler to decide. |
21:43:53 | surma | yeah, I get that |
21:43:53 | fowl | surma, they are passed as const, probably by reference |
21:44:13 | surma | Oh right! I forgot that! ty |
21:44:26 | dom96 | 'var' essentially means "I want to be able to edit whatever variable is passed to my function" |
21:44:45 | fowl | string/seq also has value semantics, despite being nullable, s2 = s1 is a copy |
21:44:47 | surma | yeah, I forgot about all parameters being const. Which is an assumption I like very much |
21:45:12 | surma | what would be the manual way of initializing a string variable? |
21:45:36 | surma | because `new` wouldn't work, right |
21:45:54 | EXetoC | var x = "x" |
21:45:59 | EXetoC | there's also newString |
21:46:00 | fowl | "" or newString(len) or newStringOfLen(len) |
21:46:09 | fowl | newstringofcap* |
21:47:12 | surma | ty very much |
21:48:05 | Varriount | Araq: How do you want the pdcurses dll built for the nimrod installer? |
21:48:42 | Varriount | I have to re-build the dlls for the 64 bit installer, and I need to know what configuration options the dlls are expected to be built with. |
21:49:12 | EXetoC | fowl: >> for streams? awesome |
21:49:40 | Varriount | I've gotten the sqlite and pcre dll's built, all that remains are the libcurl and pdcurses dll's |
21:50:16 | * | skyfex quit (Ping timeout: 245 seconds) |
21:52:11 | fowl | EXetoC, need it to read some old bitmap format |
21:52:33 | * | carum quit (Remote host closed the connection) |
21:57:28 | EXetoC | ok |
22:00:57 | * | skyfex joined #nimrod |
22:10:54 | skyfex | hm, ast.nim define consts "routineKinds" and "skProcKinds", and they seem to be exactly the same |
22:11:22 | fowl | skyfex, write some docs while you're in the compiler plz |
22:12:08 | skyfex | I suppose I should |
22:12:45 | skyfex | even funnier, initCandidate uses both skProcKinds and routineKinds |
22:13:05 | fowl | wheres that |
22:13:17 | Araq | skyfex: yeah well 2 compiler devs, 2 names :P |
22:13:22 | skyfex | in sigmatch.nim |
22:13:25 | Araq | Varriount: I dunno |
22:13:36 | Araq | we need a 32 and 64bit version |
22:13:44 | * | zahary1 quit (Quit: Leaving.) |
22:15:56 | NimBot | Araq/Nimrod devel 3829faa Simon Hafner [+1 ±0 -1]: moved tsets test to collections/ |
22:25:05 | * | skyfex quit (Ping timeout: 260 seconds) |
22:29:31 | * | skyfex joined #nimrod |
22:34:26 | * | zahary3 quit (Read error: Operation timed out) |
22:40:02 | vbtt | Araq:the is 'stack switching' the only implementation you'll accept for coroutines? |
22:40:47 | vbtt | if not, perhaps leave that choice tbd for the gsoc project. |
22:41:32 | vbtt | golang uses segmented stacks and is going to use a form of segmented stacks + copying for the new version |
22:42:10 | Araq | meh, I don't mind either way |
22:42:31 | vbtt | also, you dont think coroutines can be implemented purely using setjump/longjump or some other techinique using minimal assembly? |
22:43:48 | * | skyfex quit (Quit: Computer has gone to sleep.) |
22:45:29 | vbtt | i think copying will have issues because address of objects on the stack changes. |
22:46:14 | vbtt | i'm guessing the address of values on the stack is used often in the generated c code |
22:50:49 | Araq | vbtt: you can do lots of things |
22:51:16 | Araq | I'm also thinking about a shadow stack for precise stack marking |
22:51:46 | Araq | with a shadow stack, you can in fact allocate most things there and use the stack only for return addresses |
22:53:12 | vbtt | i'm not sure what you mean by shadow stack. |
22:53:24 | vbtt | oh wait |
22:53:28 | vbtt | you just explained it :) |
22:53:42 | vbtt | creepy, i had the same idea. |
22:53:52 | vbtt | or rather, similar idea. |
22:54:14 | Araq | then you reserve like 16K for a stack and still support a calling depth of 512 |
22:54:23 | vbtt | i though you could use the stack for return addresses and exactly one local var - a pointer to a struct which holds the local vars. |
22:54:30 | vbtt | *thought |
22:55:04 | vbtt | i really like the shadow stack idea because i also enables precise marking, and makes decisions easier (each function call is same size on stack) |
22:55:32 | Araq | you still have good C interop this way |
22:55:39 | Araq | and good interop with the OS |
22:55:54 | Araq | and you can have tens of thousands of those tiny stacks |
22:56:16 | vbtt | yup. the issue might be yielding from a c callback, which can be disallowed if hard. |
22:56:59 | vbtt | right, and its easier to make it work with the gc because the gc already understands the shadow stacks? |
22:57:24 | vbtt | also, you wont need any assembly, is that correct? |
22:57:47 | surma | Hm... `undeclared identifier: 'TChannel'` How can that be if the package is imported by `system`? |
22:58:43 | vbtt | I'm not sure how normal performance is affected by shadow stacks. |
22:59:00 | dom96 | zahary_: ping |
23:02:22 | Araq | surma: use --threads:on |
23:02:46 | Araq | and know that nimrod's concurrency model is very different from Go's |
23:03:11 | Varriount | Araq: Ok, the only dll that's left is libCurl |
23:03:37 | Araq | Varriount: libCurl is irrelevant now I think |
23:03:45 | Araq | we have our own http stuff |
23:04:14 | Varriount | Thank you. |
23:05:33 | EXetoC | I should finish my redirection patch |
23:05:46 | Varriount | Araq: Out of all of the libs, pdcurses was the hardest to compile into a shared library. It used a plain makefile, and used a combination of msys tools and windows tools to merge things together |
23:06:21 | Varriount | And for some reason, sh.exe was intercepting a particular command "type" (which reads a file to stdout) |
23:06:41 | surma | Araq: I figured as much, but thanks for the heads up :) |
23:07:35 | Araq | surma: read my blog about the planned features for concurrency |
23:09:10 | EXetoC | it's an alright blog, despite the lack of CSS3 effects |
23:09:14 | surma | lol |
23:09:18 | fowl | Varriount, in unix it does something like which |
23:09:51 | surma | My first test case for polymer was a polyfill for the blink tag. Every blog should have a blink tag |
23:10:19 | * | Demos joined #nimrod |
23:11:26 | Varriount | fowl: That explains it. |
23:13:35 | Varriount | Araq: Did you get my links on coroutine implementations? |
23:14:41 | * | BitPuffin quit (Ping timeout: 265 seconds) |
23:15:35 | EXetoC | "copyright 2012" |
23:15:52 | EXetoC | how significant is the listed years? |
23:18:09 | renesac | not much, as with current laws it will probably stay copyrighted well beyond 2100 |
23:18:16 | renesac | :P |
23:18:22 | EXetoC | that's neat |
23:18:33 | renesac | I don't think so... |
23:19:29 | renesac | and the licence on Nimrod compiler is basically trying to put copyright out of the way as much as possible, anyway |
23:20:04 | Araq | Varriount: no, sorry, I'm busy with gsoc |
23:20:12 | * | io2 quit () |
23:22:52 | Varriount | surma: Polyfill? |
23:23:28 | surma | Varriount: Since browsers dont support <blink> anymore, I wrote a custom element emulation that behavior using CSS3 ;) |
23:23:38 | surma | emulating* |
23:24:03 | Varriount | One of these days I need to learn website development. |
23:24:08 | fowl | witchcraft |
23:24:23 | surma | Varriount: Dont do that to yourself |
23:24:37 | surma | Varriount: Although I have to say it has gotten *better* over the last 2 years or so |
23:24:45 | surma | It's still ugly and broken, but not as bad ;) |
23:26:43 | Varriount | surma: What, web development? |
23:30:01 | surma | yeah |
23:30:22 | Varriount | How am I not supposed to do web development by myself? |
23:32:02 | fowl | to yourself |
23:32:20 | Varriount | Oh. |
23:32:33 | fowl | Varriount, i dislike it because its an ever-moving target and there are too many new things |
23:32:38 | fowl | <- afraid of change |
23:32:38 | EXetoC | CSS is a beep |
23:32:57 | Varriount | fowl: You're the reason the GNu websites look so ugly |
23:33:02 | EXetoC | though you can always use a framework and google specific stuff |
23:33:03 | Varriount | *GNU |
23:33:13 | fowl | lol |
23:33:39 | vbtt | who designed the current nimrod site, btw? |
23:33:49 | fowl | well if i had my way a css file would contain one line: body { color: white; background: black; } |
23:34:18 | Araq | vbtt: fliwit. he is here from time to time. |
23:34:40 | EXetoC | fowl: so you are one of those "content over design" people huh |
23:34:57 | vbtt | Araq:yeah i've seen him. |
23:35:06 | Varriount | EXetoC: This is fowl -> http://flex.sourceforge.net/ |
23:35:22 | fowl | EXetoC, i think that proper html looks fine by itself, yes |
23:35:45 | vbtt | fowl:that's black on white, not white on black |
23:35:55 | Demos | http://motherfuckingwebsite.com |
23:36:04 | fowl | vbtt, it is? |
23:36:25 | EXetoC | glued banners suck |
23:36:31 | vbtt | fowl:your css rule didn't apply is what i meant. |
23:36:46 | fowl | why not? |
23:36:56 | vbtt | i can do webdev work if nimrod needs it, btw. |
23:37:53 | vbtt | I do think the website should show more activity. so it should be easy to update the news. |
23:37:58 | Varriount | vbtt: You should have seen the nimrod website before dom got it a proper url, and filwit updated it's look |
23:38:08 | vbtt | it could probably show the latest forum comment titles. |
23:38:20 | vbtt | Varriount:actually I did :) |
23:38:21 | Varriount | vbtt: And the download page should make the latest builds more apparent |
23:38:30 | vbtt | right and the docs should match the style of the website. |
23:38:50 | dom96 | GSoC has a vouching system. |
23:38:51 | Araq | vbtt: go for it |
23:39:04 | Varriount | My computer shouldn't be cranking out whole builds of nimrod for nothin' |
23:39:06 | Araq | the site is in nimrod/web |
23:39:09 | dom96 | I don't suppose there are any people here who could vouch for us? |
23:39:19 | vbtt | Araq: ok i'll take a look |
23:39:30 | fowl | vbtt, the css works on w3schools.org |
23:39:40 | fowl | you made me doubt myself :( |
23:40:29 | surma | Okay guys, I'm gonna call it day! Thanks for helping me get started. I'm officially hooked ;) |
23:40:53 | vbtt | fowl:what i meant is your css doesn't match your website (website is black on white but css says white on black) |
23:41:38 | EXetoC | paths on the command-line don't have the highest priority? |
23:41:39 | fowl | the flex site? |
23:41:48 | vbtt | yes |
23:41:57 | * | surma quit (Quit: leaving) |
23:42:02 | fowl | thats because they're too lazy to put in the one line of css |
23:42:41 | fowl | white backgrounds are blinding, idk whos idea it was to make black on white the default style |
23:42:54 | EXetoC | FFFFFF sux. eye protector for greasemonkey to the rescue |
23:43:28 | vbtt | I just keep the brightness on my monitor low. |
23:45:43 | Varriount | Araq: Are you sure that mingw should be included with the nimrod installer? |
23:46:05 | * | darkf joined #nimrod |
23:46:27 | Varriount | I mean, it's not like gcc is the only compiler that works with nimrod. Perhaps we should only put a link to a mingw download in the installer? |
23:47:08 | Araq | Varriount: we have the .zip for people who can install the hard way |
23:47:20 | Araq | and the installer for people who know nothing |
23:47:32 | Araq | and downloading the right mingw is a pita anyway |
23:47:38 | Araq | so yes, I'm sure |
23:47:39 | Varriount | True. |
23:47:50 | Araq | and I'm fed up with changing our build processes |
23:48:15 | Araq | cause these things cause regressions. every single time. |
23:48:45 | Varriount | It doesn't help that to get msys working with mingw64, you have to install both in seperate directories, carefully uncheck any gcc-related features in msys, and the copy msys over to mingw64 |
23:49:32 | Araq | yeah, exatly what I'm talking about |
23:51:21 | EXetoC | wanna create nimrod-code/nim-mongo? |
23:51:28 | EXetoC | you don't want all engines in the same place? |
23:51:58 | Varriount | Araq: It get's even better, since installing git with things further complicates matters. |
23:52:16 | EXetoC | I prefer the prefix, because someone might create a package for arch or whatever, necessary or not |
23:52:35 | Varriount | nimbadger |
23:53:05 | Araq | EXetoC: the modern name is mongo.nim |
23:55:26 | EXetoC | Araq: modern? anyway, I meant the package name, which would go in the nimrod-code organization. I haven't changed the names of mongo.nim and db_mongo.nim yet |
23:56:52 | * | reactormonk quit (Ping timeout: 265 seconds) |
23:58:55 | Araq | I was referring to "node.js" but w/e |
23:59:11 | EXetoC | wut |