00:02:15 | * | alex_hoola joined #nimrod |
00:05:48 | * | Ricky_Ricardo joined #nimrod |
00:07:57 | * | zezba9000 joined #nimrod |
00:14:59 | * | DAddYE joined #nimrod |
00:15:21 | * | Ricky_Ricardo quit (Quit: laptop[lid].close) |
00:19:26 | * | DAddYE quit (Ping timeout: 264 seconds) |
00:25:08 | * | CarpNet quit (Quit: Leaving) |
00:27:18 | * | xenagi joined #nimrod |
00:27:33 | * | zezba9000 left #nimrod (#nimrod) |
00:44:00 | Varriount | Yay! I got the nimrod compiler to partially accept lambdas with implicit types. Now just the body of the lambdas remain. |
00:48:57 | filwit | nice |
01:46:48 | * | Dirkson quit (Quit: Cheers!) |
01:55:37 | * | fowl quit (Quit: Leaving) |
01:57:52 | * | OrionPK quit (Read error: Connection reset by peer) |
01:59:44 | * | filwit quit (Quit: Leaving) |
02:16:36 | BitPuffin | probably time to sleep now |
02:16:39 | BitPuffin | goodnight y'all! |
02:21:03 | Varriount | Goodnight BitPuffin |
02:22:47 | * | BitPuffin quit (Ping timeout: 272 seconds) |
03:14:13 | Varriount | I'm.. flummoxed. Up until now, I've been under the impression that, though implicit generic lambdas aren't working, *explicit* generic lambdas did work. Now, I find that those either don't work, or aren't implemented yet. |
03:15:13 | Varriount | So, what's the deal - are generic lambdas of any kind implemented? Are they planned to be implemented? |
04:27:12 | Varriount | And now I know that I can't have parameters with procedure types lacking parameter *names*. Lovely. |
04:51:53 | * | LoneTech quit (Ping timeout: 272 seconds) |
05:36:07 | * | mflamer joined #nimrod |
05:36:44 | * | mflamer quit (Remote host closed the connection) |
08:12:48 | * | mflamer joined #nimrod |
08:13:44 | * | Jackneill joined #nimrod |
08:21:18 | * | Jackneill quit (Ping timeout: 244 seconds) |
08:21:42 | * | Jackneill joined #nimrod |
08:27:16 | * | xenagi quit (Quit: Leaving) |
09:08:07 | * | mflamer quit (Ping timeout: 272 seconds) |
10:30:57 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
12:22:14 | * | mkb quit (Ping timeout: 240 seconds) |
12:22:35 | * | mkb joined #nimrod |
13:05:21 | * | EXetoC joined #nimrod |
13:09:05 | * | BitPuffin joined #nimrod |
13:09:33 | BitPuffin | gooooood moooorning! |
13:12:21 | * | fredmorcos joined #nimrod |
13:12:38 | * | brson joined #nimrod |
13:17:09 | * | enurlyx joined #nimrod |
13:26:45 | dom96 | hellooo |
13:30:04 | * | Endy joined #nimrod |
13:31:19 | BitPuffin | wassup dom diddely dom96! |
13:31:22 | BitPuffin | ? |
13:32:25 | dom96 | Life sucks. Done no programming over the weekend and still have homework to do :\ |
13:33:08 | dom96 | How's the compiler bug fixing going? |
13:34:12 | BitPuffin | dom96: been working on my website instead |
13:34:28 | dom96 | how's that going? |
13:34:39 | BitPuffin | I handed the bug code over to xenagi |
13:34:49 | BitPuffin | dom96: it went well yesterday and the day before that |
13:34:58 | BitPuffin | dom96: haven't started today yet :D |
13:35:08 | dom96 | Also, what's happened. We were in the region of ~55 users, now we're below 50 :( |
13:35:22 | BitPuffin | dom96: not enough new nimrod coverage? |
13:35:31 | dom96 | perhaps. |
13:35:44 | BitPuffin | I'm gonna try and provide the weekly nimrod article this coming week |
13:36:01 | BitPuffin | if I manage to get the website done |
13:36:09 | BitPuffin | I'm a bit worried about the timescape of the design |
13:36:14 | BitPuffin | I have big impressive plans |
13:36:29 | dom96 | hrm |
13:36:40 | dom96 | perhaps we should make a pact to create an article every week. |
13:36:48 | BitPuffin | dom96: we really should |
13:36:49 | dom96 | To keep the public interested. |
13:37:27 | BitPuffin | dom96: all we need to do is to make sure that enough people are working on interesting stuff so that they can write about a nimrod moment of the work once a week |
13:37:33 | dom96 | logicchains is creating a new benchmark so I will create a Nimrod version hopefully soon: https://github.com/logicchains/ParticleBench |
13:37:36 | BitPuffin | I mean that someone has something interesting to talk about |
13:37:39 | BitPuffin | once a week |
13:37:42 | BitPuffin | not everyone |
13:38:00 | BitPuffin | Like I might be able to just talk about how nice it was to write the website in nimrod first |
13:38:04 | dom96 | yeah. |
13:38:10 | BitPuffin | then the next week I release a new version of linagl and write about that |
13:38:27 | dom96 | Well I could write a blog post about the release of babel. |
13:38:28 | BitPuffin | and then maybe the week after that you finish optimizing the async webserver so you write about it |
13:38:34 | dom96 | But that's not that interesting I guess. |
13:38:58 | BitPuffin | and then the next week maybe Araq writes about that thing someone mentioned the other day |
13:39:02 | BitPuffin | dom96: it is! |
13:39:21 | * | brson quit (Ping timeout: 245 seconds) |
13:39:23 | BitPuffin | it's not gonna be interesting if all we write is nimrod has these awesome features bla bla bla |
13:39:29 | BitPuffin | I mean it is |
13:39:33 | BitPuffin | but iot over and over agoin |
13:39:37 | BitPuffin | agoin lol |
13:39:41 | BitPuffin | not* |
13:40:04 | BitPuffin | so it's more interesting if we write about stuff we made and how nimrod made it awesome and the awesome stuff you can do with it |
13:40:33 | BitPuffin | like in the case of linagl I can just give an overview of how you can use it and how nice nimrod makes it |
13:40:39 | dom96 | Yeah, I was thinking about creating a pattern matching macro and then talking about that. |
13:40:46 | BitPuffin | do it! |
13:40:48 | dom96 | but then somebody else is doing that I guess? |
13:40:53 | BitPuffin | although I've planned to do that |
13:40:55 | BitPuffin | :P |
13:41:02 | BitPuffin | but if I don't come around to it it's nice if you do it |
13:41:12 | * | brson joined #nimrod |
13:41:34 | BitPuffin | I wanna create an fp library which has pattern matching, partial function application etc |
13:42:23 | dom96 | I tried creating that nice lambda syntax, but compiler bugs sadly stopped me. |
13:42:32 | BitPuffin | :/ |
13:42:40 | BitPuffin | yeah we really need to fix bugs |
13:42:41 | EXetoC | \(...)? |
13:42:56 | dom96 | EXetoC: kinda |
13:43:07 | dom96 | EXetoC: I ended up with a different syntax |
13:43:10 | BitPuffin | But what makes sense for me is to spend time on the projects I have during my spare time |
13:43:24 | BitPuffin | so like writing my website(s) and game |
13:43:39 | BitPuffin | plus that gives me more to write about than fixing bugs :) |
13:45:31 | BitPuffin | and takes me further in my carreer |
13:45:36 | BitPuffin | but yeah |
13:46:00 | BitPuffin | when I've released the game I'm gonna work full time on fixing bugs for a week or two I think |
13:46:13 | BitPuffin | and possibly donate some of the income if any |
13:48:02 | dom96 | cool |
13:50:34 | BitPuffin | dom96: but you don't have anything to write about that we could put out like today no? |
13:50:42 | BitPuffin | just to have something |
13:51:13 | * | CarpNet joined #nimrod |
13:51:40 | dom96 | BitPuffin: nope :\ |
13:52:29 | BitPuffin | I wonder if gradha maybe has something |
13:52:35 | BitPuffin | we all need blogs xD |
13:52:59 | BitPuffin | EXetoC: git yourself a blog and write nao |
13:53:16 | BitPuffin | write a tutorial for your glfw3 wrapper or something |
13:53:46 | EXetoC | good idea |
13:53:56 | dom96 | I should write a quick template for ipsum genera so that people can write blogs quickly. |
13:54:42 | BitPuffin | dom96: do it nao |
13:54:48 | BitPuffin | NAO GUIZE!! |
13:55:14 | BitPuffin | EXetoC: do it gradha style and do exetoc.github.io or something :P |
13:55:40 | * | brson quit (Quit: leaving) |
13:56:57 | * | Araq0 joined #nimrod |
13:58:24 | Araq0 | Hi. I am only here to say i ve no internet for a couple of days |
13:58:54 | Araq0 | So ... i am not dead |
13:59:07 | dom96 | Araq0: :( |
14:00:21 | Araq0 | The advantage is that i ve a bit more time this way :-p |
14:00:43 | dom96 | Why not use your mobile internet? :P |
14:00:49 | Araq0 | The net is distracting |
14:01:10 | EXetoC | no kidding |
14:02:23 | EXetoC | have fun |
14:02:33 | Araq0 | Fyi with a bit of luck drdobbs will publish an article abut nim |
14:03:25 | Araq0 | Wich is no secondary source either as its written by me |
14:03:44 | Araq0 | Wiki surely is absurd |
14:05:40 | dom96 | Araq0: Have you got a deadline for that yet? |
14:05:57 | Araq0 | Dec the first |
14:06:29 | dom96 | cool |
14:06:36 | Araq0 | But i might finish it tonight :-p |
14:07:05 | dom96 | great, will they publish it earlier if you send it to them earlier? |
14:07:28 | Araq0 | Highly unlikely |
14:08:08 | * | Ricky_Ricardo joined #nimrod |
14:09:14 | * | gradha joined #nimrod |
14:12:04 | gradha | Araq0: ask if drdobbs needs kpop articles, I have one about brutal violence against crippled men in the pipeline |
14:12:19 | gradha | s/crippled/disabled/ |
14:15:38 | Araq0 | Gradha: creepy. Are you tracking this channel? |
14:16:01 | gradha | of course |
14:16:10 | gradha | dom96: I'm going to presume you format your source code to 80 column width |
14:16:24 | dom96 | gradha: Yep |
14:16:36 | dom96 | Otherwise Araq bullies me. |
14:16:51 | Araq0 | Hey |
14:16:56 | gradha | good, you made seven mistakes in babel.nim |
14:17:34 | Araq0 | I never bully you. All i do is to give you hints |
14:17:42 | dom96 | Araq0: I kid :P |
14:17:50 | Araq0 | And suggestions |
14:18:23 | dom96 | gradha: Sometimes I just don't care to format it properly. |
14:18:48 | Araq0 | BYe |
14:18:59 | gradha | BYe |
14:19:04 | dom96 | ByE |
14:20:32 | * | [1]Endy joined #nimrod |
14:22:28 | dom96 | Pyret looks interesting. |
14:22:39 | gradha | hah |
14:23:12 | gradha | AFAICS it's dynamic types |
14:23:20 | * | Endy quit (Ping timeout: 245 seconds) |
14:23:20 | * | [1]Endy is now known as Endy |
14:23:22 | BitPuffin | Araq0: good thing git works offline then :D |
14:24:04 | dom96 | gradha: it looks like there is optional static typing |
14:24:09 | gradha | I've been eyeing offline issue trackers until you realize offline issue trackers are more pain than gain, plus it's precisely the kind of thing you need centralized |
14:24:22 | gradha | dom96: it looks like cython only prettier or better integrated |
14:25:26 | gradha | dom96: in a way this may be the future of programming for the masses: easy to write software, with optional boosts of performance where needed |
14:26:00 | BitPuffin | gradha: you mean nimrod or cython? |
14:26:24 | gradha | BitPuffin: cython, pyret, and derivatives where types are "optional hints", because otherwise they are all dynamic |
14:26:26 | BitPuffin | EXetoC: are you wriiiitiiiing?? D:< :D |
14:27:18 | gradha | cython is good, but a pain to set up, and is sort of "not officially supported", so pyret improves on that |
14:28:28 | dom96 | it's odd that they decided to adopt 'end' from Ruby. |
14:29:21 | gradha | what's odd is that they don't seem to support any form of concurrency, which makes it a dead language from the beginning |
14:29:28 | BitPuffin | yap |
14:29:33 | gradha | no example in the web page, no mention in the documentation |
14:30:18 | dom96 | All they really show is the syntax, nothing about the implementation or at least I can't see anything. |
14:30:28 | * | dom96 is just skimming the text though |
14:32:15 | gradha | it strikes me as a great omission they want this language for teaching, and there's no teaching of anything asynchronous |
14:33:02 | dom96 | I like their map/filter/fold example |
14:33:24 | dom96 | Now I know why Araq says they should be templates in Nimrod |
14:40:10 | * | Ricky_Ricardo quit (Quit: Ricky_Ricardo) |
14:41:06 | * | [1]Endy joined #nimrod |
14:43:09 | BitPuffin | EXetoC: I take the silence as a yes. Keep going! :D |
14:44:52 | * | Endy quit (Ping timeout: 264 seconds) |
14:44:52 | * | [1]Endy is now known as Endy |
14:45:13 | * | gradha reaches infinite, and beyond |
14:46:51 | * | dymk quit (Ping timeout: 245 seconds) |
14:50:31 | * | fredmorcos quit (Quit: Leaving) |
14:52:12 | BitPuffin | gradha lightyear |
14:53:00 | Varriount | Meep. |
14:54:19 | dom96 | To infinity and beyond! |
14:55:22 | gradha | oh, nimrod doesn't support else: after a for |
14:57:25 | * | dymk joined #nimrod |
15:00:06 | * | [1]Endy joined #nimrod |
15:03:33 | * | Endy quit (Ping timeout: 252 seconds) |
15:03:34 | * | [1]Endy is now known as Endy |
15:07:15 | gradha | there's fnmatch and glob in the posix module, there is an equivalent on windows? |
15:08:15 | gradha | oh, os.walkFiles seems to do this |
15:10:16 | Varriount | Would anyone here be opposed to making 'auto' explicitly needed in implicit generics? |
15:10:39 | * | Varriount is getting annoyed with syntax errors being masked by implicit generic errors |
15:11:25 | * | gradha wonders what explicit implicit generics are |
15:11:59 | Varriount | Better than entirely implicit generics |
15:12:48 | gradha | now you have seq[type], a generic isn't seq[T]? |
15:13:37 | dom96 | Varriount: You mean for proc params? |
15:13:42 | BitPuffin | Varriount: pretty sure auto is already needed |
15:13:43 | Varriount | dom96, yes |
15:13:49 | Varriount | BitPuffin, no it isn't. |
15:13:53 | dom96 | BitPuffin: It's not for proc params. |
15:13:56 | BitPuffin | oh you mean inside the () |
15:14:04 | BitPuffin | well I don't think we should have auto |
15:14:15 | Varriount | dom96, look at the ticket I opened yesterday/last night |
15:14:35 | dom96 | Having to write proc (x,y,z: auto) seems like unnecessary boilerplate. |
15:14:40 | BitPuffin | I don't see how proc(a: auto, b): auto = |
15:14:56 | BitPuffin | is any better than proc(a; b: foo): auto = |
15:14:59 | dom96 | But I'm not sure what the problem is so perhaps it makes implementation considerably easier. |
15:15:04 | BitPuffin | imagine that I put foo on b on the first one |
15:15:04 | Varriount | If nothing else, 'auto' should need to be in their somewhere |
15:15:36 | BitPuffin | dom96: I don't see how auto makes the implementation significantly easier |
15:16:35 | Varriount | BitPuffin, look at this -> proc foo[iT, rT](filter: proc (rT):bool, iter:iT): rT |
15:16:38 | BitPuffin | auto makes sense in the return type because no return type means nothing is returned |
15:16:49 | Varriount | Can you spot the error? |
15:17:31 | BitPuffin | Varriount: maybe |
15:17:50 | BitPuffin | rT is in the parameters for the proc |
15:17:53 | BitPuffin | which is weird |
15:18:02 | BitPuffin | should be proc(a: rT): bool |
15:18:25 | Varriount | BitPuffin, and what kind of error would you expect that to throw? |
15:18:33 | dom96 | In that case you should look at the generic types of `foo` |
15:18:53 | dom96 | it's ambiguous so ambiguous error |
15:19:02 | Varriount | dom96, Nope! |
15:19:12 | BitPuffin | Varriount: invalid parameter name etc. But you get a different error, but that's not just because of implicit generics |
15:19:33 | BitPuffin | I've done explicit generics and gotten weird errors because I accidentally named a parameter the same thing as the proc name for example |
15:19:44 | Varriount | BitPuffin, nimrod currently tries to process that as an implcit generic |
15:20:02 | BitPuffin | Varriount: which part? |
15:20:06 | dom96 | Varriount: Why not? |
15:20:16 | Varriount | The proc type |
15:20:39 | dom96 | or do you just mean that it doesn't throw that error but that it should? |
15:20:45 | Varriount | filter: proc(rT):bool crashes the compiler because its an implicit generics. |
15:20:52 | BitPuffin | okay, but it's not like it is valid code anyway :P |
15:21:23 | BitPuffin | the compiler should just give a better error message |
15:21:28 | * | [1]Endy joined #nimrod |
15:21:29 | BitPuffin | it's not the syntax that is the problem |
15:21:37 | BitPuffin | it's the error message and code |
15:22:08 | Varriount | BitPuffin, I just dislike that allowing implicit generics *everywhere* causes, even in the best cases, wierd errors |
15:22:24 | BitPuffin | and having to put auto is a much greater loss I think than just avoiding that which is clearly the programmer's fault |
15:22:42 | BitPuffin | it isn't allowed everywhere |
15:22:59 | Varriount | Well, I want to make auto needed somewhere. |
15:23:22 | gradha | can somebody on windows please run https://gist.github.com/gradha/7399445 and see if it works and does anything useful? |
15:23:23 | BitPuffin | it is allowed in variable declarations and parameters |
15:23:31 | BitPuffin | Varriount: it is needed somewhere already |
15:23:37 | BitPuffin | Varriount: and that is in procedure return type |
15:23:47 | gradha | I need to know if walkFiles under windows works with a meta character replacing a directory component |
15:24:57 | * | Endy quit (Ping timeout: 272 seconds) |
15:24:58 | * | [1]Endy is now known as Endy |
15:25:00 | BitPuffin | Varriount: if we were gonna fix the compiler's ugly errors by making changes to the language the language would be horribly ugly |
15:32:06 | BitPuffin | I think the fact that we can write a proc that looks like proc foo(a, b): auto = and have it work for any type the body is valid for is very elegant |
15:33:17 | BitPuffin | and I guess that with some analysis of the body one could even remove the auto of the proc. But I kind of like having it there because you know just by looking at the signature that it returns something |
15:35:53 | EXetoC | yeah |
15:38:29 | EXetoC | dom96: so you think that map etc should remain as templates even when we do get user-defined type classes? |
15:39:14 | BitPuffin | I hope we get ADTs in nimrod |
15:39:18 | BitPuffin | that would be sweet |
15:41:59 | * | [1]Endy joined #nimrod |
15:41:59 | EXetoC | turning them into generic functions seems like a natural thing to do at that point |
15:44:37 | * | Endy quit (Ping timeout: 248 seconds) |
15:44:38 | * | [1]Endy is now known as Endy |
15:47:18 | * | [1]Endy joined #nimrod |
15:50:55 | * | Endy quit (Ping timeout: 272 seconds) |
15:50:56 | * | [1]Endy is now known as Endy |
16:06:27 | * | mflamer joined #nimrod |
16:06:41 | * | xenagi joined #nimrod |
16:13:57 | Varriount | BitPuffin, in any case, I still believe that making 'auto' as the return type should be mandatory. |
16:14:25 | Varriount | Currently it isn't. |
16:15:26 | * | [1]Endy joined #nimrod |
16:18:43 | * | Endy quit (Ping timeout: 252 seconds) |
16:18:43 | * | [1]Endy is now known as Endy |
16:19:10 | dom96 | Varriount: it is |
16:20:24 | * | Varriount points to the above code snippet |
16:21:02 | dom96 | hrm? which one? |
16:21:27 | Varriount | proc foo[iT, rT](filter: proc (rT):bool, iter:iT): rT |
16:22:25 | Varriount | If you look at the traceback that code snippet throws when compiled with a body, you will find that it breaks on the implicit generic type generation |
16:22:27 | dom96 | That has nothing to do with "'auto' as the return type" |
16:23:09 | dom96 | Specifying 'auto' for the return type is mandatory, otherwise the type is 'void' i.e. no return type. |
16:25:19 | Varriount | dom96, as I said, it does. The filter parameter above is being treated as an implicit generic type. |
16:26:14 | dom96 | yes, but that's because the *param* of the proc is implicitly generic. |
16:26:42 | Varriount | dom96, despite the fact that auto is not the return type, bool is. |
16:27:22 | dom96 | Are you saying that the compiler incorrectly assumes that the return type of that proc is 'auto' not 'bool'? |
16:27:51 | Varriount | Either that, or it's not checking the return type at the right time, if at all. |
16:31:13 | Varriount | dom96, do you actually know where the compiler checks for auto? |
16:31:43 | dom96 | nope sorry |
16:34:25 | * | [1]Endy joined #nimrod |
16:37:09 | * | mflamer quit (Ping timeout: 272 seconds) |
16:43:21 | * | Endy quit (Ping timeout: 264 seconds) |
16:43:21 | * | [1]Endy is now known as Endy |
16:43:22 | * | OrionPK joined #nimrod |
16:53:04 | * | [1]Endy joined #nimrod |
16:55:12 | * | fredmorcos joined #nimrod |
16:56:26 | * | Endy quit (Ping timeout: 244 seconds) |
16:56:26 | * | [1]Endy is now known as Endy |
17:01:10 | * | fredmorcos quit (Read error: Operation timed out) |
17:02:35 | * | Araq0 quit (Quit: Bye) |
17:14:13 | * | Endy quit (Ping timeout: 248 seconds) |
17:23:54 | gradha | I've tried to implement comparison of generic sequences but was not able to name the proc cmp https://gist.github.com/gradha/7401114 |
17:24:19 | gradha | I had to rename it to cmpSeq to make it work, the compiler was saying my use of cmp was ambiguos |
17:24:38 | Varriount | Yay! |
17:24:44 | gradha | maybe this is a limitation of generic recursive types? |
17:25:11 | Varriount | Nimrod's generics need.. some work. |
17:28:10 | gradha | there's also the question where you would put it, people dislike system growing, but then, do you put it in sequtils? or algorithm? |
17:28:59 | Varriount | seqUtils |
17:29:16 | gradha | the thing is, you need to import algorithm to use sort |
17:29:49 | Varriount | personally, I don't mind system growing, so much as it just needs to be split into other, implicitly imported, packages. |
17:37:13 | Varriount | Oh my goodness... What have I created... |
17:37:33 | gradha | is it… alive? |
17:37:42 | * | Endy joined #nimrod |
17:38:16 | Varriount | gradha, I somehow made "proc foo(a, b): bool = a>b" work |
17:38:36 | Varriount | while fiddling with type generation stuff in the compiler code |
17:38:48 | Varriount | And it ran |
17:39:00 | gradha | that's only good if it didn't first backstab you |
17:39:11 | Varriount | Like, a compiled executable using that procedure, ran and executed correctly |
17:39:38 | * | enurlyx quit (Ping timeout: 240 seconds) |
17:39:43 | Varriount | O_o |
17:42:23 | Varriount | gradha, I'm scared. |
17:42:58 | Varriount | My change fixed some compiler errors... but I don't know if the change was right. |
17:43:19 | gradha | doesn't nimrod have a test suite? like koch tests? |
17:43:32 | Varriount | Yeah, I'm running it now. |
17:46:25 | * | Varriount misses Araq |
17:52:21 | * | gradha looks up some kpop lyrics and for once they are good |
17:53:32 | * | Varriount works on itertools while waiting for koch-test to finish |
17:57:44 | OrionPK | there any sample code for the json module? |
17:57:57 | gradha | like babel itself, man |
17:58:11 | Varriount | OrionPK, you can look at parts of nimbuild |
17:58:17 | * | [1]Endy joined #nimrod |
17:59:25 | gradha | in case you look up babel, see packageinfo.nim |
18:01:01 | * | Endy quit (Ping timeout: 245 seconds) |
18:01:01 | * | [1]Endy is now known as Endy |
18:02:45 | OrionPK | thanks |
18:03:03 | * | enurlyx joined #nimrod |
18:15:33 | * | Endy quit (Ping timeout: 248 seconds) |
18:21:01 | Varriount | gradha... the results |
18:21:16 | gradha | oh… the results |
18:21:20 | Varriount | It appears that my changes actually made *more* tests pass |
18:21:33 | gradha | quick, ship it! |
18:21:37 | * | enurlyx quit (Quit: ChatZilla 0.9.90.1 [Firefox 25.0/20131025151332]) |
18:21:43 | dom96 | ship ship ship ship |
18:21:51 | gradha | do you have commit access? |
18:21:57 | Varriount | gradha, nope |
18:22:05 | gradha | then you have to bribe dom96 |
18:22:19 | Varriount | dom96, it appears that auto isn't needed for implicit generics |
18:22:37 | gradha | that's a really poor way to start a bribing |
18:22:52 | dom96 | hah |
18:23:10 | Varriount | dom96, I plan to rectify that. |
18:25:33 | dom96 | Does it fix the bug I reported? |
18:26:55 | Varriount | dom96, the one about lambdas? |
18:27:51 | dom96 | yeah i think so |
18:27:56 | dom96 | #641 |
18:28:31 | Varriount | It doesn't crash the compiler anymore, though it does throw an error about an invalid type. |
18:28:37 | Varriount | invalid type: 'proc (GenericParam, GenericParam): auto' |
18:29:32 | Varriount | Which makes sense - explicit generic lambdas aren't implemented yet, much less implicit ones. |
18:30:06 | dom96 | i see, i thought they were. |
18:30:42 | * | fowl joined #nimrod |
18:31:15 | Varriount | dom96, I can see, in theory, how generic lambdas might work. However, I don't believe nimrod has that kind of machinery yet |
18:32:27 | Varriount | They would have to be restricted - the compiler has to evaluate all generics at compile time. |
18:32:43 | Varriount | I have to go, driving my siblings home. |
18:33:54 | rndbit | http://nimrodsailing.blogspot.com/p/nimrod-specification.html |
18:34:44 | gradha | let's reddit that |
18:35:13 | dom96 | awww, I got all excited. |
18:35:17 | dom96 | But it's just about some boat. |
18:36:50 | rndbit | bazinga |
18:37:47 | * | Endy joined #nimrod |
18:48:23 | BitPuffin | Varriount: well if you read what I said I said that auto is and should remain required for return type :P |
18:51:07 | xenagi | I agree |
18:51:38 | BitPuffin | because then we know it does in fact return something |
18:52:04 | dom96 | Read our discussion later |
18:52:09 | dom96 | I don't think he meant that. |
18:53:32 | BitPuffin | ah |
18:53:49 | BitPuffin | well he might be confusing parameter and return type in that case |
18:55:37 | BitPuffin | Varriount: it would be quite easy to find out where the compiler is checking the type probably with the backtrace |
18:57:00 | * | gradha adds a variable named tits to his tests |
18:57:19 | BitPuffin | that's really mature of you gradha :) |
18:57:33 | xenagi | lol gradha |
18:57:38 | gradha | it's also illegal, all of my tits object have an age of 3 |
18:57:51 | xenagi | ...and now it's gross |
18:58:14 | gradha | ok, ok, I'm making all of them 30 and 40 |
19:00:11 | * | Endy quit (Ping timeout: 245 seconds) |
19:00:16 | EXetoC | :E |
19:00:52 | gradha | I don't think I can cmp() anonymous tuples |
19:03:42 | gradha | anybody know why the compiler rejects this sort? https://gist.github.com/gradha/7402320 |
19:03:53 | gradha | the previous line which calls cmp manually works |
19:04:39 | * | BitPuffin throws his pomelo at gradha |
19:04:45 | BitPuffin | EXetoC: how's the writing going? :D |
19:04:48 | fowl | gradha, try cmp[tuple] |
19:05:16 | gradha | ah, violence solves everything, I forgot |
19:05:33 | EXetoC | BitPuffin: I've almost started |
19:06:19 | BitPuffin | EXetoC: sweet |
19:06:29 | BitPuffin | EXetoC: I wanna upvote a nimrod article today on the reddits |
19:06:59 | BitPuffin | and so does dom96! |
19:08:40 | EXetoC | ok the word almost is fairly misleading |
19:08:45 | dom96 | hell yes |
19:09:05 | gradha | no, wait, that's really wrong, nimrod picks a different cmp rather than mine |
19:10:20 | gradha | is there any len(tuple)? can't seem to get the number of fields to iterate over them |
19:10:32 | BitPuffin | EXetoC: the word? |
19:13:45 | gradha | meh, now compiler errors, tuples seem rather picky |
19:14:14 | EXetoC | -word |
19:16:27 | fowl | gradha, i believe there is already a cmp[object|tuple] |
19:16:31 | BitPuffin | EXetoC: o.O |
19:17:03 | gradha | fowl: maybe, it just doesn't work lib/system.nim(743, 7) Error: ambiguous call; both system.==(x: TEnum, y: TEnum): bool and system.==(x: T, y: T): bool match for: (typeclass[tuple], typeclass[tuple]) |
19:17:23 | fowl | shrug |
19:18:57 | gradha | fowl: oh, wait it actually works, but I have to specify the tuple type rather than put a generic tuple type |
19:24:48 | * | markhend joined #nimrod |
19:27:55 | dom96 | hi markhend |
19:30:09 | dom96 | EXetoC: What are you writing about? |
19:35:28 | gradha | and after all the preliminaries I can finally tackle babel |
19:36:10 | EXetoC | dom96: nothing |
19:36:23 | * | dom96 should review gradha's PRs at some point |
19:36:29 | EXetoC | BitPuffin: Sorry for being vague yet again. I said it was a good idea, but I have no idea when I'll get around to it |
19:37:31 | EXetoC | I have some web scraping to do, and then I need to look through nim-glfw3 and maybe fix some things before starting on an article |
19:44:03 | * | gradha right now notices dom96 actually has a version.nim for babel |
19:52:46 | xenagi | speaking as a noob, do generics add significant overhead to the runtime? |
19:53:22 | fowl | xenagi, no |
19:53:23 | EXetoC | it's a compile-time construct |
19:53:24 | gradha | xenagi: are you familiar with C++ templates? |
19:54:12 | fowl | xenagi, if you have foo(x) and you call it for an int, the compiler generates the function for ints, call it for a string and it generates (instantiates) the function for strings also |
19:54:53 | * | NullData joined #nimrod |
19:55:01 | NullData | Hello |
19:55:08 | gradha | NullData: hi |
19:55:10 | xenagi | yes gradha |
19:55:15 | xenagi | but not specifics or details |
19:55:40 | gradha | xenagi: fowl just explained how they work, all happens at compile time |
19:55:51 | xenagi | that makes sense |
19:56:00 | gradha | you could argue performance suffers if you have cache misses due to multiple type generics not fitting in the cache |
19:56:09 | xenagi | but surely there can be runtime generics as well, say pulling some value from a db and determining at runtime its type? |
19:56:50 | gradha | well, in the case of databases you mostly get strings out of them |
19:57:25 | gradha | but then that's no generics |
19:57:33 | xenagi | yea |
20:02:25 | * | fowl quit (Quit: Leaving) |
20:03:53 | gradha | xenagi: most likely you are thinking of nimrods object variants for stuff like the json module |
20:04:25 | xenagi | i guess so |
20:04:36 | gradha | xenagi: see http://nimrod-code.org/json.html, you get some json, then at runtime you decide the type |
20:05:25 | gradha | or rather, the parsing sets the type for you, and you check the kind field |
20:05:49 | xenagi | right |
20:06:06 | xenagi | yeah that isnt generics, and i can see how _that_ would add overhead |
20:07:01 | gradha | I think the db modules could be improved to return tuples of specific types rather than string sequences |
20:09:50 | gradha | dom96: any reason babel's TPackageInfo has a string version instead of a TVersion? |
20:11:33 | NullData | Are the fields of objects referenced through a table considered inmutable? |
20:12:24 | BitPuffin | EXetoC: why are you doing web scraping? |
20:12:27 | gradha | NullData: no, unless you implement some setter/getter policy |
20:12:57 | gradha | NullData: but then, are you storing the actual objects or references to them? |
20:13:18 | NullData | I'm storing actual objects |
20:13:22 | NullData | In this case. |
20:13:48 | gradha | in that case when you "extract" an object from the table, you are making a copy |
20:14:07 | gradha | you would need to use the mget proc to modify the stored object |
20:14:14 | NullData | And, in order to change that I have to reassign it right? |
20:14:17 | NullData | That makes sense. |
20:14:50 | gradha | that's what the note at the top of the module means: "The data types declared here have value semantics" |
20:14:50 | dom96 | gradha: Probably because TPackageInfo is meant to represent the .babel file, keeping it as a string keeps it simple. |
20:15:36 | gradha | dom96: TVersions are strings, how do they make stuff complex? |
20:15:49 | NullData | Thanks, I just had to make sure that was the reason. |
20:16:01 | dom96 | gradha: I probably just didn't feel like changing it. |
20:16:28 | gradha | NullData: if you want pointer-like behaviour use "ref type" for the values of the table |
20:17:16 | NullData | I know. I just haven't had enough coffee lately to think straight |
20:17:31 | EXetoC | BitPuffin: because I might get paid for it in the near future |
20:17:57 | NullData | I mean I should be able to figure this out after 4 yeah with C and it's pointers :P |
20:18:22 | BitPuffin | EXetoC: oooh :D |
20:18:25 | BitPuffin | MONAYZ |
20:18:27 | EXetoC | that's really the only reason, since it's not very fun; most of the time anyway |
20:18:46 | dom96 | gradha: What are you changing anyway? |
20:18:57 | gradha | dom96: I'm adding the path command |
20:20:38 | dom96 | ok |
20:20:49 | gradha | yeah, it works |
20:20:53 | dom96 | Change the type if you want then. |
20:21:00 | gradha | nah, why bother |
20:21:25 | dom96 | yep, that was my thought process too probably :P |
20:22:25 | * | gradha notices "variable += 0", then facepalms |
20:22:33 | EXetoC | BitPuffin: YAY MONIES |
20:23:01 | gradha | dom96: on windows, can you change the current directory of the "shell"? |
20:23:08 | dom96 | no idea |
20:23:18 | gradha | there are no backticks though |
20:23:40 | gradha | IIRC in MSDOS times there were like "super cd" commands, which would "jump" to somewhere deep in the hierarchy |
20:25:13 | gradha | so how do you write "cd `command output`" in a bat file? |
20:26:17 | EXetoC | as opposed to having to traverse one level per invocation? |
20:28:04 | * | BitPuffin quit (Read error: Operation timed out) |
20:31:41 | gradha | dom96: there you go, nobody tested my earlier snippet on windows, so you are on your own to make it work there |
20:32:11 | dom96 | thanks |
20:36:10 | dom96 | bbl |
20:42:12 | * | BitPuffin joined #nimrod |
20:44:46 | BitPuffin | GAWT DISKÅNNÄKTÄD!! |
20:45:25 | gradha | yeah |
20:53:06 | * | vidot_j joined #nimrod |
21:06:00 | * | Jackneill quit (Remote host closed the connection) |
21:14:32 | EXetoC | BitPuffin: then fix ur tubes |
21:15:39 | BitPuffin | EXetoC: yep one of them were busted |
21:15:55 | BitPuffin | so I replaced it with the emergency tube |
21:15:56 | EXetoC | them rj-45's can get clogged |
21:16:22 | BitPuffin | oh you use rj-45? |
21:16:54 | BitPuffin | I was still back on the fq-82-b's |
21:17:02 | BitPuffin | they lasted for a long time |
21:17:25 | BitPuffin | the new one I put in there was a pd-14-xt should definitely be an upgrade in terms of throughput |
21:17:36 | EXetoC | wot |
21:26:32 | * | markhend quit () |
21:29:59 | * | NullData quit (Quit: Page closed) |
21:30:02 | * | fredmorcos joined #nimrod |
21:55:27 | gradha | good night |
21:55:34 | * | gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=mcyhZEXwfh0 again) |
21:57:43 | * | fredmorcos quit (Quit: Leaving) |
22:27:22 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:29:14 | mkb | /w 3 |
22:31:23 | * | ics joined #nimrod |
22:40:11 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:47:01 | * | vidot_j quit (Ping timeout: 252 seconds) |
22:59:32 | * | vidot_j joined #nimrod |
23:07:11 | * | vidot_j quit (Ping timeout: 252 seconds) |
23:19:12 | * | vidot_j joined #nimrod |
23:25:09 | * | vidot_j quit (Ping timeout: 252 seconds) |
23:26:27 | * | CarpNet quit (Quit: Leaving) |
23:29:48 | * | profmakx quit (Ping timeout: 260 seconds) |
23:37:12 | * | vidot_j joined #nimrod |