00:11:39 | * | goobles joined #nimrod |
00:23:29 | * | q66 quit (Ping timeout: 252 seconds) |
00:35:53 | * | q66 joined #nimrod |
00:49:16 | * | Trustable quit (Quit: Leaving) |
00:50:24 | * | superfunc quit (Ping timeout: 255 seconds) |
00:58:46 | * | Kazimuth joined #nimrod |
01:13:36 | * | q66 quit (Quit: Leaving) |
01:22:48 | * | brson quit (Ping timeout: 255 seconds) |
01:30:23 | * | Kazimuth quit (Remote host closed the connection) |
01:31:26 | * | hoverbear joined #nimrod |
01:35:05 | * | xenagi joined #nimrod |
02:06:48 | * | hoverbea_ joined #nimrod |
02:07:57 | * | t0ryzal joined #nimrod |
02:08:33 | * | btiffin quit (Ping timeout: 240 seconds) |
02:10:11 | * | hoverbear quit (Ping timeout: 244 seconds) |
02:15:40 | * | t0ryzal left #nimrod ("Leaving") |
02:20:11 | * | btiffin joined #nimrod |
02:21:37 | BlameStross | has anybody declared intent to make a RPC library or wrapper? |
02:22:05 | BlameStross | I'm only just learning nimrod, and it seems like a good learning project for me. |
02:29:49 | * | Demos quit (Ping timeout: 244 seconds) |
02:38:09 | def- | BlameStross: probably everyone sleeping |
02:40:06 | def- | BlameStross: i haven't heard anything about an RPC library for nimrod |
02:43:26 | * | Demos joined #nimrod |
02:47:22 | * | goobles quit (Ping timeout: 246 seconds) |
03:06:17 | * | darkfusion quit (Ping timeout: 264 seconds) |
03:12:52 | * | superfunc joined #nimrod |
03:14:45 | * | darkfusion joined #nimrod |
03:16:03 | BlameStross | def-: I haven't seen any object serialization stuff either, that might be the hard part. |
03:20:55 | * | brson joined #nimrod |
03:22:05 | * | flaviu quit (Ping timeout: 272 seconds) |
03:24:35 | * | vendethiel quit (Ping timeout: 244 seconds) |
03:25:19 | * | vendethiel joined #nimrod |
03:31:15 | * | brson quit (Quit: leaving) |
03:44:13 | * | Demos quit (Ping timeout: 244 seconds) |
03:57:42 | * | superfunc quit (Read error: Connection reset by peer) |
04:04:29 | * | joelmo quit (Quit: Connection closed for inactivity) |
04:28:39 | * | xenagi quit (Quit: Leaving) |
04:49:42 | * | vendethiel quit (Ping timeout: 240 seconds) |
05:38:42 | * | vendethiel joined #nimrod |
05:48:17 | * | gkoller joined #nimrod |
05:49:05 | * | nande quit (Remote host closed the connection) |
06:12:33 | * | reactormonk quit (Ping timeout: 240 seconds) |
06:34:35 | * | Skrylar joined #nimrod |
06:45:28 | * | hoverbea_ quit () |
07:02:10 | * | reactormonk joined #nimrod |
08:09:22 | * | BitPuffin quit (Ping timeout: 245 seconds) |
09:01:41 | Araq | BlameStross: we decided marshal.ni + zeroMQ is good enough for RPC for now |
09:01:48 | Araq | *marshal.nim |
09:04:56 | * | BitPuffin joined #nimrod |
10:07:31 | * | kunev joined #nimrod |
10:50:57 | * | nequitans quit (Read error: Connection reset by peer) |
10:51:13 | * | io2 joined #nimrod |
10:51:17 | * | nequitans joined #nimrod |
11:16:10 | dom96 | hello |
11:27:47 | Araq | servus dom96 |
11:34:33 | * | kunev_ joined #nimrod |
11:36:27 | * | kunev quit (Ping timeout: 244 seconds) |
11:36:58 | * | kunev_ quit (Client Quit) |
11:37:08 | * | kunev joined #nimrod |
11:50:26 | * | saml_ joined #nimrod |
12:00:33 | BlameStross | Araq: You are probably right. I was considering just writing a zeroMQ wrapper. |
12:03:42 | * | kshlm joined #nimrod |
12:13:04 | * | Nimrod__ joined #nimrod |
12:13:20 | * | Nimrod__ is now known as Nimrod |
12:13:30 | * | Nimrod quit (Changing host) |
12:13:30 | * | Nimrod joined #nimrod |
12:19:35 | * | Boscop quit (Ping timeout: 252 seconds) |
12:24:51 | * | untitaker quit (Ping timeout: 272 seconds) |
12:28:00 | * | kemet joined #nimrod |
12:29:45 | * | untitaker joined #nimrod |
12:31:55 | * | kemet quit (Client Quit) |
12:49:43 | * | saml_ quit (Ping timeout: 240 seconds) |
12:51:32 | * | Fr4n joined #nimrod |
12:54:44 | Araq | BlameStross: we have one as a babel package or in the stdlib |
12:54:50 | Araq | Fr4n: welcome |
12:55:43 | * | BitPuffin quit (Ping timeout: 240 seconds) |
13:04:57 | * | darkf quit (Quit: Leaving) |
13:06:00 | * | io2 quit (Ping timeout: 260 seconds) |
13:16:07 | * | def- left #nimrod (#nimrod) |
13:30:30 | BlameStross | I was hoping to produce something resembling useful while learning :/ I could implement a DHT back-end, but I do not think that is something this community needs that badly. |
13:32:06 | dom96 | BlameStross: While ZMQ may be "good enough" some people (like myself) dislike the additional dependency. A native Nimrod RPC lib would be nice to have. |
13:32:33 | BlameStross | dom96: Lets start the holy war then: Json or XML? |
13:32:40 | dom96 | JSON :P |
13:33:11 | Araq | what's a DHT backend? |
13:33:28 | BlameStross | I'd lean towards json too. The question is: do you want to be reverse compatible with all the stuff that used XML. |
13:33:49 | BlameStross | http://en.wikipedia.org/wiki/Distributed_hash_table |
13:35:02 | BlameStross | There are a few different ways to organize them (with differing pros and cons) but essentially it would let in instantiate and object with an ip and port of another node, then do hash-table style writes and reads to a robust distributed data structure. |
13:35:30 | BlameStross | I'd make two client objects, a pure client and a contributing peer. |
13:37:11 | Araq | well what we badly need is a parser generator :-) |
13:38:22 | BlameStross | well, that would be one way to begin mastering nimrod. |
13:39:14 | Araq | or a pure nimrod bignum library |
13:39:52 | BlameStross | I already started looking into the bignum. It would not be hard to implement, but it would be hard to make easy to use. |
13:40:15 | Araq | I don't think so |
13:40:33 | dom96 | Didn't someone already start working on a bignum lib? |
13:40:53 | Araq | yeah but I didn't hear from any progress |
13:41:18 | Araq | but maybe I'm wrong and Skrylar already finished it and didn't tell us |
13:41:25 | BlameStross | I was going to need a bignum library to make a lot of the DHT math saneish. |
13:41:45 | BlameStross | I'll look into it and get back |
13:43:09 | Araq | you could also help with our CEF bindings ... there is no shortage of useful work to be done :-) |
13:43:18 | * | flaviu joined #nimrod |
13:45:14 | BlameStross | http://forum.nimrod-lang.org/t/472 might be interesting |
13:47:24 | * | BlameStross left #nimrod (#nimrod) |
14:00:19 | NimBot | Araq/Nimrod new_spawn e712dba Araq [+0 ±1 -0]: added OEMCP for the default OEM codepage |
14:00:19 | NimBot | Araq/Nimrod new_spawn eed443d Araq [+1 ±6 -0]: rewrote lambdalifting; fixes deeply nested closures |
14:00:38 | * | io2 joined #nimrod |
14:00:46 | Araq | dom96: I pushed it into new_spawn for now |
14:01:02 | dom96 | Araq: that's a bit misleading :P |
14:01:14 | Araq | when it works flawlessly with async, I'll merge into devel |
14:01:30 | dom96 | ok, i'll test it now |
14:02:20 | Araq | see you later |
14:03:31 | dom96 | hm, devel can't build new_spawn? |
14:22:45 | flyx | there isn't any stack type in the stdlib, is there? |
14:26:57 | dom96 | flyx: there is a pop proc for seq |
14:28:21 | flyx | dom96: ah, good |
14:41:43 | * | kshlm quit (Ping timeout: 240 seconds) |
14:44:07 | * | BlameStross_ joined #nimrod |
14:47:33 | BlameStross_ | Is there an upper limit to string length? Or will nimrod be happy to fill ram and swap with one very large string? |
14:47:37 | * | kunev quit (Quit: leaving) |
14:49:08 | BlameStross_ | I'm starting to work out how to approach writing bigInt. If I want it truely unbounded by anything but memory, I need a data structure with unbounded size. Arrays are bound to being indexed by ints, so that leaves linked lists, or hopefully strings |
14:49:19 | EXetoC | not all the ram, because the length is represented by int |
14:49:33 | flaviu | EXetoC: Ints are frequently int64s |
14:50:24 | flaviu | BlameStross_: Strings are implemented as `seq[char]` last time I checked |
14:50:41 | EXetoC | well yes in practice, when it is |
14:50:41 | flaviu | Or very similar to them |
14:52:38 | BlameStross_ | ok, then the best I could get with indexed lists would be seq[uint64]? |
14:54:14 | flaviu | Yes, although I wouldn't worry about it. A number bigger than can be sequenced is utterly insane. |
14:54:17 | BlameStross_ | that gets me close to 10^10^10 as max |
14:54:47 | flaviu | I'd actually go with uint32s so I could observe overflow more easily |
14:54:51 | BlameStross_ | Well, it is possible for me to implement everything on a linked-list and have it really be unbounded |
14:55:08 | EXetoC | linked list? hm |
14:55:21 | BlameStross_ | I have not even figured out how to detect overflow yet. I figure this project will force me to learn every aspect of nimrod |
14:56:34 | flaviu | I don't think theres a way to detect overflow except to widen uint32s to uint64s and see if the result is greater than high(uint32) |
14:56:59 | BlameStross_ | bleh. It looks like the floats throw overflow exceptions. |
14:59:04 | BlameStross_ | ok, I could used signed 64-bit then check the sign to detect overflow |
14:59:31 | BlameStross_ | that gives me 63 useful bits |
15:00:01 | * | gkoller quit (Ping timeout: 276 seconds) |
15:02:32 | dom96 | BlameStross_: maybe you can use this as a starting point https://github.com/ventor3000/nimrod-lab/blob/master/bigint.nim |
15:03:32 | flaviu | I also have a partial bignum implemented, but I haven't tested it at all: https://gist.github.com/4751986bb8e08f223228 |
15:04:23 | dom96 | Skrylar: Did you also start work on a bignum lib? |
15:05:11 | BlameStross_ | it is that multiplication and division that are going to be hard |
15:05:29 | flaviu | BlameStross_: FWI, GMP only goes up to 2^37 |
15:06:12 | Araq | BlameStross_: anything except 'seq' seems to be a bad idea for bignums |
15:06:59 | BlameStross_ | Araq: I think yoru right, but I wanted to explore options. There may be room for reallybignum in the future. |
15:07:36 | Araq | 'seq' can already use all of your RAM, as far as reasonable |
15:08:25 | dom96 | Araq: https://gist.github.com/dom96/54f99a5bc5d542d28b25 |
15:08:31 | dom96 | You're going to have to clone jester now |
15:08:50 | * | BitPuffin joined #nimrod |
15:08:55 | dom96 | Araq: Good news is that only one part of it results in that error. |
15:09:04 | dom96 | Araq: So good job, still haven't tested it though |
15:09:27 | BlameStross_ | no bit shift operator? |
15:09:34 | dom96 | BlameStross_: shr/shl |
15:09:51 | BlameStross_ | dom96: thanks |
15:10:40 | Araq | dom96: :-( |
15:10:49 | Araq | this is killing me |
15:12:43 | dom96 | Araq: You've gotten this far, now it should be smooth sailing. |
15:13:20 | * | def- joined #nimrod |
15:17:57 | dom96 | Unfortunately jester doesn't work. |
15:18:34 | Araq | jester doesn't work with devel either, right? |
15:18:44 | dom96 | yes |
15:19:06 | Araq | does that mean anything then? |
15:19:17 | dom96 | I should clarify. |
15:19:20 | dom96 | It compiles. |
15:19:23 | dom96 | But doesn't work. |
15:19:35 | Araq | why? |
15:19:40 | dom96 | On devel it doesn't compile because nested closures don't work. |
15:19:56 | dom96 | No idea. A future is being completed twice somewhere. |
15:22:37 | dom96 | Interestingly it does manage to reply to the browser. |
15:23:48 | dom96 | Argh. The fact that the dispatcher catches all exceptions is ugly. |
15:26:29 | * | kunev joined #nimrod |
15:30:54 | * | kshlm joined #nimrod |
15:36:00 | EXetoC | mildly |
15:44:07 | * | goobles joined #nimrod |
15:44:26 | Araq | dom96: jester compiles for me ... |
15:44:39 | Araq | tests\testapp right? |
15:44:42 | dom96 | no |
15:44:52 | dom96 | tests/asynctest |
15:45:08 | Araq | ah ok |
15:45:29 | Araq | well that too |
15:45:49 | Araq | but I pulled master |
15:46:08 | Araq | are you in a different branch? |
15:48:17 | dom96 | yes |
15:48:20 | dom96 | new-async |
15:48:29 | dom96 | oh |
15:48:36 | dom96 | and you need my changes to asynchttpserver |
15:48:55 | dom96 | which may be problematic unless you can merge devel into newasync |
15:52:10 | Araq | ... |
15:53:32 | dom96 | you can always just switch to devel and copy the changes manually |
15:57:18 | Araq | ah I already merged devel into new_spawn |
15:57:23 | Araq | if that's what you meant |
15:57:30 | Araq | and yeah, I can reproduce |
15:58:40 | * | io2 quit (Ping timeout: 260 seconds) |
16:00:08 | dom96 | good |
16:00:31 | dom96 | it's caused by the last 'get' in routes.nim |
16:00:47 | BlameStross_ | what is the standard format for a constructor proc? |
16:02:26 | EXetoC | initTType(...): TType for value types and newType(...): PType for pointer types |
16:02:44 | Araq | no, initType or newType |
16:03:03 | Araq | dunno why people sometimes use initTType but it's wrong |
16:03:08 | EXetoC | typo |
16:03:18 | EXetoC | I haven't seen that before |
16:03:29 | Araq | dom96: what does 'get' expand into? roughly speaking |
16:04:11 | BlameStross_ | I was going to ask: what isthe all the TTypename stuff? Hungarian notation? |
16:04:39 | Araq | TType # value based type |
16:04:42 | dom96 | Araq: take a look at jester.matchAddPattern, it's basically an async proc which gets added to the list of routes |
16:04:46 | Araq | PType # reference based type |
16:05:22 | Araq | BlameStross_: it's useful but too many people dislike it, so new code doesn't use it and we'll get rid of the other typenames too |
16:07:13 | Araq | dom96: ok so the 'i' for loop variable is not captured at all |
16:07:45 | dom96 | Araq: I see. |
16:07:51 | dom96 | easy to fix? |
16:08:05 | * | hoverbear joined #nimrod |
16:08:13 | flaviu | I thought there was a newSeqOfCap? |
16:10:18 | EXetoC | for strings only |
16:10:58 | EXetoC | it was just an oversight IIRC |
16:13:02 | BlameStross_ | huh, I just it to throw an overflow error on int64 |
16:13:32 | flaviu | BlameStross_: Try something like `{.push overflowError: off.}` iirc |
16:14:12 | flaviu | BlameStross_: But unless you really really know what you're doing, I'd encourage you to just use uint32s and save a ton of hassle |
16:14:42 | BlameStross_ | I want it to throw an error, previously it did not. I am not sure what I did to change that. |
16:16:18 | flaviu | EXetoC: Ok, did you find a workaround? |
16:17:41 | * | Matthias247 joined #nimrod |
16:18:29 | BlameStross_ | WHat I want to do is detect the overflow then allow it to operate normally. |
16:21:00 | * | kunev quit (Ping timeout: 255 seconds) |
16:28:48 | * | Boscop joined #nimrod |
16:35:41 | Araq | dom96: what does 'send' do? |
16:36:10 | dom96 | Araq: it's a template defined in jester |
16:37:17 | Araq | well that produces another async proc |
16:37:24 | Araq | so it IS a capture after all |
16:40:56 | dom96 | i never said it wasn't :P |
16:42:37 | flyx | how fast (or slow) is the VM? |
16:42:56 | flyx | compared to compiled nimrod code |
16:43:01 | Araq | flyx: faster than python as far as I can tell |
16:43:17 | BlameStross_ | https://github.com/blamestross/nimrod-BigInt is now a horribly incomplete thing |
16:43:27 | flyx | it *does* take a while, but my code might just be really inefficient |
16:43:36 | Araq | compared to compiled nimrod code? factor 10-20 perhaps |
16:46:43 | Araq | dom96: when I rename 'i' to 'foobarbaz' it fails in a different way |
16:46:58 | Araq | then it can't find 'response' ... |
16:47:47 | dom96 | response is defined in the `cb` which is defined in matchAddResponse |
16:47:51 | * | Demos joined #nimrod |
16:48:01 | dom96 | but note that it's an async proc |
16:48:11 | dom96 | so it gets transformed into an iterator |
16:48:25 | Araq | ah |
16:48:35 | Araq | does that mean it's in fact a double indirection? |
16:50:47 | flaviu | BlameStross_: For maxInt, try int64(high(int32)) |
16:52:34 | dom96 | Araq: define indirection |
16:53:52 | Araq | meh no |
16:56:05 | flaviu | Or maybe don't, high(uint32) + 1 == 2 shl 31 |
16:58:17 | Araq | dom96: well I just checked an even more complex test program with a "double indirection" and it works |
16:58:25 | Araq | so it's slightly subtle |
17:01:55 | BlameStross_ | flaviu: int64(high(int32)) communicates what it represents better |
17:02:29 | dom96 | Araq: well apart from that (and other issues which are not to do with nested closures) jester works. |
17:07:01 | * | q66 joined #nimrod |
17:13:29 | Araq | 0:1 ! |
17:14:32 | dom96 | :( |
17:14:52 | Araq | for germany |
17:14:57 | Araq | hey, why the :-( ? |
17:15:19 | dom96 | Because I want USA to win :P |
17:15:43 | Araq | fu |
17:15:51 | dom96 | Germany wins all the time |
17:15:52 | dom96 | it's boring |
17:16:21 | Araq | lol no |
17:26:02 | Araq | hmm I think I should name my branch 'araq' ... |
17:26:09 | Araq | and then that's the devel devel branch |
17:33:46 | Demos | does anyone have a windows 64-bit binary of PCRE sitting around? |
17:38:24 | Araq | Demos: ask Varriount |
17:38:35 | Demos | Varriount, I am asking you the above |
17:41:09 | dom96 | Araq: you should name it after the feature you are working on |
17:45:28 | * | Matthias247 quit (Read error: Connection reset by peer) |
17:52:47 | BlameStross_ | Do people want full ordinal type integration with bigints? |
17:52:57 | * | gkoller joined #nimrod |
17:53:06 | BlameStross_ | everything but ord(BigInt) works |
17:53:50 | BlameStross_ | even then I can do something like ord(BigInt) = bottom 32 digits |
18:01:08 | * | superfunc joined #nimrod |
18:02:06 | superfunc | thanks for the advice dom, it worked |
18:03:00 | dom96 | superfunc: what advice did I give you? I can't even remember lol |
18:03:31 | superfunc | oh, the deadcodeelim for fixing sdl2 |
18:03:49 | dom96 | oh right |
18:03:52 | dom96 | no problem |
18:04:07 | BlameStross_ | so, docs are not much help: 0'u32 == 0'u32 #how do I compare unsigned ints? |
18:04:33 | dom96 | BlameStross_: import unsigned |
18:07:10 | BlameStross_ | thanks |
18:07:38 | BlameStross_ | now just to fight the off-by-one errors in my 2's complement code |
18:08:31 | superfunc | BlameStross_: What are you working on? |
18:08:42 | BlameStross_ | BigInt |
18:08:58 | BlameStross_ | working on comparison code right now |
18:09:14 | BlameStross_ | then going to use that to bootstrap fun stuff like *,/, mod |
18:09:42 | BlameStross_ | I'm hesitant to offer pow, but I could do chinese remainder |
18:21:05 | flyx | seems like I don't have any TODOs for my html templating engine left. which means, it's ready for beta-release! |
18:28:38 | Demos | yay! |
18:29:53 | superfunc | My game just keeps piling up TODOs haha |
18:30:23 | BlameStross_ | is there a fast/polite int -> hex string function floating around? |
18:31:32 | flyx | hum, defining a babel package will be difficult |
18:31:55 | * | nande joined #nimrod |
18:32:00 | flyx | my code depends on several pull requests that have not even been merged |
18:32:01 | * | superfun1 joined #nimrod |
18:32:21 | BlameStross_ | found one: strutils |
18:32:47 | Demos | flyx, bug someone to merge them... sometimes prs can sit around for way too long |
18:34:03 | dom96 | unfortunately we mostly only merge them when one of us goes on a PR merging spree |
18:34:41 | superfun1 | lol |
18:38:06 | flyx | so, does anyone feel like spreeing right now? |
18:38:50 | Araq | flyx: which ones? |
18:39:15 | flyx | 1306 and 1308 |
18:42:42 | Araq | can't merge it |
18:42:55 | Araq | 'or' should really be '+' and 'and' should be '*' |
18:43:03 | Araq | for consistency with the builtin sets |
18:43:12 | flyx | ah |
18:43:34 | Araq | and it's -+- for the symmetricDifference but don't bother |
18:43:47 | Araq | I have yet to see a single use case for that one |
18:44:09 | flyx | well if I fix the other ones I can fix that one as well |
18:45:51 | * | Demos quit (*.net *.split) |
18:45:51 | * | flaviu quit (*.net *.split) |
18:45:53 | * | Varriount quit (*.net *.split) |
18:45:55 | * | kshlm quit (*.net *.split) |
18:45:57 | * | silven quit (*.net *.split) |
18:45:57 | * | def- quit (*.net *.split) |
18:45:58 | * | TylerE quit (*.net *.split) |
18:45:59 | * | clone1018 quit (*.net *.split) |
18:46:00 | * | betawaffle quit (*.net *.split) |
18:46:47 | * | Demos joined #nimrod |
18:46:47 | * | kshlm joined #nimrod |
18:46:47 | * | def- joined #nimrod |
18:46:47 | * | flaviu joined #nimrod |
18:46:47 | * | TylerE joined #nimrod |
18:46:47 | * | Varriount joined #nimrod |
18:46:47 | * | silven joined #nimrod |
18:46:47 | * | clone1018 joined #nimrod |
18:46:47 | * | betawaffle joined #nimrod |
18:48:15 | * | gkoller quit (*.net *.split) |
18:48:15 | * | skroll quit (*.net *.split) |
18:48:15 | * | oddmunds quit (*.net *.split) |
18:48:16 | * | phI||Ip quit (*.net *.split) |
18:48:33 | * | skroll joined #nimrod |
18:49:00 | * | oddmunds joined #nimrod |
18:49:30 | * | phI||Ip joined #nimrod |
18:49:56 | flyx | interesting. github automatically adds my new commit to the pull request |
18:50:15 | flyx | Araq: updated |
18:51:47 | NimBot | Araq/Nimrod devel b090b7e Felix Krause [+0 ±1 -0]: Fixed handling swap in vmgen |
18:51:47 | NimBot | Araq/Nimrod devel bdd3b6c Felix Krause [+1 ±1 -0]: Added logical set operations to TSet |
18:51:47 | NimBot | Araq/Nimrod devel 8c93d3e Andreas Rumpf [+1 ±2 -0]: Merge pull request #1306 from flyx/devel... 2 more lines |
18:52:18 | Araq | gah now I can't pull your next PR |
18:52:27 | flyx | argh |
18:52:27 | Araq | any ideas? |
18:53:05 | flyx | um. I rebase my second PR on the first one and submit it again |
18:55:05 | flyx | curious why there are merge conflicts. the two have not one file in common |
18:56:55 | * | Demos quit (*.net *.split) |
18:56:56 | * | flaviu quit (*.net *.split) |
18:56:57 | * | Varriount quit (*.net *.split) |
18:58:22 | * | brihat quit (Quit: ERC Version 5.3 (IRC client for Emacs)) |
18:59:11 | * | joelmo joined #nimrod |
18:59:47 | flyx | Araq: I see what happened. *somehow* my first commit of the second PR made it into the first PR: https://github.com/Araq/Nimrod/pull/1306 |
19:00:09 | flyx | this wasn't in there when I created the PR |
19:00:49 | flyx | I guess I have to be careful about this github „auto-add commits to existing PRs“ thing |
19:01:02 | flyx | anyway, I fixed it, 1308 should be mergable again |
19:01:46 | * | BlameStross_ quit (Ping timeout: 246 seconds) |
19:02:11 | NimBot | Araq/Nimrod devel 84643ab Felix Krause [+0 ±1 -0]: Fixed doc comments in sets.nim |
19:02:11 | NimBot | Araq/Nimrod devel ac3f872 Felix Krause [+0 ±2 -0]: Fixed TSet proc names to conform with set |
19:02:11 | NimBot | Araq/Nimrod devel cb09723 Andreas Rumpf [+0 ±2 -0]: Merge pull request #1308 from flyx/tset_additions... 2 more lines |
19:02:40 | * | io2 joined #nimrod |
19:02:58 | flyx | thanks! |
19:04:05 | * | Trustable joined #nimrod |
19:04:09 | Araq | def-: I think keepItIf is a better name than keepIfIt, though that's open for a debate |
19:04:21 | NimBot | Araq/Nimrod devel ca1c516 Clay Sweetser [+0 ±2 -0]: Fixing issue #1090 |
19:04:21 | NimBot | Araq/Nimrod devel 912ad82 Clay Sweetser [+0 ±1 -0]: Fixed #1090 |
19:04:21 | NimBot | Araq/Nimrod devel 92d1da4 Andreas Rumpf [+0 ±2 -0]: Merge pull request #1278 from Varriount/fix-1090... 2 more lines |
19:05:43 | * | superfun1 quit (Quit: leaving) |
19:05:43 | * | superfunc quit (Read error: Connection reset by peer) |
19:06:42 | def- | Araq: alright |
19:07:02 | * | gkoller joined #nimrod |
19:07:14 | * | superfunc joined #nimrod |
19:11:27 | * | superfun2 joined #nimrod |
19:13:04 | * | superfunc quit (Quit: leaving) |
19:14:40 | Araq | dom96: you have a proc->iterator->proc->iterator chain |
19:15:08 | Araq | and a proc->iterator->proc->proc chain |
19:15:11 | * | Varriount joined #nimrod |
19:16:17 | dom96 | Araq: ok? is that bad? |
19:16:43 | Araq | well once I fix the compiler bug it remains slow |
19:17:14 | Araq | but hey, at least we don't block :P |
19:18:41 | dom96 | we can think about optimizing later |
19:19:07 | * | Demos joined #nimrod |
19:19:07 | * | flaviu joined #nimrod |
19:19:16 | Araq | how so? your jester interface is essentially not optimizable |
19:19:35 | Araq | change the implementation and all client code breaks |
19:20:08 | dom96 | Araq: Like I said multiple times, I never released jester so breaking client code isn't a problem. |
19:20:15 | Araq | ok ok |
19:20:27 | Araq | either way it's a nice stress test |
19:20:43 | dom96 | brb |
19:24:34 | * | superfunc joined #nimrod |
19:29:47 | * | kunev joined #nimrod |
19:35:41 | * | fowl joined #nimrod |
19:38:20 | * | nande quit (Remote host closed the connection) |
19:38:30 | * | superfunc quit (Quit: leaving) |
19:41:13 | * | gkoller quit (Ping timeout: 248 seconds) |
19:41:16 | * | io2 quit (Ping timeout: 260 seconds) |
19:45:12 | * | superfun2 quit (Ping timeout: 245 seconds) |
19:47:34 | dom96 | back |
19:49:00 | Araq | well even extracting the control flow out of your mess takes quite some time ... |
19:49:20 | * | Araq is trying to come up with a minimal example |
19:51:57 | dom96 | "mess"? Excuse me. Jester is the second most stargazed nimrod project on Github, give it some respect. |
19:52:31 | * | Edelwin joined #nimrod |
19:52:39 | Araq | hi Edelwin welcome |
19:52:43 | Edelwin | hi Araq |
19:52:58 | * | boydgreenfield joined #nimrod |
19:53:00 | Araq | dom96: well I'm looking at the code Jester produces |
19:53:13 | Araq | generated code usually is messy |
19:53:37 | Araq | in this case it's making my head explode, but whatever |
19:56:25 | * | Jesin quit (Quit: Leaving) |
19:57:11 | Araq | dom96: yield foo()() ? but 'foo' is a proc returning PFuture[void] |
19:57:20 | dom96 | well it is jester + async |
19:57:23 | dom96 | so i'm not surprised |
19:57:26 | Araq | how does that work? |
19:57:43 | dom96 | it yields the returned future? |
20:00:00 | Araq | but there are two () |
20:00:37 | Araq | do you overload () ? |
20:00:43 | dom96 | no |
20:01:06 | dom96 | I assume whatever way your outputting the generated code makes a mistake. |
20:01:11 | dom96 | *you're |
20:01:21 | Araq | hmm possible |
20:01:30 | Edelwin | Araq: where (and how) can I add custom compilation options for GCC? such as -fstack-protector, -Wstack-protector, -j3... |
20:02:38 | Araq | Edelwin: --passC:"option here", you can also put that into your config file |
20:02:43 | Edelwin | <3 |
20:02:48 | Edelwin | thank you |
20:02:50 | Araq | what's a stack protector? |
20:03:06 | Araq | stacks already have a guard page |
20:03:46 | flyx | dom96: jester looks interesting. is it usable yet? |
20:03:48 | Edelwin | https://en.wikipedia.org/wiki/Buffer_overflow_protection |
20:04:18 | dom96 | flyx: not yet |
20:04:23 | Edelwin | http://wiki.osdev.org/GCC_Stack_Smashing_Protector Araq |
20:04:36 | * | askatasuna joined #nimrod |
20:05:07 | flyx | dom96: I worried I need to implement something like that myself to use my templating engine |
20:05:34 | Edelwin | Araq: so, the config file would act as Makefile, no? |
20:05:43 | Araq | yeah |
20:06:05 | Araq | but you don't need "stack protection" in nimrod code really, nimrod is not C |
20:06:09 | dom96 | flyx: you can use it already but I would wait if I were you until I get it to work with the new async stuff |
20:06:18 | Edelwin | Araq: it was an example |
20:06:28 | Araq | good |
20:06:29 | Edelwin | -jx is more intersting :p |
20:06:36 | Edelwin | +e |
20:06:56 | flyx | dom96: I have still much to do in my templates. I have a working version, but it still needs some work to be a *nicely* working version |
20:08:16 | Araq | Edelwin: what's that? |
20:09:56 | Edelwin | Araq: how many jobs during the compilation. If I have to build a big program, and that I have, let's say, 4 threads, I'd use -j5 |
20:10:12 | * | BlameStross1 joined #nimrod |
20:10:20 | dom96 | isn't that what --parallelBuild uses? |
20:10:24 | Edelwin | but it's a CC option, maybe nimrod has an option that does the same |
20:10:30 | Edelwin | dom96: yeah might be that |
20:10:37 | Araq | yeah that's comparable |
20:10:46 | Edelwin | I didn't read the whole manual yet :x |
20:11:00 | Araq | and it's active by default and detects the number of cores you have ... |
20:11:12 | Edelwin | wow *_* |
20:11:14 | Edelwin | <3 |
20:12:51 | flyx | um, is there any best practice where to put my package in the babel package list? |
20:13:01 | flyx | it doesn't seem to be sorted at all |
20:13:13 | Demos | at the bottom |
20:13:19 | Demos | at least that is what I do |
20:14:55 | Araq | is it too late to replace the package list with an sqlite database stored in plaintext? |
20:15:00 | Araq | I guess it is ... |
20:17:32 | * | brson joined #nimrod |
20:18:03 | Araq | flaviu: how would you have designed the list of packages? |
20:19:26 | flyx | Araq: would that be editable more easily? |
20:20:03 | dom96 | that would an extra dependency |
20:20:07 | dom96 | *add an |
20:22:38 | dom96 | Araq: My workaround only got me this far |
20:22:40 | dom96 | I have a problem |
20:23:03 | Araq | well I'm working on it |
20:23:08 | dom96 | not that |
20:23:23 | dom96 | I have a /different/ problem |
20:23:35 | Araq | bah |
20:23:44 | * | Matthias247 joined #nimrod |
20:23:47 | dom96 | I have templates which contain stuff like 'return' and 'await' |
20:23:56 | dom96 | the async macro needs to transform those |
20:24:09 | dom96 | but when it performs its transformations those templates have not been expanded yet |
20:24:55 | Araq | is your async macro immediate? |
20:25:03 | fowl | Edelwin, nimrod |
20:25:10 | Edelwin | fowl: :p |
20:25:11 | fowl | Edelwin, er, nimrod's make is called nake |
20:25:18 | Edelwin | okay |
20:25:20 | dom96 | Araq: yes |
20:26:45 | Araq | what happens when it's not immediate? |
20:27:07 | Edelwin | hmmm it's not very logical to get rid of the parentheses when you do ```echo "foo =", foo``` when you could keep them to do echo("foo =",foo) |
20:27:14 | Edelwin | (it's my opinion.= |
20:27:16 | Edelwin | *) |
20:28:17 | dom96 | Araq: huh, I get a weird error: invalid visibility '*' |
20:28:25 | Araq | getting rid of parentheses is the whole point of a syntax. otherwise I would have created a Lisp, Edelwin |
20:28:47 | Edelwin | hahaha :') |
20:28:59 | Edelwin | I just don't understand why you half-use them ;) |
20:29:03 | dom96 | perhaps if I turn 'get' into a macro? |
20:29:33 | Araq | dom96: well no, that's another issue, easy to fix |
20:29:55 | dom96 | Araq: I think it has to be immediate |
20:30:06 | dom96 | Araq: Otherwise I will get 'undeclared identifier 'await''. |
20:30:29 | Araq | well you need a dymmy 'await' yes |
20:31:13 | dom96 | I also won't be able to do 'result = ""' |
20:31:17 | dom96 | in my async procs |
20:31:30 | dom96 | in summary it will break code. |
20:31:49 | dom96 | but what if I make 'get' a macro |
20:31:52 | dom96 | which is not immediate? |
20:31:52 | Araq | I don't understand this, what do you mean with result = ""? |
20:32:42 | dom96 | https://github.com/Araq/Nimrod/blob/devel/lib/pure/asyncdispatch.nim#L1033 |
20:33:04 | dom96 | The return type is PFuture[string] |
20:33:15 | Araq | got it |
20:33:18 | dom96 | I guess I could make it 'string' |
20:33:31 | dom96 | but who knows what other issues there are |
20:34:13 | dom96 | what about my 'get' as a macro idea? |
20:34:22 | dom96 | you wanted me to do that anyway IIRC |
20:34:39 | Araq | hmm not sure what you mean |
20:34:56 | dom96 | flyx: you need a .babel file |
20:34:59 | Araq | is 'return' only useful in 'get'? |
20:35:26 | dom96 | get "/halt": halt "blah"; resp "asdaf" |
20:35:40 | flyx | dom96: oh, I forgot to push |
20:35:50 | * | Mat3 joined #nimrod |
20:35:56 | dom96 | template halt(txt) = response.content = txt; return |
20:36:08 | flyx | done. |
20:36:15 | Mat3 | Hello |
20:36:19 | dom96 | the body of 'get' ends up in an async proc |
20:36:45 | dom96 | the async macro gets the code as it looks above |
20:36:56 | Araq | so how do you transform 'return' then? into a 'raise'? |
20:37:04 | dom96 | no |
20:37:15 | dom96 | into a yield; retFuture.complete |
20:37:18 | dom96 | er |
20:37:22 | dom96 | other way around |
20:37:31 | dom96 | or something like that can't remember |
20:37:36 | dom96 | the retFuture.complete is the important part |
20:38:06 | dom96 | because when the iterator finishes its associated future must be completed |
20:38:18 | dom96 | and no I can't just write 'retFuture.complete' in my halt template |
20:38:24 | dom96 | because retFuture is genSym'd |
20:40:21 | Araq | hi Mat3 |
20:40:31 | Mat3 | Hi Araq |
20:41:18 | flyx | how large is an enum? can I set its size, so that I can define a set[TEnumType] with it? |
20:41:25 | dom96 | Araq: now, do you understand? |
20:41:36 | Araq | dom96: of course |
20:42:00 | fowl | flyx, size pragma |
20:42:01 | dom96 | flyx: Did you test your babel package? |
20:42:03 | Araq | flyx: don't mess with the size, it's optimal for set[TEnumType] |
20:42:11 | dom96 | Araq: What is your advice then? |
20:42:22 | dom96 | Araq: is my 'get' as a macro idea worth pursuing? |
20:42:53 | Araq | looks like it, but the 'gensym' problem remains when get is a macro afaict |
20:43:11 | Araq | the real problem for Jester is that you chose |
20:43:17 | Araq | get "foo": stuff |
20:43:21 | Araq | get "foo2": stuff2 |
20:43:28 | Araq | whereas the language rewards: |
20:43:41 | Araq | dispatch: |
20:43:45 | Mat3 | have someone before build Nimrod on an Android tablet ? |
20:43:46 | Araq | get "foo": stuff |
20:43:55 | Araq | get "foo2": stuff2 |
20:44:04 | Araq | so 'dispatch' gets the whole picture |
20:44:23 | Araq | no need to mess with a global 'j' etc. |
20:44:27 | dom96 | Araq: I can do that. |
20:44:37 | dom96 | hrm, true. |
20:44:42 | dom96 | I will do that then. |
20:44:49 | dom96 | the gensym problem should disappear |
20:44:57 | dom96 | because the templates will be expanded |
20:45:00 | Araq | it's cleaner too this way |
20:45:10 | Araq | in fact |
20:45:15 | Araq | I like it MUCH better |
20:45:16 | dom96 | and I can just put the resulting code into an async proc |
20:45:18 | dom96 | although |
20:45:20 | flyx | dom96: can I test against my fork? |
20:45:36 | dom96 | flyx: sure |
20:45:40 | flyx | ah, obviously |
20:45:47 | Mat3 | After installing GCC and a nice terminal emulator that would be nice |
20:45:51 | dom96 | but didn't Araq pull your changes? |
20:46:04 | * | Jesin joined #nimrod |
20:46:13 | dom96 | Araq: But if I generate code which uses the async macro from a non-immediate macro what will happen? |
20:46:27 | dom96 | Araq: sounds to me like that won't work :\ |
20:46:48 | dom96 | flyx: I'm asking because I can already see something that won't work: Requires = "nimrod#head" |
20:46:50 | Araq | I don't follow |
20:46:57 | * | kunev quit (Ping timeout: 255 seconds) |
20:46:58 | Araq | 'dispatch' gets the whole AST |
20:47:22 | Araq | you might need to make 'halt' a "keyword" too then in addition to 'await' |
20:47:48 | flyx | dom96: hm, okay. how would I do that correcty? I thought this is how the docs specify it |
20:48:00 | dom96 | Araq: When i'll transform 'get', I will be transforming it so that its body ends up in an async proc. |
20:48:31 | dom96 | Araq: get "/": foobar -> proc foo() {.async.} = foobar |
20:48:56 | dom96 | Araq: (let's not worry about the details of handling the path ("/") for now.) |
20:49:00 | Araq | yes. so? |
20:49:19 | dom96 | Araq: So will that work if a non-immediate macro generates it? |
20:49:30 | dom96 | Araq: Keeping in mind that async will remain an immediate macro? |
20:49:54 | dom96 | flyx: You need to specify a version, Requires = "nimrod > 0.9.5" |
20:50:12 | flyx | and it works if I use an unreleased version? |
20:50:13 | dom96 | flyx: well, Requires = "nimrod >= 0.9.5" |
20:50:14 | Araq | I don't think that's a problem, dom96 but 'dispatch' can easily be immediate too |
20:50:52 | dom96 | flyx: It's not perfect of course but as long as the user has version 0.9.5 it will work. |
20:51:07 | dom96 | Araq: yeah, but then we have the same problem. |
20:51:15 | dom96 | Araq: Unless I handle 'halt' manually in the macro. |
20:52:36 | dom96 | Araq: Which I don't like tbh. |
20:53:13 | * | Mat3 quit (Quit: Page closed) |
20:53:31 | Araq | dom96: that's what I'm suggesting though. 'halt' is special so treat it special |
20:55:53 | dom96 | yeah, but I have multiple overloads for halt |
20:56:03 | dom96 | Handling that in a macro will be difficult or even impossible |
20:58:36 | flyx | dom96: package works now |
21:00:59 | NimBot | nimrod-code/packages master a1ebe6e Felix Krause [+0 ±1 -0]: Added emerald |
21:00:59 | NimBot | nimrod-code/packages master 5e6e1d3 Dominik Picheta [+0 ±1 -0]: Merge pull request #66 from flyx/master... 2 more lines |
21:02:13 | dom96 | voila |
21:04:06 | flyx | thanks |
21:04:18 | Araq | multiple overloads for "halt"? I was about to suggest that even 1 "halt" is not required ... |
21:04:31 | flyx | hm, how can I benchmark stuff at compile time? the module times seems to work only at runtime |
21:04:47 | dom96 | Araq: sinatra has it |
21:04:49 | flyx | at least as far as cpuTime() is concerned |
21:11:10 | Araq | flyx: currently you can't |
21:12:22 | Araq | you could patch the VM though to provide a profiler |
21:13:43 | dom96 | Araq: if I get rid of the overloads then I can make 'halt' immedaite |
21:13:45 | dom96 | *immediate |
21:14:01 | dom96 | which means there is no need to turn get into a macro... |
21:14:16 | Araq | if you say so |
21:14:32 | dom96 | But I don't want to do that |
21:14:39 | dom96 | so what other alternatives do we have? |
21:15:07 | Araq | what does 'halt' mean? |
21:15:27 | dom96 | Araq: stop the execution of a route and respond |
21:15:33 | Araq | "stop the 'get' handler"? |
21:15:39 | dom96 | yes |
21:15:53 | Araq | that's trivially avoided with an 'if' then |
21:15:54 | dom96 | it's essentially: resp "blah"; return |
21:16:11 | Araq | if foo: halt() |
21:16:14 | Araq | bar() |
21:16:16 | Araq | --> |
21:16:22 | Araq | if not foo: bar() |
21:16:50 | Araq | and since 'get' handlers shouldn't have much code, it's not an issue to nest |
21:18:14 | flyx | well, bedtime for me. night, folks |
21:19:13 | dom96 | Araq: ok, what about something like 'redirect' which also stops the route? |
21:20:11 | Araq | that's the same? use nesting, it won't kill you |
21:21:03 | flaviu | Araq: Sqlite might work, but not unless there was an automated way to modify the database. People are unlikely to go through the process of installing the sqlite repl, especially windows. |
21:21:03 | flaviu | The current implementation is pretty good, it doesn't use the filesystem as a key-value store, so its fast, and uses json, which is easy to deal with by everyone |
21:21:46 | flaviu | What problem prompted the question? |
21:21:48 | dom96 | Araq: I may as well just get rid of all these sinatra things then |
21:21:58 | dom96 | Araq: But then it loses its charm |
21:22:11 | Araq | oh come on |
21:22:41 | Araq | halt and redirect need nesting. big deal. why the extremism? |
21:23:08 | Araq | dom96: so here you have it. flaviu thinks your babel repo design is very good. |
21:23:28 | Araq | so I'll shut up about it now |
21:24:25 | Araq | flaviu: btw was it you who told me I need to rewrite lambdalifting to fix the remaining bugs? |
21:24:25 | dom96 | Araq: Well then you may as well use asynchttpserver on its own. |
21:25:05 | Araq | asynchttpserver doesn't do URL routing at all |
21:25:14 | Araq | (I think...) |
21:25:23 | dom96 | It's just an if away after all |
21:25:28 | dom96 | Why the extremism? :P |
21:25:29 | Araq | which is what Jester provides |
21:25:30 | flaviu | What is the reason behind asking me? I'd like to bikeshed a bit more over this :P, but I'm not sure what its about |
21:26:08 | Araq | flaviu: when I don't know something I ask people who know everything |
21:27:23 | flaviu | I'm still working on knowing everything, unfortunately :P |
21:27:28 | Araq | but more seriously, your opinion tends to be "reddit compatible", which is what we're optimizing against |
21:28:54 | flaviu | Reddit might have some fun with the lack of package signing, but the general system doesn't have anything really wrong with it |
21:29:56 | Araq | I wonder how representative reddit/hn really is |
21:30:09 | goobles | oh what |
21:31:03 | * | Fr4n quit (Ping timeout: 255 seconds) |
21:32:16 | reactormonk | more comments on https://github.com/Araq/Nimrod/pull/1299 please |
21:32:39 | * | io2 joined #nimrod |
21:34:29 | * | joelmo quit (Quit: Connection closed for inactivity) |
21:34:51 | Araq | gah, I don't like it, reactormonk |
21:35:07 | reactormonk | Araq, then say something about it there |
21:35:31 | Araq | plus gradha really needs to learn how to make cool quotes |
21:35:56 | Araq | "bli bla blub" -- Major Motoko Kusanagi what the ...? |
21:36:03 | reactormonk | ^^ |
21:36:26 | dom96 | Araq: I think he's trying to be funny :P |
21:39:11 | Araq | "Heresy grows from idleness" |
21:39:18 | Araq | now was that so hard? |
21:40:50 | Araq | dom96: good news I can reproduce it with a small test program |
21:43:08 | reactormonk | Araq, put it on github. bit more polite plz. |
21:43:47 | * | Fr4n joined #nimrod |
21:44:37 | flaviu | Araq: You're right, array[TEnum, Foo] would work for my usecase, but I'm sure that there are some generic usecases where it would be useful |
21:46:17 | fowl | flyx, emerald looks pretty cool |
21:46:33 | Araq | flaviu: yes but then people use it without noticing the language has something better to offer |
21:46:55 | Araq | we see this already, people using nimrod as if it was some kind of compiled python |
21:47:59 | flaviu | Fair enough, I thought it was a oversight and expected it to be merged without much discussion, but if you don't want it, don't merge it |
21:48:21 | flaviu | I also just realized that the array[Enum, Foo] would not work well for C enums |
21:48:44 | * | kshlm quit (Remote host closed the connection) |
21:48:53 | flaviu | Especially the kind that are intended for manual bitset construction |
21:49:20 | Araq | I don't care about C's utterly broken notion of an "enum" |
21:49:22 | * | johnsoft quit (Ping timeout: 245 seconds) |
21:49:22 | * | kshlm joined #nimrod |
21:49:58 | * | johnsoft joined #nimrod |
21:50:06 | fowl | flaviu, thats why it gives you an error about enums with holes |
21:51:00 | flaviu | fowl: Really? Great |
21:51:18 | * | superfunc joined #nimrod |
22:01:40 | * | superfunc quit (Ping timeout: 246 seconds) |
22:09:14 | Araq | dom96: lol your code triggers a case that is very similar to what I tested |
22:09:33 | dom96 | Araq: not similar enough huh? :P |
22:09:49 | Araq | it's amazing |
22:09:59 | dom96 | omg |
22:10:01 | Araq | I tested it *really* well with lots of different nestings |
22:10:13 | dom96 | What is up with these damn nnkDo's popping up out of nowhere? |
22:10:30 | dom96 | https://gist.github.com/dom96/43e4fa2533b116450bbe |
22:10:36 | dom96 | that creates an nnkDo |
22:10:39 | dom96 | it angers me greatly |
22:10:50 | * | silven quit (Remote host closed the connection) |
22:11:00 | Araq | well I told zahary it's a bad idea |
22:11:03 | * | silven joined #nimrod |
22:11:13 | Araq | but now it's hard to get rid of it in the compiler ... |
22:11:21 | Araq | the idea is that |
22:11:22 | Araq | foo: |
22:11:24 | Araq | bar |
22:11:28 | Araq | is the same as |
22:11:33 | Araq | foo do: |
22:11:34 | Araq | bar |
22:12:15 | dom96 | you should have stopped him from implementing it IMO |
22:12:52 | dom96 | why is it hard to remove? |
22:13:04 | Araq | because I don't know what's affected |
22:13:35 | dom96 | Let's take a quick survey |
22:13:55 | Araq | surveys are irrelevant |
22:14:00 | dom96 | bah |
22:14:02 | Araq | we already agree it should go |
22:14:07 | dom96 | good |
22:14:19 | dom96 | I guess I'll deal with it for now.. |
22:14:33 | Araq | macros.skipDo ? |
22:14:46 | Araq | don't we have that? |
22:15:12 | dom96 | nope |
22:15:52 | * | flaviu quit (Remote host closed the connection) |
22:16:43 | Araq | well add it then |
22:17:13 | dom96 | k |
22:17:43 | * | askatasuna quit (Ping timeout: 252 seconds) |
22:18:32 | * | io2 quit (Ping timeout: 260 seconds) |
22:21:54 | * | superfunc joined #nimrod |
22:26:07 | * | superfun1 joined #nimrod |
22:28:33 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:28:40 | * | kunev joined #nimrod |
22:28:50 | * | superfunc quit () |
22:29:27 | * | Trustable quit (Ping timeout: 252 seconds) |
22:33:28 | * | kunev quit (Ping timeout: 260 seconds) |
22:39:07 | Nimrod | this is why I love this channel. It makes me feel loved even while at work. |
22:39:26 | * | vendethiel- joined #nimrod |
22:40:03 | * | vendethiel quit (Ping timeout: 240 seconds) |
22:41:35 | dom96 | Nimrod: do the constant highlights not distract you? :P |
22:41:42 | Trixar_za | Hehehe. I wrote a python library that will give any reasonable coder nightmares |
22:41:43 | Nimrod | dom96: Nah |
22:42:15 | * | Trustable joined #nimrod |
22:43:21 | * | nande joined #nimrod |
22:43:50 | * | superfunc joined #nimrod |
22:44:12 | * | vendethiel- quit (Ping timeout: 260 seconds) |
22:58:42 | * | flaviu joined #nimrod |
23:01:09 | * | Trustable quit (Quit: Leaving) |
23:15:07 | * | darkf joined #nimrod |
23:15:08 | boydgreenfield | babel question – is it possible to include a dependency in a private Git repo? (Sorry if I’m just missing where in the docs). Thx! |
23:15:38 | flaviu | boydgreenfield: I'm not sure about babel, but fowl did something like that |
23:15:45 | flaviu | Maybe I can dig it up, 1 sex |
23:15:52 | flaviu | *sec |
23:16:29 | boydgreenfield | flaviu: Thanks! |
23:16:43 | fowl | https://gist.github.com/fowlmouth/8cc9ee26bcf509b5fea5 |
23:17:00 | flaviu | Thanks, thats it |
23:17:26 | dom96 | i'd suggest using babel instead |
23:18:14 | dom96 | boydgreenfield: Requires: "git://url.here" |
23:18:26 | dom96 | in your .babel file under the [Deps] |
23:18:26 | fowl | that method can only really work for importing one file since it doesnt touch include directories, i recommend using babel too |
23:18:50 | boydgreenfield | dom96: Got it. That’s very heplful, thanks. |
23:20:34 | * | hoverbear quit () |
23:43:13 | boydgreenfield | dom96: What’s the exact syntax on that? Having a build error with something like `Requires: "[email protected]:username/package.git”` |
23:44:38 | fowl | boydgreenfield, use a url like https://bitbucket.org/fowlmouth/entoody.git |
23:45:01 | fowl | the read-only url ^^ |
23:45:14 | fowl | is what its called on github |
23:45:17 | boydgreenfield | Hrm — but then it’ll try to use HTTPS auth w/ github, no? |
23:45:27 | boydgreenfield | (or at least that’s what it does locally for me — and I need it to work via ssh) |
23:45:48 | dom96 | boydgreenfield: try git://[email protected]:username/package.git |
23:46:29 | boydgreenfield | dom96: Hrm that doesn’t work for me, though it looks right |
23:47:57 | dom96 | boydgreenfield: maybe ssh:// ? |
23:48:13 | boydgreenfield | There we go |
23:48:20 | dom96 | :) |
23:48:27 | boydgreenfield | ssh://[email protected]/username/reponame |
23:48:30 | boydgreenfield | *reponame.git |
23:50:47 | dom96 | oh, interesting. |
23:51:00 | BlameStross1 | so, nimrod-BigInt is mostly featured at this point. I have not yet implemented the shift-based multiplication and division, so it is really slow. WIP https://github.com/blamestross/nimrod-BigInt |
23:52:02 | boydgreenfield | Ugh — now that breaks my CI server despite working locally. Fun times. |
23:53:24 | Araq | BlameStross1: wow, you're quick! |
23:54:09 | * | boydgreenfield quit (Quit: boydgreenfield) |
23:56:03 | Araq | BlameStross1: the convention is to name the module bigints.nim (with the s) |
23:56:18 | Araq | you're overusing 'cast' a lot |
23:56:47 | Araq | and you have to learn how to deal with sequences, you allocate one in initBigInt |
23:57:37 | Araq | and then doesn't really use it but overwrite it via result.digits = digits |