00:00:01 | filwit | or do you mean {noalias} doesn't lower to restrict, and therefor doesn't pass the hint onto the C compiler ? |
00:00:24 | * | Varriount__ is now known as Varriount |
00:00:38 | zahary | filwit: dunno, things like system.new are handled earlier in semIndirectOp |
00:01:00 | zahary | they should be resolved to a concrete symbol or a nkSymChoice there |
00:01:08 | Demos | noalias should be able to lower to restrict. but you may not always be able to use noalias even in cases where you could use restrict |
00:02:09 | filwit | zahary: thanks for the hints. though something really strange is happening when i use {.noinit.} (it never actually calls system.new() but seems to allocate memory without segfaulting, possibly due to undefined bahaviour.. still looking into it) |
00:03:18 | filwit | Demos: i see |
00:15:29 | * | zahary quit (Ping timeout: 240 seconds) |
00:17:28 | * | oxful joined #nimrod |
00:19:07 | * | EXetoC quit (Read error: No route to host) |
00:19:09 | Demos | hm is there a shortcut to defineing a typeclass that is everything except say arrays? |
00:21:22 | * | zahary joined #nimrod |
00:21:33 | skrylar | 'Any'? |
00:21:44 | skrylar | (admittedly that doesn't exempt certain things) |
00:22:58 | Demos | yeah I have an ambiguity that I need to resolve |
00:23:54 | skrylar | Demos: what are you trying to do, overall? |
00:25:31 | Demos | I have proc foo[T](func: proc(ts: openarray[T]) and proc foo[T](func: proc(t: T)). I want the 2nd version to be called on stuff that is just one thing and the 1st to be called on arrays. I need the type of thing the array holds as well, so the first function can not just take stuff of typeclass array |
00:26:18 | skrylar | is there a particular reason you can't accept an openarray of a single element? |
00:26:41 | * | darkf_ joined #nimrod |
00:27:12 | * | Matthias247 quit (Read error: Connection reset by peer) |
00:27:30 | Demos | yeah the behavior is different, there is an array that is just passed to the ts arg in the first case and the func is called for each element in the 2nd |
00:27:42 | * | darkf_ is now known as darkf |
00:27:47 | skrylar | It isn't what you were looking for, but I would suggest a template at that point |
00:28:15 | skrylar | it seems a lot easier to have a template do a compile-time check if you gave it a single entry and call the right private implementation |
00:29:03 | Demos | well I am actually generateing a closure proc of type proc() that I am adding to a data structure |
00:29:43 | fowl | Demos, did you see doms closure macro |
00:29:47 | Demos | no |
00:29:49 | Demos | where is it |
00:29:58 | fowl | https://gist.github.com/dom96/9155536 |
00:32:50 | Demos | I don't get it |
00:36:37 | * | zielmicha quit (Quit: Connection closed for inactivity) |
00:38:46 | skrylar | hm. i just realized i'm a derp. |
00:39:42 | skrylar | it never occurred to me to just use a bitwise not to flip bytes around when encoding them to a variable length format |
01:08:38 | * | r0b2 quit (Ping timeout: 264 seconds) |
01:13:29 | * | xenagi joined #nimrod |
01:14:55 | * | zahary quit (Ping timeout: 272 seconds) |
01:16:01 | * | r0b2 joined #nimrod |
01:42:36 | * | _jbe joined #nimrod |
01:55:36 | * | xenagi quit (Ping timeout: 240 seconds) |
01:58:58 | * | r0b2 quit (Ping timeout: 240 seconds) |
02:00:11 | * | DAddYE quit (Remote host closed the connection) |
02:00:47 | * | DAddYE joined #nimrod |
02:00:53 | Demos | wow gnome3 fails pretty hard when faced with a touch screen |
02:05:20 | * | DAddYE quit (Ping timeout: 265 seconds) |
02:08:20 | * | carum joined #nimrod |
02:12:18 | * | _jbe quit (Ping timeout: 245 seconds) |
02:17:13 | * | carum quit (Remote host closed the connection) |
02:32:31 | * | carum joined #nimrod |
02:36:52 | * | carum quit (Remote host closed the connection) |
02:43:59 | Varriount | Demos: I thought it was designed for a touch screen? |
02:46:41 | Demos | I think it was |
02:47:12 | Varriount | On a tangent note, has anyone installed a linux distro on a windows surface? |
02:47:14 | Demos | but like if I switch to firefox and then try and drag the FF window around with my finger my terminal comes back up! |
02:47:41 | Demos | not me, but I seem to recall seeing it done |
02:48:00 | Demos | the touch experience on linux is really bad though |
02:48:10 | Demos | even compared to windows 7\ |
02:48:28 | Varriount | I've heard that metro interface is useful on tablets. |
02:49:18 | Demos | yeah it is pretty nice on tablets, I dont really mind it on my desktop. |
02:49:34 | Demos | I found that setting the metro background to the same as my desktop background made it less jarring |
02:50:09 | Demos | you should also be able to install android on a surface, but it would be android x86, with few apps |
02:50:26 | Varriount | I don't *use* the metro interface on my desktop, anymore than I used the start menu in windows 7 |
02:50:39 | Varriount | IE, I only use the search feature to launch apps |
02:51:50 | Demos | yeah same here |
02:52:19 | Varriount | Which is why I was so happy that unified search was brought back in 8.1 |
02:52:36 | Demos | same here, that extra 1-3 keystrokes was annoying as hell |
02:52:58 | Varriount | Demos: So you are using VS to write nimrod? |
02:53:30 | Demos | well I am writing nimrod on vim in linux right now. But yeah on my windows box I use VS |
02:54:09 | Varriount | Why must Github's Atom Editor only run on Mac :< |
02:54:26 | * | Varriount doesn't have a Mac VM |
02:55:07 | Demos | speaking of which, you should try and run my VS plugin, I will make a visx and upload it to skydrive. I want to be sure that the paths are sane and not pointing to VisualNimrod's source dir |
02:57:48 | Varriount | Demos: Ready and willing. |
02:57:59 | Varriount | We IDE developers have to support one another. |
02:58:02 | Demos | you got VS pro? |
02:58:43 | Varriount | Demos: I haven't managed to get a DreamSpark account verified. |
02:58:48 | OrionPK | Varriount it only runs on mac? |
02:58:50 | OrionPK | what? |
02:59:42 | Varriount | OrionPK: Thats what it says on the download page. PM me you email and I can send you an invite. (You too Demos , if your interested) |
03:00:12 | OrionPK | did u get that? :P |
03:00:39 | OrionPK | not sure if i can send private messages w/ familiar |
03:01:13 | Varriount | Yep |
03:01:14 | * | DAddYE joined #nimrod |
03:01:17 | Demos | I did not, but I could just not know what I am doing |
03:01:26 | OrionPK | varriount which message did u get |
03:01:27 | Varriount | So.. you can send PM's, but not recieve/see them? |
03:01:28 | Demos | oh, plugins only work on pro or above |
03:01:49 | Varriount | OrionPK: I got you email. |
03:01:54 | OrionPK | ok |
03:03:06 | OrionPK | maybe the windows version just hasnt come out yet |
03:03:30 | OrionPK | Varriount thanks |
03:03:38 | OrionPK | I'll try it on my mac air |
03:04:02 | Varriount | OrionPK: Tell me how fast Atom is. |
03:05:29 | * | DAddYE quit (Ping timeout: 240 seconds) |
03:08:01 | * | DAddYE joined #nimrod |
03:11:31 | Varriount | Demos: I |
03:11:42 | OrionPK | Varriount seems quick to me, as quick as ST |
03:11:52 | Varriount | I'm stuck at the page asking to "Please give your university provided address" |
03:12:31 | Varriount | I gave *my* email address, is there some other email address I need to give? |
03:14:36 | Demos | you want to give them the email address that is like [email protected] |
03:15:05 | Demos | so like for me it is [email protected] (my name is not name, but crawlers and whatnot) |
03:15:16 | Varriount | Yeah, I did. |
03:15:24 | Varriount | [email protected] |
03:15:36 | * | Demos_ joined #nimrod |
03:17:08 | Varriount | <Varriount> Yeah, I did. |
03:17:08 | Varriount | <Varriount> [email protected] |
03:17:40 | Demos | it took them a while to respond to me when I reactivated a few months ago (I was using MSDNAA prior to that) |
03:18:57 | Demos | otherwise you can download the trial of ultimite and use it for like 240 days or something |
03:19:02 | Demos | a large number of days |
03:20:59 | Varriount | Demos: Yeah, but I get a rejection page |
03:21:27 | Varriount | "Sorry, the e-mail which you have submitted is not a valid e-mail at Northern Virginia Community College. " |
03:22:52 | Demos | what the hell...... email their support thing |
03:23:01 | Demos | from your vccs address :D |
03:24:25 | Varriount | I wouldn't be surprised if it's the subdomain thing. |
03:24:45 | Varriount | It also doesn't help that my college has 3 campus's |
03:25:38 | Varriount | Oh, there it goes. |
03:26:02 | Varriount | Demos: Apparently I have to choose the nonspecific option on the college selection list |
03:26:28 | Varriount | It wouldn't work if I used the campus specific option. |
03:27:38 | Demos_ | yeah I think I ran into a similar issue |
03:29:50 | Varriount | Demos: Do you want an invite to atom? |
03:30:08 | Demos | sure |
03:30:27 | Varriount | Just PM me your email. |
03:31:11 | Varriount | Hm. VS Professional is 32 bit only? Really? |
03:31:34 | Demos | yup they are all 32bit only |
03:31:47 | Demos | they can ofc bould 64bit apps, although that is not the default for VC++ |
03:32:13 | Demos | and actually if you have a solution with only a 64-bit target (no 32bit one) the profiler does not work |
03:32:35 | Demos | although if the 32bit target exists you can run the profiler on the 64bit builds |
03:34:52 | Demos_ | https://onedrive.live.com/redir?resid=BE38BDD0FF029113!17198&authkey=!AJSbdatljKDgwdc&ithint=file%2c.vsix |
03:36:01 | Demos_ | 100% garentee not a virus :D |
03:39:01 | Varriount | This will be the third time I've downloaded a version of VS |
03:39:34 | Varriount | Demos: Check out this game, it feels... javascript-e |
03:39:36 | Varriount | http://jayisgames.com/games/changetype/ |
03:44:27 | Demos_ | I think it is flash |
03:44:47 | Demos_ | javascript would have only partially working sound and fucked up texture interpolation |
03:46:18 | Varriount | Demos: I mean, the premise |
03:46:34 | Varriount | changeType() is the name of the game |
03:46:56 | Demos_ | right, and like javascirpt it is totally un-intuitive |
03:49:00 | Varriount | :3 |
03:49:12 | Varriount | Hm.. |
03:51:10 | Demos_ | I am enjoying Final Fantasy VII for the first time |
03:53:21 | Varriount | Demos_: On what hardware? |
03:59:59 | Demos_ | my PC |
04:11:07 | Demos_ | it plays worse today than my favorite games from that time |
04:16:19 | * | r0b2 joined #nimrod |
04:18:00 | * | thephred joined #nimrod |
04:18:25 | thephred | I'm sure I'm doing something silly but I'm trying to read a file in to a string at compile time (in a macro) |
04:18:44 | thephred | and it just says "Error: cannot 'importc' variable at compile time" |
04:19:26 | thephred | macro embedFile(filepath: string): expr = |
04:19:32 | thephred | result = newNimNode(nnkStrLit) |
04:19:42 | thephred | result.strVal = readFile(filepath.strVal) |
04:20:41 | * | brson quit (Quit: leaving) |
04:33:33 | * | carum joined #nimrod |
04:42:00 | filwit | thephred: use staticRead(filepath.strVal) |
04:42:01 | * | carum quit (Read error: Connection reset by peer) |
04:42:22 | * | carum joined #nimrod |
04:44:14 | thephred | Works like a charm! Thank you :) |
04:44:26 | filwit | np ;) |
04:46:27 | filwit | thephred: also, consider passing static[string] instead, and then you don't need .strVal on filepath (although I hear static[T] can be buggy at times still) |
04:47:36 | thephred | Sweet, that makes sense |
04:48:29 | thephred | Yup that works great |
04:51:40 | Demos | buggy can be an understatement |
04:56:31 | thephred | If I wanted to pass a pointer to memory to a c function would addr(str) work for that if str is a nimrod string? |
04:57:41 | filwit | there's also a cstring type, but i'm not sure exactly |
04:58:17 | filwit | i know nimrod's strings are zero-terminated like C's (but they also have a length or something as well) |
04:58:41 | thephred | c signature is foo(const void *mem, int size) |
04:59:02 | filwit | so if 'addr str' doesn't work, you could try cast[ptr cstring](addr str.cstring) |
04:59:10 | thephred | c2nim created proc foo(mem: pointer; size: cint) |
04:59:23 | filwit | something like that. sorry, not the best with string handling in Nimrod yet |
05:03:21 | filwit | thephred: the thing is Nimrod strings (to my knowlege) are more complex types than simple pointers (they have lengths), so you can't just pass their address (again, not positive). So where you have this C signature: 'void foo(char* str)' you would have 'proc foo(str:cstring)' and then you would call it like this: 'var str: string; foo(str.cstring)' |
05:06:23 | filwit | actually it looks like strings might automatically convert to cstrings. |
05:06:39 | thephred | hmmm |
05:08:28 | filwit | yep: 'void foo(const char* str)' --> 'proc foo(str:cstring) {.importc:"foo".}' --> 'var str = "blah"; foo(str) # works' |
05:09:42 | thephred | very impressive |
05:09:43 | thephred | yes it does |
05:09:58 | thephred | so I just had to change the c2nim sig from pointer to cstring |
05:10:28 | thephred | I wonder what it would take to make it work with pointer |
05:10:38 | filwit | ah i see, you're using c2nim, missed that |
05:10:40 | thephred | How are you so helpful filwit? |
05:10:51 | thephred | *shakes head* |
05:11:00 | filwit | idk.. :P glad i can help though |
05:11:48 | thephred | You da' man (or woman if that may be the case) |
05:12:27 | filwit | haha, you're just asking questions about things I've written code for in the past, but thanks all the same |
05:12:40 | filwit | (and man) |
05:13:51 | thephred | I've been looking for a language like nimrod for some time |
05:14:10 | thephred | Felt like I was almost there with luajit |
05:14:21 | filwit | yeah Nimrod's pretty sweet, eh? |
05:14:55 | filwit | excellent performance, great GC, great platform support (through compile-to-c), and really clean syntax |
05:15:14 | thephred | I'm embedding resources in my executable and for c/luajit that was a special program that ran as part of the make file... nimrod, just a really really simple macro |
05:15:49 | thephred | I'm still getting used to the syntax |
05:15:56 | thephred | Much better than most |
05:16:24 | thephred | I just can't see it yet |
05:16:31 | thephred | that takes a while sometimes |
05:16:33 | filwit | yeah ithe syntax is a bit of a hodgepodge, but you get used to it' pretty quick |
05:16:48 | thephred | when I started writing smalltalk it looked weird and unreadable at first |
05:16:51 | filwit | one thing to keep in mind, floats are 64bit by default, and int's are pointer size |
05:16:59 | skrylar | I thought the syntax for nimrod was pretty consistent |
05:16:59 | thephred | but in time it looks simple and readable |
05:17:39 | filwit | skrylar: there are still some areas i have complaints about the syntax, but they're somewhat minor compared to the things Nimrod gets right |
05:18:20 | filwit | skylar: if you browse the forums at all, i just posted about how i would love to see the syntax evolve slightly in the distant future |
05:18:47 | thephred | I'm still trying to think about the style and implications of not having methods |
05:19:36 | skrylar | filwit: i haven't left unicode prison in a while to be on the forums. lol |
05:19:45 | filwit | thephred: you can have class OOP-style methods in Nimrod :) but the macros to build them aren't part of the standard-lib yet |
05:20:06 | filwit | skrylar: unicode prison? |
05:20:16 | thephred | what if I want a object to have a method and not have it in the namespace as a plain callable proc |
05:20:24 | filwit | classic** OOP-style.. |
05:20:37 | skrylar | filwit: https://github.com/Skrylar/skUtf |
05:20:41 | skrylar | improving the unicode module |
05:21:02 | skrylar | thephred: well thats.. too bad then. Think of it like : in lua |
05:21:03 | filwit | skrylar: oh, nice! thanks! |
05:21:17 | skrylar | me.DoThing is sugar for DoThing(me) |
05:21:45 | thephred | the difference with lua is |
05:21:51 | filwit | foo.bar(); bar(foo); bar foo; # all the same |
05:21:59 | * | _fel1x quit (Ping timeout: 241 seconds) |
05:22:22 | thephred | me:doThing(34) is sugar for me.doThing(me, 34), it doesn't live outside the object |
05:22:31 | filwit | thephred: i didn't understand what you meant by have a method and not have it in a namespace? |
05:22:48 | thephred | But like I said, I'm still taking it in. The manual says this is a good thing, so I'm open to that |
05:23:51 | skrylar | filwit: he means scoping |
05:24:03 | thephred | yeah |
05:24:11 | filwit | use modules for that |
05:24:23 | skrylar | all though nimrod has overloading, so 90% of the time it doesn't matter that methods bleed together |
05:24:29 | skrylar | I'm not sure if you can overload the return value though |
05:24:34 | thephred | Right |
05:24:53 | filwit | skrylar: overloading return values is planned, but far off (after 1.0) |
05:24:57 | thephred | the overloading, multimethod support makes it not a showstopper for sure |
05:26:35 | thephred | The c output seems very compact |
05:26:40 | thephred | I like it :) |
05:28:25 | * | carum quit (Remote host closed the connection) |
05:31:22 | thephred | Reminds me of the go type system a little |
05:31:37 | skrylar | pascal types <3 |
05:31:42 | thephred | in that it bends my mind a little but if you go with it it turns out to be fine |
05:33:05 | filwit | thephred: what language are you used too? |
05:33:17 | thephred | Good question |
05:33:21 | thephred | I've jumped around alot |
05:33:50 | filwit | most familiar with then? |
05:33:50 | thephred | I spent a fair amount of time in ruby |
05:34:02 | thephred | and most recently javascript |
05:34:14 | filwit | ah, I've never used Ruby, but i've done a fair amount of Javascript |
05:34:36 | thephred | I like to play around with languages in my free time but the ones I get familiar with are the ones that I use for work |
05:35:12 | thephred | Something about the purity of smalltalk really made me happy |
05:35:17 | thephred | but I don't like the vm's |
05:35:35 | thephred | Really, that is probably the biggest thing I like about nimrod so far |
05:35:48 | filwit | i don't like any dynamically/weak-typed language really |
05:36:18 | thephred | I want to be able to make a portable standalone exe that is not huge but doesn't have the stiff inexpressiveness of c/c++ |
05:36:38 | thephred | That is why luajit is so close for me |
05:36:55 | thephred | If you embed the vm it ends up being pretty small |
05:37:11 | thephred | Yeah, I hear that a lot |
05:37:22 | thephred | I see the value of both sides really |
05:38:06 | thephred | I've done a ton of code in dynamic/weak-typed languages and have not had any issues |
05:38:16 | filwit | i don't see the value of weak-typing at all. Almost all strong-typed languages have a 'dynamic' type in them for that 5% of code that actually needs it |
05:38:26 | thephred | but then I can see how valuable it can be to have the compiler tell you, nope, you are doing it wrong |
05:38:33 | Demos_ | I think over around 2-4kloc stuff like JS and PHP get somewhat annoying, I wager python is better |
05:38:48 | thephred | For me, it boils down to testing |
05:39:09 | Demos_ | the big motivation for strong typeing is that types give you a way to size values, and you need that for a systems programming language |
05:39:13 | thephred | If you don't test thoroughly in a dynamic/weak-typed language it can bite you |
05:39:44 | thephred | Yes, Demos_ they fit different needs |
05:39:49 | thephred | you are right |
05:39:50 | Demos_ | yeah |
05:39:52 | filwit | Javascript can get away with weak-typing a bit now since they introduced object freezing, but it's still a pain and doing anything large in it that isn't completely bug-prone requires a mature third-part object kit like backbone.js |
05:40:12 | Demos_ | also, dynamic types have the nice property that the compiler does not need a view of the whole program to do its thing |
05:40:15 | Demos_ | or interpreter |
05:40:29 | filwit | it also makes things very slow.. |
05:40:36 | Demos_ | this is true |
05:40:48 | filwit | and more often than not, also bug prone.. |
05:40:49 | thephred | Not always |
05:40:54 | filwit | it's a loose-loose IMO |
05:40:56 | thephred | See luajit for counterexample |
05:41:00 | Demos_ | unless you are a language that is sorta dynamic typed except it has types for different sizes of thigns |
05:41:07 | Demos_ | but that is a PITA to program in I think |
05:41:14 | skrylar | GUIs are one of those occasions that loose typing / coupling is good |
05:41:18 | skrylar | also glue code |
05:41:24 | * | nande quit (Remote host closed the connection) |
05:41:37 | thephred | I do not like unit testing in a statically types language |
05:41:47 | thephred | super painful compared to what is possible in a dynamic one |
05:41:52 | filwit | thephred: it's still much slower, the only way they get any performance is through complex static-analysis (which can't ever really be perfect.. unless you add in optional strong-typing) |
05:42:11 | thephred | I don't think you've checked out luajit |
05:42:13 | filwit | thephred: and that doesn't even scratch the real performance issues which is tight memory control |
05:42:15 | thephred | it is not much slower |
05:42:22 | skrylar | filwit: but that isn't really a problem in throwaway code |
05:42:23 | Demos_ | filwit, I think BCPL was sorta dynamicly typed |
05:42:42 | skrylar | bash isn't strongtyped either IIRC |
05:42:46 | thephred | The standard lua interpreter is, but not luajit |
05:43:22 | filwit | thephred: true, i haven't really checked out lua at all (jit or otherwise) but i've seen performance statistics before. granted not in awhile |
05:44:17 | Demos_ | you can probably get dynamic languages to about the same performence as something like mono or clr while keeping the benifits of dynamic types |
05:44:17 | thephred | No offense meant for sure |
05:44:37 | filwit | the thing is, when you do something like game-dev, the only way to really get good performance is with fine-grain memory control and SIMD, etc. You can't do that without some form of static type-checking |
05:44:39 | thephred | just sayin' most people that really look at luajit come away very impressed |
05:46:00 | Demos_ | filwit, BCPL had one type: the word |
05:46:18 | * | Demos_ should really learn lua |
05:46:32 | filwit | thephred: they probably also don't try and squeeze out the most performance they can get with batched animation instancing, or image processing, etc (also, no offense taken mate) |
05:46:41 | filwit | Demos_: dunno what BCPL is.. |
05:47:16 | Demos_ | "stands" for before c programming language |
05:48:35 | filwit | Demos_: i'm not sure i see your point with "the word" |
05:49:12 | Demos_ | you can just say that things will be interpreted as whatever type the context demands, and just cast stuff. But it is really not fun to program in such a language |
05:49:37 | filwit | thephred: for general-purpose code, dynamic-typing probably doesn't matter a ton (though, i'm still reserved about waisting performance for very little gain, and a more bug-prone system), but for some applications strong-typing is a must |
05:50:07 | filwit | Demos_: but then that becomes strong-typing :P |
05:50:12 | Demos_ | nope |
05:50:18 | Demos_ | you only have the one type |
05:50:32 | Demos_ | and things are essentially casted to the right types depending on context |
05:51:25 | filwit | so everything is just completely bug-prone (undefined behavior all over the place, yeah!) and up the coder(s) to ensure memory safety? |
05:52:07 | filwit | i'm just not sure of why anyone would want dynamic-typing at all.. to me, you loose on both fronts: performance and security |
05:52:18 | filwit | especially when you have a large team of developers |
05:52:23 | Demos_ | so like I could have x = 1 and in a floating point context you would get like 1.4e-45 or something |
05:52:41 | Demos_ | oh yeah, this sort of system is totally insane |
05:52:50 | thephred | lol |
05:52:55 | Demos_ | but it is simlar to how assembly works |
05:53:56 | filwit | assembly hasn't been considered human-readable for almost a decade unless you work in embedded or reverse-engineering |
05:54:09 | thephred | I think I just spend a lot of time in areas where dynamic languages make life easier |
05:54:18 | Demos_ | well ARM is not so bad |
05:54:19 | thephred | Not all areas are like that |
05:54:35 | filwit | Demos_: point. i have never done ARM asm |
05:54:46 | Demos_ | x86 is a total clusterfuck |
05:55:22 | thephred | I'm really impressed that they can get the x86 to do what they can given the insane complexity and backwards compatibility kludges |
05:55:36 | Demos_ | and yet they do |
05:55:41 | thephred | lol, yup |
05:55:42 | filwit | thephred: i have written a lot of javascript, and I can't think of a single area where dynamic-typing is really needed (dynamic dispatch and inheritance, sure, but weak-typing?). But i'm always open to ideas. |
05:56:24 | Demos_ | yeah "helping" the programmer with coersions is not a good thing |
05:56:36 | filwit | Demos_: my only real experience with ASM waw programming GPU shaders years ago |
05:56:41 | thephred | lol, I agree, I don't like coersions |
05:56:58 | * | Demos quit (Ping timeout: 240 seconds) |
05:57:09 | Demos_ | oh dear, I have never written asm for a GPU, do they even make a habit of releasing ISA specs for GPUs? |
05:57:29 | thephred | Well, it has been good chatting with you guys |
05:57:41 | thephred | Good evening and thank you again for the help |
05:58:15 | Demos_ | nimrod is super cool, it is like c++ with less bullshit |
05:58:23 | thephred | hahah |
05:58:26 | filwit | Demos_: it's actually probably some of the easiest ASM you can write. And yeah, they had (constantly evolving) specs |
05:58:30 | thephred | C++ makes my brain hurt |
05:58:32 | thephred | and my eys |
05:58:36 | thephred | *eyes |
05:58:39 | thephred | and my fingers |
05:58:49 | filwit | Demos_: these days they don't even have ASM shader-compilers though, you have to write in GLSL/HLSL |
05:59:07 | Demos_ | or Cg! |
05:59:10 | filwit | later thephred |
05:59:18 | * | thephred quit (Quit: Page closed) |
05:59:39 | filwit | Demos_, yes or Cg, though Cg suxs on AMD |
05:59:55 | Demos_ | yeah |
05:59:56 | filwit | then again, GLSL also sux on AMD, so choose your poisen |
05:59:59 | filwit | lol |
06:00:32 | Demos_ | and Nvidia's GLSL and HLSL compilers actually compile something between HLSL/GLSL and Cg |
06:01:33 | filwit | well Nvidia has much better drivers in general. GLSL on Nvidia is very extended from the spec, but you can lock it down to ensure the same code works across hardware. |
06:05:27 | Demos_ | true |
06:05:35 | Demos_ | intel has some nice drivers as well. Open source even |
06:07:00 | filwit | yeah i haven't needed to write any complex shaders for awhile, but I'm looking forward to getting back into it |
06:07:51 | Demos_ | yeah. my dream is to have some metaprogramming stuff that could generate a whole shader /and code to bind uniforms and what not/ from nimrod code at compile time |
06:08:07 | filwit | yep, that's in my plans as well |
06:08:26 | filwit | it's actually the only sane way to write shaders actually |
06:09:33 | filwit | cause connecting the mesh-data to the shader-inputs needs to be checked at compile-time really, and having a system which automatically generates the binds makes things much easier |
06:10:12 | filwit | my brother wrote a C# version of this and it made life much easier when working with shaders |
06:10:22 | filwit | i plan on going much further with Nimrod |
06:11:11 | Demos_ | yeah having access to the types is important, presumably your brother used reflection |
06:11:36 | Demos_ | we need a way to get the implementation AST of a function at compile time first thoug, to handle function calls |
06:13:54 | filwit | actually he made a rudimentary parser with some regex, but it was enough to extract uniforms/samplers and build unique C#-side objects for each shader (which allows you to pass constants by name in game-code, etc, efficiently and checked at compile-time) |
06:14:26 | Demos_ | neat. I was about to say that going from GLSL and just making the bindings could be eaiser |
06:14:42 | Demos_ | but just generateing shaders from nimrod code would be even better |
06:15:04 | filwit | what I plan on doing is making a macro which consumes a body of code, then spits out a object the game-engine can work with (with uniforms by name, etc), and the actual GLSL |
06:15:51 | Demos_ | yeah I was going to take a function and spit out some functions to set up uniforms and VAOs and whatnot as well as a constant string with the glsl |
06:16:25 | Demos_ | but with the `.` overload stuff an object could be sweet |
06:16:52 | Demos_ | I started trying to do this but macros are pretty buggy |
06:18:29 | Demos_ | better than flowgraphs :D |
06:20:58 | * | filwit quit (Ping timeout: 240 seconds) |
06:57:00 | * | Demos_ quit (Quit: Leaving) |
07:17:58 | * | _fel1x joined #nimrod |
07:54:38 | * | DAddYE quit (Remote host closed the connection) |
07:55:07 | * | DAddYE joined #nimrod |
07:59:18 | * | DAddYE quit (Ping timeout: 240 seconds) |
08:02:50 | * | io2 joined #nimrod |
08:09:15 | * | BitPuffin quit (Read error: Connection reset by peer) |
08:09:24 | * | faassen joined #nimrod |
08:11:35 | * | io2 quit () |
08:13:30 | * | BitPuffin joined #nimrod |
08:22:16 | * | ddl_smurf joined #nimrod |
08:22:49 | * | ddl_smurf quit (Client Quit) |
10:03:29 | * | BitPuffin quit (Ping timeout: 240 seconds) |
10:05:47 | skrylar | oh joy another weird bug |
10:15:09 | * | zahary joined #nimrod |
10:30:44 | * | zahary quit (Quit: Leaving.) |
10:57:19 | * | zahary joined #nimrod |
11:10:41 | * | zahary quit (Quit: Leaving.) |
11:15:51 | * | BitPuffin joined #nimrod |
12:18:04 | * | zahary joined #nimrod |
12:24:49 | * | ddl_smurf joined #nimrod |
12:33:50 | * | zahary quit (Quit: Leaving.) |
12:42:12 | BitPuffin | dom96: very confusing when you have the very same avatar as 90% of people on steam and they start playing dota |
12:42:12 | * | BitPuffin quit (Quit: WeeChat 0.4.3) |
13:16:33 | * | BitPuffin joined #nimrod |
13:51:34 | * | r0b2 quit (Ping timeout: 265 seconds) |
13:53:44 | * | askatasuna joined #nimrod |
13:54:24 | * | darkf quit (Quit: Leaving) |
14:14:50 | * | isenmann quit (Quit: Leaving.) |
14:57:47 | * | Endy joined #nimrod |
15:02:47 | * | psquid quit (Quit: work) |
15:14:27 | * | askatasu1 joined #nimrod |
15:20:47 | * | Zuchto_ joined #nimrod |
15:21:53 | * | askatasuna quit (*.net *.split) |
15:21:53 | * | _fel1x quit (*.net *.split) |
15:21:53 | * | Zuchto quit (*.net *.split) |
15:28:18 | * | _fel1x joined #nimrod |
15:30:58 | * | askatasu1 quit (Quit: WeeChat 0.4.2) |
15:31:28 | * | askatasuna joined #nimrod |
15:32:18 | * | Demos joined #nimrod |
15:32:58 | Demos | hey, you know how yesterday I had a problem with proc foo[T](ts: openarray[T]) = ... and proc foo[T](t: T) = ...? |
15:36:28 | * | r0b2 joined #nimrod |
15:36:48 | Demos | well I think I expected it to work via something like SFINAE. In C++ the compiler would go and instantiate both templates and see that the instantiation of one or other other produced invalid code, that one would then be removed from the set of functions considered for overload resolution |
15:43:28 | fowl | Demos, you should be more specific like [T: typeclass] |
15:46:38 | Demos | yeah, that is what I ended up doing |
15:47:13 | Demos | but SFINAE is more powerful than that. you automaticly have everything T: everything where other overloads fail to instantiate |
15:48:38 | fowl | but it leaves no information to the developer why the overload failed |
15:51:33 | Demos | yeah I suppose, not a big deal just interesting that I expect SFINAE though. |
15:59:49 | fowl | packet de/serializing: https://gist.github.com/fowlmouth/9252920 |
16:00:19 | * | oal left #nimrod ("Leaving") |
16:00:59 | OrionPK | fowl what do you suddenly have against "return"? :P |
16:01:19 | fowl | OrionPK, it produces bad code |
16:01:19 | OrionPK | oh?? |
16:01:34 | OrionPK | you mean bad C? |
16:01:34 | fowl | yea |
16:01:59 | fowl | for stream >> x >> y >> z the result stream is assigned to a new var each time |
16:02:19 | OrionPK | interesting |
16:04:39 | * | [1]Endy joined #nimrod |
16:07:19 | * | noam__ is now known as noam |
16:08:09 | * | Endy quit (Ping timeout: 240 seconds) |
16:08:09 | * | [1]Endy is now known as Endy |
16:15:09 | fowl | OrionPK, yea so i just wrote macros to get past that |
16:15:59 | OrionPK | you are the macro master |
16:21:09 | dom96 | BitPuffin: That was me ;) |
16:22:29 | dom96 | hey guys |
16:22:59 | * | EXetoC joined #nimrod |
16:26:39 | renesac_ | why nimrod don't use << / >> for shl / shr? |
16:27:19 | fowl | renesac_, because it descends from pascal |
16:28:09 | renesac_ | shl and shr are bad because you can't have '>>=' '<<=' |
16:28:30 | EXetoC | that's a really minor limitation imo |
16:28:30 | renesac_ | also makes harder to translate code from c, java etc |
16:28:55 | renesac_ | yeah, but what is the upside of 'shl' instead of '<<' |
16:28:55 | renesac_ | ? |
16:29:10 | EXetoC | really? just assign and shift in one statement |
16:29:35 | dom96 | renesac_: You can define those operators yourself. |
16:30:10 | renesac_ | I know, but I was asking if there was some good reason for this |
16:30:20 | renesac_ | some benefit |
16:30:55 | dom96 | Easier to deduce what it means? |
16:31:05 | renesac_ | err, not really |
16:31:30 | dom96 | For people who have never used a C-like language. |
16:31:30 | renesac_ | even then |
16:31:50 | renesac_ | it is a pretty severe abreviation |
16:31:50 | renesac_ | two letters from the first word, one from the following |
16:32:10 | renesac_ | << it is obvious a directional thing, for the left |
16:32:30 | renesac_ | one has to guess that 'l' stands for 'left' in 'shl' |
16:32:40 | renesac_ | or read the explanation, of coures |
16:33:20 | renesac_ | you just don't know what directional thing it is, but you would have to guess what 'sh' means anyway |
16:33:40 | EXetoC | as if << is obvious to the inexperienced programmer |
16:33:55 | renesac_ | I'm not claiming this |
16:34:10 | renesac_ | <renesac_> << it is obvious a directional thing, for the left |
16:34:10 | renesac_ | <renesac_> you just don't know what directional thing it is, but you would have to guess what 'sh' means anyway |
16:34:40 | dom96 | So what is the benefit of << / >>? That we can write >>= ? |
16:34:40 | dom96 | Is that the only benefit? |
16:34:40 | renesac_ | yes |
16:35:15 | renesac_ | and that you see more of those than 'shl' when you need to translate snippets of code (bithacks, etc) |
16:35:40 | * | [1]Endy joined #nimrod |
16:35:50 | dom96 | Well fair enough. But 'shl' is consistent with the rest of the language. |
16:36:35 | renesac_ | err, no? |
16:36:35 | renesac_ | "Apart from a few built-in keyword operators such as and, or, not, operators always consist of these characters: + - * \ / < > = @ $ ~ & % ! ? ^ . |" |
16:37:20 | dom96 | Nimrod doesn't use & for bitwise AND. It uses 'and'. Other bitwise operations are similar. |
16:37:40 | renesac_ | not forbidden by language either, but the recomendation is to use those characters it seems |
16:37:40 | * | Endy quit (Ping timeout: 240 seconds) |
16:37:40 | * | [1]Endy is now known as Endy |
16:38:15 | renesac_ | yeah, I also found it strange, using the same operator for bitwise and logical 'and' |
16:38:15 | dom96 | That's a list of characters allowed in operators. |
16:38:55 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
16:38:55 | renesac_ | but it works after all, and 'and=' isn't as common |
16:39:10 | renesac_ | and '&' is already taken |
16:39:35 | renesac_ | though for strings... for integers it don't have meaning |
16:39:45 | renesac_ | I think |
16:40:30 | dom96 | yes, but it becomes confusing then. |
16:40:55 | renesac_ | 'and' for bitwise and logical operations is also a bit confusing, but I agree |
16:40:55 | dom96 | we don't even use ++ for incrementing ints. |
16:40:55 | dom96 | We use .inc |
16:41:10 | renesac_ | yeah |
16:41:20 | renesac_ | but that is kinda neutral for me |
16:42:00 | renesac_ | C uses a lot of ++ because it don't have iterators |
16:42:00 | dom96 | Araq already allowed ++ and += into the stdlib IIRC. |
16:42:10 | dom96 | So he will probably allow you to add >>=/<<= too |
16:42:20 | renesac_ | ++ I don't remember, but += I use all the time |
16:42:55 | renesac_ | well, having '<<=' but not '<<' instead of 'shl' is a bit inconsistent |
16:43:30 | dom96 | you could probably add that too |
16:43:30 | renesac_ | oh, one more reason why 'shl' is bad: |
16:43:40 | renesac_ | araq's idea of 'strong spaces' |
16:43:50 | renesac_ | won't work with those operators |
16:44:15 | renesac_ | or at least, it will disrupt it quite a bit |
16:44:40 | renesac_ | when combined with operators that can be juxtaposed to variables |
16:44:55 | fowl | ? |
16:45:20 | renesac_ | strong spaces = having ' a+b * c ' mean '(a+b)*c' |
16:45:55 | dom96 | you can still add extra spaces before and after the 'shl' |
16:45:55 | dom96 | So I don't see the problem |
16:46:50 | renesac_ | yes, but then if you want to use strong spaces in a expression with 'shl' you have to work with one plus space everywhere |
16:47:20 | renesac_ | like, two spaces for binding loosier, what araq isn't even convinced of allowing |
16:52:36 | Demos | so... I was thinking the bikeshed could be green. |
16:53:11 | * | EXetoC joined #nimrod |
16:53:56 | BitPuffin | dom96: no |
16:53:56 | BitPuffin | dom96: :P |
16:54:06 | dom96 | BitPuffin: how can you be sure?! |
17:00:41 | renesac_ | well, it started because I wanted to know if there was a good reason for the style 'shl' |
17:01:16 | renesac_ | and the best answer I got was dom96 argument that other bitwise operators are in the same style |
17:01:41 | renesac_ | :P |
17:02:01 | dom96 | Yay. My answer is best :D |
17:02:51 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
17:03:01 | dom96 | Just wait until Araq arrives, he may give you a better answer :P |
17:03:31 | renesac_ | one more bikeshed: in most languages that use 'mod' as an operator, it has a different meaning |
17:04:11 | renesac_ | and nimrod 'mod' semantic is usually given by 'rem' operator |
17:04:41 | renesac_ | this is a minor thing though, as there isn't really a standard... |
17:05:51 | * | EXetoC joined #nimrod |
17:06:36 | BitPuffin | dom96: what is your nick on steam |
17:06:36 | BitPuffin | prove that it was you :) |
17:06:56 | Discoloda | hmm, all this talk about math. i wonder if its possible to implement J or APL in nimrod |
17:07:06 | EXetoC | ALSA configuration is a bitch |
17:07:06 | dom96 | BitPuffin: SuperWaffle234 |
17:08:11 | renesac_ | Discoloda, try to define a unicode operator and see if it works |
17:08:11 | renesac_ | :P |
17:08:36 | renesac_ | *operator consisting of a unicode character |
17:08:36 | dom96 | I bet it does :P |
17:08:46 | BitPuffin | dom96: wrong |
17:08:46 | BitPuffin | dom96: HA! |
17:09:51 | renesac_ | wow, this year is the 50th aniversary of APL |
17:12:11 | * | renesac_ knew APL by amz's "If programming languages were religions" |
17:13:21 | renesac_ | http://blog.aegisub.org/2008/12/if-programming-languages-were-religions.html |
17:13:31 | dom96 | BitPuffin: lies |
17:14:11 | OrionPK | you can convert into judaism |
17:16:36 | Demos | is zahary1 the author of the proposed boost::mixin library? |
17:22:32 | BitPuffin | dom96: no it'sa true |
17:24:02 | * | Matthias247 joined #nimrod |
17:26:32 | BitPuffin | dom96: maaaaario |
17:31:02 | * | nande joined #nimrod |
17:31:57 | BitPuffin | dom96: btw you never responded to my suggestion that we should provide a transparent websockets backend for the sockets modules :D |
17:33:02 | Matthias247 | you can build one on top of the sockets :) |
17:33:22 | dom96 | BitPuffin: first we need a stable sockets module |
17:33:42 | Matthias247 | exactly |
17:34:32 | Matthias247 | I have a fully async websocket implementation in c++ and c# that I could port |
17:34:32 | EXetoC | dom96: just work really hard and get it done by midnight |
17:34:32 | EXetoC | you can do it |
17:35:12 | Matthias247 | but you would need async sockets, http und sha-1 beyond it |
17:37:57 | dom96 | EXetoC: I'm waiting for Araq to fix a compiler bug. |
17:42:12 | * | vendethiel joined #nimrod |
17:46:43 | Demos | so there were some static[T] fixes that went into the compiler a bit ago, I have not tested my "can we do matrices yet" snippit though |
17:48:23 | Demos | what is the difference between , and ; when seperateing proc params |
17:50:53 | dom96 | There is none. |
17:52:18 | fowl | proc (x;y;z) is three generic params, proc (x,y,z) is three generic params of the same type |
17:52:18 | Demos | allright |
17:53:03 | fowl | no wait thats not right |
17:53:03 | * | Mat3 joined #nimrod |
17:53:13 | Mat3 | hi all |
17:53:38 | fowl | proc (x,y: T) both are T, proc(x; y: T) y is T, x is generic |
17:57:13 | Demos | yeah, I think I get it |
17:57:23 | * | Demos quit (Quit: leaving) |
18:03:58 | BitPuffin | dom96: yes |
18:03:58 | BitPuffin | dom96: but do you think it's possbre |
18:04:43 | dom96 | possibry |
18:07:43 | Araq | renesac_: << wouldnt have the same precedence as in c |
18:08:33 | * | [1]Endy joined #nimrod |
18:08:43 | * | Mat3 *argg* |
18:09:03 | Varriount | Demos: Hello guys |
18:09:13 | Araq | << has the same precedence as < |
18:09:23 | Mat3 | hello Varriount |
18:11:23 | Varriount | fowl: Do you have bindings for SDL2? |
18:11:58 | fowl | yes in fowltek |
18:12:08 | Varriount | Mkay. |
18:12:23 | * | Endy quit (Ping timeout: 264 seconds) |
18:12:23 | * | [1]Endy is now known as Endy |
18:12:33 | * | Mat3 these dam*zensored*: Linux terminals initially map BS to DEL and DEL to some ANSI incompatible escape-sequences! |
18:13:03 | Mat3 | Z=c |
18:13:23 | dom96 | fowl: Please separate that into a separate repo |
18:25:19 | * | Demos joined #nimrod |
18:28:04 | * | BitPuffin quit (Ping timeout: 265 seconds) |
18:31:24 | * | zielmicha joined #nimrod |
18:32:04 | fowl | dom96, ok |
18:34:39 | Varriount | dom96: When you get the chance, can you investigate the nim-locale babel package for any irregularities? |
18:35:39 | Tyler_ | if anyone is bored |
18:35:39 | Tyler_ | I'm getting a systax error I don't understand |
18:35:49 | Tyler_ | https://gist.github.com/tylereaves/9256201 |
18:35:49 | Tyler_ | memory.nim(32, 21) Error: ')' expected |
18:36:24 | Tyler_ | aw, crap, I think I know what is |
18:36:24 | Araq | Tyler_: look at your gist, 'addr' is a keyword |
18:36:24 | Tyler_ | addr is a reserved word, isn't it? |
18:36:39 | Araq | yep |
18:36:39 | Tyler_ | I blame the sublime 2 mode :P |
18:36:49 | Tyler_ | which apparently doesn't highlight all keywords... |
18:37:24 | * | carum joined #nimrod |
18:37:24 | Araq | addr always has been a keyword |
18:39:19 | Tyler_ | shouldn't the parser be able to catch stuff like this and throw a more helpful error? |
18:39:34 | Tyler_ | "Expected argument name, found keyword addr instead" or something like that |
18:40:44 | Varriount | Tyler_: Which sublime text plugin are you using? |
18:41:04 | Tyler_ | let me checked... |
18:41:14 | Tyler_ | installed via package control... |
18:41:24 | Varriount | Nope. |
18:41:44 | Varriount | You need to install the one by OrionPK, Mitchell and Me. |
18:42:04 | Varriount | It's on github, search for "NimLime" |
18:42:19 | Tyler_ | https://github.com/leonardoce/nimrod-sublime", "version": "2013.12.04.20.15.50 |
18:42:29 | Tyler_ | ok |
18:43:14 | * | carum quit (Ping timeout: 272 seconds) |
18:44:54 | Tyler_ | that still doesn't actually catch this particular case, but the highlighting is definatly much better! |
18:49:19 | OrionPK | Tyler_ we do highlight addr |
18:50:25 | * | DAddYE joined #nimrod |
18:50:40 | Tyler_ | ahh, so you do |
18:50:40 | Matthias247 | and we can autocomplete ;) |
18:51:05 | Tyler_ | but apparently whatever stylying you're using is showing up as the same as normal text in my colorscheme (boron) |
18:51:05 | Tyler_ | but that's my problem, I suppose |
18:52:05 | Araq | Tyler_: error messages can always be improved |
18:52:45 | OrionPK | friggin chsh |
18:52:55 | OrionPK | hows a little ol' windows user like me supposed to know about that |
18:53:25 | * | Tyler_ runs cygwin zsh...on windows |
18:53:25 | Tyler_ | try it :P |
18:53:35 | OrionPK | zsh eh |
18:53:45 | Tyler_ | I have it working in a custom terminal with unix colors and everything working |
18:54:00 | OrionPK | I use git bash and conemu |
18:54:20 | Araq | I program in Dosbox fwiw |
18:54:20 | Varriount | I use the best of the best... |
18:54:30 | Varriount | cmd.exe :3 |
18:54:30 | OrionPK | ;D |
18:55:15 | Tyler_ | hadn't heard of conemu |
18:55:15 | Tyler_ | I'm running console2 |
18:55:15 | Tyler_ | which mostly works pretty ok |
18:55:25 | Tyler_ | gives me tabs and scrollback and mouse copy/paste |
18:56:00 | OrionPK | con emu can be customized to look pretty sexy though |
18:58:35 | zielmicha | http://build.nimrod-lang.org/ is down (maybe somebody mentioned this, but logs are down :( ) |
18:59:05 | Araq | dom96 is working on it |
19:00:45 | dom96 | zielmicha: Oh, didn't notice. Thanks for the heads up. |
19:05:05 | * | Demos quit (Ping timeout: 264 seconds) |
19:06:40 | Varriount | OrionPK: I need keywords to descripe nilime |
19:06:40 | Varriount | *nimlime |
19:07:05 | OrionPK | nimrod, nim, nimrod language, nim language |
19:07:15 | Araq | keywords: nimrod, lime, awesome, incredible |
19:07:25 | Araq | impressive, quad-damage |
19:07:45 | Araq | double kill! |
19:08:05 | * | Demos joined #nimrod |
19:08:20 | dom96 | Varriount: What irregularities should I look for? |
19:08:55 | reactormonk | Matthias247, how do you autocomplete? invoke a new compiler every time? |
19:09:05 | Matthias247 | reactormonk: yes |
19:09:20 | reactormonk | Matthias247, I've found that to be too slow |
19:09:40 | * | carum joined #nimrod |
19:09:40 | Matthias247 | depends on your pc and the source file size :) |
19:10:25 | Matthias247 | I made an option that it only delivers completions when you explicitely ask for them - in case it's too slow |
19:10:25 | Varriount | dom96: Something that would prevent or give strange output when running "babel install XXX;cd {babel path XXX}; babel build" |
19:10:45 | OrionPK | who says germans dont have a sense of humor? |
19:11:05 | * | Varriount is publishing NimLime on package control |
19:11:15 | OrionPK | coo |
19:12:05 | Matthias247 | do that :) |
19:14:25 | Araq | OrionPK: you made me install conemu |
19:14:35 | Araq | but I don't get how to configure it |
19:14:35 | * | dom96 grumbles |
19:14:45 | dom96 | Araq: Please fix NimBuild on devel. |
19:15:00 | OrionPK | araq there's a dialog |
19:15:10 | Varriount | dom96: How is it broken? |
19:15:20 | Araq | dom96: it compiles for me ... |
19:15:20 | OrionPK | win+alt+p |
19:16:15 | dom96 | Varriount: It doesn't compile. |
19:18:46 | OrionPK | why on earth is google closure compiler written in java |
19:20:21 | dom96 | Araq: Maybe you fixed it in your vm2_2 branch? |
19:20:36 | Araq | vm2_2 has been merged already |
19:20:46 | Araq | there is a regression however |
19:20:46 | Araq | which I fixed just now |
19:21:01 | dom96 | macros.nim(327, 21) Error: type mismatch: got (TTable[string, TStatus], string) |
19:22:36 | * | brson joined #nimrod |
19:23:46 | dom96 | And I am talking about the website in case you're compiling the builder. |
19:23:56 | Araq | ah! |
19:24:16 | dom96 | I can predict your mistakes too ;) |
19:24:16 | Araq | nice |
19:25:46 | Varriount | OrionPK: Could you please spiff up the readme file for NimLime? |
19:26:16 | OrionPK | dont think i'll have time man.. i'm at work now, and in the middle of buying a house/moving when im not working |
19:26:46 | Demos | wowha type TMatrix[N,M: static[int]] = array[N*M, float32] actually compiles |
19:27:06 | Demos | this changes everything |
19:27:16 | Varriount | OrionPK: Ah, ok. |
19:27:36 | Varriount | OrionPK: Well, good luck on getting that other stuff done then. |
19:28:06 | Araq | Demos: you should praise zahary1 for doing lots of hard work |
19:30:06 | Demos | note that if I change array[N*M, float32] to array[1..N*M], float32] if fails |
19:30:06 | Demos | *it |
19:30:16 | Demos | but still YAY! |
19:30:26 | Araq | irclogrender.nim(2, 5) Error: cannot open 'jester' |
19:30:46 | dom96 | babel install jester |
19:30:56 | Araq | I'm quite sure I did that |
19:31:41 | Araq | apparently not, oh well |
19:32:06 | Araq | lib\core\macros.nim(327, 21) Error: type mismatch: got (TTable[string, TStatus], string) |
19:32:06 | Araq | but expected one of: |
19:32:06 | Araq | system.&(x: seq[T], y: T): seq[T] |
19:35:06 | Araq | congratulations, dom96, your website.nim fails whereas fowl's keineschweine compiles making you the winner of the contest "who stress tests the compiler better" |
19:35:21 | dom96 | :D |
19:35:36 | dom96 | What prize do I get? |
19:35:54 | dom96 | NimBuild should be back up now. |
19:36:11 | Demos | now the real test: can I make a static[set] |
19:38:12 | Araq | and why the fuck doesn't the compiler say "instantiation from here" |
19:39:43 | OrionPK | hmm |
19:39:48 | OrionPK | parseInt is failing on the number 2 |
19:39:49 | Varriount | Araq: Careful of your language, there are impressionable youngsters in the room. :p |
19:40:38 | OrionPK | Error: unhandled exception: invalid integer: 1 |
19:40:56 | Demos | that one goes right next to ERROR: Success :D |
19:41:11 | OrionPK | :) |
19:41:34 | Araq | OrionPK: only 0 and 1 are real numbers |
19:43:36 | skrylar | Araq: do you already know about the bug where if you have a proc which modifies a var parameter, then call that proc using 'check' from unittest, it actually doesn't allow the variable to be updated at the top level which can cause a cascade of failure (checking the variable afterward shows no change) |
19:43:59 | Araq | no |
19:44:51 | OrionPK | Araq and number 1 |
19:45:05 | OrionPK | giving me that error for multiple types ;P |
19:45:27 | OrionPK | multiple numbers |
19:45:57 | Araq | the stdlib obviously doesn't use parseInt nor does anybody else |
19:46:14 | OrionPK | lol |
19:46:57 | OrionPK | it's on my ARM chip running debian |
19:47:03 | * | zahary joined #nimrod |
19:47:51 | zahary | so Matthias247, did you also get an invite for Atom? |
19:47:53 | OrionPK | imx6 |
19:48:13 | NimBot | Araq/Nimrod devel f9ff1db Araq [+0 ±1 -0]: fixed typo in error message |
19:48:13 | NimBot | Araq/Nimrod devel 95782e9 Araq [+0 ±1 -0]: nil -> discard |
19:48:13 | NimBot | Araq/Nimrod devel 9bf8f0a Araq [+0 ±1 -0]: make C backend more robust against compiler bugs |
19:48:13 | NimBot | Araq/Nimrod devel b571f0d Araq [+0 ±1 -0]: some progress on the new name mangler |
19:48:13 | NimBot | 1 more commits. |
19:50:56 | Demos | less compiler bugs ... I like where this is heading |
19:52:34 | Mat3 | good ! |
19:52:54 | Matthias247 | zahary: yep, have one. But not testedd beause of osx |
19:53:27 | Mat3 | ciao |
19:53:32 | * | Mat3 quit (Quit: Verlassend) |
19:53:44 | dom96 | oh, I got one too. |
19:53:49 | skrylar | Araq: okay, reported w/ compiler hash and example code |
19:53:56 | * | dom96 didn't even notice until now |
19:54:10 | OrionPK | wonder when windows/linux versions are coming |
19:55:16 | dom96 | Aww. OS X only :\ |
19:55:26 | * | Demos quit (Ping timeout: 264 seconds) |
19:55:32 | dom96 | zahary: I can give you an invite if you want? |
19:55:41 | Araq | brb |
19:56:34 | Matthias247 | dom96: he already has one |
19:56:42 | * | io2 joined #nimrod |
19:56:51 | OrionPK | I think we have enough for everyone who wants one here heh |
19:56:55 | dom96 | oh right. |
19:56:58 | Matthias247 | I have a macbook here, but too lazy for booting and installing it :) |
19:57:17 | dom96 | zahary: what do you think of it? |
19:57:23 | zahary | I have an invite already, the API is quite poor at the moment, but I created some basic Nimrod plugin |
19:57:24 | OrionPK | Matthias247 you have to help build the nimrod plugin for it though |
19:57:26 | OrionPK | :P |
19:57:34 | OrionPK | zahary nice! |
19:57:49 | dom96 | zahary: What's the performance like? |
19:57:54 | OrionPK | you should use our tmlanguage def from nimlime IMO |
19:57:58 | Matthias247 | it at least read the complete docu today at work :) |
19:58:49 | zahary | dom96: can't quite tell at the moment - CodeMirror may be a bit faster (LightTable) |
19:59:16 | * | skrylar continues to hug vim ._. |
20:00:18 | OrionPK | we'll have to try a big file |
20:00:31 | Matthias247 | it supports max. 1MB files :) |
20:01:00 | zahary | OrionPK: I noticed the definition formats are similar, but have somebody already written a converter of tmLanguage to cson? |
20:01:57 | Matthias247 | afaik it also understands json and not only cson files |
20:02:15 | zahary | also, I find the indentation scheme somewhat broken; is it possible to tell Sublime to dedent after return or break for example? |
20:02:27 | zahary | but sublime uses xml? |
20:03:50 | zielmicha | Should this https://gist.github.com/zielmicha/0712ac220a11d30aee92 fail with "undeclared identifier"? |
20:04:13 | zielmicha | I feel that it shouldn't, but it does. |
20:04:44 | dom96 | It won't if it's an immediate macro. |
20:05:25 | zielmicha | Oh, I thought that only templates are immediate. |
20:05:31 | zielmicha | Thanks |
20:12:38 | * | carum quit (Remote host closed the connection) |
20:19:08 | reactormonk | purging build/ from the repo reduces its size to 33MB |
20:24:39 | NimBot | Varriount/NimLime master c8e1bf5 Clay Sweetser [+0 ±1 -0]: Cleaned and sped up the check command. |
20:25:09 | * | carum joined #nimrod |
20:33:34 | Araq | dom96: I improved the error message (was quite easy :P ) but your code uses htmlgen.del instead of tables.del |
20:33:47 | Araq | which is correct, immediate macros are preferred now |
20:33:47 | * | carum quit (Remote host closed the connection) |
20:34:05 | Araq | so do yourself a favour and import htmlgen like so: |
20:34:18 | Araq | from htmlgen import p, `div`, a |
20:34:45 | Araq | and we need to document that, htmlgen is *evil* |
20:35:03 | Araq | immediate macros with short names like 'p' and 'del' are evil |
20:35:16 | dom96 | Perhaps we should change the way htmlgen works then? |
20:35:16 | Araq | we need to fix htmlgen |
20:35:21 | Araq | yup |
20:35:32 | dom96 | Like the way you showed it in your talk. |
20:36:30 | Araq | that's not "fixing" htmlgen, that's writing a new one |
20:36:48 | Araq | I still like the expression based approach of htmlgen |
20:36:49 | dom96 | Yep :P |
20:37:04 | dom96 | How should htmlgen be fixed then? |
20:37:26 | Varriount | Matthias247: :D |
20:38:20 | dom96 | I have to list a lot of elements in my import line... |
20:40:30 | Araq | well blacklisting works too |
20:40:35 | Araq | import htmlgen except del |
20:40:55 | dom96 | that's better. |
20:42:37 | dom96 | Still fails though |
20:43:18 | dom96 | oh wait |
20:43:33 | dom96 | nvm |
20:43:55 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
20:44:01 | dom96 | now I get a different error :P |
20:46:29 | Araq | for me it compiles with that change ... |
20:46:53 | dom96 | well I haven't rebootstrapped yet |
20:47:01 | dom96 | Should I? |
20:47:24 | Araq | yes |
20:47:39 | * | BitPuffin joined #nimrod |
20:51:55 | dom96 | Araq: What did you change exactly? |
20:52:14 | Araq | the vm |
20:52:27 | Araq | or do you mean to get the better error message? |
20:52:51 | dom96 | To get the website to compile. |
20:52:52 | Araq | macros.nim:327 result = newNimNode(nnkCall, args[0]) |
20:52:56 | dom96 | What did you change in the website? |
20:53:06 | Araq | import htmlgen except del |
20:53:24 | dom96 | in website.nim? |
20:53:28 | Araq | yes |
20:54:36 | dom96 | Araq: git pull and try making that change |
20:55:21 | dom96 | Have templates changed too? |
20:56:12 | Araq | yes |
20:56:26 | dom96 | How? |
20:56:30 | Araq | the symbol binding rules changed so you rarely need 'bind' anymore |
20:57:35 | * | ddl_smurf quit (Quit: ddl_smurf) |
20:58:56 | * | ddl_smurf joined #nimrod |
21:00:12 | Araq | dom96: after a pull it doesn't compile anymore :-) |
21:00:28 | * | faassen left #nimrod (#nimrod) |
21:00:34 | Araq | hmm well you do: template m: expr = state.modules[i] |
21:00:59 | Araq | and then you invoke it without () which is actually ambiguous |
21:01:07 | * | DAddYE_ joined #nimrod |
21:04:24 | * | DAddYE quit (Ping timeout: 240 seconds) |
21:07:31 | Araq | dom96: when I change it to disconnect.add(m()) it compiles but yeah looks like another regression |
21:12:38 | * | Endy quit (Ping timeout: 240 seconds) |
21:13:13 | dom96 | renesac_: Haskell uses 'shiftL' for shift left ;) |
21:13:41 | dom96 | Araq: alright |
21:13:55 | dom96 | http://bartoszmilewski.com/2014/02/26/c17-i-see-a-monad-in-your-future/ |
21:13:59 | * | Demos joined #nimrod |
21:16:46 | Demos | eta on nimlime in package control? |
21:22:21 | dom96 | Araq: On the forum what do you mean that we could use + for 'package'? |
21:23:15 | Demos | I think he means like something that can be accessed by other files in your project but not by other projects. atm I think the idea of a nimrod package is ill-defined |
21:25:24 | OrionPK | yeah i'd like to see an example of what is meant by "+ for package" |
21:25:52 | dom96 | I can't imagine how that will work with the current babel packages that we have. |
21:26:36 | Demos | well we need some notion of package anyways to resolve the strangeness that happens if you name a file something with the same name as an external library file |
21:28:46 | NimBot | Varriount/NimLime master a4b7873 Matthias Einwag [+0 ±1 -0]: Sorting error messages by line number. Fixed line numbers. |
21:31:45 | Matthias247 | OrionPK, Varriount: What do you think about automatically running nimcheck on each save? |
21:33:35 | Araq | well I think I'll make the compiler look at the directory structure and the directory with a .babel file in it is the package name |
21:35:27 | Araq | that said, I find package visibility disgusting and if you have the time to properly distinguish between public/protected/package/private you spend way too much time on irrelevant bullshit and could produce new features instead |
21:36:43 | Demos | come to think of it since imports are non-transitive anyways you could just make a module that forwards on what is "public" and does not forward what is "package private" |
21:38:22 | Araq | Demos: yes of course |
21:38:45 | Araq | this is yet another "I'm still thinking in C#" discussion |
21:46:26 | OrionPK | Matthias247 id rather have a hotkey to do it |
21:46:39 | OrionPK | Matthias247 maybe add a setting to check on save though, off by default |
21:47:09 | Matthias247 | yep |
21:47:23 | Demos | I just installed nimlime, very impressive. Should motivate me to get intellisense working in VS. |
21:47:34 | Matthias247 | but justed it, when the overlay also automically pops up on save it's annoying |
21:47:46 | Matthias247 | just tested |
21:48:20 | OrionPK | ah |
21:58:57 | * | DAddYE_ quit (Remote host closed the connection) |
21:59:34 | * | DAddYE joined #nimrod |
22:04:30 | * | carum joined #nimrod |
22:09:41 | * | askatasu1 joined #nimrod |
22:11:37 | * | zahary quit (Quit: Leaving.) |
22:12:05 | * | askatasuna quit (Ping timeout: 272 seconds) |
22:17:47 | Demos | oh that static[T] code compiles but it fails as soon as you try and do anything with the type |
22:23:29 | NimBot | Varriount/NimLime master 667b7c0 Matthias Einwag [+0 ±3 -0]: Implemented optional checking of files on save |
22:24:04 | Matthias247 | there it is :) |
22:26:15 | Matthias247 | I would love if we could display the error messages as an overlay or tooltip. But that's not possible with ST :( |
22:28:29 | NimBot | Araq/Nimrod devel b158c7c Araq [+0 ±2 -0]: tstmtexprs.nim works again |
22:29:44 | OrionPK | is there a version distinction between devel and master |
22:30:11 | Araq | no |
22:30:26 | Araq | and the distinction currently makes no sense |
22:30:33 | Araq | but will after 0.9.4 is out |
22:34:37 | OrionPK | mmk |
22:34:44 | OrionPK | ircfamiliar doesnt build w/ dev |
22:34:51 | OrionPK | staticExec gives sigsegv or something |
22:35:31 | Varriount | Matthias247: Thanks. |
22:35:50 | dom96 | Araq: We should add the commit hash/branch into -v output |
22:36:02 | Varriount | Matthias247: It's possible to display the errors in the status bar when the cursor is over error regions |
22:36:04 | * | familiar125 joined #nimrod |
22:36:07 | OrionPK | yay |
22:36:22 | OrionPK | got ircfamiliar running on my cubox-i ;) |
22:36:27 | * | familiar125 quit (Remote host closed the connection) |
22:36:28 | dom96 | I'm sure we can detect whether we are in a git repo or not easily. |
22:36:41 | Matthias247 | I think it turns out quite usuable. Press ctrl+s and you immediatle see where you have errors |
22:36:52 | Araq | OrionPK: please report that |
22:37:03 | Matthias247 | Varriount: by storing all of them in a map and use the EventListener to check for each position if it's on an error? |
22:37:45 | Araq | dom96: meh, we simply need to get to the state where not everybody has to work with the github version of nimrod |
22:38:02 | Araq | people should be able to use stable releases |
22:38:19 | Araq | this "build your own latest from github" is unprofessional |
22:38:54 | NimBot | Araq/Nimrod devel 7418d62 Charlie Barto [+0 ±1 -0]: added an overload for highlight.initGeneralTokenizer that accepts a cstring.... 1 more lines |
22:38:54 | NimBot | Araq/Nimrod devel 2daff94 Andreas Rumpf [+0 ±1 -0]: Merge pull request #962 from barcharcraz/vstweaks... 2 more lines |
22:39:00 | dom96 | Ok, then we need to fix up NimBuild and get it to serve up pre-built packages instead. |
22:39:17 | NimBot | Araq/Nimrod devel 891c7f1 Michał Zieliński [+0 ±1 -0]: osproc: add warning about using waitForExit without poParentStreams |
22:39:17 | NimBot | Araq/Nimrod devel cf81177 Andreas Rumpf [+0 ±1 -0]: Merge pull request #963 from zielmicha/wait-for-exit-doc... 2 more lines |
22:40:49 | dom96 | or we could release more often ourselves which won't happen |
22:41:06 | Araq | on the contrary, this will happen |
22:41:17 | Araq | er ... no |
22:41:22 | Araq | never mind, I misread |
22:41:44 | Araq | yes, I agree, nimbuild needs to serve up pre-built packages |
22:42:23 | Demos | rust's build system thing is pretty neat... |
22:42:38 | Demos | but then again I think mozilla can actually pay to host and build all that stuff |
22:43:45 | Araq | iirc there are now more people working on Rust fulltime than on Go |
22:44:10 | Araq | this surely makes a big difference when it comes to everything |
22:44:42 | * | carum quit (Remote host closed the connection) |
22:44:53 | * | dom96 sits patiently awaiting a big company to sponsor us |
22:45:25 | dom96 | I think to be taken seriously we may actually need to change the name. |
22:45:32 | * | carum joined #nimrod |
22:45:43 | dom96 | And tomorrow I will hopefully find out the reason why we were rejected from GSoC. |
22:49:36 | * | filwit joined #nimrod |
22:50:08 | Araq | yeah, I'm curious too |
22:50:16 | Araq | hey filwit, try devel again please |
22:50:27 | Araq | and don't you dare to say "my macros don't work" ... |
22:50:40 | filwit | Araq: can't right now, on Windows, sorry |
22:50:45 | Araq | getting all the tests to compile is a never ending balancing act ... |
22:50:50 | filwit | Araq: will try tonight and let you know in the morning though |
22:50:58 | Araq | sure |
22:51:00 | skrylar | is the compiler broken on windows? |
22:51:09 | Araq | no |
22:52:33 | filwit | it's not that, i'm just doing other work on windows right now and don't have SDL setup here yet |
22:52:40 | skrylar | oh |
22:53:11 | filwit | though i suppose i could just extract the test and try it |
22:53:29 | filwit | i did kinda hop on here to waist a little time |
22:53:41 | filwit | okay, you convinced me, one sec |
22:54:00 | skrylar | master persuasion hat. lol |
22:54:22 | Varriount | dom96: Why not have "Nimble" for a language name? |
22:54:48 | filwit | why change at all? |
22:54:56 | Araq | Varriount: there is no choice between "nim", "nimble" and "nimrod". It's either "nim" or "nimrod". |
22:55:07 | Varriount | Araq: Ah, ok. |
22:55:09 | filwit | (though I like 'Nim' more than 'Nimrod'.. plust i think it should officially be lowercase) |
22:55:11 | skrylar | because its either "nimrod" the idiot or "nimrod" the bible and both make derpy people uncomfortable |
22:55:45 | filwit | Nimrod could be promoted as "good hunter" |
22:55:54 | skrylar | as for corporate sponsorships you have to have a killer app |
22:55:57 | Araq | filwit: it's called bikeshedding and we're getting good at it |
22:56:08 | filwit | lol |
22:56:21 | skrylar | Ruby was pretty widely ignored until 37signals made rails with it |
22:56:50 | Araq | yeah but you can't repeat history |
22:57:25 | dom96 | Varriount: For what it's worth, Nimble is a pretty nice name. |
22:57:27 | Araq | "nimrod in the sky" will only provoke tiresome smiles |
22:57:39 | dom96 | Jester is the future. |
22:57:44 | skrylar | reminds me of when D1 was a thing and people were whining about the same problems, and they didn't have editor support or even a GUI lib |
22:57:46 | dom96 | Just wait till the async stuff works. |
22:58:23 | Araq | skrylar: yeah and now D is sky rocketing ... oh wait, it's not |
22:58:32 | filwit | skrylar: i started with D2, but even then it was basically the same. Now though there's pretty good VS and MonoDev D support |
22:58:36 | skrylar | Araq: they still don't have that great of editor support or a GUI lib, lol |
22:58:46 | Araq | true ... I guess |
22:59:10 | skrylar | BlitzMax is one of those silly game languages and they have a visual debugger / predone GL bindings and whatnot |
22:59:41 | Varriount | We have good C support. Wrappers to the rescue! |
22:59:48 | Araq | "silly game language" here means "commercial product with people having the time to work on it", I bet |
22:59:58 | filwit | Araq: D is actually gaining popularity. It's not confirmed, but Remedy's new game for Xbox One probably uses D |
23:00:21 | skrylar | Araq: its still made by one guy IIRC |
23:00:34 | skrylar | though now he calls it monkey and its one of those "i compile to 20 web languages" things |
23:01:02 | * | icebattle joined #nimrod |
23:02:16 | Araq | filwit: their next game won't anymore though |
23:02:37 | Araq | but that's just a guess from the reported trouble they did go through |
23:03:00 | skrylar | well D2 is full of stupid still; the primary compiler is a closed source mothball |
23:03:08 | Araq | and of course I'm highly biased |
23:04:24 | * | DAddYE_ joined #nimrod |
23:04:44 | filwit | Just saying, it's gained a lot of popularity since I started with it. And Nimrod is in a similar audience ballpark, so once Nimrod gets more IDE support we could actually see a quick rise as well |
23:05:21 | filwit | i mean, just the few reddit articles and DrDobbs article seemed to have attracted a few more users to the forums and IRC |
23:06:38 | filwit | Nimrod is much better than D in many ways, but where they win with C-like style (popularity) Nimrod looses, so popularity bleed-over might not be entirely the same |
23:06:54 | skrylar | i consider non-c syntax a bonus :( |
23:06:58 | filwit | me too |
23:07:01 | * | io2 quit () |
23:07:04 | skrylar | that was my least favorite part of D1 |
23:07:20 | dom96 | Many people unfortunately don't. And focus on bikeshedding... :P |
23:07:23 | skrylar | if freepascal had better generics support i probably would still be using that |
23:07:40 | filwit | i'm just saying there's a lot of C programmers who will be instantly familiar with D vs Nimrod, and they might be more of the "systems programming language" target audience than Python/Ruby folks |
23:07:59 | * | DAddYE quit (Ping timeout: 240 seconds) |
23:08:03 | dom96 | I'm just surprised that so many Python fans are moving to Rust/Go and not Nimrod. |
23:08:17 | skrylar | because rust and go have million dollar plus corporations behind them |
23:08:24 | filwit | dom96: probably many more factors than just syntax |
23:08:39 | skrylar | also yeah, its more of a matter of "does it have shiny knobs" than syntax |
23:08:49 | * | DAddYE_ quit (Remote host closed the connection) |
23:08:52 | skrylar | again, people mysteriousy stopped caring about ruby's warts when Rails came out |
23:09:16 | Demos | well go is actually stable... so there is that. it kinda remains to be seen how well rust does |
23:09:30 | skrylar | especially when textmate came out with snippets and there were screencasts of rails+snippets, tons of people jumped over to macs |
23:09:32 | * | DAddYE joined #nimrod |
23:09:38 | filwit | the thing is, Nimrod has the best performance and GC and platform support than it's competitors (Rust, D, Go). It just has an upward battle in terms of syntax (i like it, don't get me wrong) and IDE support, etc |
23:09:39 | skrylar | so its mostly a matter of stability and shiny knobs as to when people use a product |
23:10:01 | Demos | compiler stability is probably slightly better in rust due to the money and bodies |
23:10:05 | Demos | yeah |
23:10:07 | skrylar | lolno |
23:10:10 | skrylar | rust is not stable |
23:10:16 | Demos | slightly more |
23:10:21 | dom96 | I think nicer looking docs and a more thorough tutorial could go a long way. |
23:10:24 | skrylar | even with crippled macros it still ICEs all the time |
23:10:39 | filwit | oh, Demos: last night my internet cut out man, not sure if you where still talking and i just randomly left :P |
23:10:53 | skrylar | or rather i should say, when rust ICEs its an unrecoverable error. In nimrod you can work around AST failures |
23:11:11 | Demos | yeah, I got a ping timeout message and I assumed your net died |
23:11:37 | * | EXetoC joined #nimrod |
23:11:39 | filwit | dom96: i agree. Docs and tutorial are important. Unfortunately I only really have time to spend on my project and try and fix the few bugs in my way ATM |
23:11:58 | * | EXetoC left #nimrod (#nimrod) |
23:12:20 | dom96 | filwit: Yeah, I understand. I wish I had the free time I once had. :\ |
23:12:42 | Demos | so how hard would it be to make it so that generic param names could be substituted in pragmas? I am thinking like proc stuff[T]() {.header:"<sometemplatestuff.hpp>", importcpp: "stuff<T>".} |
23:13:22 | * | psquid joined #nimrod |
23:13:26 | Demos | actually hold that thought I gotta go for a bit |
23:13:31 | * | Demos quit (Quit: Textual IRC Client: www.textualapp.com) |
23:13:53 | filwit | dom96: actually, I may have more free time later this year. some of my brother and I's projects are starting to do better and we have plans on some better residual income thing. So I may end up with a lot more time to work on Nimrod in a few months. If that happens I will defiantly dedicate more time to docs and tutorials |
23:14:17 | Matthias247 | filwit: I think rust can be as fast or faster than Nimrod. But it's tooling is worse. And it's so much harder to program that the comparison is hard |
23:15:25 | filwit | Matthias247: i doubt it could really be "faster", but i'm sure both Rust and D can bet "just as fast" since they all boil down to basically the same native code if you avoid the GC and stuff |
23:16:13 | Araq | when you avoid the GC, they are all on par |
23:16:26 | Araq | in theory |
23:16:48 | Araq | and in practice each gets enough attention as well for that to become true |
23:16:56 | filwit | yeah exactly. that's why i said Nimrod has the best performance. Cause it's the faster for convienient memory safe code |
23:17:22 | profmakx | give you this |
23:17:26 | profmakx | it does not look like C. |
23:17:40 | filwit | but then, I havent' benched D in awhile and I've never actually tried Rust, so what do i know |
23:18:05 | skrylar | algebraic types are nicer in rust |
23:18:22 | skrylar | as far as omitting the separate enum + union steps |
23:18:37 | Araq | actually D and Rust define wrap around semantics for integers, whereas it's undefined in release mode for nimrod, so nimrod has a slight advantage |
23:19:04 | Araq | whether that can make a difference on today's IO bound CPUs, I dunno |
23:19:54 | filwit | mostly general purpose code performance isn't a huge issue today anyways |
23:20:07 | Araq | skrylar: proper algebraic types are eventually coming, I think |
23:20:23 | filwit | but Nimrod (being compile-to-c) totally kills D with SIMD, and that's a big deal |
23:21:31 | filwit | i was very happy playing with SIMD in Nimrod while in D it's a nightmare with different compilers supporting completely different commands and D structures getting in the way of performance |
23:22:04 | Araq | also nimrod's memory modell is currently *more* efficient than rust's, but I think Rust's can be optimized quite well |
23:23:08 | filwit | does Rust compile for ARM ? |
23:23:14 | Matthias247 | yes |
23:23:26 | filwit | does it use GCC or LLVM or their own? |
23:23:36 | Matthias247 | it compiles to everything that llvm can do |
23:23:45 | filwit | ah, okay that's cool |
23:25:21 | BitPuffin | dom96: whatchu talking about, mumble was piss easy to set up |
23:25:45 | dom96 | BitPuffin: Client or server? |
23:26:05 | skrylar | yeah newer mumble servers are nicer, now that they finally decided admins might want to use a visual editor like the whole rest of the industry does :> |
23:26:16 | skrylar | now we just need to break them of their arrogant "you don't need per-user gain adjustment" |
23:26:38 | dom96 | BitPuffin: See ^ :P |
23:26:57 | dom96 | The last time I tried setting up a mumble server, configuring the permissions was a nightmare. |
23:27:15 | skrylar | it still is unless you understand the weird way that they did the permission tree |
23:27:30 | skrylar | why people won't standardize a single way to represent ACLs I don't understand |
23:28:25 | dom96 | In that case I will stick to TS. |
23:28:36 | skrylar | anyhoo thats another unicode bug fixed |
23:29:16 | filwit | Araq: btw, why where you asking if my macros work on devel? they've worked on devel for awhile now.. did you mean vm2_2? |
23:30:11 | filwit | Araq: there's a bug with system.new(..) being resolved to a locally defined proc new(), but that doesn't have to do with my macros |
23:32:10 | * | noam_ joined #nimrod |
23:33:09 | Araq | filwit: vm2_2 has been merged into devel, so I'm asking about devel |
23:33:50 | skrylar | Araq: is there a regression test for the compiler? |
23:34:45 | Araq | skrylar: what do you mean? we have an extensive test suite with incredibly hard tests ... |
23:35:07 | skrylar | i was asking because you were saying my unicode was going to break everything lol |
23:35:15 | BitPuffin | dom96: server |
23:35:34 | BitPuffin | skrylar: I used text configuration :P |
23:35:42 | BitPuffin | Cuz I'm no noob like dom diddely dom96 |
23:36:44 | * | noam quit (Ping timeout: 272 seconds) |
23:38:21 | filwit | Araq: yes, devel compiles my macros |
23:42:20 | * | BitPuffin quit (Quit: WeeChat 0.4.3) |
23:42:21 | * | Araq sighs |
23:42:48 | * | ddl_smurf_ joined #nimrod |
23:42:53 | Araq | skrylar: well we have close to zero unicode related tests ... |
23:42:59 | filwit | yeah, that's good. I'll have to look over the code later and see what you did |
23:43:11 | skrylar | Araq: bleh, i'll have to fix that some time later |
23:43:41 | skrylar | i have some that make sure this module work, still stamping some bugs that crept in when porting over though :/ |
23:44:35 | Varriount | Hm. So what kind of application would nimrod be particularly suited for? |
23:44:51 | skrylar | hello worlds. *ducks* |
23:45:13 | * | r0b2 quit (Ping timeout: 272 seconds) |
23:45:14 | * | ddl_smurf quit (Ping timeout: 272 seconds) |
23:45:16 | * | ddl_smurf_ is now known as ddl_smurf |
23:45:27 | dom96 | good night |
23:45:33 | Varriount | Good night. |
23:45:34 | skrylar | good night dom96 |
23:46:23 | skrylar | I might play around with libcef and nimrod later out of morbid curiosity |
23:46:59 | * | BitPuffin joined #nimrod |
23:47:03 | Araq | skrylar: we have also an encodings module that is used by aporia and works |
23:47:34 | Araq | Varriount: what about babel support for testament? |
23:47:55 | skrylar | well fortunately a lot of the code i wanted to bring over doesn't really replace some of the stuff that is there |
23:48:09 | skrylar | it adds new ones like being able to iterate graphemes instead of just code points |
23:48:12 | Araq | on the contrary |
23:48:18 | Araq | that's much better |
23:48:24 | Araq | new stdlib modules ftw |
23:48:39 | Araq | new stuff also can't break code that uses the old stuff |
23:48:43 | skrylar | the new encoder is, hmm. different |
23:48:55 | skrylar | i rewrote it so it properly does first-to-last byte iterating now |
23:49:04 | skrylar | instead of putting it in a buffer/sequence |
23:49:36 | * | askatasu1 quit (Ping timeout: 240 seconds) |
23:49:43 | skrylar | i have it all in a separate github repo so i can finish porting / testing / fixing before worrying about what to cherrypick in to stdlib code |
23:50:35 | Araq | nice |
23:54:02 | skrylar | i looked at fossil a while back, since the built-in wiki/bugtracker sounded cool |
23:54:13 | skrylar | its yet another "rebase is the devil" VCS system though :/ |
23:54:13 | * | r0b1 joined #nimrod |