<< 27-07-2014 >>

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:16flaviuNeat, a new nimrod program: https://h3rald.com/articles/hastyscribe/
00:31:35flaviuNimrod runs on arm, right?
00:31:42flaviuI've tested it on PowerPC
01:01:19dom96cool!
01:03:41dom96'night
01:09:30dom96oh and it does run on arm btw
01:09:35dom96'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:44dom96http://www.reddit.com/r/programming/comments/2btrvt/gal/cj92aax :D
11:21:49dom96hey 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:56NimBotnimrod-code/packages master 4f31714 Fabio Cevasco [+0 ±1 -0]: Added HastyScribe package
13:01:56NimBotnimrod-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:30dom96flaviu: I added an opengl example to nim-by-example. Hope you don't mind.
13:58:39*Jehan_ joined #nimrod
14:00:01Jehan_dom96: You can simplify the "goal" code by using: let g = "g"
14:00:12Jehan_and omitting the fourth procedure entirely.
14:02:06dom96Jehan_: Nice.
14:03:35Jehan_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:06flaviudom96: 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:02dom96flaviu: I think it would be a good idea to write some stdlib examples.
14:11:13def-Hi. Is there a reason we don't have pow for ints?
14:11:42dom96def-: Likely nobody bothered to implement it.
14:12:29def-should it be in system with the other int procs or in math?
14:12:33dom96We should also use define the `^` to be the pow operator.
14:12:43dom96s/use//
14:12:46flaviudom96: Thats the xor operator
14:12:54flaviuIn most lanagues
14:13:04flaviuusually, ** is power
14:13:30Jehan_The last two entries in nimrod by example are awfully complex for an introductory site.
14:14:25Jehan_And the OpenGL example has serious line length issues in a number of places.
14:15:10flaviucss for images on nimrod-by-example needs to be fixed
14:15:28dom96It's within 80 chars.
14:15:39dom96The code div is too small I guess.
14:16:20Jehan_Yeah, but even with the fix, the OpenGL example in particular is very hard to follow.
14:17:18flaviuYeah, the opengl example needs lots of whitespace and comments
14:17:48Jehan_For a site that's supposed to explain stuff to newbies, this example may be discouraging rather than welcoming.
14:19:05flaviuJehan_: I don't think that the OOP Macro example is too long, its just heavily commented
14:19:12flaviu70% of the lines are comments
14:19:53Jehan_flaviu: Yeah, I'm just wondering if it may not still be overwhelming.
14:20:43Jehan_There's a lot to digest in there.
14:21:30dom96I don't think that site should be just for beginners.
14:21:37flaviuI 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:49flaviudom96: 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:47Araqpow should be ^ which is right associative
14:32:29Araqflaviu: we don't care about what other languages do that much. we care about the proper way to do things
14:33:04Jehan_Araq: I'm not sure if associativity for `pow` is particularly important.
14:33:43Jehan_It's not like there are a lot of use cases where that is relevant.
14:34:06Araqwell the math guys wanted ^ back in the days
14:34:27Araqso I deprecated p^ and made it p[] (pointer deref)
14:34:41Araqthe guys of course then left for good
14:34:53Araqthat's what you get for caring about your users
14:35:05Jehan_Araq: Heh. :)
14:37:39*Demos joined #nimrod
14:38:38Araqthinking about it ... just like the "omg don't use the GPL licence" guys
14:40:43flaviuWhy would you want to use the GPL license? It makes it unusable for anything but open source programming.
14:40:55Araqbut this time I was smarter and knew they wouldn't contribute a single line of code anyway
14:41:09Demosflaviu, this is the point
14:41:59Demosfor the record I really like the p[] syntax
14:42:14Demosfor no real good reason
14:42:25Araqwell I don't
14:42:59Araqbut it makes some sense
14:43:02flaviuHow about foo-> ?
14:43:14DemosNOOOOOOPE
14:43:25Demoswe would want foo->.member anyways
14:44:09Demosthe fact that C has the -> shorthand is sorta a result of deref being prefix and having a lower precidence than .
14:45:28Demosthe ideal is to just let the compiler deal with it using automatic deref
14:45:59Demosas a bonus this pisses off the "ohmygod but what if it is nil" crowd
14:46:01*BlameStross joined #nimrod
14:46:31flaviudoes foo.bar() actually deref foo?
14:46:38Araqnot yet, flaviu
14:47:16AraqI have been working on that though
14:47:33Araqwell I've been working on the spec part of it
14:47:57Demosone 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:17Araqthat might break code but it will make the language conceptually easier
14:48:35Araqand changes like these are still welcome
14:48:38Demosit will make changeing code eaiser too, if you want to add refness
14:48:49flaviuI'm not sure I understand. Isn't foo.bar() just syntactic sugar?
14:48:57Demosand discourage people from taking parameters that are : ref T in favor of var T
14:49:09Araqflaviu: no, that's part of the problem
14:49:58Demosactually what happens if you write a converter from ptr T to T?
15:09:37Araqit works
15:10:58*ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
15:13:43Demospresumably there are some problems with just implementing automatic deref like that though
15:16:19Araqwell actually I never thought of that
15:16:30Araqbut its precedence is wrong then
15:16:44Araqconverters are only attempted if everything else failed
15:18:30Demosbut it is a good thing if proc(ptr T) is called instead of proc(T)
15:19:17Jehan_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:51Demosthat 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:00OrionPKwho wrote this h3rald.com article on nimrod?
15:32:08OrionPKnimrod totally works on ARM, just as well as C:P
15:32:34AraqOrionPK: we need more articles with wrong information for wikipedia
15:32:40OrionPK:P
15:32:52OrionPKi'll write some more once I have markdown for nimrod
15:34:16Araqwhat's up with markdown?
15:34:28Araqwhy is everybody obsessed with it?
15:34:40Araqwhy is the quite similar RST not good enough?
15:34:52flaviuRST isn't as easy to use
15:35:02flaviuI personally don't really like the code blocks
15:35:25Demosis there an markdown standard or is it just "do as github does"
15:35:55flaviuGithub sort of has a standard
15:35:58AraqDemos: if there is a standard, it surely doesn't matter and people want the github flavor
15:36:22flaviuDemos: https://guides.github.com/features/mastering-markdown/
15:36:59flaviuGithub flavor is pretty good, but I like the refrences from Stack Overflow flavor too
15:37:37Araq"GitHub.com uses its own version of the Markdown syntax that provides an additional set of useful features"
15:37:49Araqthat's what the RST guys noted from the beginning
15:38:09Araqyou start with "simple" and then everybody adds his own stuff
15:38:15flaviuHastyScribe's markdown is pretty good. It doesn't have fenced code blocks though
15:38:28flaviuhttps://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:11flaviuActually, it looks like HastyScribe does have fenced code!
16:04:14flaviuAwesome!
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:15dom96Are there any linear algebra libs for Nimrod except for BitPuffin's?
16:48:22*Trustable joined #nimrod
16:51:42DemosI 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:31dom96Why is static[T] necessary?
16:57:06Demosif I have a 4x4 matrix I need to multiply it differently than a 3x3 matrix
16:58:08dom96So why not have a TMatrix4 and TMatrix3 type?
16:58:26dom96Surely that's how it's done in other languages.
16:58:27*flaviu quit (Ping timeout: 240 seconds)
16:58:46Demoswell you do
16:59:15Demosbut one problem is that that means you need to implement multiplication for each type
16:59:43Demosif 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:53Demosin 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:02dom96Seeing 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:13Demosthat is what me and bitpuffin do
17:01:45dom96ok, so are your libraries usable?
17:01:53Demosmine seems to work
17:01:56Demosit is a little strange
17:02:14dom96Also can't you use macros as a workaround?
17:02:45Demossince 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:02Demosand 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:24Araqtype Matrix[N, M, T] = array[N, array[M, T]]
18:51:53Araq Matrix3x3[T] = array[3, array[3, T]]
18:51:59Araqbig deal ...
18:59:29*Ven joined #nimrod
18:59:34*vendethiel quit (Ping timeout: 240 seconds)
19:05:16dom96step3.nim(112, 33) Error: conversion from Array constructor[0..11, int] to array
19:05:16dom96[0..11, float32] is invalid
19:05:19dom96How is it?
19:06:38Araqint vs float32
19:07:40dom96and yet 'float32(1)' works fine?
19:13:09Araqyes?
19:13:31Araqimplicit conversions and explicit conversions are not the same
19:14:50dom96array[2, float32]([1, 2]) isn't explicit?
19:26:37Araqno, it is not
19:40:31dom96Why?
19:44:08Araqbecause
19:45:23dom96Could you give me a real answer?
19:50:14Araqwell eventually it will work
19:50:29Araqand people instead will then blame me the compiler is too complex
20:01:17dom96That'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:29dom96You 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:32def-dom96: yeah, good
21:42:50dom96def-: thanks heh
21:52:30*boydgreenfield joined #nimrod
22:05:43flaviudom96: Nice, that's really elegant
22:08:12*bjz joined #nimrod
22:08:37flaviuAraq: What if I told you... you could get without making the compiler (much) more complex?
22:08:37flaviuMake 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:43flaviuAlso, 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:26dom96That sounds like it would make things more complex lol
22:28:51*Fx00F joined #nimrod
22:35:42flaviuHow? Just rip out semantic checking for overloads
22:40:28*superfunc joined #nimrod
22:59:50flaviudom96: That was surprisingly easy
23:00:25flaviuI've made a diff that does exactly what I describe: https://gist.github.com/aa0dda27a97eb89e03e0
23:02:22def-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:37dom96def-: i'm pretty sure you can
23:05:06def-yeah, i also was pretty sure. guess i'll just submit a bug
23:05:07flaviudom96: https://gist.github.com/a28bba00b3992edbc754 compiles with that patch
23:07:06flaviuIts a shame that the syntactic sugar for indexing only applies to arrays
23:09:05dom96hrm, not bad.
23:09:17*superfunc quit (Ping timeout: 256 seconds)
23:09:28dom96A bit annoying that you have to define it yourself though
23:09:41flaviuput it in system.nim then
23:11:07*darkf joined #nimrod
23:16:11dom96Would just be better to get the compiler to do it instead of bloating system.nim
23:18:15flaviuI 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:29Skrylarrewrite it all in lisp
23:21:30Skrylarlol
23:23:16flaviuSkrylar: Dynamic types? heresy!
23:24:47Skrylar(reason-with 'flaviu)
23:25:43flaviuHey, don't quote me!
23:26:19Skrylar(apply (get-all-in 'nimrod) reason-with)
23:26:51Skrylaron one hand if i wrote a lisp in nimrod i would have to port msgpack again
23:26:57Skrylarif i have to port msgpack again i will die
23:28:09flaviuSkrylar: Why not just use Cap’n Proto?
23:33:56Skrylarthere were not protobufs for rust
23:34:12flaviuCap’n Proto is implemented for rust
23:35:27Skrylarnot at the time :f
23:35:35Skrylaror something
23:35:48Skrylaranyway i implemented a lot of it for nimrod
23:39:02Skrylari still have the revised siphash branch in this other folder
23:39:09Skrylarneed to fix a deep compiler troublemation for that
23:47:29*Fx00F quit (Quit: Lost terminal)