00:00:14 | * | MFlamer quit (Ping timeout: 240 seconds) |
00:00:17 | BitPuffin | fowl: you didn't |
00:00:41 | fowl | why are you checking if something == nil btw, use isNil() |
00:00:59 | BitPuffin | fowl: oh really? |
00:01:13 | fowl | yea |
00:03:34 | BitPuffin | fowl: why isn't isNil mentioned in the manual :( |
00:06:56 | fowl | i dunno |
00:06:59 | gdos | yea why not? |
00:07:13 | fowl | its probably mentioned in the tutorial, maybe |
00:07:29 | BitPuffin | possibly |
00:08:04 | BitPuffin | I thought I had read something like that |
00:08:08 | BitPuffin | I even searched the manual for it |
00:09:57 | BitPuffin | not mentioned in tutorial either |
00:10:43 | BitPuffin | hmm |
00:10:46 | BitPuffin | well now I am stuck |
00:11:02 | * | gurug33k quit (Remote host closed the connection) |
00:11:37 | fowl | stuck where |
00:11:49 | BitPuffin | with the dom stuff |
00:12:04 | BitPuffin | I am trying to write this js line in nimrod |
00:12:09 | BitPuffin | signinLink.onclick = function() { navigator.id.request(); }; |
00:12:34 | fowl | reactormonk has experience with JS |
00:12:53 | BitPuffin | but the function getElementById apparently returns a TNode |
00:12:58 | BitPuffin | which apparently doesn't have onclick |
00:13:13 | BitPuffin | even though an anchor element does have an onclick |
00:13:15 | BitPuffin | so uh |
00:13:21 | BitPuffin | reactormonk: save me barry |
00:14:37 | BitPuffin | http://youtu.be/03535JulkYA |
00:18:56 | * | fowl quit (Quit: Leaving) |
00:21:58 | * | Demos_ joined #nimrod |
00:38:54 | * | Demos_ quit (Ping timeout: 268 seconds) |
00:40:58 | BitPuffin | meh will deal with that tomorrow |
00:41:02 | BitPuffin | night y'all! |
00:45:50 | * | BitPuffin quit (Ping timeout: 264 seconds) |
01:01:07 | * | gdos quit (Ping timeout: 246 seconds) |
01:23:47 | * | Demos_ joined #nimrod |
01:50:48 | * | Demos_ quit (Ping timeout: 240 seconds) |
01:51:10 | * | Demos_ joined #nimrod |
01:52:17 | * | DAddYE quit (Ping timeout: 268 seconds) |
01:58:35 | * | gdos joined #nimrod |
02:00:48 | * | Demos_ quit (Quit: Konversation terminated!) |
02:03:39 | * | Demos joined #nimrod |
02:17:06 | * | cablehead quit (Remote host closed the connection) |
02:17:42 | * | cablehead joined #nimrod |
02:20:57 | * | Demos quit (Quit: Konversation terminated!) |
02:21:05 | * | Demos joined #nimrod |
02:21:58 | * | cablehead quit (Ping timeout: 246 seconds) |
02:23:07 | * | MFlamer joined #nimrod |
02:48:36 | * | DAddYE joined #nimrod |
02:54:57 | * | DAddYE quit (Ping timeout: 240 seconds) |
02:56:16 | * | Endy joined #nimrod |
03:02:08 | * | gdos quit (Quit: *GONE*) |
03:41:10 | * | OrionPK quit (Quit: Leaving) |
03:51:38 | * | DAddYE joined #nimrod |
03:52:44 | * | dyu_ joined #nimrod |
03:58:13 | * | DAddYE quit (Ping timeout: 246 seconds) |
04:03:13 | * | Associat0r quit (Quit: Associat0r) |
04:06:16 | * | Endy quit (Ping timeout: 245 seconds) |
04:19:23 | * | cablehead joined #nimrod |
04:27:13 | * | DAddYE joined #nimrod |
04:29:01 | Demos | can I get a non-GC'd sequence? I often find I can garentee unique ownership on many heap allocated objects |
04:33:41 | * | DAddYE quit (Remote host closed the connection) |
04:35:45 | * | cablehead quit (Remote host closed the connection) |
04:36:11 | * | cablehead joined #nimrod |
04:40:26 | * | cablehead quit (Ping timeout: 245 seconds) |
05:23:03 | * | shodan45 quit (Ping timeout: 245 seconds) |
05:27:19 | * | isenmann1 joined #nimrod |
05:34:50 | * | DAddYE joined #nimrod |
05:41:01 | * | DAddYE quit (Ping timeout: 245 seconds) |
06:01:57 | * | MFlamer quit (Ping timeout: 250 seconds) |
06:04:54 | * | Demos quit (Quit: Konversation terminated!) |
06:37:42 | * | DAddYE joined #nimrod |
06:44:12 | * | DAddYE quit (Ping timeout: 256 seconds) |
06:55:26 | * | shodan45 joined #nimrod |
06:56:40 | * | shodan45 quit (Client Quit) |
07:10:05 | * | Araq_ joined #nimrod |
07:20:25 | Araq_ | hi isenmann1 welcome |
07:40:53 | * | DAddYE joined #nimrod |
07:47:26 | * | DAddYE quit (Ping timeout: 240 seconds) |
07:50:01 | * | gurug33k joined #nimrod |
07:53:55 | * | q66 joined #nimrod |
08:14:35 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 24.0/20130910160258]) |
10:09:54 | * | dyu_ quit (Ping timeout: 256 seconds) |
10:41:11 | * | dyu_ joined #nimrod |
10:44:50 | * | DAddYE joined #nimrod |
10:45:02 | * | Associat0r joined #nimrod |
10:45:02 | * | Associat0r quit (Changing host) |
10:45:02 | * | Associat0r joined #nimrod |
10:51:16 | * | DAddYE quit (Ping timeout: 245 seconds) |
12:14:23 | * | HappyClappy joined #nimrod |
12:14:24 | HappyClappy | hi |
12:26:39 | shevy | lol |
12:26:43 | shevy | that is the best nick I have ever read |
12:27:06 | * | shevy is now known as ClappyHappy |
12:27:11 | ClappyHappy | HappyClappy my brother! how are you |
12:34:24 | HappyClappy | I'm alright actually my parents have gone out and I got the house to myself |
12:39:24 | * | ClappyHappy is now known as shevy |
12:48:26 | * | DAddYE joined #nimrod |
12:51:48 | * | Ricky_Ricardo joined #nimrod |
12:54:46 | * | DAddYE quit (Ping timeout: 246 seconds) |
12:55:57 | * | wlhlm joined #nimrod |
13:02:33 | * | io2 joined #nimrod |
13:39:22 | * | Varriount joined #nimrod |
13:39:41 | Varriount | clear |
13:40:38 | Varriount | So, I offered on the forums to host a build bot for windows. I was told to contact dom96? |
13:51:23 | * | DAddYE joined #nimrod |
13:58:00 | * | DAddYE quit (Ping timeout: 252 seconds) |
13:59:55 | * | Varriount quit (Ping timeout: 250 seconds) |
14:02:54 | * | Varriount joined #nimrod |
14:06:37 | * | Ricky_Ricardo quit (Quit: Ricky_Ricardo) |
14:23:38 | * | HappyClappy quit () |
14:27:00 | * | Endy joined #nimrod |
14:32:05 | * | [1]Endy joined #nimrod |
14:34:58 | * | Endy quit (Ping timeout: 240 seconds) |
14:34:58 | * | [1]Endy is now known as Endy |
14:54:28 | * | DAddYE joined #nimrod |
15:01:15 | * | DAddYE quit (Ping timeout: 252 seconds) |
15:07:50 | * | gdos joined #nimrod |
15:10:30 | * | gdos quit (Read error: Connection reset by peer) |
15:27:49 | * | MFlamer joined #nimrod |
15:30:06 | dom96 | Varriount: I am here now |
15:39:12 | * | Endy quit (Ping timeout: 252 seconds) |
15:43:01 | * | sdff joined #nimrod |
15:43:23 | * | sdff quit (Client Quit) |
15:53:33 | * | dyu_ quit (Quit: Leaving) |
15:53:39 | * | whospal joined #nimrod |
15:54:00 | whospal | Hi |
15:55:04 | whospal | I'm new to nimrod. After having learn Python & play with Go, find Nimrod is rather refreshing as a programming language. Combining the strength of compilation with Python like programming ease. |
15:55:17 | whospal | One feedback: |
15:55:19 | dom96 | hello whospal |
15:55:39 | whospal | Hello |
15:56:42 | whospal | I find the syntax doesn't seem to be consistant. |
15:57:19 | * | DAddYE joined #nimrod |
15:57:21 | whospal | Eg. Arrays. Why use "array[0..5, int]"? |
15:58:06 | * | MFlamer quit (Remote host closed the connection) |
15:58:21 | whospal | Shouldn't it be "array[0..5]: int"? since the type of a variable seems to be followed with |
15:58:31 | whospal | ": <type>"? |
16:00:05 | whospal | Same for Sets. Shouldn't it be "set[]: char" instead of "set[char]"? |
16:01:03 | whospal | For Enum, using "type TDirection = enum north, east, south, west" seems weird. |
16:01:42 | Trixar_za | Try both. Generally the syntax is pretty flexible even though the documentation doesn't always list it as such. |
16:01:54 | whospal | Shouldn't it be "type TDirection = enum[north, east, south, west" or "... enum{north, east, south, west}" |
16:02:36 | whospal | I think these suggestions would be more consistant & intuitive. |
16:02:52 | whospal | I see. |
16:03:09 | dom96 | It wouldn't be consistent with the way generics work |
16:03:14 | * | DAddYE quit (Ping timeout: 264 seconds) |
16:03:20 | whospal | I don't mind helping to update the document if the language has good potential. ;) |
16:03:29 | whospal | I'm a bit of a perfectionist. |
16:03:34 | dom96 | it makes perfect sense. the stuff in the [] is the arguments to the type if you wanna call it that. |
16:04:40 | * | Endy joined #nimrod |
16:05:06 | dom96 | Same way as in C++ you would have: vector<char> |
16:05:13 | dom96 | in Nimrod it's: seq[char] |
16:06:20 | whospal | It can be confusing to newbies because [] is usually for [index] referencing. Perhaps <> is a better choice then? |
16:06:52 | whospal | Anyway, thanks for explaining with reference to C++. |
16:07:20 | whospal | I just find the syntax for array & enum not intuitive. |
16:07:37 | dom96 | If we designed Nimrod for newbies then we would have made everything as close as possible to some other existing language, but then what would be the point? |
16:08:12 | whospal | Well, the point is that it'll be easier for others to pick up. |
16:08:16 | whospal | ;) |
16:08:19 | dom96 | And Araq has good reasons for not using <> |
16:08:29 | whospal | I see. |
16:08:54 | whospal | I just think that enum x, y, z is not that intuitive. |
16:09:41 | * | fowl joined #nimrod |
16:09:47 | dom96 | why? |
16:09:51 | whospal | "array[0..5, int]" too. "array[0..5]: int" would be better. |
16:10:34 | dom96 | And how would that look with multi-dimensional arrays? |
16:10:53 | dom96 | :P |
16:11:04 | whospal | using just "enum x,y,z" , when reading, people may missed the "space". Using "enum(x,y,z)" seems clearer. |
16:12:35 | whospal | Perhaps for multi-dim arrays, use "array[0..5][0..2]:int"? or as the Tutorial #1, use nested arrays. |
16:13:22 | whospal | Just for Araq's consideration. |
16:13:38 | dom96 | how would you nest the types with your proposed syntax though? |
16:14:08 | whospal | MHO is that a good programming language should be intuitive, clear & consistant. That's why python is getter popular. |
16:14:43 | whospal | To me, although Golang has it's strength, it's syntax is too C like. |
16:14:48 | dom96 | I don't think what you propose would be much clearer. |
16:15:29 | whospal | type TDirection = enum (n, e, s, w) |
16:15:55 | fowl | whospal, you know that syntax is the most minor detail of a language right |
16:16:04 | dom96 | As for the enum syntax, there should be a newline after the 'enum' |
16:16:46 | whospal | TBlinkLights = enum (off, on, sBlink, mBlink, fBlink) |
16:17:02 | fowl | whospal, also there is a mechanism for using alternative syntaxes, you just have to write a parser |
16:17:21 | dom96 | the parenthesis and indentation based syntax don't mix. |
16:17:28 | dom96 | IMO |
16:17:29 | whospal | Er.. think I'm typing too much. |
16:17:32 | whospal | Sorry, |
16:17:44 | whospal | For multi-array... how about: |
16:19:07 | whospal | type TLightTower = array[1..10]: array[n..w] :TBlinkLights |
16:19:47 | dom96 | you're assuming that both arrays will have the same type. |
16:20:28 | whospal | So, Nimrod will check that 'enum' must have a newline? |
16:20:40 | dom96 | I don't see how that syntax makes things clearer tbh |
16:20:52 | dom96 | Not sure, I think it might |
16:21:11 | whospal | er... what is tbh? |
16:21:14 | dom96 | to be honest |
16:21:19 | whospal | haha |
16:21:22 | whospal | i c |
16:21:43 | whospal | too long I've not use IRC to chat... |
16:21:45 | fowl | type TFoo=enum a,b,c works fine |
16:23:41 | whospal | Will play with nimrod more. fowl's suggestion to try the parser is interesting. I'll look into that. |
16:24:33 | whospal | I just start with Tutorial#1. haha... Perhaps will understand Nimrod's design better with Tutorial #2. |
16:25:17 | whospal | So, how many are in the dev team for nimrod? |
16:26:44 | Araq | ping Varriount, dom96 |
16:26:53 | dom96 | Araq: sup |
16:27:01 | dom96 | whospal: 3 I guess |
16:27:13 | Araq | talk with Varriount, he likes to setup a windows tester |
16:27:15 | whospal | Wow. |
16:27:37 | dom96 | Araq: I know, I think he's AFK. |
16:27:50 | whospal | 3 only. Golang seems to have 6 or more as the core team? |
16:29:29 | dom96 | Yes, Golang also has Google behind it... |
16:29:38 | whospal | Admire all the good effort. Got to go. Nice chatting with you guys. Thanks for the responses. |
16:30:18 | Araq | and |
16:30:27 | Araq | we're doing it on our spare time |
16:30:57 | whospal | I like python. Very easy to pick up. But for big project, it's slow to start up. :( That's why I look into Golang. |
16:31:17 | whospal | Cool! You guys rocks! |
16:31:41 | whospal | Really got to go. Passed midnight... got to zzz. |
16:31:45 | whospal | Bye! |
16:31:49 | dom96 | bye whospal |
16:32:07 | * | whospal quit (Quit: irc2go) |
16:33:47 | * | DAddYE joined #nimrod |
16:35:56 | * | gdos joined #nimrod |
16:40:11 | Varriount | Is there any specific method to running the nimrod compiler tests? The method I'm using seems to show quite a lot of test errors... |
16:40:46 | Araq | koch tests |
16:41:12 | Araq | runs the test suite |
16:56:14 | * | gdos quit (Read error: Connection reset by peer) |
16:57:44 | Varriount | Hm, is the pcre.dll included with Nimrod built for 32, or 64 bit machines |
16:59:06 | Araq | 32 bits |
17:03:08 | * | gdos joined #nimrod |
17:04:30 | * | brson joined #nimrod |
17:36:14 | Varriount | Wow, the test program is actually making use of multiple cores. That's a surprise for me. |
17:38:04 | Araq | it doesn't, the compiler itself does |
17:47:04 | * | Varriount gives a cookie to Araq |
17:47:48 | Araq | er ... thanks. I guess |
17:51:19 | * | Varriount quit (Ping timeout: 250 seconds) |
18:00:45 | fowl | twist: its a tracking cookie |
18:04:04 | Araq | hey fowl |
18:04:59 | Araq | how's that kick-ass 3d engine doing? |
18:06:02 | fowl | not well |
18:08:47 | Araq | aww why not |
18:11:22 | * | d34th quit (Quit: Deleted System32) |
18:11:29 | * | cablehead joined #nimrod |
18:11:33 | * | cablehead quit (Remote host closed the connection) |
18:11:49 | * | cablehead joined #nimrod |
18:12:18 | dom96 | hello cablehead |
18:12:49 | Araq | hi cablehead welcome |
18:12:49 | cablehead | hi dom96 |
18:14:18 | cablehead | Hi Araq, you've created an amazing thing |
18:14:46 | Araq | yeah and the best parts are not even documented nor implemented :P |
18:16:35 | cablehead | what are your thoughts on getting Nimrod to critical mass? |
18:16:50 | cablehead | are there small ways user's can help out? |
18:17:31 | Araq | well finding and fixing bugs in particular is desperately needed |
18:18:16 | Araq | unfortunately not many are able to dig into the compiler's source code |
18:19:35 | Araq | what's really needed to get critical mass is commercial support tbh |
18:19:51 | Araq | 3 guys working on it in their spare time hardly cuts it |
18:19:56 | fowl | Araq, i need to take some math classes or something, learn matrix math and stuff like that |
18:22:46 | Araq | fowl: nah you only have to translate ~300K LOC of C++ into Nimrod ;-) |
18:23:14 | fowl | that sounds a lot easier |
18:23:19 | fowl | what project is that |
18:23:25 | dom96 | all you need is wikipedia |
18:23:27 | Araq | we have c++2nim now |
18:23:39 | Araq | but it's still called c2nim |
18:23:50 | fowl | neat |
18:24:27 | cablehead | Araq: is there much commercial interest? We'd be very interesting in switch from Go to Nimrod here, but yeah, it's daunting that if you guys disappear, the project would stall |
18:26:41 | Araq | fortunately there is some interest, yes |
18:39:34 | dom96 | cablehead: Nice to hear that you are interested in Nimrod. I'm sure if you hired the core devs then the project would not stall :P |
18:41:44 | gurug33k | lol |
18:49:39 | fowl | Araq, what c++ project were you talking about |
18:50:00 | fowl | i cant think of anything to write, so porting sounds doable --_- |
18:50:13 | Araq | "source" engine? doom 3's engine? I dunno |
18:51:52 | Araq | just start the project in nimrod and reddit it |
18:52:10 | Araq | and soon you'll have all the fame and lots of contributors |
18:53:04 | fowl | h8 reddit |
18:56:54 | * | [1]Endy joined #nimrod |
18:57:14 | * | Endy quit (Ping timeout: 264 seconds) |
18:57:14 | * | [1]Endy is now known as Endy |
19:10:34 | dom96 | cablehead: Out of curiosity why are you thinking of leaving Go? |
19:10:55 | cablehead | dom96: have you spent much time with Go? |
19:11:05 | dom96 | not really |
19:11:06 | cablehead | just trying to gauge where to pitch the answer |
19:12:06 | cablehead | Also, just double checking, does Nimrod allow optional manual memory management? |
19:14:17 | fowl | yes |
19:15:08 | cablehead | Soo yeah, I think it was a mistake for Go not to allow manual memory management, and in addition to that, it's GC is a mess |
19:15:32 | cablehead | It's hard to describe just why, but coding in Go is constantly slow and awkward |
19:15:47 | cablehead | kind of like working with lego pieces that don't quite fit together |
19:15:50 | dom96 | oh, I wasn't aware that Go does not allow manual memory management. |
19:17:05 | cablehead | the tools it gives to compose libraries are good in theory.. but in practice, it's hard to libs to abstract away tedious repetitive code |
19:17:14 | cablehead | *hard to create |
19:17:27 | orbitz | interesting since the crazy on the nets is how writingin Go is quick and unawkward |
19:17:31 | cablehead | 50% of go code is if err != nil |
19:17:33 | cablehead | { |
19:17:48 | orbitz | error handling in Go seems pretty abysmal |
19:18:10 | cablehead | encouraging c style immediate checking of errors is good for system code |
19:18:31 | cablehead | but it's really tedious a lot of the time, and not always safer |
19:18:59 | orbitz | I think yo udon't want to encourage, you want to enforce |
19:19:13 | orbitz | Which would be rather easy if Go had ADTs |
19:19:15 | dom96 | That has been my prediction when I first saw Go's error handling, that most of the code would just be checking the return values of each function. |
19:19:26 | * | Endy quit (Ping timeout: 264 seconds) |
19:19:29 | dom96 | or just ignoring the return value which sounds much worse. |
19:19:33 | orbitz | heh yes |
19:20:05 | orbitz | In my ocaml code i have an error monad that gives exception-like flow but gives me typechecking on handler errors |
19:20:11 | cablehead | dom96: yeah, there's a lot of juggling variables just to continually track error handling |
19:24:04 | Araq | cablehead: we not only have exception handling but also "exception tracking" so the compiler can prove for you you didn't miss to handle an exception. best of all worlds imo. |
19:27:40 | cablehead | Araq: yes, it's really nice |
19:38:19 | * | Endy joined #nimrod |
19:50:46 | cablehead | What's Nimrods outlook on green threads or coroutines? |
19:51:24 | cablehead | Quickly skimming, I got the impression they might already be provided by Nimrod's iterators? |
19:51:49 | Araq | yeah that are misnomed as "closure iterators" |
19:52:08 | Araq | and are the base for nimrod's new async stuff that's quite like C#'s |
19:53:47 | cablehead | interesting .. I was thinking about composing them into a mini-framework with scheduling etc, that might look familiar for say gevent users, as a weekend project |
19:54:55 | cablehead | if it makes sense to use "closure iterators" in that way? |
19:56:27 | Araq | the manual has an example that does that |
19:56:52 | Araq | unfortunately it turned out closure iterators are the buggiest feature of 0.9.2 and I still haven't found the time to fix them |
19:58:03 | cablehead | gotcha |
19:58:47 | * | d34th joined #nimrod |
20:07:28 | * | Endy quit (Ping timeout: 240 seconds) |
20:26:58 | * | Endy joined #nimrod |
20:28:08 | * | fowl quit (Ping timeout: 256 seconds) |
20:35:06 | * | Endy quit (Ping timeout: 252 seconds) |
20:41:29 | * | fowl joined #nimrod |
20:54:40 | * | wlhlm quit (Ping timeout: 260 seconds) |
21:05:35 | * | Boscop quit (Read error: Connection reset by peer) |
21:05:54 | * | Boscop joined #nimrod |
21:24:51 | * | comex is now known as dumbledore |
21:49:05 | cablehead | sorry, super basic question, is there a power operator? e.g. 2^3 or 2**3 ? |
21:49:49 | dom96 | math.pow: http://build.nimrod-code.org/docs/math.html#134 |
21:50:05 | dom96 | I don't think an operator has been added yet |
21:51:11 | Araq | template `^`*(a, b: expr): expr = pow(a, b) |
21:51:30 | Araq | template `**`*(a, b: expr): expr = pow(a, b) |
21:51:56 | cablehead | thanks |
21:53:42 | * | Demos_ joined #nimrod |
21:54:43 | Demos_ | I have proc foo[A](e: bar) : var A and the compiler just says "cannot instantiate 'A'" if I remove var it works, anthing I should be aware of |
21:55:23 | Araq | Demos_: the current implementation GCs seqs, but since they too have value semantics there is no need for that; so I'd simply relax and wait until they are optimized more |
21:56:40 | Araq | Demos_: do you instantiate explicitly via foo[int](x) ? |
21:58:24 | Demos_ | that was ... interesting timing ... but thanks! |
21:59:59 | Araq | maybe I read the logs |
22:02:37 | Demos_ | I am instanciateing as ent.foo[int] which come to think of it, looks a lot like an array access |
22:03:34 | fowl | cant use dot notation with explicit instantiation |
22:03:46 | Demos_ | ahhhh, allright |
22:06:57 | cablehead | if I wanted a version of pow that worked with ints, instead of floats, what would be the best approach to take? |
22:07:01 | cablehead | e.g. proc pow*(x, y: int): int |
22:10:34 | Araq | proc pow(a, b: int): int = |
22:10:35 | Araq | var a = a |
22:10:37 | Araq | var b = b |
22:10:38 | Araq | result = 1 |
22:10:40 | Araq | while true: |
22:10:41 | Araq | if (b and 1) == 1: |
22:10:43 | Araq | result *= a |
22:10:44 | Araq | b = b shr 1 |
22:10:46 | Araq | if b == 0: break |
22:10:47 | Araq | a *= a |
22:11:20 | Araq | there are better algorithms iirc but I'd go with this one |
22:12:01 | dom96 | how about just reusing the float version? proc pow(x, y: int): int = pow(x.float, y.float).int |
22:13:03 | cablehead | template `^`*(a, b: expr): expr = math.pow(a.float, b.float).int |
22:13:11 | cablehead | had no joy with ^^ |
22:13:20 | cablehead | rror: constant expression expected |
22:14:07 | dom96 | Works for me. |
22:15:13 | * | dumbledore is now known as comex |
22:15:18 | dom96 | How are you using it? |
22:15:46 | * | Amrykid quit (Changing host) |
22:15:46 | * | Amrykid joined #nimrod |
22:16:15 | cablehead | https://gist.github.com/cablehead/e18bf5cb2ae25d147802 |
22:16:24 | Araq | dom96: reusing the float version seems like a bad idea |
22:17:15 | Araq | cablehead: well for "const" you request compile time evaluation |
22:17:35 | Araq | and guess what "math.pow" is a thin C wrapper which the compiler cannot evaluate at compile time |
22:17:47 | cablehead | oops, sorry, that shouldn't have been a const |
22:17:54 | cablehead | sorry, undo buffer when awry |
22:17:55 | Araq | unless perhaps with -d:useFFI |
22:20:16 | Demos_ | wait if I have proc foo[A](e: bar) : var A can I just implicitly instanciate it based on the return type? |
22:20:25 | Demos_ | I will try it |
22:20:43 | Araq | you can't |
22:20:47 | Demos_ | :( |
22:20:56 | Araq | there is 'auto' for return types though |
22:21:10 | Demos_ | yeah, but I know the return type |
22:21:27 | Demos_ | presumably you can overload on the return type though |
22:21:56 | Demos_ | sometimes I miss teh haskellz |
22:22:02 | Araq | no you can't |
22:22:07 | Araq | it's often requested |
22:22:15 | Araq | but won't happen before 1.0 |
22:22:18 | Araq | is out |
22:22:51 | Demos_ | oh, I figured that discard was kinda designed for that |
22:23:51 | * | OrionPK joined #nimrod |
22:24:24 | Araq | discard was designed to annoy "omg I need to chain everywhere" c++ users |
22:25:19 | Demos_ | chaining becomes pretty pointless with names params though |
22:25:23 | Demos_ | and macros |
22:25:54 | Demos_ | hm I figured it was to prevent people from ignoring error codes and to enable overloading on return values |
22:26:18 | Araq | actually it's here to prevent bugs |
22:26:23 | Araq | and it does |
22:27:10 | Araq | even though rndbit doesn't believe it |
22:27:35 | Demos_ | well yeah the error codes, still return value overloading would be a neat little perk |
22:29:00 | Araq | for instance recently I typed a == 3 instead of a = 3 and got an error "value needs to be discarded" |
22:29:39 | Araq | it's not only about you shouldn't ignore error codes |
22:49:10 | fowl | xlib.nim doesnt compile with -d:macros |
22:49:45 | Araq | fowl: then fix it |
22:49:51 | fowl | i am |
22:49:55 | fowl | but its a lot of work just so u know |
22:50:03 | * | Varriount joined #nimrod |
22:54:50 | Araq | while you're at it, change the MACROS name into something more meaningful |
22:54:53 | Araq | please |
22:55:07 | Araq | it's confusing |
22:57:25 | Araq | good night |
22:57:35 | fowl | can i just remove it since it comes with xlib and used a lot in X11 code |
22:58:05 | fowl | good night |
23:00:25 | Araq | yeah removing it is fine with me |
23:00:27 | Araq | bye |
23:01:44 | fowl | ciao |
23:02:06 | Varriount | Under what circumstances would the creation of an AsyncSocket fail? |
23:04:10 | fowl | Varriount, dom96 is the asyncio guy |
23:04:28 | Varriount | And he's asleep -_- |
23:04:51 | Varriount | Grr, I have a love/hate relationship with Windows. |
23:06:19 | * | Demos_ quit (Ping timeout: 268 seconds) |
23:07:28 | * | io2 quit () |
23:08:45 | cablehead | it feels a little weird to use and, or etc for bitwise operations |
23:08:52 | cablehead | instead of | & |
23:09:21 | fowl | weird as typing shr/shl instead of >>/<< |
23:09:29 | cablehead | yes |
23:09:41 | cablehead | and shr/shl are weird too :) |
23:18:02 | * | Demos_ joined #nimrod |
23:19:00 | Varriount | cablehead, you could always make aliases, like `<<<' and '>>>' |
23:21:24 | fowl | ugh this needs pointer arithmetic |
23:22:56 | * | q66 quit (Quit: Leaving) |
23:25:45 | cablehead | Varriount: I'm concerned if aliasing is encouraged, there will wind up being a ton of ways to do everything |
23:29:06 | Varriount | True |
23:30:28 | Varriount | Part of Nimrod I find really fascinating is the fact that there is little distinction between 'methods' and 'functions', eg, functions bound to a class, vs functions not bound to a class |
23:31:04 | cablehead | Yeah, that's really nice |
23:32:21 | * | Demos_ quit (Ping timeout: 248 seconds) |
23:34:24 | * | Demos_ joined #nimrod |
23:43:21 | * | Demos_ quit (Ping timeout: 245 seconds) |
23:46:49 | fowl | Varriount, methods are not bound, they are functions which use multiple dispatch |
23:47:51 | fowl | if you want bound methods you can use a vtable pattern like streams.nim uses |
23:48:40 | Varriount | fowl, what I mean is, "Hello".len() and len("Hello") are the same. |
23:49:51 | fowl | oh |
23:49:58 | fowl | you dont need the empty ()s btw |
23:51:54 | Varriount | I know. But the Python/Java in me demands I must. |