00:00:16 | BitPuffin | Demos: pong |
00:00:25 | Demos | ah, you are back |
00:00:42 | EXetoC | BitPuffin: playing it? |
00:00:42 | Demos | I was going to ask why you decided to implement inverse using determinants in linagl? |
00:01:51 | BitPuffin | Demos: ah, I barely remember, I think it was like the only sure way for it to work N-dimensionally or something |
00:02:16 | BitPuffin | I'm not quite sure anymore |
00:02:21 | BitPuffin | but there was a good reason |
00:02:46 | Demos | I can certanly see the code being eaiser to write than some kind of thing based on reduction |
00:05:24 | BitPuffin | Demos: I can not remember. Maybe it was something with being more reliable etc or being more resistant to matrix creep |
00:05:26 | BitPuffin | don't know |
00:05:30 | BitPuffin | will have to refresh myself |
00:13:02 | * | BitPuffin quit (Ping timeout: 246 seconds) |
00:20:24 | EXetoC | how many people are aware of this? https://www.gittip.com/Araq/ |
00:29:21 | EXetoC | maybe we should bring it up more often, and/or make it more visible. |
00:29:57 | EXetoC | I'm thinking of donating $10 a week, which isn't all that much, but I don't have an income yet |
00:32:26 | runvnc | Hello |
00:32:34 | runvnc | Did someone start on a plugin database yet |
00:32:38 | runvnc | I mean babel |
00:33:05 | runvnc | I am making a plugin database for my PaaS built on redis and sort of hoping there is a slight chance he can use it for babel |
00:33:18 | runvnc | should have asked him before he went to bed obviously |
00:33:37 | EXetoC | database? |
00:33:43 | EXetoC | API? |
00:33:51 | runvnc | well its just a module called redisplugindb |
00:34:17 | runvnc | so I have like getpluginUrl, getplugindetails, addorupdateplugin, and internally it creates a simple search index with redis |
00:35:09 | runvnc | but I think I am going to change it because having the type of object in the name of these functions will annoy people if anyone ever wants to use it for something else |
00:35:25 | runvnc | so I made a TPlugin |
00:36:02 | runvnc | but he didn't start on that plugin database did he |
00:36:28 | runvnc | wish I got here like two hours ago |
00:40:28 | EXetoC | I still don't know what plugin stands for. package? |
00:40:32 | EXetoC | not that I can help you |
00:40:53 | runvnc | oh sorry |
00:41:02 | runvnc | right my plugins are basically the same thing as babel packages |
00:41:08 | runvnc | used slightly differently and they are bash |
00:41:35 | runvnc | or partly bash. but has the same basic thing where you need to add them, list them, search them, has name, version, description, requires |
00:42:41 | * | q66 quit (Quit: Leaving) |
00:45:06 | EXetoC | the terminology is wrong I think. anyway, you want an actual babel API, right? if so, then yes there probably are plans for that, but there's a gazillion things to do as always |
00:48:10 | runvnc | hm, no I was thinking perhaps someone could use this to implement the back end, and not thinking about a babel api |
00:48:47 | runvnc | I am using the term plugin correctly. it is confusing because I didnt explain what my plugins do.. but partly they need a database like the packages have a database |
00:49:13 | runvnc | anyway I am just making a sort of generic crud module in front of redis, plus search on certain fields you specify |
00:49:23 | runvnc | so it isnt really particular to plugins |
00:49:52 | runvnc | anyway I'm sure they will want to do it in a particular way so thats fine. going to publish the module in case it can be used for something regardless |
00:50:00 | EXetoC | it's just a json document now |
00:50:22 | EXetoC | and I think it'll stay that way for some time |
00:51:12 | runvnc | a module like this would make it easy to implement a 'babel publish' that didnt require any manual package.json editing or pull requests |
00:51:34 | runvnc | its something they mentioned on their google summer of code or whatever page |
00:57:46 | * | BitPuffin joined #nimrod |
00:58:25 | EXetoC | ok |
01:02:05 | * | Demos quit (Ping timeout: 255 seconds) |
01:04:27 | * | BitPuffin quit (Ping timeout: 265 seconds) |
01:04:47 | * | guest_____ joined #nimrod |
01:06:03 | * | guest_____ quit (Client Quit) |
01:06:08 | * | ics_ joined #nimrod |
01:07:23 | * | IrvMG left #nimrod (#nimrod) |
01:07:38 | EXetoC | Araq: is that multiplication check possible without involving floats? |
01:13:42 | * | ics quit (*.net *.split) |
01:13:42 | * | skyfex quit (*.net *.split) |
01:20:42 | * | brihat joined #nimrod |
01:21:02 | * | brihat left #nimrod (#nimrod) |
01:31:21 | EXetoC | Araq: does anything need to be done for opcUnaryMinusInt for example? I already get a trace |
01:36:18 | EXetoC | maybe I shouldn't be fooled by the identical output replicated by the VM |
01:39:59 | fowl | greetings earthlings |
01:40:17 | EXetoC | disregard that |
01:40:19 | EXetoC | hi bye |
01:41:13 | EXetoC | unary minus under/overflow is now also properly intercepted |
02:04:28 | * | Demos joined #nimrod |
02:05:15 | Demos | wow I think flash just brought my whole computer down |
02:07:01 | * | BitPuffin joined #nimrod |
02:18:08 | * | BitPuffin quit (Ping timeout: 240 seconds) |
02:36:59 | * | BitPuffin joined #nimrod |
02:43:48 | * | catch_ joined #nimrod |
02:44:14 | * | catch_ left #nimrod (#nimrod) |
03:28:21 | * | brson quit (Ping timeout: 255 seconds) |
03:52:50 | * | fowl quit (Read error: Connection reset by peer) |
03:56:17 | * | fowl joined #nimrod |
03:58:59 | * | brson joined #nimrod |
04:18:06 | * | BitPuffin quit (Ping timeout: 245 seconds) |
04:19:20 | * | BitPuffin joined #nimrod |
04:31:23 | * | BitPuffi1 joined #nimrod |
04:35:36 | * | brson_ joined #nimrod |
04:39:53 | * | BitPuffin quit (*.net *.split) |
04:39:53 | * | brson quit (*.net *.split) |
04:39:54 | * | fowl quit (*.net *.split) |
04:48:53 | * | fowl joined #nimrod |
06:00:46 | * | IrvMG joined #nimrod |
06:02:47 | IrvMG | EXetoC, problem with mongo2.nim https://github.com/nimrod-code/mongo/issues/1 |
06:02:53 | IrvMG | Hi :) |
06:04:43 | * | BitPuffi1 quit (Ping timeout: 264 seconds) |
06:09:45 | fowl | IrvMG, what version do you have installed? |
06:11:42 | IrvMG | mongo-c-driver: libbson and libmongoc 1.0 |
06:14:20 | IrvMG | mongo2.nim is for driver v0.8.1 |
06:17:31 | * | skyfex joined #nimrod |
06:19:51 | * | IrvMG left #nimrod (#nimrod) |
06:22:21 | * | skyfex quit (Ping timeout: 265 seconds) |
06:24:45 | * | Demos quit (Read error: Connection reset by peer) |
06:34:41 | * | foodoo joined #nimrod |
06:41:57 | * | darkf_ joined #nimrod |
06:43:43 | * | foodoo quit (Ping timeout: 264 seconds) |
06:45:04 | * | darkf quit (Ping timeout: 265 seconds) |
06:48:37 | * | foodoo joined #nimrod |
06:48:42 | * | darkf_ is now known as darkf |
06:57:51 | * | vbtt joined #nimrod |
06:59:10 | vbtt | hello friends |
07:04:42 | * | BitPuffi1 joined #nimrod |
07:05:46 | * | isenmann joined #nimrod |
07:08:05 | Varriount | Hi vbtt |
07:08:13 | * | BitPuffi1 is now known as BitPuffin |
07:08:48 | Varriount | Araq: There is a way to get the "preferred block size" of a device on windows, similar to posix stat, should I add that to the fileinfo type? |
07:09:12 | BitPuffin | o/ |
07:11:12 | * | brson_ quit (Quit: leaving) |
07:13:00 | Varriount | Hi BitPuffin |
07:13:17 | Varriount | \o |
07:14:28 | BitPuffin | sup Varriount? |
07:15:44 | Varriount | BitPuffin: I wonder if it's a form of self defence that, when home with the rest of my family for extended periods of time, my sleep schedule tends to flip, so that I'm awake when they're asleep. |
07:16:50 | BitPuffin | Varriount: lol |
07:17:00 | BitPuffin | know ze feel |
07:17:14 | BitPuffin | although I think it's more about just being able to work on stuff when people are sleeping |
07:21:38 | Varriount | And defense against blaring reality tv |
07:22:10 | * | Varriount shudders at the thought of listening to "Teen Mom 2" |
07:22:57 | Varriount | BitPuffin: Although, I don't know what reality TV is like where you live. Maybe it's actually enjoyable. :/ |
07:23:38 | BitPuffin | Varriount: haha as if |
07:31:45 | Varriount | Gah. Where does the implementation for cygwin's fstat() live? |
07:37:55 | BitPuffin | Varriount: in /dev/null |
07:42:20 | Varriount | BitPuffin: Do you think I should bother trying to get the preferred block size on windows, for nimrod's getFileInfo proc? |
07:45:39 | fowl | what use is it |
07:46:27 | Varriount | fowl: I dunno. Low-level writing operations? |
07:46:46 | Varriount | Optimization of reads/writes? |
07:47:32 | BitPuffin | Varriount: don't prioritize it at least lol |
07:49:32 | Varriount | Hm. I'm not, I was just wondering. Right now I'm working on file permission retrieval, but it's quite frustrating. |
07:49:47 | fowl | Varriount, this thing seems to detect it http://www.chrysocome.net/dd |
07:50:15 | Varriount | fowl: I know *how* to get the block size, but *should* I? |
07:50:49 | Varriount | Anyway, Posix and Windows use very different security modules, api-wise. >_< |
07:52:30 | fowl | Varriount, oh |
07:52:50 | fowl | good night all |
07:53:36 | BitPuffin | night fowl |
07:55:05 | Varriount | fowl is not an owl. :< |
07:55:32 | BitPuffin | yatamo |
07:59:46 | * | q66 joined #nimrod |
08:18:53 | Varriount | Hm. Is there any plan on somehow unifying procs such as "proc foo(target: int): string" and "proc foo(var s: string, target:int)" |
08:31:10 | Varriount | Araq: See above. |
08:37:21 | foodoo | Varriount: And default proc parameters don't work for you? |
08:38:03 | Varriount | foodoo: Hm. Didn't think about that. Do they work for you? |
08:40:05 | foodoo | Varriount: In general, yes, but maybe I don't understand your issue. What do you mean by "unifying"? |
08:40:33 | Varriount | foodoo: I would rather not have to write out two semi-independant versions of the same proc. |
08:41:17 | foodoo | I see. So it's a matter of DRY |
08:42:00 | foodoo | Do you know any language that solves this problem more elegantly than with default parameters |
08:42:04 | foodoo | +? |
08:52:58 | * | renesac quit (Ping timeout: 252 seconds) |
08:54:16 | * | renesac joined #nimrod |
08:55:46 | * | Gr33n3gg quit (Ping timeout: 252 seconds) |
08:57:39 | Varriount | foodoo: Apparently the default parameter trick doesn't work for var types |
08:59:59 | * | Gr33n3gg joined #nimrod |
09:00:00 | * | zahary joined #nimrod |
09:03:35 | foodoo | Varriount: That's actually a good thing. In Python you can have nasty bugs if your default parameter is mutable |
09:04:49 | Varriount | foodoo: In nimrod, default arguments are re-instantiated, so even if you pass them on and somehow escaped the mutability, they don't gain python's... funkiness. |
09:05:41 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
09:07:06 | Araq | Varriount: 'var string' vs ' string' as return type unification is indeed planned. I should add it to the feature matrix ... |
09:07:46 | Varriount | Araq: Any ideas on how it will be done, semantically/syntactically speaking? |
09:07:55 | Araq | Varriount: I think the preferred block size is device dependent |
09:09:42 | Varriount | Araq: On a certain level, yes, but it's also file-system dependant as well. |
09:10:50 | Varriount | A hard-drive might be able to write, say, to a 1kb block-size (theoretically), but the filesystem may only be able to address 4kb block sizes. |
09:11:13 | Araq | Varriount: the planned pragma is "asFunc" but I'm open to other suggestions |
09:11:15 | Varriount | Araq: http://support.microsoft.com/kb/140365 |
09:11:28 | Araq | proc foo(x, y: int, result: var string) {.asFunc.} |
09:11:34 | Araq | echo foo(2, 3) # valid |
09:12:39 | Araq | though for addf etc. I guess the first parameter makes more sense than the last parameter |
09:14:09 | Araq | btw 'asFunc' can be implemented as a macro once we have the type API :-) |
09:15:24 | Varriount | Araq: I guessed as much. I was briefly pondering how it might be done currently - something similar to the scrapped WinAPI macro I wrote. |
09:16:18 | Varriount | Anyway, the feature matrix is really nice. Now, when people ask you something feature-related, you can just drop the link, and leave them breathless as they observe the majesty of future plans. :3 |
09:16:36 | foodoo | link plz? |
09:17:00 | Araq | asFunc(f(params)) = template f(paramsWithoutResult): expr = (var result = ""; f(params, result); result) |
09:17:13 | Varriount | foodoo: https://github.com/Araq/Nimrod/wiki/Feature-Matrix |
09:17:17 | foodoo | thx |
09:17:20 | Araq | # pseudo-code of course |
09:17:48 | Varriount | Araq: Now watch as foodoo is blown away with awe and wonder. |
09:18:22 | Araq | I'm quite proud of 'asFunc' and I think it *really* improves function call semantics for systems programming |
09:19:15 | foodoo | "more love after 1.0" |
09:19:16 | Araq | something that really improves the state of the art |
09:19:27 | foodoo | but then I noticed the linebreak in the previous line |
09:20:30 | Varriount | Araq: In terms of the getFileInfo proc, I was thinking that an asFunc technique would be really useful. Then a "FileInfo" structure could be reused. |
09:22:30 | Araq | Varriount: that mostly depends on the size of your FileInto object though |
09:22:40 | Araq | otherwise having only the function version is just fine |
09:23:44 | Araq | asFunc is not only about optimization it's about transforming *appending* semantics into functions |
09:23:59 | foodoo | "support overloading of the assignment operator" I didn't write much C++ code in my life but what I have head about this feature in C++ is that it causes a lot of pain because you never know if an assignment is just an assignment or something more complex. |
09:24:33 | foodoo | head->heard (sorry for the typo) |
09:25:10 | Araq | foodoo: right now TIntSet has its own 'assign' proc whereas TTable has a proper = because the builtin works by accident for TTable but not for TIntSet. This is hardly a good thing. |
09:26:28 | foodoo | So this is actually a syntactical problem? |
09:26:37 | Araq | also we're all quite young people used to decent tooling. I should be able to move my mouse cursor over the '=' to find out if it's overloaded. If that really is a crucial piece of information .... |
09:27:08 | Araq | the arguments against complex dispatching at compile-time are all very weak |
09:27:15 | foodoo | Araq: But when you hunt bugs you would still need to do that for every = |
09:27:54 | Araq | or I look at the generated C code. or assembler. or some other intermediate form. |
09:27:58 | foodoo | Araq: Because the bug can be hidden behind any = |
09:28:04 | Araq | no |
09:28:10 | Araq | this is not how debugging works |
09:28:54 | foodoo | When you try to understand code, you also have to know if something happens implicitly. And operator overloading is imho something implicit |
09:31:30 | Araq | IMHO only C++ gets miscredit for these features because most people use shitty tooling for C++ |
09:31:51 | Araq | ok, C++ is incredibly hard to parse so that explains the bad tooling |
09:32:19 | Araq | overloading of '=' has little to do with it though and is essential for proper data type abstractions |
09:33:01 | * | ics_ quit (Ping timeout: 246 seconds) |
09:34:22 | * | ics joined #nimrod |
09:36:00 | foodoo | Okay. But since I can define my own operators in Nimrod, I can simply define a new operator =! that will be used to do magic assignments in my code. Correct? |
09:37:21 | Araq | correct |
09:37:50 | Araq | btw you can also *disable* assignment with overloading of '=' and the .error pragma |
09:38:01 | Araq | which might be more to your taste |
09:38:23 | * | CarpNet joined #nimrod |
09:38:27 | foodoo | The compiler is my friend. That is nice :) |
09:39:35 | Araq | python supports overloading of [], []= but not of = and that is a very nice solution |
09:39:47 | Araq | but it only works for python because it has no value based datatypes |
09:41:12 | Araq | hmm thinking about it |
09:41:35 | Araq | we can easily emit a lowered nimrod representation and make GDB aware of that |
09:42:16 | Araq | and given the amount of macro fu that I have to deal with dom96's async stuff |
09:42:27 | Araq | I should just do it |
09:43:24 | Araq | the "I can't debug with all this meta stuff" argument surely is valid |
10:09:48 | * | faassen joined #nimrod |
10:17:20 | * | Matthias247 joined #nimrod |
10:34:05 | * | foodoo quit (Remote host closed the connection) |
11:01:49 | * | darkf quit (Quit: Leaving) |
11:03:38 | * | faassen quit (Ping timeout: 240 seconds) |
11:28:24 | * | psquid quit (Ping timeout: 255 seconds) |
11:28:29 | * | Mordecai joined #nimrod |
11:28:49 | * | Mordecai is now known as Guest12427 |
11:30:36 | * | Mat3 joined #nimrod |
11:30:45 | Mat3 | hello |
11:35:10 | * | foodoo joined #nimrod |
11:35:23 | * | Matthias247 quit (Read error: Connection reset by peer) |
11:38:38 | * | btbytes joined #nimrod |
11:39:22 | btbytes | hi all. |
11:39:34 | btbytes | forum.nimrod-lang.org is 502ing |
11:39:49 | Mat3 | oO |
11:49:59 | EXetoC | Araq: have narrowing conversions not been implemented? |
11:52:30 | * | btbytes quit (Quit: Page closed) |
11:52:41 | * | foodoo quit (Ping timeout: 246 seconds) |
11:53:39 | * | foodoo joined #nimrod |
11:57:38 | * | io2 joined #nimrod |
12:02:10 | Mat3 | ciao |
12:02:14 | * | Mat3 quit (Quit: Verlassend) |
12:29:01 | BitPuffin | dom96 |
12:29:03 | BitPuffin | Araq |
12:29:07 | BitPuffin | you should probably fix the shit |
12:29:26 | BitPuffin | well dom96 to be more specific |
12:33:15 | EXetoC | Araq: "static: echo int32.high" -> 2147483647, "static: let x = int32.high; echo x" -> 140134165263200 |
12:34:28 | BitPuffin | Varriount: do you have access to the servers? |
12:36:11 | EXetoC | Araq: well, there's an issue for uint32.high. it seems similar |
13:09:12 | Araq | BitPuffin: argh, can't fix it from here |
13:09:50 | Araq | can only do it tonight, yay |
13:09:58 | BitPuffin | Araq: isn't dom96 the one who can access the server? |
13:10:06 | BitPuffin | how come you can't reach it? :o |
13:10:17 | Araq | BitPuffin: pw on other machine |
13:10:22 | BitPuffin | ah |
13:10:31 | BitPuffin | that's why you should have a smart phone with connect bot |
13:10:32 | BitPuffin | :) |
13:11:34 | Araq | well I told dom96 to write a simple keep-alive script for cases like these |
13:12:04 | BitPuffin | Araq: well you know dom96 |
13:12:08 | BitPuffin | he is what he is |
13:12:15 | Araq | not sure whether he did that and it keeps failing because the Hard-Disk is full :P |
13:12:21 | EXetoC | well he keeps getting coerced into playing games |
13:12:48 | BitPuffin | EXetoC: it's all Araq's fault |
13:12:56 | Araq | yes. I know |
13:13:16 | BitPuffin | Araq: does dom96 have pw? |
13:13:28 | Araq | yes |
13:17:49 | EXetoC | Araq: does the weekly $2.25 go to anything in particular? |
13:19:10 | * | dom96_and joined #nimrod |
13:19:25 | Araq | yes. I safe them. and in 500_000 days I will be a millionaire and can work fulltime on nimrod |
13:19:29 | dom96_and | The forum does have a restart script. |
13:19:32 | EXetoC | ic |
13:19:43 | Araq | dom96_and is here! :-) |
13:19:49 | dom96_and | I wonder what happened. |
13:20:00 | dom96_and | Can't restart it now. I'm at school. |
13:20:38 | Araq | lol I wonder if somebody managed to input invalid RST that crashes the forum |
13:20:41 | dom96_and | I need to set up monit instead of some hacky restart scripts. |
13:21:48 | dom96_and | Possibly. It probably is now crashing at startup. |
13:21:48 | Araq | we also you have regular database backups ... |
13:22:00 | Araq | *should |
13:22:07 | dom96_and | Yes... |
13:22:43 | dom96_and | Hopefully someone didn't SQL inject. |
13:22:58 | Araq | I don't think that is possible |
13:23:11 | * | Matthias247 joined #nimrod |
13:23:16 | dom96_and | While I'm here. Why do we need an asFunc pragma? |
13:23:45 | dom96_and | Can't you make the compiler automatically transform calls to such procs? |
13:24:08 | dom96_and | If they are called in a specific context? |
13:24:27 | dom96_and | Is there an ambiguity I'm not seeing? |
13:24:34 | EXetoC | Araq: that should be reduced to about 91836.73469387754 if everything goes as expected |
13:24:43 | EXetoC | BitPuffin: got some monies to spare, mate? |
13:25:00 | Araq | I thought we are now using macros for everything, dom96_and |
13:25:26 | Araq | asFunc is not trivial to do in the compiler anyway |
13:25:59 | Araq | maybe we can later builtin this rule but for now I prefer the macro |
13:25:59 | dom96_and | Are we? |
13:26:24 | Araq | dom96_and: foodoo made me think about much better debugging for macros |
13:26:28 | EXetoC | no it didn't go as expected. I'll have to try again some time |
13:26:46 | Araq | and I think it's quite simple to do |
13:26:57 | dom96_and | Yes. We need that. |
13:27:15 | dom96_and | I managed most issues I ran into though. |
13:27:45 | dom96_and | But for people who have no idea what code the macro generates it'll be difficult |
13:29:06 | EXetoC | 3 people are donating a total of $2.25? :> |
13:33:37 | * | dom96_and quit (Ping timeout: 265 seconds) |
13:36:07 | BitPuffin | Araq: I believe I tested for SQL inject and it not working |
13:36:34 | BitPuffin | and if there is rst crashing shit why aren't you doing input validation lol |
13:36:39 | Araq | BitPuffin: nice, thanks |
13:36:53 | Araq | BitPuffin: I do input validation |
13:37:00 | Araq | but perhaps there is some bug hiding in there |
13:37:10 | Araq | the RST parser was not written with security in mind |
13:37:16 | Araq | and then I re-used it :P |
13:37:24 | BitPuffin | true |
13:37:37 | BitPuffin | bad things can happen |
13:37:50 | BitPuffin | maybe something was valid but not according to the parser etc too |
13:37:51 | Araq | I reviewed the code though |
13:38:11 | BitPuffin | dom96: should set up icinga monitoring |
13:38:40 | * | flyx left #nimrod (#nimrod) |
13:44:31 | Araq | BitPuffin: no we need to write our own monitoring software |
13:44:46 | BitPuffin | Araq: lol |
13:44:50 | BitPuffin | Araq: and our own IDS |
13:45:10 | BitPuffin | Araq: and why haven't you set up a cron script that just copies the database every now and then |
13:45:34 | Araq | because |
13:45:41 | Araq | a) I didn't think about it |
13:45:51 | Araq | b) cron script reminds me of unix |
13:46:09 | BitPuffin | c? |
13:47:16 | Araq | c) so that BitPuffin can keep asking questions |
13:47:30 | BitPuffin | Araq: you know you love it |
13:54:08 | * | Matthias247 quit (Read error: Connection reset by peer) |
14:01:03 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
14:02:48 | * | io2 joined #nimrod |
14:13:25 | * | Demos joined #nimrod |
14:20:59 | Demos | Does asfunc allow something more than just faster returns of big value types? |
14:28:11 | Demos | I guess it lets you force that optimization, I know I had an issue where my c++ program took 10mins to start in debug mode when built with MSVC because they turn off NRVO |
14:39:29 | OrionPK | forum still down? |
14:42:40 | BitPuffin | Demos: s/asfunc/assfunc/ |
14:42:56 | BitPuffin | OrionPK: yeah, dom96 and Araq have retard emergency strategies for this kind of stuff |
14:43:23 | Demos | heh, but seriously, C and C++ compilers will optimize functions returning a large value type in a lot of cases, it is pretty predictable actually |
14:44:26 | Demos | (it also changes the behavior of your program if you have constructors with certain side effects, but you get what you deserve in that case) |
14:44:59 | BitPuffin | pretty sure they avoid the optimization in that case though? |
14:45:04 | Demos | nope |
14:45:07 | BitPuffin | since compilers are fucking smartasses |
14:45:47 | Demos | write a test that has a print statement in a constructor, you can see the copy get elided. then turn on -fno-somethingsomething and see it come back |
14:46:19 | Demos | you need to return the same variable on all paths, but nimrod makes that easy! |
14:51:29 | foodoo | how can I specify the output directory of ̀nimrod doc2 ̀? |
14:58:43 | renesac | Demos, Araq : have you seen this talk: http://channel9.msdn.com/Events/GoingNative/2013/Writing-Quick-Code-in-Cpp-Quickly |
14:59:01 | Demos | I have, It was a while ago though |
14:59:11 | Demos | presumably there were some templates... given the speaker |
14:59:11 | * | runvnc quit (Quit: WeeChat 0.4.1) |
14:59:19 | renesac | he starts talking about optimizing bitfields, then goes on about object layout and Vtables, and then talks about move elision and that return value optimization |
14:59:56 | renesac | if you have to return a string, as in that readline, it is much more efficient read aways to the same buffer |
15:00:12 | BitPuffin | lol Andrei |
15:00:18 | BitPuffin | him and his DAMN templates |
15:00:19 | renesac | instead of allocating a new string each line |
15:00:44 | renesac | yes, the bitfield talk is template heavy... |
15:00:45 | Demos | but will asFunc actually do that? |
15:00:50 | renesac | I dunno |
15:00:52 | Demos | also.... bitfields |
15:01:34 | * | flyx joined #nimrod |
15:02:17 | renesac | I wanted to be able to assign to seq/strings len |
15:02:32 | Demos | wait what? |
15:02:38 | Demos | like instead of setLen? |
15:02:45 | renesac | as a way to resize it |
15:03:04 | renesac | but w/o resizing down the capacity |
15:03:15 | * | PortableEXetoC joined #nimrod |
15:04:14 | renesac | hum, maybe setLen does it |
15:04:37 | Demos | setlen combined with max should work |
15:04:51 | renesac | max? |
15:05:04 | Demos | max(a,b:T): T |
15:05:08 | Demos | I think |
15:05:13 | renesac | but why max? |
15:05:25 | Demos | setlen(max(len, newLen)) |
15:05:28 | renesac | I was thinking in those buffer cases |
15:05:28 | Demos | or some such |
15:05:56 | renesac | you don't want to realloc the string each line lenght change |
15:06:33 | renesac | but you need to give a string of the correct length back |
15:06:34 | Demos | yeah well I dont know if setLen does htat |
15:06:45 | * | psquid joined #nimrod |
15:07:27 | renesac | if it don't, maybe a new parameter 'shrink=false' is better |
15:07:42 | renesac | where is this seq magic defined? |
15:07:44 | renesac | I forgot |
15:09:08 | * | Guest12427 quit (Ping timeout: 240 seconds) |
15:11:30 | BitPuffin | haha |
15:11:42 | BitPuffin | intuition about programs is like intuition about the other gender |
15:11:44 | BitPuffin | it's always wrong |
15:13:25 | Demos | unfortinately the other gender lacks built in error reporting and performence counters :D |
15:14:02 | Demos | ugggggh I wish the GDC videos were free |
15:14:21 | BitPuffin | Demos: me too :( |
15:14:43 | Demos | maybe if I looked harder I could get them through the university |
15:17:13 | BitPuffin | what's the pricing for gdc videos? |
15:18:31 | Demos | like $20-$50 per video I think |
15:23:09 | BitPuffin | oh |
15:23:12 | BitPuffin | so there is no like |
15:23:15 | BitPuffin | base subscription? |
15:23:32 | * | Mordecai joined #nimrod |
15:23:50 | * | Mordecai is now known as Guest46649 |
15:23:56 | BitPuffin | 495 usd per year |
15:24:02 | BitPuffin | loooooOOOOOOOOOOoooooooor |
15:24:11 | BitPuffin | s/r/l |
15:24:40 | * | foodoo quit (Remote host closed the connection) |
15:26:07 | * | psquid quit (Ping timeout: 265 seconds) |
15:28:11 | dom96 | So... this is interesting: https://gist.github.com/dom96/84df00ea1ebfa192c2ba |
15:28:13 | PortableEXetoC | Demo was almost right then |
15:28:54 | PortableEXetoC | Oops misread. Gotta remember to read all the words |
15:29:19 | * | tumak quit (Ping timeout: 264 seconds) |
15:29:26 | * | tumak joined #nimrod |
15:30:54 | dom96 | Two tracebacks. I have no idea what that means. |
15:30:58 | BitPuffin | Demos: his code is difficult to understand lol |
15:31:30 | Demos | whos code? |
15:31:46 | BitPuffin | Demos: Andrei |
15:31:49 | BitPuffin | dom96: you goof'd |
15:32:27 | renesac | c++ template and function pointer syntax really don't helps |
15:32:56 | Demos | BitPuffin: yeah. Although he seems to be productive. Stuff like his explode() function are pretty crazy |
15:36:00 | BitPuffin | sizeof...? |
15:36:02 | BitPuffin | lol |
15:40:39 | dom96 | BitPuffin: I have mor experience with monit, any reason why I should use icinga instead? |
15:41:27 | BitPuffin | dom96: don't know anything about monit |
15:41:42 | BitPuffin | dom96: I have just heard a lot about nagios and icinga is the fork of that |
15:41:46 | BitPuffin | since they decided to fuck it up |
15:47:13 | * | [1]Endy joined #nimrod |
15:48:25 | * | [2]Endy joined #nimrod |
15:50:38 | * | Demos quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
15:50:43 | * | PortableEXetoC quit (Quit: cake) |
15:51:26 | * | [1]Endy quit (Ping timeout: 245 seconds) |
15:51:49 | * | [1]Endy joined #nimrod |
15:55:04 | * | [2]Endy quit (Ping timeout: 268 seconds) |
16:01:37 | * | Demos joined #nimrod |
16:02:13 | * | skyfex joined #nimrod |
16:02:28 | * | psquid joined #nimrod |
16:06:14 | * | Guest46649 quit (Ping timeout: 265 seconds) |
16:12:00 | * | skyfex quit (Quit: Computer has gone to sleep.) |
16:12:20 | * | [2]Endy joined #nimrod |
16:15:11 | * | [1]Endy quit (Ping timeout: 245 seconds) |
16:23:08 | * | BitPuffin quit (Ping timeout: 240 seconds) |
16:32:48 | * | [1]Endy joined #nimrod |
16:35:46 | * | [2]Endy quit (Ping timeout: 268 seconds) |
16:53:21 | * | [2]Endy joined #nimrod |
16:56:19 | * | [1]Endy quit (Ping timeout: 264 seconds) |
16:58:56 | * | Demos quit (Ping timeout: 246 seconds) |
17:10:31 | * | skyfex joined #nimrod |
17:11:47 | * | nolan_d left #nimrod (#nimrod) |
17:13:00 | * | [1]Endy joined #nimrod |
17:17:04 | Varriount | Does the server still need rebooting? Or is it just the hard-disk that's the problem? |
17:17:05 | * | [2]Endy quit (Ping timeout: 268 seconds) |
17:17:27 | dom96 | I already restarted it. |
17:18:06 | * | comex quit (Quit: WeeChat 0.4.0) |
17:18:19 | * | comex joined #nimrod |
17:24:00 | * | DAddYE joined #nimrod |
17:24:17 | * | comex quit (Quit: WeeChat 0.4.0) |
17:24:26 | * | comex joined #nimrod |
17:32:42 | * | [2]Endy joined #nimrod |
17:36:08 | * | [1]Endy quit (Ping timeout: 240 seconds) |
17:37:27 | * | [1]Endy joined #nimrod |
17:41:19 | * | [2]Endy quit (Ping timeout: 264 seconds) |
17:57:05 | * | [2]Endy joined #nimrod |
17:59:03 | EXetoC | Araq: should it be possible to have one proc per arithmetic operation? |
18:00:07 | EXetoC | that approach doesn't work now when literals are involved, and `<`(int, BiggestInt) doesn't either |
18:00:31 | * | [1]Endy quit (Ping timeout: 246 seconds) |
18:03:17 | EXetoC | yeah I know, low priority and all that |
18:03:19 | * | brson joined #nimrod |
18:08:00 | * | Matthias247 joined #nimrod |
18:16:43 | * | [1]Endy joined #nimrod |
18:20:35 | Araq | dom96: 2 stacktraces are easy |
18:20:36 | * | [2]Endy quit (Ping timeout: 268 seconds) |
18:21:03 | dom96 | Yeah, I think I know why 2 stack traces happened. |
18:21:07 | Araq | the first is the actual issue that jester catches but still prints on the terminal |
18:21:21 | Araq | the 2nd is then the uncaught exception |
18:21:25 | dom96 | The first stack trace didn't get completely printed though |
18:21:45 | dom96 | I was thinking more along the lines that the SIGSEGV is caught |
18:21:52 | dom96 | or whatever signal |
18:22:02 | dom96 | and then we have a db.close in there. |
18:22:06 | Araq | no |
18:22:15 | Araq | you can't catch a signal iirc |
18:22:45 | dom96 | Depends on your definition of catch. |
18:22:50 | Araq | system/excpt.nim quits when a signal arrives |
18:22:54 | dom96 | you can certainly get a callback |
18:23:12 | Araq | hmm |
18:23:40 | dom96 | But you're probably right |
18:23:51 | Araq | btw demos missed the point. asFunc is not about optimizing return values. |
18:24:02 | Araq | asFunc is about *transforming* semantics |
18:24:07 | dom96 | But why wasn't the full stack trace printed? |
18:24:17 | dom96 | btw you didn't comment on my suggestion |
18:24:21 | dom96 | in regards to asFunc |
18:24:27 | Araq | didn't read it |
18:24:34 | Araq | let me read the logs |
18:27:41 | Araq | huh? I replied to your suggestion |
18:29:24 | dom96 | oh, you're right |
18:30:37 | Araq | maybe the stack trace is cut because you use crazy async callbacks |
18:30:54 | * | BitPuffin joined #nimrod |
18:31:25 | Araq | EXetoC: I did implement narrowing. I did a shitty job at it though, apparently ... |
18:31:26 | dom96 | ugh. Can you stop blaming async for everything? |
18:31:49 | Araq | I don't blame it at all |
18:32:07 | dom96 | If you want to rewrite NimForum to use sane whatever then go ahead. |
18:32:20 | Araq | but it's common knowledge stacks are slim with asyncio |
18:32:40 | reactormonk | async - the new jews? |
18:32:46 | Araq | I DON'T BLAME YOUR CODE! |
18:33:18 | * | Mat3 joined #nimrod |
18:33:24 | Mat3 | hi |
18:33:34 | dom96 | Araq: I don't see many callbacks in the traceback. |
18:33:38 | Araq | hi Mat3 good afternoon (?) |
18:34:14 | Mat3 | hi Araq |
18:37:10 | * | [2]Endy joined #nimrod |
18:38:12 | dom96 | bbl |
18:39:46 | * | [1]Endy quit (Ping timeout: 245 seconds) |
18:42:59 | * | [1]Endy joined #nimrod |
18:44:08 | * | BitPuffin quit (Ping timeout: 240 seconds) |
18:46:20 | * | [2]Endy quit (Ping timeout: 255 seconds) |
18:58:40 | dom96 | back |
18:59:39 | EXetoC | Araq: I'll report that then if no one has. so what generic approach will be identical to the current overload approach? (x, y: TSignedInt)? |
18:59:44 | * | nolan_d joined #nimrod |
19:00:54 | EXetoC | for bin ops |
19:03:32 | * | [2]Endy joined #nimrod |
19:06:01 | * | [1]Endy quit (Ping timeout: 245 seconds) |
19:21:37 | * | nolan_d left #nimrod (#nimrod) |
19:22:44 | * | nequitans quit (Remote host closed the connection) |
19:24:02 | * | [1]Endy joined #nimrod |
19:26:38 | * | [2]Endy quit (Ping timeout: 240 seconds) |
19:37:45 | Mat3 | ciao |
19:37:54 | * | Mat3 quit (Quit: Verlassend) |
19:42:03 | * | [2]Endy joined #nimrod |
19:44:56 | * | BitPuffin joined #nimrod |
19:45:42 | * | [1]Endy quit (Ping timeout: 268 seconds) |
19:51:42 | BitPuffin | dom96: |
19:51:44 | BitPuffin | dom96 |
19:51:46 | BitPuffin | dom96 |
19:51:54 | dom96 | what you want |
19:52:48 | BitPuffin | dom96: you have to re-subscribe lol. I had already reserved my youtube.com/bitpuffin url on another account and it could not be moved so I'm moving everything there |
19:52:53 | BitPuffin | and I'm also doing things a bit more properly |
19:53:06 | BitPuffin | like actually having the first video be the game intro etc and having nicer thumbnails :P |
19:53:23 | dom96 | BitPuffin: remind me later |
19:53:37 | BitPuffin | näääääää |
19:54:34 | BitPuffin | here it is at least http://youtu.be/3nYO_6vrI_s |
20:02:36 | * | [1]Endy joined #nimrod |
20:05:55 | * | [2]Endy quit (Ping timeout: 264 seconds) |
20:10:02 | * | nolan_d joined #nimrod |
20:12:01 | dom96 | So... since EXetoC ain't replying. Anyone else want to maintain the babel-git AUR package? |
20:13:42 | Araq | yeah. me. |
20:13:49 | Araq | I love linux packaging |
20:14:14 | dom96 | Who doesn't? RIGHT?! |
20:14:39 | Araq | BitPuffin: you need to install mods |
20:14:46 | Araq | they really improve the graphics |
20:16:02 | * | DAddYE quit (Remote host closed the connection) |
20:17:22 | * | DAddYE joined #nimrod |
20:20:41 | * | gXen joined #nimrod |
20:22:29 | * | gXen left #nimrod (#nimrod) |
20:23:06 | * | [2]Endy joined #nimrod |
20:24:53 | * | [2]Endy quit (Read error: Operation timed out) |
20:25:30 | * | [2]Endy joined #nimrod |
20:25:48 | * | [1]Endy quit (Ping timeout: 255 seconds) |
20:27:20 | * | nolan_d left #nimrod (#nimrod) |
20:27:38 | EXetoC | dom96: ok I'll maintain it. why don't you want to anymore? |
20:28:28 | dom96 | EXetoC: I'm mostly on Windows nowadays. |
20:28:37 | dom96 | And i'm busy maintaining other things |
20:35:15 | Araq | BitPuffin: this is how you should play this game: http://www.youtube.com/watch?v=7LzxErFcovc |
20:36:43 | dom96 | EXetoC: I disowned it https://aur.archlinux.org/packages/babel-git/ |
20:37:23 | reactormonk | EXetoC, gotta make it depend on nimrod-git ;-) |
20:37:46 | EXetoC | yes I've read the comments |
20:42:39 | EXetoC | dom96: odd source URL |
20:43:13 | * | dom96 doesn't know what you're talking about |
20:43:20 | * | zahary quit (Ping timeout: 255 seconds) |
20:43:23 | dom96 | I didn't create the package though. |
20:43:42 | * | [1]Endy joined #nimrod |
20:46:32 | EXetoC | once again the language for archlinux.org gets set to polish |
20:47:02 | * | [2]Endy quit (Ping timeout: 252 seconds) |
20:47:09 | dom96 | lol? |
20:47:15 | dom96 | How is that possible. |
20:57:38 | * | nolan_d joined #nimrod |
21:01:50 | reactormonk | the tester doesn't give any response in stdout? :-( |
21:03:00 | Araq | it does with --verbose or something |
21:04:10 | * | Matthias247 quit (Read error: Connection reset by peer) |
21:06:03 | reactormonk | Araq, --print |
21:06:06 | reactormonk | EXetoC, there you go |
21:06:38 | * | [1]Endy quit (Ping timeout: 240 seconds) |
21:07:50 | * | BitPuffin quit (Ping timeout: 265 seconds) |
21:16:08 | * | psquid quit (Ping timeout: 240 seconds) |
21:17:56 | EXetoC | dom96: how is babel licensed? |
21:18:06 | EXetoC | BSD? |
21:18:36 | dom96 | yes |
21:18:43 | * | psquid joined #nimrod |
21:19:18 | dom96 | Specifically the 4-clause one |
21:30:59 | EXetoC | package uploaded |
21:31:30 | dom96 | thx |
21:32:07 | EXetoC | and nimrod-git is orphaned, but it still works |
21:33:33 | dom96 | adopt it if you want |
21:38:26 | EXetoC | yeah |
21:59:15 | * | askatasuna joined #nimrod |
22:21:44 | * | q66 quit (Ping timeout: 252 seconds) |
22:22:06 | * | q66 joined #nimrod |
22:30:12 | * | xenagi joined #nimrod |
22:46:34 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
23:18:40 | * | DAddYE quit (Remote host closed the connection) |
23:25:42 | * | cark quit (Ping timeout: 265 seconds) |
23:29:15 | * | cark joined #nimrod |
23:46:24 | * | darkf joined #nimrod |
23:48:39 | * | askatasuna quit (Ping timeout: 255 seconds) |