00:08:00 | Varriount | Must... Get... libcef... wrapperworking.. |
00:10:19 | * | CarpNet quit (Read error: Connection reset by peer) |
00:11:50 | EXetoC | sounds like fun |
00:15:43 | Araq | Scramblejams: I've only skimmed your points but you're wrong on everything :P |
00:16:10 | Araq | 1.) nobody codes in notepad so tooling is important no matter how much you dislike IDEs |
00:16:41 | dom96 | Ahh, good ol' blunt Araq. |
00:17:05 | Araq | 2.) consistent style is vastly overrated and there have been no scientific studies afaik that show how consistency improves any measure of software quality |
00:17:26 | Araq | it's just universally assumed that it does |
00:18:12 | Araq | whereas my studies show the opposite: the human brain doesn't care if you wrote filename or fileName and the bugs are usually logical bugs about unexpected cases |
00:20:42 | Araq | and while it may be confusing that foo_bar and foobar are the same symbol, it's actually MORE confusing to have both foo_bar and foobar in the same file and they mean *different* things |
00:21:08 | * | Ricky_Ricardo quit (Quit: Ricky_Ricardo) |
00:25:50 | Araq | 3.) the indentation based syntax is not really about enforcing a proper indentation style but much more about never having to read stupid "end end end" or "}}}}" chains again which take up valuable screen space |
00:33:05 | Varriount | dom96, In my experience, programmers tend to be blunt, to the point of being mean. |
00:33:37 | dom96 | Varriount: Yeah, that is usually the case. |
00:33:58 | Varriount | I have yet to find a programmer who I would describe as "sweet and nice" |
00:34:37 | Araq | I'm always sweet and nice unless you say something I disagree with |
00:34:42 | * | MFlamer quit (Remote host closed the connection) |
00:35:00 | Araq | or unless I'm in a bad mood |
00:35:19 | Araq | or unless it's a Monday |
00:41:42 | * | freezerburnv joined #nimrod |
00:43:01 | * | DAddYE quit (Remote host closed the connection) |
00:54:02 | Varriount | Araq, can c2nim handle templates in c++ mode? |
00:55:40 | Araq | kind of, it can handle vector<map<string, string>> |
01:02:39 | * | BitPuffin quit (Ping timeout: 272 seconds) |
01:03:36 | Varriount | Araq, I'm trying to get it to wrap a template definition -> https://gist.github.com/Varriount/7274271 |
01:03:56 | Varriount | Some other files in the lib I'm trying to wrap depend on the definition. |
01:06:51 | * | mflamer joined #nimrod |
01:11:27 | mflamer | hey, where can I find that "class" macro? I forget who wrote it |
01:28:32 | Araq | mflamer: both fowl and adrian have one afaik |
01:28:39 | Araq | good night |
01:42:33 | * | filwit joined #nimrod |
01:43:21 | * | mflamer_ joined #nimrod |
01:43:49 | * | mflamer quit (Ping timeout: 272 seconds) |
01:48:53 | * | mflamer_ quit (Ping timeout: 272 seconds) |
02:25:29 | * | Demos joined #nimrod |
02:33:29 | * | brson quit (Ping timeout: 272 seconds) |
02:34:52 | * | brson joined #nimrod |
02:59:26 | * | mflamer joined #nimrod |
03:01:21 | * | ics joined #nimrod |
03:05:53 | * | mflamer quit (Ping timeout: 272 seconds) |
03:06:58 | * | mflamer joined #nimrod |
03:15:39 | * | mflamer quit (Ping timeout: 272 seconds) |
03:24:42 | * | brson quit (Quit: leaving) |
03:26:14 | * | mflamer joined #nimrod |
03:28:44 | * | Associat0r joined #nimrod |
03:28:44 | * | Associat0r quit (Changing host) |
03:28:44 | * | Associat0r joined #nimrod |
03:30:14 | * | freezerburnv quit (Quit: freezerburnv) |
03:32:38 | * | mflamer quit (Ping timeout: 245 seconds) |
03:36:12 | * | mflamer joined #nimrod |
03:41:08 | * | mflamer quit (Ping timeout: 240 seconds) |
03:41:10 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
03:44:52 | * | ics joined #nimrod |
03:49:01 | * | ics quit (Ping timeout: 240 seconds) |
03:51:44 | * | ics joined #nimrod |
03:54:42 | * | mflamer joined #nimrod |
03:57:07 | * | filwit quit (Quit: Leaving) |
04:20:20 | Scramblejams | Araq: Hi! I feel honored to be disagreed with. :-) |
04:21:30 | Scramblejams | I'm not arguing about camelcase or whether people should put underscores into variable names. |
04:21:46 | Varriount | Scramblejams, He's probably asleep. |
04:21:59 | Scramblejams | Oh well. |
04:22:04 | Varriount | It's around 5 am or so where he lives. |
04:22:37 | Scramblejams | Well, he'll come back and read it. We're sufficiently out of time sync that we may actually never talk. So I'll respond. |
04:22:53 | Varriount | Also, it would take dynamite and more time than you have hairs to shift his opinion about certain things. |
04:23:23 | Varriount | (Of course, that's true about a lot of programmers >_>) |
04:23:25 | * | mflamer quit (Ping timeout: 272 seconds) |
04:23:27 | Scramblejams | Well I'd like to get his feedback on my point that the cognitive load of the way the import statement works isn't worth what typing it saves a programmer. |
04:23:43 | Varriount | Howso? |
04:23:57 | Scramblejams | It's all up there in the IRC history, if you have it. |
04:26:04 | Scramblejams | The tooling/IDE/etc stuff I'm not that passionate about. |
04:26:23 | Scramblejams | The issue with the import statement is that it clutters up your namespace with all the symbols it drags in. |
04:27:07 | Scramblejams | But it saves typing, you say! |
04:27:20 | Scramblejams | Not really. Because a good library author will be concerned about stepping on your symbols. |
04:27:31 | Scramblejams | So s/he'll end up prefixing those symbols with the library name anyway. |
04:27:51 | Scramblejams | And when I read a source file with a dozen imports at the top, I have no idea which import a given symbol came from. |
04:28:18 | Varriount | Scramblejams, while I'm reading the logs, I'll point you to this -> http://build.nimrod-code.org/irclogs/13-10-2013.html#300 |
04:29:06 | Varriount | About halfway through, Araq mentions his take on namespace pollution. |
04:29:13 | Scramblejams | ok |
04:29:35 | Varriount | I don't agree, but I guess that's what comes when you been using python for the past 4 years. :/ |
04:29:52 | Scramblejams | It ain't just Python. |
04:30:47 | Varriount | I'm just glad that nimrod has the flexibility of allowing "from x import y" |
04:31:04 | Varriount | Even though it isn't quite used throughout the standard library. |
04:31:45 | Scramblejams | He isn't addressing the point that it's much harder to read code written with namespace pollution. If you've lived with C++ for a couple of decades, your behavioral tics start building up to where you don't notice the fact that it's jabbing you in the foot all the time. |
04:32:00 | Scramblejams | Every time I open up a C++ file with a bunch of includes, it's the same problem. |
04:32:24 | Scramblejams | In Erlang or Python, I'm never wondering about where something came from.[ |
04:32:34 | Varriount | Scramblejams, I've found that out quite recently. |
04:33:05 | Varriount | I'm trying to wrap libCEF, and each file includes other files... and then uses the things that other files include. |
04:33:25 | Scramblejams | Yep, total pain in the neck. |
04:33:33 | Varriount | So you can never be sure what modules actually *depend* on each other, until compilation time. |
04:34:00 | Scramblejams | That should be viewed as a wart left over from the unenlightened days of crappy languages. |
04:34:14 | Varriount | Though nimrod's imports aren't quite so... transparent/include-like, they do take... getting used to. |
04:34:50 | Varriount | Scramblejams, part of it is the fact that types are separate from 'their' procedures. |
04:35:05 | Demos | pretty much every languge that is not C or C++ has a notion of a "module" |
04:35:20 | Demos | GLSL and HLSL are notable exceptions |
04:36:03 | Scramblejams | Yeah, the "module" notion here is pretty ugly. |
04:36:09 | Scramblejams | Varriount: Can you elaborate? |
04:36:16 | Varriount | So, unlike in python, where one would simple do something like "from x import ClassY", in nimrod you would have to do "from x import TypeY, yMethodOne, yMethodTwo" |
04:36:30 | Varriount | etc |
04:36:34 | Scramblejams | ok |
04:36:55 | Demos | what about allowing method call syntax on imported types |
04:37:05 | Scramblejams | The problem is I see a lot of code where the author isn't doing that. They're just doing "import blah". |
04:37:17 | Varriount | Scramblejams, that's the point |
04:37:22 | Demos | so if I said from x import TypeY I could call Y.ymethod but /not/ ymethod(y) |
04:37:31 | Demos | if I want ymethod I would have to import that as well |
04:38:35 | Demos | well frankly I think that dumping everything in the global namespace on import is not /terrable/ default behavior, no matter what it is a hell of a lot better than C |
04:39:01 | Scramblejams | So are you saying that's why I see "import blah," because the authors don't want to spell everything out in the imports? |
04:39:12 | Varriount | Scramblejams, yes |
04:39:21 | Varriount | Scramblejams, let me draw up an example. |
04:39:26 | Varriount | (One moment) |
04:39:38 | Scramblejams | Java makes you do that, which should be a clue that this situation isn't optimal. |
04:40:07 | Varriount | Java also limits you to one class per file. |
04:40:12 | Varriount | *one main class |
04:40:16 | Scramblejams | Don't get me started. :-) |
04:40:19 | Demos | does Nimrod have something like haskell's import qualified? |
04:40:22 | Scramblejams | It's awful in so many ways. |
04:40:47 | Demos | one class per file is not so bad imo, but if java supported structs (value types) it would be a disaster |
04:41:19 | Demos | yeah I had to work in C# this week and I was like I JUST WANT A FUNCTION |
04:42:27 | Demos | actually haskell's module system is pretty good, very pragmatic |
04:44:36 | Varriount | Demos, Scramblejams -> https://gist.github.com/Varriount/7275618 |
04:45:17 | Varriount | The operator imports might not be right, but it was the best I could do on short notice. |
04:45:18 | Demos | point is that there should be a shortcut for the third one |
04:45:27 | Varriount | Demos, I agree |
04:45:51 | Varriount | H/E I feel that there's not really a point in complaining about unless someone codes a fix for it. |
04:46:10 | Demos | yeah |
04:46:25 | * | Demos runs before he gets roped into anything |
04:46:28 | Scramblejams | brb |
04:46:45 | Demos | my todo list for nimrod is expanding a bit |
04:49:13 | Demos | actually this whole idea could be unified by saying that functions have ADL |
04:49:26 | Varriount | ADL? |
04:50:19 | Demos | so like from table import TTable <some syntax> would mean that TTable.foo() and foo(TTable) worked, even though the foo function is not in scope |
04:51:09 | Demos | http://en.wikipedia.org/wiki/Argument_dependent_lookup |
04:51:20 | Varriount | Hm, so, since we're talking theoretics (is that a word?), what would the syntax be? |
04:52:15 | Demos | I was thinking like from table import type TTable |
04:52:23 | Demos | or from table import TTable with all |
04:52:38 | Demos | or from table import TTable* |
04:52:40 | Varriount | from table import TTable.* ? |
04:53:14 | Demos | I dun like the .* syntax so much it could throw a wrench in any kind of module nesting |
04:53:50 | Varriount | Oooh, how about "from table import TTable and friends" :p |
04:55:54 | Demos | that is not half bad |
04:56:13 | Demos | although adding ADL to nimrod is a little ... interesting' |
04:56:21 | Varriount | Uh, I was kinda kidding, but... ok |
04:56:52 | Demos | personally, I like it. But many(most?) people seem to consider ADL a strange language (mis)feature |
04:59:17 | Demos | so if there were an import qualified option this would be even more unified |
04:59:36 | Demos | so import qualified table with TTable or something |
04:59:44 | Demos | wait never mind |
04:59:46 | Demos | that is bad |
05:00:59 | Varriount | We would need something expressive, yet not verbose |
05:01:47 | Varriount | It wouldn't be so bad if it was the other way around, if importing a type, by default, imported all associated methods. |
05:01:53 | * | mflamer joined #nimrod |
05:02:28 | Varriount | Then, if you wanted to import *just* the type, you could do something like "from table import only TTable" |
05:04:55 | Demos | the point with using ADL is that it imports TTable then imports its methods /qualified/ |
05:05:22 | Demos | but you don't need to qualify the methods because of lookup rules |
05:08:36 | Varriount | Well, until I understand more about nimrod internals, this is one feature I don't expect I could even come close to implementing. |
05:08:53 | Varriount | Not to mention that Araq probably wouldn't like it. |
05:10:12 | Demos | yeah no kidding |
05:20:07 | Scramblejams | Varriount: Thanks for that info, I see where you're coming from. |
05:21:36 | Varriount | Scramblejams, It isn't perfect, but I have hope that something will be done in the future. |
05:22:05 | Varriount | Anyway, it's no dealbreaker for me. If nothing else, I can add comments to my own files. |
05:22:31 | Varriount | Nimrod is still *much* prefereable to c++ |
05:23:18 | Scramblejams | Varriount: Oh, sure. Araq's taste ain't perfect, but it's pretty good. :-D |
05:23:56 | Varriount | Besides, I have a weakness for underdogs. |
05:24:19 | * | mflamer_ joined #nimrod |
05:24:54 | Scramblejams | No, what he's done is really impressive. Hope Nimrod goes far. I'll be interested to see how its takeup is in the gaming industry. |
05:25:28 | * | mflamer quit (Ping timeout: 240 seconds) |
05:33:54 | * | gour joined #nimrod |
05:48:27 | Varriount | Anyone know at what value c considers an int to be "true"? |
05:50:48 | * | mflamer_ quit (Ping timeout: 240 seconds) |
06:00:34 | * | mflamer joined #nimrod |
06:05:35 | gour | Varriount: isn't it that everything which is !=0 is true? |
06:05:59 | gour | (in C) |
06:06:09 | Varriount | I think |
06:06:16 | Varriount | That's what I put, anyway. |
06:07:08 | gour | and false = 0 |
06:10:39 | Scramblejams | Concur. |
06:11:50 | Varriount | Thanks. I'm trying to get this stupid wrapper to work, though I fear that, unless I'm somehow able to replicate these templates with some generics, it may be in vain. |
06:12:43 | gour | wrapping C(++) lib? |
06:12:59 | Varriount | Sorta, one that has a C api, mostly |
06:13:05 | Varriount | It's libCEF. |
06:13:16 | Varriount | I'm doing it as a favor for dom96 |
06:15:18 | * | Demos quit (Read error: Connection reset by peer) |
06:20:37 | Scramblejams | You must have racked up quite a bar tab. :-) |
06:21:56 | Varriount | Huh? Nah, just doing the initial footwork. |
06:22:12 | Varriount | He can be the one to do the linux parts, and the tests. |
06:34:50 | * | OrionPK quit (Read error: Connection reset by peer) |
06:48:27 | * | mflamer quit (Ping timeout: 272 seconds) |
07:45:59 | * | Endy joined #nimrod |
08:26:19 | * | Associat0r quit (Quit: Associat0r) |
08:57:40 | * | Jackneill joined #nimrod |
10:26:18 | * | Associat0r joined #nimrod |
10:30:38 | * | BitPuffin joined #nimrod |
10:32:23 | BitPuffin | hey guys! |
10:33:37 | BitPuffin | Araq: when will the recordings of your talk be up? |
10:33:59 | * | [1]Endy joined #nimrod |
10:37:27 | * | Endy quit (Ping timeout: 272 seconds) |
10:37:27 | * | [1]Endy is now known as Endy |
10:38:58 | BitPuffin | I don't really see why people say that there are sprinkles of javascript influens in nimrod. Just because of the var keyword. Sure it was the first thing that I was reminded of too but other languages have it as well |
10:39:09 | BitPuffin | Lua for example I think |
10:39:12 | BitPuffin | C# maybe too? |
10:39:53 | * | XAMPP quit (Ping timeout: 272 seconds) |
10:40:10 | gour | pascal? |
10:41:38 | BitPuffin | probably |
10:41:46 | BitPuffin | wouldn't be surprised |
10:41:50 | BitPuffin | Is it also in algol? |
10:42:36 | gour | not sure about algol, but it's in pascal for sure, or,a t least, it was when i was using it |
10:42:57 | BitPuffin | well then it is probably still there |
10:43:02 | EXetoC | *and* it can compile to JS, so it's like JS but with different syntax innit |
10:43:09 | BitPuffin | I can't think of anything else that nimrod shares with javascript |
10:43:24 | BitPuffin | EXetoC: sure but that doesn't make it influenced by javascript as a language |
10:43:57 | BitPuffin | every language can compile to another language more or less |
10:43:59 | EXetoC | :p |
10:44:54 | gour | BitPuffin: i confirm problem with bootstrapping nimrod on free/pc-bsd |
10:45:34 | BitPuffin | gour: hehe, and Araq thought it was my fault |
10:45:48 | BitPuffin | way to go blaming digital birds Araq |
10:45:56 | gour | :-) |
10:46:32 | gour | that guy whose post i referenced yesterday, would be sad to see it |
10:46:52 | BitPuffin | gour: you can bootstrap on haiku though if that is also your thing :D |
10:47:13 | gour | BitPuffin: i'll wait a bit to develop further ;) |
10:47:57 | gour | there is no 64bit version (yet), iirc? |
10:48:11 | BitPuffin | gour: yes there is? |
10:48:21 | BitPuffin | oh |
10:48:23 | BitPuffin | you mean of haiku |
10:48:28 | BitPuffin | thought you meant nimrod |
10:48:28 | gour | yep |
10:48:34 | BitPuffin | well there is one |
10:48:44 | BitPuffin | I'm not sure how many apps have been compiled for it though |
10:48:50 | BitPuffin | gour: they just got package management |
10:48:59 | BitPuffin | so that's pretty cool |
11:00:51 | gour | BitPuffin: i'm on linux since '99 and went through joy of using pioneering OS not having even native chars displayed on the screen, so now prefer something more stable and linux is also changing things way too often. that's why i'll move to freebsd |
11:01:30 | BitPuffin | gour: well, what about using something like debian? |
11:02:05 | BitPuffin | gour: I started using linux sometime around '09-'10 |
11:02:11 | BitPuffin | :P |
11:02:45 | BitPuffin | gour: Don't get me wrong though, I love BSD and I follow it |
11:02:45 | * | gour is using debian (sid) atm |
11:02:56 | BitPuffin | gour: well then it is your fault that it is changing :D |
11:03:30 | gour | BitPuffin: have you read that 'epic' article about linux vs bsd? |
11:04:12 | BitPuffin | gour: I've read a few :P |
11:04:30 | BitPuffin | maybe you mean the one that is on a website of a guy's rants |
11:04:39 | gour | i'm sure free/pc-bsd will get quite some new users...zfs is really great comparing it with btrfs |
11:05:01 | BitPuffin | gour: for sure, zfs is amazing |
11:05:07 | BitPuffin | gour: but you can run it on linux :D |
11:05:09 | gour | BitPuffin: http://www.over-yonder.net/~fullermd/rants/bsd4linux/01 |
11:05:47 | BitPuffin | yeah I have read that one |
11:05:50 | BitPuffin | a long time ago |
11:05:54 | BitPuffin | don't remember much about it |
11:06:58 | gour | zfsonlinux is not really the same thing. e.g. https://github.com/zfsonlinux/pkg-zfs/issues/24 |
11:07:11 | gour | anyway, the point is we'd like to have nimrod on fbsd :-) |
11:07:26 | BitPuffin | gour: but anyways, why don't you switch to debian stable and just stick x11 + i3 on it and it won't change! |
11:07:44 | BitPuffin | gour: well now with openzfs they should become more or less the same across OSs |
11:08:09 | gour | BitPuffin: stable is too old and when i say 'change' i mean things like hal, udev, systemd etc. |
11:08:11 | BitPuffin | gour: me too, but Araq didn't want to spend time on BSD at the moment |
11:08:27 | gour | BitPuffin: then we're on our own to make it happeb |
11:09:06 | BitPuffin | gour: well on debian you'll probably always have the option to run init.d if you want to |
11:09:09 | BitPuffin | for example |
11:09:48 | BitPuffin | gour: well I wanted to fix it but I wanted to know where to start looking and that didn't go either really |
11:10:01 | BitPuffin | so it would take a bit more time to fix than I had to spend on the issue :/ |
11:10:40 | BitPuffin | and now I have a debian server anyway |
11:10:51 | BitPuffin | although I really wanted to run NetBSD :P |
11:11:07 | gour | BitPuffin: when will zfsonlinux land in debian and be supported fs? |
11:11:53 | BitPuffin | gour: http://zfsonlinux.org/debian.html ? |
11:11:58 | BitPuffin | or do you mean in official |
11:12:05 | gour | yep |
11:12:39 | BitPuffin | gour: zfs-fuse is in the repo |
11:12:56 | gour | fuse is half-baked solution |
11:13:23 | BitPuffin | http://qa.debian.org/[email protected]#spl-linux ? |
11:14:24 | gour | well, i went through suse, gentoo, arch, debian...now i'll try something else...nimrod is also bringing some very fresh air in the environment of stalled languages, kudos to Araq to bebrave enough ;) |
11:16:08 | BitPuffin | gour: try crux! |
11:18:33 | gour | BitPuffin: i also used frugal for some time, but linux is linux. now i would not like to pollute sacred space of #nimrod any longer in order to not make Araq angry again. i'm sorry for doing it once and here & now asking forgiveness from him and would prefer doing more and talking less this time! |
11:19:00 | gour | BitPuffin: nothing about you ;) |
11:20:30 | * | XAMPP joined #nimrod |
11:22:16 | BitPuffin | gour: Sure, but final word, look at crux it is pretty BSD like! It's got similar init scripts etc. But yeah let's leave the os discussion now |
11:23:08 | gour | BitPuffin: it still uses linux kernel & userland |
11:23:27 | gour | :q |
11:23:35 | gour | oops..wrong one |
11:33:41 | * | Associ8or joined #nimrod |
11:33:41 | * | Associ8or quit (Changing host) |
11:33:41 | * | Associ8or joined #nimrod |
11:34:58 | * | enurlyx joined #nimrod |
11:35:45 | * | Associat0r quit (Ping timeout: 246 seconds) |
11:59:53 | BitPuffin | dom96: you here? :D |
12:28:39 | EXetoC | wasn't it possible to use 'case' as an expression? |
12:39:06 | EXetoC | ok it's a bug |
12:41:37 | * | [1]Endy joined #nimrod |
12:46:01 | * | Endy quit (Ping timeout: 272 seconds) |
12:46:01 | * | [1]Endy is now known as Endy |
12:46:41 | dom96 | BitPuffin: I am now. :) |
12:51:29 | dom96 | BitPuffin: wassup? |
12:54:03 | BitPuffin | dom96: was just wondering :D |
12:54:26 | BitPuffin | I tried doing an sql injection on the forum, at least that didn't work, otherwise passwords would be easily crackable :D |
12:54:47 | BitPuffin | dom96: anyways I'll hack on scrypt in 1-2 hours |
12:55:30 | dom96 | well that's good :P |
12:57:01 | * | freezerburnv joined #nimrod |
13:12:08 | * | freezerburnv quit (Quit: freezerburnv) |
13:13:03 | EXetoC | run w3af on the site |
13:13:43 | * | freezerburnv joined #nimrod |
13:15:49 | * | freezerburnv quit (Client Quit) |
13:19:19 | * | freezerburnv joined #nimrod |
13:22:06 | EXetoC | dom96: running thttpd? |
13:22:17 | dom96 | hrm? |
13:22:33 | EXetoC | on the server |
13:24:32 | dom96 | no, nginx |
13:25:41 | EXetoC | ok |
13:26:08 | EXetoC | it's everywhere these days, so I assume it does something right :> |
13:47:13 | * | [1]Endy joined #nimrod |
13:47:47 | * | enurlyx quit (Ping timeout: 260 seconds) |
13:51:15 | * | Endy quit (Ping timeout: 272 seconds) |
13:51:15 | * | [1]Endy is now known as Endy |
13:54:08 | * | enurlyx joined #nimrod |
14:05:59 | * | noam quit (Ping timeout: 260 seconds) |
14:06:03 | * | mflamer joined #nimrod |
14:14:10 | * | [1]Endy joined #nimrod |
14:14:20 | * | enurlyx quit (Quit: Nettalk6 - www.ntalk.de) |
14:15:26 | * | Endy quit (Ping timeout: 240 seconds) |
14:15:27 | * | [1]Endy is now known as Endy |
14:16:33 | * | noam joined #nimrod |
14:34:24 | * | [1]Endy joined #nimrod |
14:38:01 | * | Endy quit (Ping timeout: 272 seconds) |
14:38:02 | * | [1]Endy is now known as Endy |
14:38:14 | * | OrionPK joined #nimrod |
14:44:37 | * | dyu joined #nimrod |
14:53:16 | * | [1]Endy joined #nimrod |
14:57:23 | * | Endy quit (Ping timeout: 272 seconds) |
14:57:24 | * | [1]Endy is now known as Endy |
15:14:13 | * | dyu quit (Ping timeout: 248 seconds) |
15:14:41 | * | dyu joined #nimrod |
15:23:31 | * | filwit joined #nimrod |
15:33:30 | * | gour quit (Disconnected by services) |
15:33:35 | * | gour_ joined #nimrod |
15:34:44 | freezerburnv | What are the bitwise operators? << doesn't seem to be defined (though I did find some mention of 'or' and 'and' being bitwise or and bitwise and) |
15:34:58 | filwit | shl |
15:35:00 | filwit | shr |
15:35:12 | freezerburnv | Aah, thanks |
15:35:18 | filwit | np :) |
15:36:54 | freezerburnv | Our of curiosity: Any particular reason << and family were decided to not be used? |
15:37:32 | filwit | idk exactly. Maybe just a heritage thing? |
15:37:57 | filwit | I was thrown off too, but i don't use shl/shr much, so it isn't a big deal |
15:38:16 | Araq | precedence of '<<' would be the same as '<' which might be more confusing |
15:38:55 | freezerburnv | Aah, makes sense |
15:39:01 | Araq | you can easily do: template `<<`(a, b: expr): expr = a shl b |
15:39:44 | dom96 | This is interesting: http://www.google.com/trends/explore?hl=en-US#q=nimrod%20programming&cmpt=q |
15:39:51 | filwit | which will waste your time, and the time of everyone reading your code, so don't do it :P |
15:40:04 | filwit | (that was in response to Araq, not dom96) |
15:40:05 | Araq | filwit: wow I agree |
15:40:11 | Araq | ;-) |
15:40:15 | filwit | ;-) |
15:41:24 | BitPuffin | ;-) |
15:42:51 | EXetoC | ;-Ăľ |
15:42:57 | EXetoC | oops |
15:43:05 | filwit | ^ C-C-C-Combo-Breaker |
15:48:52 | BitPuffin | dom96: be a darling and merge will you? |
15:49:15 | dom96 | hrm? |
15:49:23 | BitPuffin | dom96: packages |
15:49:44 | dom96 | I see no PRs |
15:49:54 | BitPuffin | dom96: oh now there is |
15:50:56 | NimBot | nimrod-code/packages master bae6dcf Isak Andersson [+0 ±1 -0]: TheLonelyByte -> BitPuffin (I now have a personal account for personal projects at bitbucket) |
15:50:56 | NimBot | nimrod-code/packages master 0c2eba3 Dominik Picheta [+0 ±1 -0]: Merge pull request #29 from BitPuffin/patch-2... 2 more lines |
15:51:20 | BitPuffin | thanks |
15:51:25 | BitPuffin | 2 more lines? wut |
15:51:32 | freezerburnv | Is there a way to recursively define a tuple/object? |
15:51:57 | filwit | freezerburnv: with a template or macro |
15:52:46 | filwit | freezerburnv: template defineObject(name:expr): stmt = type name = object ... |
15:53:04 | filwit | freezerburnv: believe that should work |
15:54:13 | freezerburnv | Alright, thanks. Looking at the manual for templates right now so I can actually understand the line you posted ;-) |
15:54:47 | filwit | freezerburnv: well what exactly are you trying to accomplish? |
15:55:08 | filwit | freezerburnv: is there some other language idiom you want to try in Nimrod? |
15:56:17 | freezerburnv | Creating a tuple that represents a structure from C, something along the lines of: typedef struct RecursiveStruct { /* some stuff... */ struct RecursiveStruct *next; } |
15:56:49 | freezerburnv | For an FFI |
15:57:03 | filwit | ahh.. well that's different then what i thought you where asking :) |
15:57:25 | freezerburnv | Sorry 'bout the confusion :) |
15:58:20 | filwit | np |
15:58:21 | filwit | https://gist.github.com/PhilipWitte/7280374 |
15:59:27 | freezerburnv | Awesome, thanks! |
15:59:30 | filwit | just updated it so you can see how to define 'ref object's as well (they're pointer-types by default) |
15:59:41 | filwit | np, glad to help |
16:01:39 | filwit | freezerburnv: btw, if you don't mind my asking, how did you hear about Nimrod? |
16:01:59 | filwit | freezerburnv: or rather, *where* did you hear about it? |
16:02:17 | freezerburnv | Hacker News, actually. Someone posted a link to a blog post all about the features of Nimrod |
16:02:33 | filwit | blog post? |
16:02:38 | filwit | and thanks |
16:03:24 | freezerburnv | Lemme find it, one sec... |
16:03:34 | filwit | nevermind, i think know the blog post you're talking about |
16:03:48 | BitPuffin | dom96: what are you currently working on? |
16:04:28 | filwit | dom96: i'd like a status update as well. What did you eat this morning for breakfast? |
16:05:25 | freezerburnv | HN post: https://news.ycombinator.com/item?id=6626811 |
16:05:31 | freezerburnv | Blog post: http://picheta.me/articles/2013/10/about-nimrods-features.html |
16:05:32 | BitPuffin | dom96: when was the last time you pooped? |
16:05:48 | freezerburnv | And I'm out for a bit. I'll see you all later |
16:05:50 | * | freezerburnv quit (Quit: freezerburnv) |
16:05:52 | filwit | thanks, freezerburnv |
16:05:59 | dom96 | BitPuffin: Homework. |
16:06:01 | filwit | too late.. |
16:06:05 | dom96 | filwit: Spaghetti Carbonara |
16:06:23 | BitPuffin | dom96: that's a fucking great breakfast |
16:06:27 | filwit | you ate Spaghetti for breakfast? |
16:06:31 | dom96 | hell yes |
16:06:47 | BitPuffin | dom96: what homework? |
16:06:48 | filwit | meh, i like cold pizza for breakfast, so whatever |
16:07:44 | dom96 | BitPuffin: maths |
16:08:02 | BitPuffin | dom96: what maths, maybe it's stuff I did recently |
16:08:43 | filwit | dom96: homework is actually just a test of your willpower. they want to know if you're strong enough to break free and do your own thing, or if you're only fit to slave away at a desk your whole life following their basic instructions |
16:09:11 | profmakx | yeah, it's not at all about being able to solve problems on your own |
16:09:25 | filwit | ^ see his name |
16:09:30 | filwit | note "prof" |
16:09:37 | filwit | he's one of the "in" crowd |
16:09:40 | BitPuffin | math in school is not about solving problems |
16:09:41 | filwit | don't listen to him |
16:09:44 | profmakx | and you're an idiot |
16:10:01 | filwit | hahaha, sorry profmakx, i'm just joking right now |
16:10:30 | BitPuffin | it's more like do you remember which page the formulas where on? |
16:11:36 | dom96 | Nah, there is a point to homework. It definitely does prepare you for the exam. |
16:12:02 | filwit | but see, dom96, you don't understand the *true* purpose of the exams either! |
16:12:21 | filwit | they're only there to make sure no one is thinking to much outside the box! |
16:12:27 | dom96 | lol |
16:12:32 | filwit | lol |
16:13:09 | EXetoC | there are many such theories. it's crap either way :p |
16:13:20 | BitPuffin | hahaha |
16:13:59 | BitPuffin | considering how school kills the will to learn it makes it hard to think INSIDE the box |
16:14:33 | BitPuffin | ping zahary1 zahary___ |
16:14:39 | dom96 | What annoys me the most right now are the teachers that ask random people questions in class. |
16:14:42 | filwit | well, i was only joking, but i do have a thing or two to say about my school experience (in terms of education) |
16:15:17 | dom96 | Especially on a Monday morning, I just want to sit there and take down whatever the teacher says instead of wondering whether the next question will be aimed at me. |
16:15:48 | filwit | next time just answer with the finger |
16:15:57 | filwit | you wont be asked again, i promise |
16:16:00 | dom96 | lol |
16:16:06 | BitPuffin | answer with the gun |
16:16:08 | BitPuffin | wait what |
16:16:16 | filwit | @_@ |
16:16:34 | BitPuffin | dom96: don't become a school massacre person thingy okay? okay. |
16:18:03 | EXetoC | I had a teacher who wrote whole texts on the blackboard, that we then had to write down on paper. Perhaps he should've just given us the original text right away |
16:18:46 | dom96 | BitPuffin: It's ok, i'll make sure to mention the person that inspired me. You'll get all the credit. |
16:19:11 | filwit | EXetoC: then you wouldn't have had anything to occupy your mind for an hour as a young adult.. and we all know where that leads (dugs, sex, rock n roll) |
16:19:33 | BitPuffin | dom96: woho! |
16:19:46 | BitPuffin | dom96: you mean in your manifest? |
16:20:00 | dom96 | BitPuffin: Yeah, it'll be written with blood. |
16:20:52 | BitPuffin | dom96: who's blood? |
16:21:01 | dom96 | BitPuffin: Yours. |
16:21:04 | * | BitPuffin feels like this joke is being taken slightly too far |
16:21:09 | dom96 | lol |
16:21:09 | BitPuffin | dom96: OH NO HE DIDN'T! |
16:21:10 | filwit | hahah.. you should hand in a paper which is written in blood to your teachers.. just to see the shocked look on their faces |
16:21:21 | dom96 | Yeah, i'm probably on some list by now... |
16:22:01 | BitPuffin | dom96: probably |
16:22:11 | BitPuffin | dom96: GCHQ almost most definitely |
16:22:13 | filwit | dress as a goth that day.. but listen to undergrownd rap.. just to throw them off even more |
16:22:20 | BitPuffin | if only all of us were connected ever ssl xD |
16:22:46 | filwit | underground** |
16:22:52 | filwit | got i can't spell |
16:22:55 | filwit | god** |
16:22:57 | dom96 | filwit: Can't dress in normal clothes to school, school uniform is mandatory :P |
16:23:13 | filwit | dom96: woah.. that sux |
16:23:23 | filwit | dom96: or maybe it doesn't, idk |
16:23:46 | BitPuffin | school uniform is kind of like programming languages where everything must be an object |
16:23:59 | BitPuffin | are you going to a java school? |
16:24:19 | EXetoC | filwit: good point |
16:24:33 | dom96 | Weird analogy lol. |
16:24:48 | dom96 | All schools here have uniforms. |
16:24:55 | filwit | BitPuffin: my schools language was LOLCATS |
16:24:58 | EXetoC | are there pure PHP schools? |
16:25:04 | filwit | sorry, LOLCODE |
16:25:27 | filwit | EXetoC: yes. they're in the bad places of africa |
16:25:36 | EXetoC | lolwut. k |
16:25:42 | dom96 | oh man, if one of my professors at uni ever lets me write code in whatever language I please I will write everything in LOLCODE or Brainfuck :P |
16:25:55 | filwit | EXetoC: idk.. just the first "poverty" place that came to mind |
16:26:28 | filwit | dom96: no you wont.. you'd spend 5 hours on a single homework assignment |
16:26:55 | dom96 | filwit: Nope. I will write a Nimrod to Brainfuck converter. :P |
16:27:07 | filwit | haha, brilliant |
16:28:12 | filwit | we should write that, then convert a ton of code to brainfuck.. then ship it to space, just to make the aliens think we're smarter than we really are |
16:29:01 | filwit | or maybe that will back-fire and they'll just think we're retarded for doing things so cryptically |
16:29:15 | dom96 | Yeah, that's more likely to happen hah |
16:29:22 | filwit | either way.. it's a giant waist of time, and I feel that's a worthy cause |
16:29:45 | EXetoC | nimrod bf -r test |
16:30:13 | EXetoC | nimrod nimrod |
16:30:38 | filwit | ?__? |
16:31:03 | filwit | i'm trying to waist time right now when i should be working.. *sigh* |
16:32:53 | dom96 | I'm like... not even doing maths anymore. |
16:33:18 | dom96 | The thing about my maths homework is that my teacher never checks it, so I never feel pressured to do it... |
16:34:28 | filwit | people really need to be doing more schoolwork on computer-checked devices |
16:35:30 | filwit | i mean, it's the most basic thing.. don't have a teacher assign and grade your work.. have a computer assign and grade your work, so it can completely tailor your education to best fit you |
16:35:55 | filwit | just have the teacher there as a guide and mentor |
16:36:08 | dom96 | Yeah, but most teachers still have no idea how to use a computer. |
16:37:50 | filwit | the whole education curriculum needs to be online, and freely available.. then anyone can learn, from anywhere, and always be graded/directed appropriate to their skills and "classroom" becomes more of just a focus group and exerciser in social experience |
16:38:16 | filwit | my true opinions about that |
16:41:36 | dom96 | filwit: Let's buy an island and create our own country. |
16:42:23 | filwit | dom96: we'll need to postpone this until we somehow become rich off of a Nimrod project |
16:43:17 | dom96 | Shouldn't be long now. Just need some more time ... |
16:43:55 | filwit | then we'll need to decide which island has the best value per our price-range... i'm leaning towards fiji |
16:44:43 | dom96 | Perhaps it would be cheaper to overthrow some dictator. |
16:45:33 | filwit | hmm.. you could be right. but containing the media might be costly |
16:46:35 | filwit | not to mention we'd have a unsettled country to deal with after the overthrow |
16:51:01 | dom96 | true |
16:54:11 | filwit | dom96: so i posted an arch-linux screenshot for the Nov screen thread (first page). Put a screenshot of Nimrod code in their for kicks. Got someone asking about the language and saying it looked cool. |
16:55:14 | dom96 | filwit: awesome, link? |
16:55:19 | filwit | dom96: that thread gets ~1000 hits a day i guess, so maybe i accidentally gave Nimrod a little bit of advertising, haha |
16:55:30 | filwit | https://bbs.archlinux.org/viewtopic.php?id=172197 |
16:57:43 | dom96 | filwit: Nice, love the vista look heh |
16:58:16 | filwit | dom96: yeah, i just put this theme together and i'm actually really happy with it |
16:59:01 | filwit | dom96: i was getting a little sick of KDE's oxygen theme |
17:00:18 | dom96 | hrm, maybe I should post a screenshot too. |
17:00:22 | dom96 | My desktop is boring though. |
17:00:36 | * | Amrykid quit (Excess Flood) |
17:00:36 | filwit | dom96: anyways, i didn't realize that thread got so many views (it's 2,2221 now after only 48 hours).. so i guess for a month we got a few eyes seeing nimrod code from it |
17:00:58 | * | Amrykid joined #nimrod |
17:01:00 | filwit | kinda got me thinking we should post a screenshot on the first of every month with Nimrod code in it, hahaha |
17:01:06 | dom96 | filwit: Yes, and you're on the first page :) |
17:01:15 | dom96 | totally. |
17:01:17 | filwit | guess that would be a little obvious after awhile though.. |
17:01:29 | dom96 | Not really, it's very subtle in fact :P |
17:02:28 | filwit | true |
17:04:35 | * | io2 joined #nimrod |
17:06:07 | * | Boscop joined #nimrod |
17:07:44 | OrionPK | dom96 https://github.com/Araq/Nimrod/pull/655 |
17:13:17 | dom96 | OrionPK: That's going to break all the code that is using select out in the wild. |
17:13:28 | OrionPK | yes |
17:13:30 | dom96 | And in a very subtle way too. |
17:13:32 | OrionPK | its a breaking change |
17:13:35 | OrionPK | i left asyncio alone because it looks like it has its own wrapper for select (which is also borked) but that ones on tis way out right? |
17:14:16 | OrionPK | it's either fix it or make a selectCorrect :P |
17:15:11 | dom96 | Well I had a couple of ideas how to fix it without breaking what's already out there. |
17:15:36 | * | dymk quit (Ping timeout: 245 seconds) |
17:15:36 | dom96 | We could move select() to a different module. |
17:15:38 | OrionPK | i suppose u could also make a new socket.nim with it fixed |
17:15:44 | EXetoC | how? renaming the function would open up a migration path |
17:15:57 | EXetoC | ok that seems like a similar approach |
17:16:12 | OrionPK | networking.nim |
17:16:13 | OrionPK | or something |
17:16:17 | OrionPK | then deprecate sockets.ni |
17:16:18 | OrionPK | m |
17:16:26 | EXetoC | just for that? |
17:16:31 | dom96 | yeah, what. |
17:16:45 | OrionPK | there are a lot of other issues, honestly |
17:16:59 | * | dymk joined #nimrod |
17:17:00 | dom96 | We could have a module which wraps select(), epoll(), poll(), kqueue etc. |
17:17:06 | dom96 | call it select.nim or something |
17:17:13 | dom96 | deprecate select() in the sockets module |
17:17:28 | OrionPK | yeah that could work |
17:17:38 | OrionPK | good thinking |
17:17:44 | dom96 | But then importing both sockets and the select module would cause a conflict. |
17:17:49 | EXetoC | well if you think that it makes sense to have a separate module |
17:17:52 | dom96 | But that can be solved with 'import sockets except select' |
17:18:08 | dom96 | Well, I dunno. I was going to ask Araq what he thinks but kept forgetting. |
17:18:11 | dom96 | Araq: What do you think? |
17:34:03 | Araq | dom96: usually select, epoll kqueue etc. are hidden in some events module |
17:38:53 | * | Associ8or quit (Ping timeout: 245 seconds) |
17:39:22 | * | Demos joined #nimrod |
17:49:48 | * | q66_ joined #nimrod |
17:53:21 | * | q66 quit (Ping timeout: 245 seconds) |
18:00:40 | EXetoC | pie |
18:02:06 | * | Associat0r joined #nimrod |
18:02:06 | * | Associat0r quit (Changing host) |
18:02:06 | * | Associat0r joined #nimrod |
18:17:40 | * | dyu quit (Quit: Leaving) |
18:22:45 | * | q66_ is now known as q66 |
18:31:36 | * | freezerburnv joined #nimrod |
18:49:48 | * | [1]Endy joined #nimrod |
18:53:31 | * | Endy quit (Ping timeout: 245 seconds) |
18:53:31 | * | [1]Endy is now known as Endy |
19:00:58 | * | freezerburnv quit (Quit: freezerburnv) |
19:11:01 | * | zahary____ joined #nimrod |
19:15:53 | * | zahary___ quit (Ping timeout: 240 seconds) |
19:21:09 | BitPuffin | ahoy |
19:22:40 | Araq | servus |
19:24:09 | OrionPK | dom96 araq if select got moved out sockets, then if anyone was using select their code would break at least |
19:24:19 | OrionPK | break at compile time, rather than runtime |
19:24:25 | OrionPK | and force them to address the change |
19:24:44 | * | drvanon joined #nimrod |
19:24:55 | Araq | OrionPK: good idea |
19:25:03 | Araq | hi drvanon welcome |
19:25:31 | drvanon | Well hello Araq, it has been a long time since I had such a warm welcome on a IRC channel. |
19:26:29 | BitPuffin | What the heck |
19:26:45 | drvanon | I made a little extra file for the ST package. Where can I fork a repository so everybody can have it? |
19:26:52 | BitPuffin | compilation succeeds but there isn't any output |
19:27:02 | BitPuffin | file |
19:28:00 | drvanon | I am not sure if I should take this one: https://github.com/leonardoce/nimrod-sublime, as he takes no credit for the work.. |
19:29:43 | Araq | drvanon: I can't help you, sorry. no idea which sublime plugin is the original |
19:30:12 | OrionPK | im guessing the one in ST package control is the original |
19:32:24 | Demos | does nimrod-sublime highlight using the numrod compiler or did they roll their own? |
19:32:32 | OrionPK | they rolled their own |
19:32:35 | BitPuffin | is there a way to link to a static library via a pragma? |
19:32:37 | OrionPK | based it on classic ASP I believe |
19:33:27 | Demos | oh fun, I am binding to the numrod compiler, it is actually pretty easy |
19:33:38 | OrionPK | nice! |
19:33:47 | OrionPK | for your VS plugin? |
19:34:22 | Demos | yeah |
19:34:52 | Demos | writing a nimrod file that has thunks that {.exportc.} the lexer functions then P/Invoking them from .NET |
19:35:10 | OrionPK | BitPuffin passl pragma I think? |
19:35:37 | OrionPK | {.passl.} in the file |
19:35:47 | BitPuffin | OrionPK: ah there is one like that yeah that should work |
19:36:09 | BitPuffin | that's not in the manual :P |
19:36:15 | OrionPK | Demos how is that coming |
19:36:43 | Demos | not too bad, I had to make a little binding to get a c# string into a llstream, which is done as far as I can tell |
19:37:22 | Demos | have not had much time for it though |
19:38:11 | OrionPK | let me know when it's ready to be tested |
19:38:26 | BitPuffin | dom96: oh right I had problems with scrypt segfaulting |
19:38:31 | BitPuffin | not sure that's happening anymore |
19:38:44 | Demos | will do, the plan is to finish the highlighting first and defer the other language integration stuff till later |
19:39:24 | Demos | anyway I gotta go and eat |
19:40:22 | BitPuffin | there is a weird bug though |
19:40:33 | BitPuffin | but it could be a side effect of the b64 stuff |
19:49:47 | OrionPK | Araq how come I cant do comments between fields on a type definition/ |
19:50:50 | BitPuffin | I'll call it good enough I think |
19:52:10 | Araq | OrionPK: that's the downside of making comments part of the grammar |
19:52:21 | Araq | but I think I'll change that |
19:52:41 | Araq | so # comments can be everywhere, only ## comments are grammatical elements |
19:52:41 | OrionPK | hm, ok |
19:52:47 | OrionPK | Demos btw, code folding please :P |
19:52:54 | OrionPK | #region name / #endregion :D |
19:53:43 | BitPuffin | dom96: will babel use a .nimrod.cfg? |
20:02:47 | OrionPK | anyone know the kind of cheapest way to copy a seq? |
20:03:51 | BitPuffin | OrionPK: aren't seqs by value by default? |
20:05:44 | Araq | BitPuffin, OrionPK yes b = a does the trick |
20:06:07 | OrionPK | ah, good point |
20:07:27 | OrionPK | sequtils needs a 'select()' function ala linq |
20:07:35 | dom96 | BitPuffin: hrm, what do you mean? |
20:07:42 | OrionPK | (if it doesnt have one and I'm just missing it) |
20:07:58 | dom96 | BitPuffin: if babel is building your package and your package has a .nimrod.cfg then it will be used. Remember that babel simply calls the compiler. |
20:08:09 | BitPuffin | dom96: where should the file be placed? |
20:08:42 | BitPuffin | password.nim(29, 22) Error: expression 'crypto_scrypt(cstring(pw), len(pw), cstring(salt), len(salt), ParseInt(h[1]), |
20:08:44 | BitPuffin | ParseInt(h[2]), ParseInt(h[3]))' cannot be calle |
20:08:45 | BitPuffin | hm |
20:09:29 | BitPuffin | thanks for telling me why compiler :p |
20:10:16 | dom96 | BitPuffin: beside the .nim file |
20:10:34 | BitPuffin | dom96: so not in the project root? |
20:10:44 | BitPuffin | or I mean source dir |
20:11:12 | BitPuffin | srcDir |
20:12:04 | dom96 | yes, there. |
20:12:20 | BitPuffin | ah |
20:12:26 | BitPuffin | well then I had already done it correctly lol |
20:17:08 | BitPuffin | but why can't I call my expression D:<! |
20:17:23 | BitPuffin | is it because I am doing [] on seqs that aren't known at compile time? |
20:17:51 | OrionPK | Araq how efficient are `in` and `notin` for seqs? O(N)? |
20:18:39 | BitPuffin | no that can't be it |
20:18:44 | BitPuffin | because I am doing that the line before |
20:18:47 | BitPuffin | and that compiles |
20:19:05 | Araq | OrionPK: O(N) yes |
20:19:11 | BitPuffin | oh I think I know |
20:19:29 | OrionPK | k, thanks |
20:20:36 | drvanon | I know a little pygame (the SDL wrapper for python), and I want to get into graphics. But I just don't see how I could get an image on a surface. Are there examples or anything of the sort? |
20:21:09 | EXetoC | there's no way to get the category of a unicode character, right? |
20:21:54 | EXetoC | I don't need anything fancy, so I guess I could just write a couple of convenience functions |
20:22:06 | EXetoC | but my grepping reveals no such interface |
20:22:18 | BitPuffin | EXetoC: you and your grepping |
20:22:26 | EXetoC | ftw |
20:24:17 | * | Jackneill quit (Remote host closed the connection) |
20:24:54 | Araq | drvanon: the git repository has examples/sdlex.nim |
20:28:34 | BitPuffin | Araq: what's the proper way to parse a number into a less common type? like uint64 etc? parseInt("2").uint64 ? |
20:31:25 | * | Endy quit (Ping timeout: 272 seconds) |
20:32:14 | Araq | I don't know. My original idea was not to have unsigned numbers so that we don't need parsing etc. for unsigned numbers |
20:32:45 | BitPuffin | Araq: why not make it generic? |
20:32:51 | BitPuffin | the parseInt |
20:33:10 | BitPuffin | and then if it is less than zero it can just underflow |
20:34:20 | drvanon | Araq: That is one fine example. |
20:36:28 | Araq | BitPuffin: the performance of parseInt is already suboptimal, I'm not sure I want to make it generic |
20:36:46 | * | faassen joined #nimrod |
20:37:16 | BitPuffin | Araq: hm |
20:37:29 | BitPuffin | Araq: well would parseInt("2).uint64 work? |
20:39:24 | EXetoC | just specialize inside the body |
20:41:22 | Demos | back |
20:45:03 | Araq | BitPuffin: sure |
20:45:46 | BitPuffin | Araq: neat |
20:50:58 | BitPuffin | Araq: I'm having trouble where nimrod compiles and says it is successful but there is no output file.. |
20:51:10 | Araq | EXetoC: yeah I agree |
20:51:23 | Araq | BitPuffin: OS? |
20:51:31 | BitPuffin | Araq: debian |
20:51:55 | Araq | does nimrod overwrite your .nim file instead with the exe? |
20:52:38 | BitPuffin | Araq: nah the .nim still contains the source |
20:53:28 | BitPuffin | Araq: I think the issue occurs when I use passL:"-ltarsnap" in .nimrod.cfg instead of {.passl:"-ltarsnap".} |
20:55:17 | Araq | huh? |
20:55:33 | Araq | run it with --parallelBuild:1 please |
20:57:07 | BitPuffin | Araq: http://paste.debian.net/63568/ |
20:59:11 | Araq | /home/isak/src/nim/scrypt.nim/src/scrypt/password ... what? |
20:59:51 | BitPuffin | Araq: what exactly is confusing about that? |
21:00:05 | BitPuffin | /home/isak/src is where I put all code |
21:00:15 | BitPuffin | nim/scrypt.nim is where the project is |
21:00:20 | BitPuffin | src is the srcDir |
21:00:37 | BitPuffin | scrypt is the directory in the srcDir |
21:00:50 | BitPuffin | password is the file that should come from password.nim |
21:02:43 | OrionPK | omg |
21:02:47 | OrionPK | fucking sockets.nim |
21:02:48 | OrionPK | lol |
21:03:09 | OrionPK | thwarting me at every turn dom |
21:04:09 | OrionPK | how do I check if result of recv call = 0 (indicating the client has disconnected)? |
21:04:12 | OrionPK | dom96 |
21:04:37 | OrionPK | I feel like im driving with the e-brake on |
21:05:38 | dom96 | if recv(...) == 0: # Disconnected? |
21:06:17 | OrionPK | it wont come back until recv is NOT 0 though |
21:06:24 | OrionPK | or it times out and throws an exception |
21:06:28 | OrionPK | because I have to pass in a size of NOT 0 |
21:06:32 | OrionPK | and it enforces read = size |
21:07:33 | OrionPK | http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#sendrecv |
21:08:56 | BitPuffin | dom96: how can we slap django, rails, yesod etc around with a salmon thing so that we have a killer app for nimrod |
21:10:24 | dom96 | OrionPK: If posix.recv() returns 0 then sockets.recv will too *unless* there is data in the buffer: https://github.com/Araq/Nimrod/blob/master/lib/pure/sockets.nim#L1071 |
21:10:30 | OrionPK | all the things that might let me work around these issues are non-public |
21:10:51 | OrionPK | hmm |
21:11:32 | OrionPK | okay, this might work then |
21:11:34 | OrionPK | thanks dom96 |
21:12:31 | dom96 | perhaps the low-level version of recv needs more docs about its behaviour with buffered sockets |
21:13:05 | dom96 | You can also completely disable buffering if you wish, recv will then behave exactly the same as posix.recv |
21:14:57 | * | freezerburnv joined #nimrod |
21:15:46 | OrionPK | may have to ultimately |
21:15:49 | OrionPK | we'll see |
21:17:17 | BitPuffin | Araq: any ideas? |
21:17:41 | Araq | bbl |
21:24:09 | * | fredmorcos joined #nimrod |
21:27:17 | * | fredmorcos quit (Client Quit) |
21:28:31 | Demos | hey Araq, I see in lexer.nim there are openLexer and closeLexer functions, they all take file related params. Is there a way to call them and just give em a string? |
21:34:15 | BitPuffin | ahhhhhhhhhhhhhhhhhhh |
21:34:23 | BitPuffin | my website is on the external hard drive |
21:34:25 | BitPuffin | ._. |
21:34:34 | BitPuffin | dom96: will you go get it for me xD |
21:35:09 | EXetoC | "proc isUpper*(c: TRune)" Does C stand for code point, while TRune is named as such because TCodePoint would be too long? :> |
21:41:59 | * | BitPuffin works on linagl instead |
21:47:09 | * | gour_ quit (Quit: WeeChat 0.4.1) |
21:50:35 | * | freezerburnv quit (Quit: freezerburnv) |
21:51:08 | BitPuffin | proc mul*[T; R, C: range](a: T, b: TMatrix[T, R, C]): TMatrix[T, R, C] {.noSideEffect.} = |
21:51:55 | BitPuffin | could I turn that into proc mul*(a: auto; b: TMatrix): b.TMatrx {.noSideEffect.} = ? |
21:56:09 | BitPuffin | what do I do to have to avoid spelling out every generic parameter to the proc but when one of the arguments needs a type from one of the other params |
21:56:13 | BitPuffin | like in this case with a |
22:14:12 | * | drvanon left #nimrod (#nimrod) |
22:18:09 | EXetoC | b.TMatrix? b.type? |
22:19:09 | EXetoC | the latter seems to work pretty well, and I think I do something like that in one of my pull requests for Nimrod |
22:19:39 | * | fredmorcos joined #nimrod |
22:22:09 | EXetoC | yup, and the whole test framework was fine with that last time I checked. it's a neat shortcut that sometimes removes the need for separate overloads |
22:28:30 | BitPuffin | EXetoC: so it works even though a was specified before b? |
22:29:38 | EXetoC | I don't think I've tried that, but hopefully it does. seems like a reasonable feature |
22:30:06 | BitPuffin | EXetoC: yep |
22:30:12 | BitPuffin | I'll try it |
22:30:26 | BitPuffin | getting an error on |
22:30:43 | BitPuffin | TVector*[T: TNumber; I:range] = array[I, T] ## T = Type, I = Indices - will possibly later be changed to Dimension (number) |
22:31:00 | BitPuffin | vector.nim(7, 40) Error: ordinal type expected |
22:31:24 | BitPuffin | can't remember I think maybe zahary1 or zahary____ (one of them) mentioned that there was a regression or something |
22:32:01 | EXetoC | oh |
22:32:23 | BitPuffin | can't remember if that's correct though |
22:32:38 | BitPuffin | kind of annoying when all the people who know the compiler really well isn't here :( |
22:36:46 | EXetoC | :/ |
22:37:06 | EXetoC | 103 thumbs up on youtube. I feel awesome |
22:37:46 | BitPuffin | EXetoC: on what? |
22:39:41 | Araq | BitPuffin: yeah it's a regression caused by type classes |
22:39:49 | EXetoC | vsauce |
22:40:20 | BitPuffin | Araq: wb, is there a simple workaround? |
22:40:31 | BitPuffin | EXetoC: o.O |
22:41:25 | Araq | yeah, remove the ':range' |
22:41:33 | BitPuffin | oh yeaaah right now I remember |
22:41:35 | BitPuffin | thanks Araq |
22:41:41 | * | fredmorcos quit (Quit: Leaving) |
22:42:49 | BitPuffin | Araq: hmm it still gives the error, guess I need to change it on every proc |
22:45:59 | BitPuffin | Araq: right you wanted me to remove every alias of the various procs, because "Araq very much supports people writing in their own style"! |
22:46:03 | BitPuffin | :D |
22:46:56 | Araq | not if your style is brain dead |
22:47:03 | Araq | mul(add(a,b), 3) |
22:47:19 | BitPuffin | Araq: now that's just not nice |
22:47:48 | Araq | nimrod is not fucking java where an overloaded == confuses the heck out of people |
22:48:19 | BitPuffin | you can overload operators in java? lol |
22:52:38 | BitPuffin | Araq: well the whole point of it was that people could use whatever they preferred |
22:53:30 | Araq | oh really? what if I prefer matrix_mul ? |
22:54:11 | BitPuffin | Araq: then matrix.mul isn't too far away |
22:54:22 | Demos | goddamn I need to dick around and sign my nimrod->c# assembly |
22:55:12 | BitPuffin | Araq: But anyways, I guess the pick your own style part of nimrod shouldn't apply to operators then |
22:55:24 | BitPuffin | Araq: but that can get pretty vague |
22:55:33 | BitPuffin | Araq: should dot product be dot or *. |
22:56:04 | BitPuffin | plus I want to stay as close as possible to the GLSL spec while still following common nimrod conventions (like TType naming) |
22:56:35 | * | shodan45 quit (Quit: Konversation terminated!) |
22:57:06 | EXetoC | I don't know, but *+ was pretty neat, and not too obscure |
22:57:33 | BitPuffin | EXetoC: for cross product? |
22:57:47 | * | Associat0r quit (Quit: Associat0r) |
22:58:53 | EXetoC | yeah |
22:58:56 | BitPuffin | EXetoC: I don't know. Someone coming to read code will probably be kind of confused at first glance seeing that |
22:59:00 | BitPuffin | I mean it's clever and I like it |
22:59:07 | BitPuffin | but it's kind of cryptic |
22:59:13 | BitPuffin | unless someone told you |
23:00:15 | BitPuffin | by the way is [*] a possible op name? |
23:00:23 | BitPuffin | or [+] |
23:00:42 | BitPuffin | because that would look kind of like the component by component multiplication |
23:04:34 | BitPuffin | we really need a proper Style Guide for nimrod code other than http://nimrod-code.org/apis.html |
23:04:55 | Demos | how is object inheratance implemented? Does it just stick the base object at the beginning of the derived one? |
23:06:02 | Araq | Demos: yes |
23:06:35 | Demos | OK if I depended on that would you harm me? |
23:06:49 | * | shodan45 joined #nimrod |
23:08:07 | BitPuffin | Araq: so do you think even in the case of dot product and cross product there should only be an operator? |
23:09:39 | Araq | BitPuffin: yes. |
23:09:48 | Araq | Demos: no |
23:10:17 | Demos | k, thanks |
23:16:37 | BitPuffin | Araq: fair enough |
23:16:46 | BitPuffin | YOU GET IT YOUR WAY THEN |
23:16:55 | BitPuffin | even if it doesn't look at all like glsl :( |
23:17:07 | BitPuffin | which is a little bit the goal |
23:18:26 | BitPuffin | Araq: what about approxEqual? should that just be ~= ? |
23:19:07 | Araq | yeah |
23:20:23 | BitPuffin | Araq: what about unary operators, like negation? |
23:20:31 | BitPuffin | should there only be -a ? |
23:20:35 | BitPuffin | and not a.negated |
23:20:43 | Araq | yeah |
23:20:46 | BitPuffin | kay |
23:21:46 | BitPuffin | would be interesting if one could do |vec| to get the magnitude hehe |
23:22:37 | BitPuffin | something like proc `||`*(v: TVector): float {.noSideEffect.} = |
23:24:55 | Araq | yeah it's not easy to make the language support that though |
23:25:09 | Araq | but then ||v works |
23:25:22 | BitPuffin | Araq: I can imagine, it would be kind of cool though. Especially when there is such a focus on operators apparently |
23:25:34 | BitPuffin | Araq: do you feel like ||v is preferred over v.mag ? |
23:27:31 | Araq | I have no opinion on this one :P |
23:27:41 | Araq | 'mag' is fine too |
23:27:51 | Araq | consistent with 'len' I guess |
23:27:54 | filwit | is 1.0f valid syntax? |
23:28:17 | BitPuffin | actually wait |
23:28:24 | BitPuffin | ||a would probably be normalization |
23:28:34 | BitPuffin | where ||||a would be the magnitude lol |
23:28:52 | BitPuffin | I guess it is even harder to support ||v|| |
23:29:09 | BitPuffin | oh no |
23:29:14 | BitPuffin | I take that back |
23:29:18 | BitPuffin | I got it confused :p |
23:30:05 | Araq | filwit: 1.0f32 is |
23:30:16 | filwit | k, thanks |
23:31:17 | BitPuffin | Araq: I think I am gonna have to keep normalized as it is instead of norm would get confused with the vector norm/magnitude |
23:31:17 | EXetoC | I didn't know the ' could be omitted |
23:35:09 | BitPuffin | me neither |
23:36:21 | filwit | bleh, my code is causing an internal compiler error |
23:37:02 | Araq | filwit: bug report please |
23:37:04 | filwit | is '.3' valid? or only '0.3'? |
23:37:17 | filwit | Araq: I will if i can figure out what's going on |
23:38:36 | filwit | btw, does '0.0' default to float 32 or 64? |
23:38:50 | filwit | nevermind |
23:38:54 | filwit | found in docs |
23:39:37 | filwit | so float == cdouble ? |
23:39:51 | * | io2 quit () |
23:42:06 | * | faassen quit (Quit: Leaving.) |
23:43:39 | BitPuffin | proc `*.`*(a, b: TVector): a.type.T {.noSideEffect.} = |
23:43:43 | BitPuffin | is that supposed to work? |
23:44:05 | BitPuffin | Error: identifier expected, but found '' |
23:44:49 | EXetoC | the '.' might be problematic |
23:46:09 | BitPuffin | how so? |
23:46:33 | Varriount | I don't think you can use . in operators. |
23:46:56 | BitPuffin | Varriount: it has worked before |
23:47:00 | BitPuffin | I'm pretty sure |
23:47:03 | BitPuffin | at least it compiled :P |
23:47:49 | BitPuffin | Varriount: http://nimrod-code.org/manual.html#operators |
23:47:55 | BitPuffin | EXetoC: [T] ? |
23:48:14 | BitPuffin | I remember zahary1 / zahary____ showing me something about how to write this |
23:50:11 | EXetoC | nothing. the docs are pretty clear |
23:51:30 | EXetoC | and .. is a function. didn't think of that |
23:52:45 | BitPuffin | EXetoC: same error happens on other lines |
23:52:57 | BitPuffin | so it's got to do with the a.type.T part |
23:53:15 | BitPuffin | Araq: shouldn't a.type.T be possible here? (a is a TVector) |
23:53:23 | EXetoC | T? |
23:53:24 | Varriount | dom96, I've pushed new updates to the libcef wrapper. The rest is up to you., |
23:53:37 | BitPuffin | EXetoC: yep T |
23:53:41 | dom96 | Varriount: Does it work? |
23:54:11 | EXetoC | but is that symbol available at that point? |
23:54:13 | BitPuffin | dom96: maybe you know the answer :p |
23:54:18 | Varriount | dom96, I can't get past the cef_win dependancy on cef_types_wrapper, which uses c++ templates |
23:54:32 | BitPuffin | EXetoC: I don't really know, can't remember the syntax that zahary1 showed me.. |
23:54:38 | EXetoC | otherwise you'd need to create a type alias somehow |
23:54:39 | EXetoC | ok |
23:55:13 | Araq | TVector.T should work, a.type.T ... dunno |
23:55:14 | dom96 | Varriount: hrm, is there both C and C++ code to wrap? That's odd. |
23:55:38 | Varriount | dom96, Its confusing. |
23:55:45 | BitPuffin | Araq: hmm, wait I can just have TVector as the return type and not a.type? |
23:55:51 | BitPuffin | instead of* |
23:55:54 | BitPuffin | a.type works |
23:55:58 | EXetoC | but then is there not a pure C interface? |
23:56:12 | EXetoC | I suppose not |
23:56:36 | Varriount | EXetoC, its a squid interface. |
23:56:51 | dom96 | Varriount: oh well, I suppose I can take it from here. Thanks. |
23:56:51 | filwit | how do i get float.max? |
23:57:29 | Varriount | Now, I'm gonna work on porting python's itertools over to nimrod. |
23:58:13 | BitPuffin | Araq: grr, still get the same error :P bug? |
23:59:48 | Araq | it's already reported, BitPuffin |