00:17:17 | * | ics joined #nimrod |
00:25:10 | * | adoniscik quit (Ping timeout: 264 seconds) |
00:28:00 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
00:30:03 | * | flaviu joined #nimrod |
00:30:16 | flaviu | Neat, a new nimrod program: https://h3rald.com/articles/hastyscribe/ |
00:31:35 | flaviu | Nimrod runs on arm, right? |
00:31:42 | flaviu | I've tested it on PowerPC |
01:01:19 | dom96 | cool! |
01:03:41 | dom96 | 'night |
01:09:30 | dom96 | oh and it does run on arm btw |
01:09:35 | dom96 | 'night for real |
01:27:30 | * | ics joined #nimrod |
01:53:09 | * | ARCADIVS joined #nimrod |
01:55:52 | * | askatasuna joined #nimrod |
02:23:42 | * | mwbrown_ joined #nimrod |
02:28:29 | * | saml_ joined #nimrod |
02:29:59 | * | jj2baile_ quit (Ping timeout: 256 seconds) |
02:30:12 | * | jj2baile joined #nimrod |
02:32:11 | * | askatasuna quit (Quit: WeeChat 0.4.3) |
02:34:32 | * | mwbrown_ quit (Ping timeout: 260 seconds) |
02:34:32 | * | mwbrown quit (Ping timeout: 260 seconds) |
02:56:00 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
03:20:41 | * | ics joined #nimrod |
03:32:46 | * | q66 quit (Quit: Leaving) |
04:08:23 | * | Anton2 joined #nimrod |
04:14:37 | * | Anton2 quit (Quit: Anton2) |
04:16:47 | * | brson quit (Ping timeout: 264 seconds) |
04:47:17 | * | fowl quit (Excess Flood) |
04:47:40 | * | fowl joined #nimrod |
05:12:23 | * | mwbrown_ joined #nimrod |
05:21:47 | * | boydgreenfield joined #nimrod |
05:24:38 | * | flaviu quit (Ping timeout: 260 seconds) |
05:37:53 | * | boydgreenfield quit (Quit: boydgreenfield) |
05:40:27 | * | adoniscik joined #nimrod |
05:41:31 | * | saml_ quit (Ping timeout: 256 seconds) |
06:17:58 | * | Demos quit (Quit: Leaving) |
06:22:58 | * | boydgreenfield joined #nimrod |
06:31:10 | * | adoniscik quit (Ping timeout: 255 seconds) |
06:32:21 | * | mwbrown_ quit (Remote host closed the connection) |
07:11:59 | * | bjz quit (Ping timeout: 255 seconds) |
07:18:04 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
08:14:57 | * | Matthias247 joined #nimrod |
08:25:34 | * | boydgreenfield quit (Quit: boydgreenfield) |
11:00:30 | * | Ven joined #nimrod |
11:20:59 | * | zahary joined #nimrod |
11:21:44 | dom96 | http://www.reddit.com/r/programming/comments/2btrvt/gal/cj92aax :D |
11:21:49 | dom96 | hey zahary |
11:22:34 | * | johnsoft quit (Ping timeout: 240 seconds) |
11:22:58 | * | johnsoft joined #nimrod |
11:32:14 | * | ARCADIVS quit (Quit: WeeChat 0.4.3) |
11:52:26 | * | bjz joined #nimrod |
12:08:03 | * | q66 joined #nimrod |
12:09:55 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
12:10:18 | * | bjz joined #nimrod |
12:17:19 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:27:30 | * | Ven joined #nimrod |
12:32:06 | * | Kazimuth joined #nimrod |
12:34:23 | * | untitaker quit (Ping timeout: 240 seconds) |
12:40:15 | * | untitaker joined #nimrod |
12:42:03 | * | darkf quit (Quit: Leaving) |
12:46:05 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:01:56 | NimBot | nimrod-code/packages master 4f31714 Fabio Cevasco [+0 ±1 -0]: Added HastyScribe package |
13:01:56 | NimBot | nimrod-code/packages master f251183 Dominik Picheta [+0 ±1 -0]: Merge pull request #74 from h3rald/patch-1... 2 more lines |
13:32:34 | * | flaviu joined #nimrod |
13:49:30 | dom96 | flaviu: I added an opengl example to nim-by-example. Hope you don't mind. |
13:58:39 | * | Jehan_ joined #nimrod |
14:00:01 | Jehan_ | dom96: You can simplify the "goal" code by using: let g = "g" |
14:00:12 | Jehan_ | and omitting the fourth procedure entirely. |
14:02:06 | dom96 | Jehan_: Nice. |
14:03:35 | Jehan_ | dom96: Wrote up solutions for Nimrod, Scala, and Lua last night. Interesting that others came up with essentially the same solutions for NImrod and Scala. |
14:04:08 | * | dom96 edited his post |
14:10:06 | flaviu | dom96: I do, sort of. I try to cover language features, not libraries. If you've already written it though, keep it |
14:10:46 | * | ics joined #nimrod |
14:11:02 | dom96 | flaviu: I think it would be a good idea to write some stdlib examples. |
14:11:13 | def- | Hi. Is there a reason we don't have pow for ints? |
14:11:42 | dom96 | def-: Likely nobody bothered to implement it. |
14:12:29 | def- | should it be in system with the other int procs or in math? |
14:12:33 | dom96 | We should also use define the `^` to be the pow operator. |
14:12:43 | dom96 | s/use// |
14:12:46 | flaviu | dom96: Thats the xor operator |
14:12:54 | flaviu | In most lanagues |
14:13:04 | flaviu | usually, ** is power |
14:13:30 | Jehan_ | The last two entries in nimrod by example are awfully complex for an introductory site. |
14:14:25 | Jehan_ | And the OpenGL example has serious line length issues in a number of places. |
14:15:10 | flaviu | css for images on nimrod-by-example needs to be fixed |
14:15:28 | dom96 | It's within 80 chars. |
14:15:39 | dom96 | The code div is too small I guess. |
14:16:20 | Jehan_ | Yeah, but even with the fix, the OpenGL example in particular is very hard to follow. |
14:17:18 | flaviu | Yeah, the opengl example needs lots of whitespace and comments |
14:17:48 | Jehan_ | For a site that's supposed to explain stuff to newbies, this example may be discouraging rather than welcoming. |
14:19:05 | flaviu | Jehan_: I don't think that the OOP Macro example is too long, its just heavily commented |
14:19:12 | flaviu | 70% of the lines are comments |
14:19:53 | Jehan_ | flaviu: Yeah, I'm just wondering if it may not still be overwhelming. |
14:20:43 | Jehan_ | There's a lot to digest in there. |
14:21:30 | dom96 | I don't think that site should be just for beginners. |
14:21:37 | flaviu | I think its fine, the comments sort of explain the thought process. I also haven't heard complaints, and I like to use meaningful examples. |
14:23:49 | flaviu | dom96: In the end, I don't think I'd like to have OpenGL in there, especially since it doesn't show off any language features. The example could be simplified to show off babel though. |
14:25:26 | * | Ven joined #nimrod |
14:25:46 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
14:31:47 | Araq | pow should be ^ which is right associative |
14:32:29 | Araq | flaviu: we don't care about what other languages do that much. we care about the proper way to do things |
14:33:04 | Jehan_ | Araq: I'm not sure if associativity for `pow` is particularly important. |
14:33:43 | Jehan_ | It's not like there are a lot of use cases where that is relevant. |
14:34:06 | Araq | well the math guys wanted ^ back in the days |
14:34:27 | Araq | so I deprecated p^ and made it p[] (pointer deref) |
14:34:41 | Araq | the guys of course then left for good |
14:34:53 | Araq | that's what you get for caring about your users |
14:35:05 | Jehan_ | Araq: Heh. :) |
14:37:39 | * | Demos joined #nimrod |
14:38:38 | Araq | thinking about it ... just like the "omg don't use the GPL licence" guys |
14:40:43 | flaviu | Why would you want to use the GPL license? It makes it unusable for anything but open source programming. |
14:40:55 | Araq | but this time I was smarter and knew they wouldn't contribute a single line of code anyway |
14:41:09 | Demos | flaviu, this is the point |
14:41:59 | Demos | for the record I really like the p[] syntax |
14:42:14 | Demos | for no real good reason |
14:42:25 | Araq | well I don't |
14:42:59 | Araq | but it makes some sense |
14:43:02 | flaviu | How about foo-> ? |
14:43:14 | Demos | NOOOOOOPE |
14:43:25 | Demos | we would want foo->.member anyways |
14:44:09 | Demos | the fact that C has the -> shorthand is sorta a result of deref being prefix and having a lower precidence than . |
14:45:28 | Demos | the ideal is to just let the compiler deal with it using automatic deref |
14:45:59 | Demos | as a bonus this pisses off the "ohmygod but what if it is nil" crowd |
14:46:01 | * | BlameStross joined #nimrod |
14:46:31 | flaviu | does foo.bar() actually deref foo? |
14:46:38 | Araq | not yet, flaviu |
14:47:16 | Araq | I have been working on that though |
14:47:33 | Araq | well I've been working on the spec part of it |
14:47:57 | Demos | one of my favorite things about nimrod is that Araq seems to share my hate of type qualifiers. Not having to deal with all the different categories of types is quite nice |
14:48:17 | Araq | that might break code but it will make the language conceptually easier |
14:48:35 | Araq | and changes like these are still welcome |
14:48:38 | Demos | it will make changeing code eaiser too, if you want to add refness |
14:48:49 | flaviu | I'm not sure I understand. Isn't foo.bar() just syntactic sugar? |
14:48:57 | Demos | and discourage people from taking parameters that are : ref T in favor of var T |
14:49:09 | Araq | flaviu: no, that's part of the problem |
14:49:58 | Demos | actually what happens if you write a converter from ptr T to T? |
15:09:37 | Araq | it works |
15:10:58 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
15:13:43 | Demos | presumably there are some problems with just implementing automatic deref like that though |
15:16:19 | Araq | well actually I never thought of that |
15:16:30 | Araq | but its precedence is wrong then |
15:16:44 | Araq | converters are only attempted if everything else failed |
15:18:30 | Demos | but it is a good thing if proc(ptr T) is called instead of proc(T) |
15:19:17 | Jehan_ | Demos: One problem is that writing a converter to `var T` (which is what you need for a lot of stuff) doesn't work. |
15:20:51 | Demos | that is a problem, I guess if it did work then you would always go from ptr/ref T to var T and then rely on a conversion from var T to T that just happens, but that is like c++ level trickery |
15:23:58 | * | boydgreenfield joined #nimrod |
15:31:27 | * | ics joined #nimrod |
15:32:00 | OrionPK | who wrote this h3rald.com article on nimrod? |
15:32:08 | OrionPK | nimrod totally works on ARM, just as well as C:P |
15:32:34 | Araq | OrionPK: we need more articles with wrong information for wikipedia |
15:32:40 | OrionPK | :P |
15:32:52 | OrionPK | i'll write some more once I have markdown for nimrod |
15:34:16 | Araq | what's up with markdown? |
15:34:28 | Araq | why is everybody obsessed with it? |
15:34:40 | Araq | why is the quite similar RST not good enough? |
15:34:52 | flaviu | RST isn't as easy to use |
15:35:02 | flaviu | I personally don't really like the code blocks |
15:35:25 | Demos | is there an markdown standard or is it just "do as github does" |
15:35:55 | flaviu | Github sort of has a standard |
15:35:58 | Araq | Demos: if there is a standard, it surely doesn't matter and people want the github flavor |
15:36:22 | flaviu | Demos: https://guides.github.com/features/mastering-markdown/ |
15:36:59 | flaviu | Github flavor is pretty good, but I like the refrences from Stack Overflow flavor too |
15:37:37 | Araq | "GitHub.com uses its own version of the Markdown syntax that provides an additional set of useful features" |
15:37:49 | Araq | that's what the RST guys noted from the beginning |
15:38:09 | Araq | you start with "simple" and then everybody adds his own stuff |
15:38:15 | flaviu | HastyScribe's markdown is pretty good. It doesn't have fenced code blocks though |
15:38:28 | flaviu | https://h3rald.com/hastyscribe/HastyScribe_UserGuide.htm |
15:42:31 | * | boydgreenfield quit (Quit: boydgreenfield) |
15:43:09 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
15:49:39 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:58:14 | * | eigenlicht quit (Ping timeout: 250 seconds) |
16:02:10 | * | eigenlicht joined #nimrod |
16:04:11 | flaviu | Actually, it looks like HastyScribe does have fenced code! |
16:04:14 | flaviu | Awesome! |
16:16:36 | * | boydgreenfield joined #nimrod |
16:33:57 | * | Ven joined #nimrod |
16:35:23 | * | flaviu quit (Ping timeout: 264 seconds) |
16:46:40 | * | flaviu joined #nimrod |
16:48:15 | dom96 | Are there any linear algebra libs for Nimrod except for BitPuffin's? |
16:48:22 | * | Trustable joined #nimrod |
16:51:42 | Demos | I have "vecmath.nim" on my github, it is not really better than bitpuffins, we really need static[T] bugs fixed before a good linear algebra library can be made |
16:53:31 | dom96 | Why is static[T] necessary? |
16:57:06 | Demos | if I have a 4x4 matrix I need to multiply it differently than a 3x3 matrix |
16:58:08 | dom96 | So why not have a TMatrix4 and TMatrix3 type? |
16:58:26 | dom96 | Surely that's how it's done in other languages. |
16:58:27 | * | flaviu quit (Ping timeout: 240 seconds) |
16:58:46 | Demos | well you do |
16:59:15 | Demos | but one problem is that that means you need to implement multiplication for each type |
16:59:43 | Demos | if you have static[T] you you can have one multiplication functions that gets instantiated for each matrix type |
16:59:55 | * | kunev joined #nimrod |
17:00:53 | Demos | in nimrod you could prolly do like for i in 1..a.N: ..., in other languages (c++) you can have a function that gets a submatrix and use recursion to do the same |
17:01:02 | dom96 | Seeing as we don't apparently have a functional static[T] it seems that doing it the manual way is our only option, so why not just do that? |
17:01:13 | Demos | that is what me and bitpuffin do |
17:01:45 | dom96 | ok, so are your libraries usable? |
17:01:53 | Demos | mine seems to work |
17:01:56 | Demos | it is a little strange |
17:02:14 | dom96 | Also can't you use macros as a workaround? |
17:02:45 | Demos | since my matrix is TMatrix[N,M: static[int]] = array[N*M, T], even if I write a seperate multiplication function for each they need different names now |
17:03:02 | Demos | and maybe, but I do not understand how and I jsut wanted to get something working |
17:08:11 | * | boydgreenfield quit (Quit: boydgreenfield) |
17:14:38 | * | Kazimuth quit (Remote host closed the connection) |
17:15:47 | * | adoniscik joined #nimrod |
17:18:29 | * | xenagi quit (Quit: Leaving) |
17:19:37 | * | boydgreenfield joined #nimrod |
17:24:04 | * | boydgreenfield quit (Client Quit) |
17:24:16 | * | flaviu joined #nimrod |
17:55:03 | * | superfunc joined #nimrod |
17:58:29 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:16:11 | * | mwbrown joined #nimrod |
18:17:10 | * | io2 joined #nimrod |
18:25:48 | * | Hat_and_Cloak joined #nimrod |
18:36:37 | * | Vpex joined #nimrod |
18:37:48 | * | Hat_and_Cloak quit (Ping timeout: 250 seconds) |
18:50:00 | * | Demos quit (Read error: Connection reset by peer) |
18:50:12 | * | Vpex quit (Quit: Vpex) |
18:51:24 | Araq | type Matrix[N, M, T] = array[N, array[M, T]] |
18:51:53 | Araq | Matrix3x3[T] = array[3, array[3, T]] |
18:51:59 | Araq | big deal ... |
18:59:29 | * | Ven joined #nimrod |
18:59:34 | * | vendethiel quit (Ping timeout: 240 seconds) |
19:05:16 | dom96 | step3.nim(112, 33) Error: conversion from Array constructor[0..11, int] to array |
19:05:16 | dom96 | [0..11, float32] is invalid |
19:05:19 | dom96 | How is it? |
19:06:38 | Araq | int vs float32 |
19:07:40 | dom96 | and yet 'float32(1)' works fine? |
19:13:09 | Araq | yes? |
19:13:31 | Araq | implicit conversions and explicit conversions are not the same |
19:14:50 | dom96 | array[2, float32]([1, 2]) isn't explicit? |
19:26:37 | Araq | no, it is not |
19:40:31 | dom96 | Why? |
19:44:08 | Araq | because |
19:45:23 | dom96 | Could you give me a real answer? |
19:50:14 | Araq | well eventually it will work |
19:50:29 | Araq | and people instead will then blame me the compiler is too complex |
20:01:17 | dom96 | That's all I needed to hear, and no they won't. |
20:02:48 | * | milosn_ joined #nimrod |
20:03:55 | * | tumak_ joined #nimrod |
20:11:01 | * | milosn quit (*.net *.split) |
20:11:01 | * | tumak quit (*.net *.split) |
20:26:30 | * | bjz joined #nimrod |
20:31:22 | * | kunev quit (Quit: leaving) |
20:43:55 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
20:47:28 | * | superfunc quit (Ping timeout: 260 seconds) |
21:02:42 | * | Jehan_ quit (Quit: Leaving) |
21:06:29 | dom96 | You guys think I did a good job explaining it? http://www.reddit.com/r/programming/comments/2btrvt/gal/cj9eubh |
21:19:51 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:23:50 | * | Trustable quit (Quit: Leaving) |
21:32:02 | * | bjz quit (Ping timeout: 260 seconds) |
21:42:32 | def- | dom96: yeah, good |
21:42:50 | dom96 | def-: thanks heh |
21:52:30 | * | boydgreenfield joined #nimrod |
22:05:43 | flaviu | dom96: Nice, that's really elegant |
22:08:12 | * | bjz joined #nimrod |
22:08:37 | flaviu | Araq: What if I told you... you could get without making the compiler (much) more complex? |
22:08:37 | flaviu | Make it possible to overload on type names, such that I can define a method `proc array[I, OT, NT](in: array[I, OT]): array[I, NT] =...` |
22:11:43 | flaviu | Also, by doing that you would cause constructors to cease being in any way special, they'd be just procs that call the default constructor. |
22:21:26 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:23:26 | dom96 | That sounds like it would make things more complex lol |
22:28:51 | * | Fx00F joined #nimrod |
22:35:42 | flaviu | How? Just rip out semantic checking for overloads |
22:40:28 | * | superfunc joined #nimrod |
22:59:50 | flaviu | dom96: That was surprisingly easy |
23:00:25 | flaviu | I've made a diff that does exactly what I describe: https://gist.github.com/aa0dda27a97eb89e03e0 |
23:02:22 | def- | you can't break when looping over an inline iterator? |
23:04:01 | * | Boscop_ is now known as Boscop |
23:04:29 | * | Boscop quit (Changing host) |
23:04:29 | * | Boscop joined #nimrod |
23:04:37 | dom96 | def-: i'm pretty sure you can |
23:05:06 | def- | yeah, i also was pretty sure. guess i'll just submit a bug |
23:05:07 | flaviu | dom96: https://gist.github.com/a28bba00b3992edbc754 compiles with that patch |
23:07:06 | flaviu | Its a shame that the syntactic sugar for indexing only applies to arrays |
23:09:05 | dom96 | hrm, not bad. |
23:09:17 | * | superfunc quit (Ping timeout: 256 seconds) |
23:09:28 | dom96 | A bit annoying that you have to define it yourself though |
23:09:41 | flaviu | put it in system.nim then |
23:11:07 | * | darkf joined #nimrod |
23:16:11 | dom96 | Would just be better to get the compiler to do it instead of bloating system.nim |
23:18:15 | flaviu | I don't really like that idea, it'd make the compiler more complex than it already is. Anyway, an `arrays` module might work |
23:21:29 | Skrylar | rewrite it all in lisp |
23:21:30 | Skrylar | lol |
23:23:16 | flaviu | Skrylar: Dynamic types? heresy! |
23:24:47 | Skrylar | (reason-with 'flaviu) |
23:25:43 | flaviu | Hey, don't quote me! |
23:26:19 | Skrylar | (apply (get-all-in 'nimrod) reason-with) |
23:26:51 | Skrylar | on one hand if i wrote a lisp in nimrod i would have to port msgpack again |
23:26:57 | Skrylar | if i have to port msgpack again i will die |
23:28:09 | flaviu | Skrylar: Why not just use Cap’n Proto? |
23:33:56 | Skrylar | there were not protobufs for rust |
23:34:12 | flaviu | Cap’n Proto is implemented for rust |
23:35:27 | Skrylar | not at the time :f |
23:35:35 | Skrylar | or something |
23:35:48 | Skrylar | anyway i implemented a lot of it for nimrod |
23:39:02 | Skrylar | i still have the revised siphash branch in this other folder |
23:39:09 | Skrylar | need to fix a deep compiler troublemation for that |
23:47:29 | * | Fx00F quit (Quit: Lost terminal) |