00:00:28 | dom96 | never measured its memory usage properly so can't help you there |
00:01:29 | BitPuffin | dom96: can you take a guess? |
00:02:01 | dom96 | ~20mb |
00:02:23 | BitPuffin | hmm, then maybe 256mb ram is totally fine |
00:02:39 | dom96 | definitely |
00:02:44 | BitPuffin | or even 128 |
00:03:57 | BitPuffin | debian requires 64mb minimum |
00:04:36 | BitPuffin | I wonder how much overhead openvz adds to hat |
00:04:38 | BitPuffin | that* |
00:05:41 | BitPuffin | Well, I guess I could just start with minimum plan and then bump it up a notch if it needs more |
00:05:45 | BitPuffin | sounds like a plan |
00:09:45 | * | zahary_ quit (Ping timeout: 264 seconds) |
00:10:03 | dom96 | cool |
00:10:21 | dom96 | where are you buying this from? |
00:10:30 | BitPuffin | dom96: VPS? |
00:10:37 | dom96 | yeah |
00:10:38 | BitPuffin | glesys.se |
00:11:26 | BitPuffin | that's what I'm currently looking at at least |
00:12:02 | dom96 | hrm, not bad. |
00:14:02 | BitPuffin | dom96: you understand the swedish and the SEK? |
00:14:24 | dom96 | lol no, they have an english translation |
00:14:35 | BitPuffin | oh right |
00:15:01 | BitPuffin | dom96: swedish version has debian 7, weird |
00:17:20 | BitPuffin | dom96: actually htmlgen doesn't seem like such a bad thing |
00:18:02 | dom96 | oh yes, that's nice too |
00:18:12 | BitPuffin | dom96: does it have support for html5 elements? |
00:18:28 | dom96 | not sure |
00:21:04 | BitPuffin | http://pages.bitbucket.org/ didn't realize bitbucket has that too |
00:29:36 | BitPuffin | is nimrod bundled with sqlite? |
00:34:13 | dom96 | you mean the dlls? |
00:34:14 | dom96 | no |
00:34:25 | BitPuffin | okay |
00:34:25 | BitPuffin | well |
00:34:33 | BitPuffin | it's available from package manager so meh |
00:35:20 | dom96 | hrm, I should probably merge my sendfix jester branch now |
00:35:40 | BitPuffin | dom96: go a head if it's done |
00:36:03 | dom96 | I put it in a separate branch because I didn't want to accidentally screw up the framework benchmarks :P |
00:36:29 | NimBot | dom96/jester master ff74e05 Dominik Picheta [+0 ±1 -0]: Fixes socket being closed when it has send data buffered. |
00:36:29 | NimBot | dom96/jester master 8beda57 Dominik Picheta [+0 ±1 -0]: Merge branch 'sendfix' |
00:36:50 | BitPuffin | dom96: the benchmarks? |
00:36:52 | dom96 | It seems to be working for nimbuild so it shouldn't cause any issues |
00:36:54 | dom96 | BitPuffin: yeah |
00:39:15 | BitPuffin | dom96: can't see any benchmarks, streaming responses sure would be a nice addition |
00:39:36 | dom96 | This: http://www.techempower.com/benchmarks/ |
00:40:44 | dom96 | Yeah, there are many things left to do for jester |
00:41:23 | BitPuffin | can't see jester in the list :s |
00:41:44 | dom96 | look at the json benchmarks |
00:44:13 | BitPuffin | Hmm |
00:44:21 | BitPuffin | surprised to see that PHP perfomed better |
00:44:57 | dom96 | yes, well. I was too busy to optimise it properly. |
00:45:19 | BitPuffin | I wonder if you can beat yesod and node |
00:45:23 | BitPuffin | that would be sweet |
00:45:23 | dom96 | I spawned 8 processes instead of doing proper scaling for example. |
00:45:36 | dom96 | It's still using select() |
00:46:08 | BitPuffin | dom96: perhaps redo them in time for round 7? |
00:46:16 | dom96 | yeah, i'm trying. |
00:46:43 | dom96 | My async work is meant to help with this. |
00:46:45 | BitPuffin | dom96: so the faults was more because of your benchmark code than jester itself? |
00:47:01 | BitPuffin | dom96: jester wasn't async wihen these were made? |
00:47:15 | dom96 | not really. The fault is with the implementation of jester/asyncio. |
00:47:29 | dom96 | But not with nimrod itself |
00:47:43 | BitPuffin | but it works as it should now? |
00:47:58 | dom96 | I haven't optimised it yet, no. |
00:48:25 | dom96 | btw forum is currently using 10MB of RAM. |
00:48:39 | BitPuffin | dom96: the nimrod forum? |
00:48:42 | dom96 | yes |
00:48:49 | BitPuffin | that runs on jester? |
00:48:52 | dom96 | yes |
00:48:54 | BitPuffin | high 5 |
00:49:08 | dom96 | it says so in the footer :P |
00:49:21 | BitPuffin | Well then I can probably cut that down 4 times |
00:49:37 | BitPuffin | this isn't so much a web app as it is a website which can have edited fields |
00:49:38 | dom96 | Don't worry about the speed for now. It's not so bad IMO. |
00:49:50 | BitPuffin | haven't visited the forum yet I think :P |
00:50:13 | dom96 | Unless you want to run the next facebook it should be fine :P |
00:50:26 | BitPuffin | it will probably be fine |
00:50:30 | dom96 | And I will keep optimising it |
00:50:35 | BitPuffin | and it will only get faster from here! |
00:50:44 | dom96 | yes. |
00:51:08 | dom96 | I really didn't have time back then to do proper optimisations. |
00:51:09 | BitPuffin | it would be nice with a web framework that is also more like django and rails for larger projects |
00:51:13 | dom96 | I was in the middle of exams hah |
00:51:21 | BitPuffin | hehe I understand |
00:51:44 | dom96 | hrm, I think nimbuild is doing something silly because it's using a lot of memory. |
00:51:55 | EXetoC | I'm working on a facebook successor, so please hurry |
00:52:22 | dom96 | lol |
00:53:06 | dom96 | redis is using 4MB |
00:53:27 | BitPuffin | I wonder how much sqlite would take |
00:53:29 | BitPuffin | probably less |
00:53:33 | BitPuffin | since it isn't in memory |
00:53:59 | dom96 | Yeah, but what about when you're reading the DB? :P |
00:54:11 | BitPuffin | yeah then it probably goes up a little bit |
00:59:39 | dom96 | Another thing I need to do is add some docs about how to set up nginx with jester web apps :) |
01:00:08 | BitPuffin | yeah definitely do that |
01:06:14 | BitPuffin | dom96: memory usage should obviously be lower than sinatra right? |
01:06:52 | dom96 | That would be a good target, yes. |
01:07:02 | dom96 | Depends what you are doing of course. |
01:07:18 | BitPuffin | dom96: well the same respective app |
01:07:34 | BitPuffin | but ruby itself probably adds more memory usage than nimrod |
01:07:45 | dom96 | yeah |
01:14:21 | BitPuffin | stupid cat, don't stand where you can fall out of the window and die :( |
01:15:19 | EXetoC | they know what they're doing... most of the time |
01:15:34 | BitPuffin | well, almost |
01:15:44 | BitPuffin | sometimes they are extremely clever |
01:15:52 | BitPuffin | and sometimes incredibly stupid |
01:15:53 | dom96 | they just act stupid, but they are getting ready to murder us all. |
01:17:13 | BitPuffin | that's probably true |
01:17:52 | EXetoC | I'll make sure to enter the correct account number the next time I do some contract work :p |
01:18:22 | EXetoC | I read about someone who made the same mistake, but with about $70000. that must suck pretty badly |
01:18:27 | BitPuffin | today I may have said that I expected a salary of 15-20 pounds a week rather than saying per hour |
01:18:43 | EXetoC | lol |
01:19:33 | BitPuffin | that's 0.5 pounds per hour xD |
01:20:55 | dom96 | oh so you guys are both freelancers? |
01:21:04 | BitPuffin | about 5kr per hour |
01:21:13 | BitPuffin | dom96: yes, but this was for a permanent position |
01:21:47 | dom96 | I wonder, how do you start in the freelancing business? :P |
01:22:04 | BitPuffin | dom96: uh, I don't know, I'm only a freelancer because I can't get a job :P |
01:22:05 | EXetoC | not really. I did it once |
01:22:24 | BitPuffin | dom96: I don't really get any jobs, what I'm doing now is for my dad so |
01:22:36 | dom96 | awww. Freelancing sounds tempting to me. |
01:22:50 | BitPuffin | dom96: but I'd say start a programming blog with an easy way to contact you and they will come |
01:23:03 | BitPuffin | according to some thing I read |
01:24:59 | dom96 | Yeah, I wish someone would create a static blog generator in Nimrod. |
01:25:12 | dom96 | All the ruby/python ones piss me off :P |
01:25:59 | BitPuffin | meh, just write something with sqlite and jester :P |
01:26:39 | dom96 | but I don't have timeeeee |
01:26:51 | BitPuffin | dom96: wanna hire me to do it? :P |
01:26:59 | dom96 | I don't have moneeeyyyy |
01:27:02 | dom96 | lol |
01:27:09 | BitPuffin | get money then! |
01:27:48 | dom96 | right, back to genetically engineering that money tree. |
01:27:50 | EXetoC | yeah just get it |
01:29:00 | dom96 | then again, maybe it's easier to just figure out how to print money |
01:29:26 | EXetoC | shouldn't be too hard |
01:29:49 | * | DAddYE quit (Remote host closed the connection) |
01:30:11 | EXetoC | I don't know if the state has anything to say about that though |
01:30:25 | EXetoC | it never hurts to ask |
01:30:38 | dom96 | hrm, i have a better idea. |
01:30:48 | dom96 | I'll write a bitcoin wallet harvesting virus in Nimrod. |
01:31:10 | * | dom96 is probably on some criminal list now for saying that |
01:32:44 | BitPuffin | lol! |
01:34:22 | dom96 | 164 stargazers now |
01:34:35 | dom96 | I wonder where this steady stream is coming from. |
01:37:05 | * | Associ8or quit (Quit: Associ8or) |
01:39:47 | dom96 | reactormonk: Why not add nim-kwin to babel? |
01:41:52 | dom96 | if you do decide to then give it a 'javascript' tag :) |
01:41:59 | dom96 | I should sleep. |
01:42:03 | dom96 | Good night guys. |
01:50:46 | BitPuffin | night! |
01:57:55 | * | q66 quit (Quit: Leaving) |
01:59:45 | * | NewGuy joined #nimrod |
02:05:18 | * | EXetoC quit (Quit: WeeChat 0.4.1) |
02:15:43 | * | BitPuffin quit (Read error: Connection reset by peer) |
02:17:45 | NewGuy | How well does Nimrod work with the VCC compiler? |
02:20:05 | NewGuy | (I don't have any real software to compile and compare - so I figured it would be best to ask) |
02:31:12 | * | DAddYE joined #nimrod |
02:37:38 | * | DAddYE quit (Ping timeout: 245 seconds) |
02:47:46 | * | Trix[a]r_za quit (Ping timeout: 240 seconds) |
02:47:48 | * | Trix[a]r_za joined #nimrod |
02:48:30 | * | Boscop quit (Disconnected by services) |
02:59:01 | * | NewGuy quit (Ping timeout: 250 seconds) |
02:59:32 | * | DAddYE joined #nimrod |
03:48:42 | * | Boscop joined #nimrod |
04:00:35 | * | OrionPK quit (Quit: Leaving) |
04:20:40 | reactormonk | dom96, how-to? |
04:25:41 | * | NewGuy joined #nimrod |
04:33:30 | * | Boscop quit (Disconnected by services) |
04:37:31 | * | Associat0r joined #nimrod |
04:37:31 | * | Associat0r quit (Changing host) |
04:37:31 | * | Associat0r joined #nimrod |
04:37:41 | * | NewGuy_ joined #nimrod |
04:39:15 | * | Associat0r quit (Client Quit) |
04:40:51 | * | NewGuy quit (Ping timeout: 250 seconds) |
04:42:09 | * | NewGuy_ quit (Ping timeout: 250 seconds) |
05:14:03 | * | Associat0r joined #nimrod |
05:14:03 | * | Associat0r quit (Changing host) |
05:14:03 | * | Associat0r joined #nimrod |
05:33:41 | * | Boscop joined #nimrod |
06:01:15 | * | Boscop quit (Disconnected by services) |
07:01:27 | * | Boscop joined #nimrod |
07:16:36 | * | Boscop quit (Disconnected by services) |
07:19:29 | * | Araq_ joined #nimrod |
07:32:23 | * | DAddYE quit (Remote host closed the connection) |
07:54:49 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]) |
08:16:50 | * | Boscop joined #nimrod |
08:17:28 | * | Boscop quit (Disconnected by services) |
08:53:41 | * | EXetoC joined #nimrod |
09:12:49 | * | Araq_ joined #nimrod |
09:17:43 | * | Boscop joined #nimrod |
10:03:23 | * | q66 joined #nimrod |
10:17:55 | * | Boscop quit (Disconnected by services) |
10:31:47 | * | BitPuffin joined #nimrod |
10:39:11 | BitPuffin | moooooring! |
10:56:58 | dom96 | helloooooooo |
10:57:06 | dom96 | reactormonk: read babel's readme |
10:57:17 | BitPuffin | sup mr dominick |
10:57:30 | BitPuffin | or howover it is spelled |
10:57:38 | BitPuffin | however |
10:57:40 | dom96 | just a 'k' :P |
10:57:44 | BitPuffin | aaah |
10:57:44 | dom96 | not much |
10:57:48 | dom96 | Still half asleep |
10:57:51 | BitPuffin | doesn't some people spell it with a q or something too |
10:58:02 | dom96 | dominique |
10:58:04 | dom96 | yeah I guess |
11:01:58 | dom96 | argh, I stayed up too late yesterday. |
11:03:31 | BitPuffin | same here |
11:06:30 | dom96 | BitPuffin: how's work on that site for your dad going? |
11:06:48 | BitPuffin | dom96: currently starting to set up a repo for it |
11:07:04 | dom96 | cool, will it be open source? |
11:07:11 | BitPuffin | dom96: nah |
11:07:27 | BitPuffin | I don't think it will be of use for anyone else really |
11:07:59 | dom96 | you never know. But it's for your dad so it's understandable. |
11:08:19 | BitPuffin | dom96: I guess I could ask him about it |
11:08:23 | BitPuffin | but I dunno |
11:08:40 | BitPuffin | it also opens up vulnerabilities that people know that the site is built with jester etc |
11:09:02 | dom96 | true. |
11:10:20 | BitPuffin | and it would be sad if people stole the design etc |
11:10:22 | BitPuffin | Anyhow |
11:10:27 | BitPuffin | I might make my website open source |
11:10:29 | BitPuffin | not sure yet |
11:10:42 | BitPuffin | maybe even my company site |
11:11:03 | BitPuffin | but it's a bit iffy, if people find a vulnerability I don't know of, they might be nice and patch it for me, or they use it to do harm |
11:11:55 | dom96 | Do you think there are many people out there who would actively try to find a vulnerability? |
11:12:50 | BitPuffin | no |
11:13:01 | BitPuffin | but if they want to mess with me they would |
11:18:06 | * | Boscop joined #nimrod |
11:29:58 | BitPuffin | dom96: can I do an include inside a filter to mimic layouts? |
11:30:20 | dom96 | err. no idea. Try it. |
11:30:48 | BitPuffin | sure hope so |
11:32:44 | BitPuffin | dom96: wait that won't work at all |
11:33:14 | BitPuffin | dom96: then I can't call include inside the filter or it will always be the same, maybe if I parameterize it |
11:33:21 | BitPuffin | somehow :s |
11:35:55 | dom96 | just create a function and call it in your template? |
11:36:06 | dom96 | i'm not sure what you're trying to do exactly |
11:37:11 | BitPuffin | dom96: I'm trying to have a layout template that then merges with a specific view template |
11:37:17 | BitPuffin | so that hte surrounding website is the same |
11:37:41 | BitPuffin | but with different content for /, /about, etc |
11:38:20 | dom96 | create a genMain proc |
11:38:26 | dom96 | and pass the content to it |
11:43:26 | * | BitPuffin quit (Ping timeout: 240 seconds) |
11:49:31 | * | BitPuffin joined #nimrod |
11:53:06 | BitPuffin | damn linux |
11:56:40 | dom96 | ping zahary |
11:57:02 | * | zahary_ joined #nimrod |
11:57:21 | dom96 | there are too many zahary's! |
11:57:24 | dom96 | ping zahary_ |
11:57:53 | BitPuffin | omg they're everywhere!! |
11:58:32 | zahary_ | I'm the real one, death to the impostors :P |
11:58:48 | dom96 | heh |
12:00:15 | dom96 | zahary_: I'm not sure if it's possible to make `await` a simple template. Mostly because not all async procs will return a value. |
12:01:12 | dom96 | hrm, but then I suppose a simple field can help with that. |
12:01:50 | zahary_ | promise.value could be a noop void expression for void promises |
12:03:29 | dom96 | hrm, yeah. |
12:09:17 | Araq_ | zahary_: isn't this whole promises stuff a bit overblown? all that's missing from dom's approach is the Either request |
12:09:21 | BitPuffin | zahary_: how's the generic value passing going? :) |
12:11:12 | zahary_ | Araq_, what do you mean precisely by Either request here? The most important missing bit in the current approach is that it's not possible to have running async operations in parallel |
12:11:36 | zahary_ | see my notes here: |
12:11:37 | zahary_ | https://github.com/Araq/Nimrod/commit/95dcabc799c51cb2770f506ec14ecaa373fb18a0#commitcomment-3788478 |
12:12:09 | dom96 | You technically can have async operations running in parallel. |
12:12:22 | dom96 | by using 'reg' |
12:12:41 | dom96 | But your async proc continues running, it doesn't wait for a proc that you register |
12:12:49 | dom96 | so no return values are possible |
12:13:03 | dom96 | and it's not exactly what zahary_ has in mind |
12:13:11 | dom96 | you could do: |
12:13:18 | dom96 | reg download "..." |
12:13:21 | dom96 | await download "..." |
12:13:44 | dom96 | The proc would continue executing after the second download finishes without paying attention to the first. |
12:14:25 | zahary_ | yes, I second that |
12:15:27 | dom96 | but perhaps it would be less work to get it working with my current implementation. |
12:15:41 | Araq_ | dom96: yeah true, well my idea was: await Either(download"...", download"...") |
12:15:59 | Araq_ | Either would take 2 requests and compose it into a single request |
12:16:10 | Araq_ | that then allows you to query which event happened |
12:18:49 | zahary_ | besides Either, All is also a required combinator, but I don't see why we should avoid promises as they have other benefits too (they allow you to write generic algorithms working on any kind of "async task") |
12:19:09 | zahary_ | and frankly, the end result will be simpler with promises, not the other way arround |
12:22:19 | Araq_ | I don't know |
12:22:49 | Araq_ | the promises stuff seems to add more overhead which might bite us for benchmarks |
12:26:31 | zahary_ | what kind of overhead? the TRequest object in asyncio is serving the rule of the promise and it still has dynamic dispatch on completion just like a promise would have |
12:27:40 | BitPuffin | meh |
12:27:50 | BitPuffin | don't feel like writing a scrypt binding right now |
12:27:53 | BitPuffin | gonna work on my game stuff instead |
12:28:02 | zahary_ | the only difference I see is that usually promises allow for multiple subscribers for completion events, which would hardly produce much inefficiency |
12:28:28 | BitPuffin | did it once for D, gonna do it soon for nimrod https://github.com/BitPuffin/scrypt.d |
12:32:50 | Araq_ | zahary_: you're right |
12:55:59 | * | Sergio965 joined #nimrod |
13:02:06 | * | BitPuffin quit (Remote host closed the connection) |
13:07:18 | * | BitPuffin joined #nimrod |
13:13:21 | * | BitPuffin quit (Read error: Connection reset by peer) |
13:15:28 | * | BitPuffin joined #nimrod |
13:22:26 | * | Boscop quit (Disconnected by services) |
13:24:59 | * | Associat0r quit (Quit: Associat0r) |
13:26:17 | * | Associat0r joined #nimrod |
13:26:17 | * | Associat0r quit (Changing host) |
13:26:17 | * | Associat0r joined #nimrod |
13:42:11 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]) |
13:57:41 | BitPuffin | okay so this I don't get at all |
13:58:14 | BitPuffin | conversion from Array constructor[0..2, int] to TVector is invalid |
13:58:19 | BitPuffin | TVector IS an array |
13:59:32 | BitPuffin | ahh |
13:59:36 | BitPuffin | it's because it's int32 |
13:59:45 | BitPuffin | and the literals are int |
13:59:46 | BitPuffin | lol |
14:00:03 | BitPuffin | Hey shouldn't the compiler know if an int literal fits within an int32 or not? |
14:02:49 | BitPuffin | feels a bit ridiculous to have to write [2i32, 84i32, 83i32, 7i32, 9i32, 11i32, 38i32] etc |
14:08:43 | EXetoC | it does know that, but this is a slightly different scenario. I've worked around it by defining ctors that take each individual element |
14:10:16 | BitPuffin | might add that then just for completeness |
14:10:20 | BitPuffin | but this should really be fixed |
14:14:25 | * | Associat0r quit (Read error: Connection reset by peer) |
14:15:32 | * | Associat0r joined #nimrod |
14:15:32 | * | Associat0r quit (Changing host) |
14:15:32 | * | Associat0r joined #nimrod |
14:16:55 | EXetoC | Araq doesn't want to allow too many implicit conversion to be made IIRC |
14:17:25 | EXetoC | "x: varargs[T, `$`]" |
14:17:59 | dom96 | You just have to write 'i32 once IIRC |
14:18:12 | EXetoC | orly |
14:18:45 | EXetoC | dom96: what about [int32(2), 1, 2, 3] ? |
14:19:09 | EXetoC | will try it |
14:19:13 | dom96 | it should work |
14:19:25 | dom96 | but yeah, test it. Don't ask me :P |
14:19:38 | dom96 | Most of the time I can only guess |
14:20:16 | EXetoC | yep. that's good enough imo |
14:21:59 | EXetoC | works with floats as well |
14:22:47 | BitPuffin | hmm |
14:22:51 | BitPuffin | man the compiler is so annoying |
14:22:58 | * | Boscop joined #nimrod |
14:23:02 | BitPuffin | matrix.nim(88, 5) Error: redefinition of 'row' |
14:23:03 | BitPuffin | okay |
14:23:07 | BitPuffin | clashing with what row |
14:23:30 | * | Boscop quit (Disconnected by services) |
14:26:11 | BitPuffin | can't find any row in system |
14:28:06 | EXetoC | so in your code then, unless it's a bug |
14:28:24 | BitPuffin | it's in my code |
14:28:35 | BitPuffin | I couldn't name the parameter R because that was a generic parameter |
14:28:42 | BitPuffin | so genius me named in row |
14:28:46 | BitPuffin | which is the name of the proc |
14:28:59 | * | Boscop joined #nimrod |
14:29:24 | * | Boscop quit (Disconnected by services) |
14:30:17 | EXetoC | easy mistake. that's one of the few cases where I often forget about the case-insensitivity |
14:30:55 | BitPuffin | well I actually named it r, but R was the generic thing |
14:30:56 | BitPuffin | yeah |
14:31:00 | BitPuffin | and huzzah |
14:31:10 | dom96 | perhaps it's worth submitting an issue regarding the fact that the compiler does not tell you where the other definitions are. |
14:31:11 | BitPuffin | I have an error that I can't possibly ever ever figure out where it came from |
14:31:26 | BitPuffin | it compiles |
14:31:36 | BitPuffin | run it, boom segfault |
14:31:42 | BitPuffin | gonna add a few echos |
14:33:44 | BitPuffin | okay so it's when multiplying |
14:35:09 | * | fowl quit (Ping timeout: 276 seconds) |
14:35:25 | BitPuffin | or actually it's when extracting a column |
14:35:32 | BitPuffin | row * |
14:35:36 | * | Associat0r quit (Quit: Associat0r) |
14:37:31 | BitPuffin | yay they work |
14:38:13 | BitPuffin | something that is extremely freaking weird though |
14:38:14 | * | fowl joined #nimrod |
14:38:23 | BitPuffin | is that `a + b` works |
14:38:51 | BitPuffin | but not `(a + b)` then it suddenly gets confused and starts talking about vectors for some reason when a and b clearly are Matrices |
14:42:20 | BitPuffin | bug? |
14:43:20 | EXetoC | hard to tell |
14:43:56 | dom96 | show us some code |
14:47:55 | BitPuffin | dom96: trying to do a base case |
14:48:00 | dom96 | k |
14:50:42 | dom96 | wth github |
14:50:47 | dom96 | Nimrod code and Haxe code have the same color. |
14:53:34 | dom96 | Actually, they are not the same. But extremely similar colors: #346D51 vs. #37775B |
14:53:43 | BitPuffin | okay the base case works.. |
14:57:10 | * | Araq_ joined #nimrod |
14:58:29 | BitPuffin | could it be because they are templates? 0.o |
15:04:01 | BitPuffin | so gist doesn't seem to work |
15:05:05 | EXetoC | make it a fork if you want :> |
15:05:54 | EXetoC | as long as it compiles. he's fine with it then, last time I checked |
15:06:47 | BitPuffin | https://gist.github.com/BitPuffin/6165305 |
15:06:52 | BitPuffin | That's matrix.nim |
15:07:14 | BitPuffin | you can see the error near the bottom |
15:07:38 | BitPuffin | https://gist.github.com/anonymous/8bfcc8d69736bc7ab68e |
15:07:47 | BitPuffin | and that's vector.nim |
15:07:57 | dom96 | lol |
15:07:58 | BitPuffin | for some stupid reason github won't let me gist them together |
15:08:12 | dom96 | assert((a + b) == [[-7, 7, 9], [1, -2, 6], [4, 3, 1]]) |
15:08:17 | dom96 | That should work. |
15:09:05 | BitPuffin | yeah.. |
15:09:11 | BitPuffin | but where the hell does it get TVector from |
15:09:50 | dom96 | no idea |
15:11:04 | BitPuffin | Well okay |
15:11:08 | BitPuffin | then I know what to report at least |
15:11:21 | BitPuffin | it was a minor issue but it shouldn't suddenly start throwing vectors at us |
15:13:07 | EXetoC | orly |
15:16:53 | BitPuffin | https://github.com/Araq/Nimrod/issues/565 |
15:24:26 | dom96 | So TIL unpaid internship is illegal in the UK |
15:25:37 | BitPuffin | Can't operators take just one param? |
15:25:41 | BitPuffin | allowing for -a |
15:25:45 | BitPuffin | (negation) |
15:25:51 | dom96 | they can |
15:26:05 | BitPuffin | then why do I get an error saying wrong number of arguments |
15:26:33 | dom96 | I guess i'm wrong then |
15:27:15 | BitPuffin | assert -a == [[-1, 0, -7], [5, 2, -2], [-3, -6, 4]] # Error: wrong number of arguments |
15:28:03 | BitPuffin | hm |
15:28:13 | BitPuffin | it works when surronded by () |
15:28:15 | dom96 | yes |
15:28:22 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212]) |
15:28:23 | BitPuffin | assert(-a...]) |
15:28:34 | dom96 | In most cases you have to wrap it in () |
15:28:50 | BitPuffin | shouldn't that be just one argument though? |
15:29:36 | * | Boscop joined #nimrod |
15:29:41 | BitPuffin | i can't see how it thinks it's more than one |
15:30:55 | dom96 | I dunno |
15:42:09 | reactormonk | you can have ; in type annotation? |
15:42:16 | BitPuffin | reactormonk: yeah |
15:44:39 | reactormonk | any different from , ? |
15:45:28 | EXetoC | yes. consider this: [A, B: T]. now the T is bound to both parameters |
15:45:51 | EXetoC | same as [A: T, B: T] |
15:46:23 | reactormonk | EXetoC, go on... |
15:46:25 | EXetoC | [A; B: T]: only B is constrained, IIRC |
15:46:55 | EXetoC | if this is what you mean by type annotation |
15:47:19 | EXetoC | proc f[T]()...? |
15:47:24 | reactormonk | yup |
16:04:05 | BitPuffin | Odd |
16:04:23 | BitPuffin | the compiler doesn't seem to catch if two parameters don't have the same value for a generic parameter |
16:04:47 | BitPuffin | proc mul*[T; R, N, C: range](a: TMatrix[T, R, N], b: TMatrix[T, N, C]): TMatrix[T, R, C] {.noSideEffect.} = |
16:05:55 | BitPuffin | here a has to have the same number of columns as b has rows, but when doing a.mul(b) where a is a 2x2 and b is a 3x3 it doesn't catch that right away, it instead goes on and tries to do it and then because it did that finds an error in dot product for vectors (because mul uses that proc) |
16:18:30 | * | DAddYE joined #nimrod |
16:25:07 | BitPuffin | holy mother of... |
16:26:25 | BitPuffin | ah |
16:26:32 | BitPuffin | now that was stupid |
16:26:55 | BitPuffin | I did low(a.low)..high(a.low) on a vector thinking it was a vector |
16:26:57 | BitPuffin | matrix* |
16:27:11 | BitPuffin | so it tried to loop through lowest value of int to highest lol |
16:30:34 | BitPuffin | anyways |
16:30:51 | BitPuffin | every matrix proc has now been tested and they all work just as expected! |
16:36:33 | BitPuffin | gonna make a compiletime version of transposed for array litterals |
16:36:47 | BitPuffin | then I'll go ahead and call linagl 0.2 |
16:36:50 | BitPuffin | maybe |
16:37:02 | BitPuffin | or I'll add det and all those things too |
17:21:13 | * | Associat0r joined #nimrod |
17:21:14 | * | Associat0r quit (Changing host) |
17:21:14 | * | Associat0r joined #nimrod |
18:00:39 | * | Mat2 joined #nimrod |
18:00:44 | Mat2 | hi @ all |
18:00:53 | * | Mat2 is now known as Mat2-coding |
18:02:42 | EXetoC | hi @ you |
18:02:56 | Mat2-coding | hi EXetoC |
18:10:01 | * | silven quit (Remote host closed the connection) |
18:14:32 | EXetoC | Mat2-coding: coding low level stuff I assume |
18:17:35 | Mat2-coding | yes |
18:36:08 | * | Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
19:00:00 | BitPuffin | hi Mat2-coding |
19:00:17 | Mat2-coding | hi BitPuffin |
19:00:20 | * | Mat2-coding is now known as Mat2 |
19:02:20 | * | BitPuffin is thinking about how to implement determinant for n*n dimensional matrix |
19:02:53 | BitPuffin | ah |
19:03:02 | BitPuffin | it's got an algorithm in this book |
19:03:03 | BitPuffin | whoppie |
19:05:36 | BitPuffin | Okay so what do you guys think |
19:06:29 | BitPuffin | for procs like lookAt, makePerspective, rotate etc, should that be in the same module as the core math of a matrix (matrix.nim) or does it belong in its own module (matutils.nim for example) |
19:07:56 | dom96 | i'd say keep it in matrix.nim |
19:08:11 | BitPuffin | okay one vote for matrix.nim :) |
19:08:16 | Mat2 | keep them all together |
19:08:22 | BitPuffin | two votes |
19:08:29 | BitPuffin | EXetoC: throw in your two cents? |
19:10:01 | EXetoC | having them in the same module seems reasonable |
19:10:49 | BitPuffin | EXetoC: do you prefer it? |
19:13:05 | EXetoC | I think so |
19:18:45 | EXetoC | maybe if it ends up being a lot of functions, but you usually only have a couple more other than the ones you listed, right? |
19:19:18 | EXetoC | as transformation matrix utilities. glm has a couple of headers named transform something |
19:20:57 | EXetoC | speaking of glm... navigating it is a bitch; at least when analyzing the implementations :> |
19:21:39 | NimBot | nimrod-code/nimforum master 0c6eb83 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Fixes rss generated dates to conform to RFC-3339.... 2 more lines |
19:21:39 | NimBot | nimrod-code/nimforum master 1a8339b Grzegorz Adam Hankiewicz [+1 ±1 -0]: Adds license page generated from static rst file. Refs #10. |
19:21:39 | NimBot | nimrod-code/nimforum master 6554985 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds to footer hyperlink to forum content license. Refs #10. |
19:21:39 | NimBot | nimrod-code/nimforum master a11ee64 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Renders RSS entries in HTML. We are not from the past. |
19:21:39 | NimBot | 3 more commits. |
19:23:40 | dom96 | I like that the nimforum is 37.7% CSS hah |
19:23:45 | EXetoC | without an IDE of course. I'm sure C++ IDEs are alright these days. must've taken ages to develop, that's all |
19:41:41 | BitPuffin | EXetoC: hmm well there will probably be quite a bit |
19:41:47 | BitPuffin | EXetoC: but probably not too much |
19:42:10 | BitPuffin | EXetoC: gl3n keeps both matrices, vectors and quatiernions AND all these functions in the same file |
19:46:22 | EXetoC | I know. that seems a little excessive |
19:47:37 | * | Associat0r quit (Quit: Associat0r) |
19:47:38 | BitPuffin | this lib will probably even contain math utils for kinematics, rotational dynamics and stuff like that |
19:47:44 | BitPuffin | like not actual simulation things |
19:47:55 | BitPuffin | but procedures that help you build one |
19:49:33 | EXetoC | sounds good |
19:50:11 | * | Associat0r joined #nimrod |
19:50:16 | BitPuffin | yeah |
19:50:20 | BitPuffin | we'll see though :) |
19:50:24 | BitPuffin | it should be cool |
19:51:44 | * | Associat0r quit (Client Quit) |
20:00:28 | * | Associat0r joined #nimrod |
20:00:29 | * | Associat0r quit (Changing host) |
20:00:29 | * | Associat0r joined #nimrod |
20:03:05 | * | Associat0r quit (Client Quit) |
20:10:06 | EXetoC | yeah |
20:22:17 | * | NewGuy joined #nimrod |
20:29:07 | * | rubino123 joined #nimrod |
20:39:26 | * | gradha joined #nimrod |
20:40:26 | Araq | gradha: I heard adrian got aporia to work on macosx by cross compiling |
20:40:53 | Araq | this means in theory we should be able to find the bug by diff'ing the compiler's C sources |
20:41:14 | gradha | aren't they the same for different platforms? |
20:41:16 | Araq | or perhaps diff'ing aporia's C sources |
20:41:37 | Araq | but since the compilation fails, the compiler is buggy |
20:41:52 | gradha | can't get full aporia c sources |
20:42:01 | Araq | no the compiler generates platform specific C code |
20:42:05 | Mat2 | interesting |
20:44:30 | gradha | when nimrod crashes there's still no nimcache generated |
20:48:35 | zahary | Araq, should macros be tracked for effects? |
20:50:59 | Araq | zahary: no; effects tracking happens after macro expansions |
20:51:07 | zahary | I'm chasing a bug with ``quote`` that ultimately results from trying to track the param of getAst call, which is not a real proc with effects |
20:51:17 | zahary | I meant the body of the macro |
20:51:34 | zahary | should it be tracked? the macro doesn't have effects so this seems unnecessary |
20:51:45 | Araq | hmm good question |
20:51:54 | Araq | it is executable code |
20:52:37 | Araq | gradha: that doesn't matter as the bug is a compiler bug, so the compiler's C code is what's interesting |
20:53:23 | gradha | what do you want me to provide for this diff? |
20:53:32 | Araq | zahary: I don't know; effects tracking might be useful for complex macros |
20:54:26 | dom96 | hello |
20:55:09 | Araq | gradha: please upload a .zip containing the final nimcache from your machine somewhere built with -d:release |
20:55:43 | Araq | hi dom96 |
20:56:48 | gradha | any specific commit? |
20:59:18 | Araq | the latest please |
20:59:19 | * | rubino123 quit (Ping timeout: 264 seconds) |
21:00:42 | gradha | so removed csources.zip by dom96 |
21:01:09 | dom96 | aka a3163d |
21:02:10 | NimBot | Araq/Nimrod zahary 7db1516 Zahary Karadjov [+0 ±4 -0]: work-in-progress for compiling generics in their owner module |
21:02:31 | NimBot | Araq/Nimrod master 9150c11 Zahary Karadjov [+0 ±2 -0]: fixes #534 |
21:02:46 | gradha | dom96: shouldn't the build instructions mention removing any previous csources checkout to avoid conflicts whenever you push after a rebase? |
21:03:14 | gradha | or are you letting csources grow? |
21:03:57 | Mat2 | break for sleep, ciao |
21:04:01 | * | Mat2 quit (Quit: Verlassend) |
21:04:02 | dom96 | gradha: If you're referring to clearing the .zip from the history we will do that later. |
21:04:40 | gradha | no, I meant if the csources repo will be rebased, I guess not since you put the --depth thingy |
21:04:56 | dom96 | oh, not sure. |
21:05:50 | gradha | then you would need to put some "cd csources && git pull && cd .." or something in the instructions |
21:06:50 | gradha | so, basically you are replicating git submodule feature but without version tracking, so users can get csources and the nimrod tree out of sync, nice |
21:08:32 | dom96 | well I suggested submodules but Araq dislikes them |
21:08:41 | dom96 | So take it up with him :P |
21:08:54 | gradha | Araq just loves bug reports |
21:09:39 | Araq | *shrug* I don't know what you're talking about. There are like a million different ways to fuck up your git repo anyway |
21:10:53 | Araq | also: most of the time you don't need to build from the bare bones C sources |
21:11:01 | Araq | most of the time the old compiler can compile the new one |
21:14:10 | dom96 | Maybe I should just write a little interface to upload the c sources to our server |
21:14:19 | dom96 | using github auth |
21:14:36 | dom96 | and then we can be done with this silliness. |
21:18:02 | dom96 | This charles81 guy in #nimbuild is starting to creep me out |
21:19:51 | gradha | would it help if he was charlesnsa? |
21:20:33 | * | NewGuy quit (Ping timeout: 250 seconds) |
21:21:09 | gradha | ah, that would be now charlesNSA, or maybe charlesNsa, but definitely not CharlesNsa nor CharlesNSA |
21:21:23 | dom96 | lol |
21:21:47 | gradha | maybe we should get rid of _ as a number separator, it confuses people with snake_case |
21:23:56 | EXetoC | NO! |
21:24:08 | EXetoC | c(:)-< |
21:24:20 | NimBot | nimrod-code/nimbuild master eb5f7cb Dominik Picheta [+0 ±1 -0]: Builder: Checkout is now forced. |
21:26:28 | EXetoC | gradha: let's remove you as a number separator |
21:27:33 | NimBot | nimrod-code/nimbuild master 3492a9e Dominik Picheta [+0 ±1 -0]: Builder: Fix build.sh path. |
21:28:24 | EXetoC | lame |
21:50:50 | * | troydm joined #nimrod |
21:51:18 | * | NewGuy joined #nimrod |
21:51:24 | troydm | hey ppl! i've just compiled nimrod on my openindiana amd64 and when i try to compile some test file i get cannot create nimcache directory |
21:51:30 | troydm | any suggestions? |
21:52:24 | NewGuy | Does it give an error? If it just can't create it - it could be something as simple as permission issues |
21:52:36 | dom96 | perhaps the compiler doesn't have the permissions to create ... yeah what NewGuy said. |
21:52:44 | troydm | not a chance of permissions since just doing mkdir creates it without problem |
21:52:47 | NewGuy | dom96: Hey dom! |
21:52:51 | dom96 | hey NewGuy! |
21:53:14 | troydm | but even if it's created i still get cannot create nimcache directory |
21:53:32 | NewGuy | troydm: Are you trying to specify a nimcache directory via compiler flags? |
21:53:46 | dom96 | Can you gist all the output that you get from the compiler? |
21:53:49 | troydm | NewGuy: no, i'm just doing nimrod c test.nim |
21:54:03 | dom96 | or pastebin if that's more handy |
21:56:06 | troydm | dom96: sure http://pastebin.com/VckLeg5p |
21:58:57 | gradha | Araq: after compiling nimrod nimcache only has koch's c sources, why is that useful? |
21:59:34 | Araq | gradha: compiler/nimcache should contain the C code of the compiler ... |
21:59:35 | troydm | dom96: btw running it with sudo didn't helped |
21:59:44 | Araq | hi troydm |
21:59:59 | Araq | never saw this problem before :P |
22:00:00 | gradha | oh, that's not the nimcache I'm looking for |
22:00:04 | troydm | Araq: hello |
22:00:08 | dom96 | troydm: I'm not sure what the problem is, but Araq will hopefully help you. |
22:00:46 | Araq | troydm: can you bootstrap? |
22:00:49 | troydm | Araq: i'm running OpenIndiana a6 and source code i've compiled is 0.9/2 |
22:00:57 | troydm | Araq: bootstrap? |
22:01:40 | troydm | Araq: btw i did compiling by just running ./build.sh and then sudo ./install.sh /usr/local/bin |
22:01:46 | NewGuy | troydm: Did you follow the directions to bootstrap/install that are on the Github page or downloads page on Nimrod's homepage? |
22:02:10 | Araq | what's OpenIndiana? Solaris? |
22:02:16 | troydm | Araq: yeah |
22:02:27 | troydm | NewGuy: i've just downloaded sources from homepage |
22:02:44 | Araq | ok, I don't think anybody ever run it on solaris :P |
22:03:08 | troydm | rly? page said it was supported on Solaris amd64 :) |
22:03:35 | Araq | maybe I ran it once via a virtual machine and can't remember |
22:03:44 | troydm | ic |
22:03:46 | dom96 | I think you did. |
22:03:47 | Araq | or maybe somebody reported "it works" |
22:03:51 | Araq | ;-) |
22:03:55 | NewGuy | troydm: Yeah, I'm personally going to blame Solaris for this one. Don't see any other reason it would bug out. |
22:04:13 | dom96 | Perhaps it's just an issue with createDir on solaris heh |
22:04:29 | troydm | should i try to compiling latest version from github? |
22:04:50 | troydm | or it's the same |
22:04:53 | Araq | I don't think that changes anything |
22:05:12 | Araq | however the offending thing seems to be: |
22:05:21 | Araq | if mkdir(dir, 0o711) != 0'i32 and errno != EEXIST: |
22:05:22 | Araq | OSError(OSLastError()) |
22:05:43 | Araq | dom96: did we change the OSError handling before or after 0.9.2? |
22:05:59 | dom96 | after, IIRC |
22:06:15 | Araq | troydm: then try github, might make a difference |
22:06:20 | dom96 | I doubt that would be the problem though |
22:06:35 | troydm | Araq: ok |
22:06:41 | dom96 | but yeah, worth a try anyway |
22:07:43 | Araq | "Solaris NFS has a bug (see e.g. http://www.unix.com/solaris/121565-mkdir-operation-not-applicable.html) which makes sometimes mkdir call return errno == ENOSYS" |
22:07:48 | Araq | https://bugreports.qt-project.org/browse/QTBUG-32414?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel |
22:08:06 | Araq | looks like this is it |
22:08:48 | Araq | so go fix your OS :P |
22:09:17 | troydm | hmm |
22:09:39 | NewGuy | Araq: If he makes the nimcache dir manually, it'll work though, won't it? |
22:09:42 | troydm | Solaris NFS? |
22:09:43 | troydm | O_o |
22:09:49 | troydm | i don't use NFS |
22:10:19 | troydm | NewGuy: it didn't worked |
22:10:57 | NewGuy | troydm: Well I'm just a NewGuy, I'm just educated guessing. Same output I presume? |
22:11:08 | dom96 | zahary: I think your branch causes the tgeneric2 tests to go on forever. |
22:11:25 | dom96 | hrm, it seems to be the rodfiles/tgeneric2 tests |
22:12:29 | Araq | troydm: edit the os.c that build.sh compiled |
22:12:43 | dom96 | It's possible that the compiler just calls createDir without checking for its existence |
22:14:18 | Araq | dom96: the compiler does what os.nim promises to do: not raise an exception for an existing directory |
22:14:33 | dom96 | Araq: I know. |
22:14:47 | dom96 | I was just explaining why it may still fail even if he creates the directory manually. |
22:15:05 | Araq | troydm: edit the function rawcreatedir_* |
22:15:15 | troydm | Araq: which os.c ? |
22:15:18 | Araq | remove the lines that look like: |
22:15:21 | Araq | LOC8 = oslasterror_92052(); |
22:15:23 | troydm | there are bunch of os.c in build directory |
22:15:23 | Araq | oserror_92005(LOC8); |
22:15:37 | Araq | edit the os.c that build.sh compiled |
22:16:31 | troydm | what's with this strange numbers like 4_1 and 2_1 and such ? |
22:16:37 | dom96 | troydm: each directory corresponds to a different platform combination. Check the output of build.sh and see which directory contains the os.c that corresponds to your platform. |
22:16:41 | * | OrionPK joined #nimrod |
22:17:05 | troydm | dom96: this seems overcomplicated |
22:17:41 | Araq | but it's not |
22:17:45 | NewGuy | troydm: To me it sounds like Solaris has a major bug in a very useful function ;-) |
22:18:06 | * | BitPuffin wishes unicomp made tenkeyless keyboards |
22:18:47 | dom96 | I would say that Solaris' mkdir function is slightly different from other unix OS' |
22:18:56 | Araq | http://bugs.mysql.com/bug.php?id=38843 |
22:18:57 | dom96 | Not that it has a bug :P |
22:19:10 | Araq | "The existing code expects and handles that this should return error number EEXIST. On Solaris 10 instead ENOSYS ("Unsupported file system operation") for this case, probably due to my home directory is automounted." |
22:19:18 | Araq | The internet says it is buggy. |
22:20:00 | troydm | Araq: there are no lines like that in my arch os.c |
22:20:18 | Araq | the numbers are different, troydm |
22:21:13 | troydm | Araq: i'm searching for oslasterror but there is no such thing in os.c |
22:21:27 | troydm | 4_1/os.c |
22:21:30 | dom96 | search for oserror |
22:21:32 | Araq | search for oserror |
22:22:05 | troydm | Araq: too many matches |
22:22:09 | Araq | and yeah, my bad, that's what we changed after 0.9.2 ... |
22:22:22 | Araq | troydm: the function is rawcreatedir_* |
22:22:37 | Araq | should be 1 line then |
22:23:32 | troydm | okey, compling |
22:29:04 | troydm | nice! now everything works, thx alot :) |
22:30:50 | Araq | I'll patch it for better solaris support |
22:32:15 | Araq | but these things don't help improve my opinion about unix :P |
22:32:36 | dom96 | I wonder where the docs for solaris' mkdir is. |
22:32:51 | dom96 | Perhaps i'm not searching enough. |
22:33:32 | NewGuy | Araq: Would you recommend the msvc or ming-w64 compiler for a Windows setup? |
22:34:03 | NewGuy | since we're on the topic of OS support. |
22:34:15 | Araq | msvc produces a faster compiler, NewGuy but has not been tested as well as mingw |
22:35:01 | NewGuy | Reasonable enough, thanks! |
22:44:30 | reactormonk | dom96, so I create a babel file aaaaand? |
22:44:52 | dom96 | then edit nimrod-code/packages/packages.json |
22:45:01 | reactormonk | dom96, you can also slap an issue onto the project |
22:45:17 | reactormonk | need to get some ruby done by today |
22:45:57 | dom96 | the babel readme tells you everything |
22:46:07 | dom96 | including how to submit the package |
22:46:47 | reactormonk | kk |
22:46:57 | reactormonk | dom96, both projects or just the lib? |
22:47:15 | dom96 | I think just the lib. |
22:47:37 | dom96 | No point in installing a js package really. |
22:48:48 | dom96 | hrm, I guess I need to allow the compilation of js packages in babel. |
22:51:59 | gradha | ok, boys and boys, my next nimrod module will be called ouroboros |
22:52:27 | dom96 | isn't that the sound your stomach makes when you're hungry? |
22:52:47 | gradha | that sound is scary, I avoid it by overeating |
22:53:05 | OrionPK | thats the snake eating itself, right? |
22:53:17 | reactormonk | sop, finally streamlined github ;-) |
22:53:19 | gradha | OrionPK: likely https://en.wikipedia.org/wiki/Ouroboros |
22:53:41 | OrionPK | yeah, serpent |
22:53:53 | dom96 | oh cool |
22:53:58 | OrionPK | and what does it *do*? :P |
22:54:01 | gradha | awww... you click the link "eating its own tail" and its SFW content... as expected from wikipedia |
22:54:58 | gradha | OrionPK: to support http://forum.nimrod-code.org/t/194 I'll first write all the needed code in a module, data appending/reading and tools |
22:55:23 | gradha | once the module is functional and can be used, it may be merged into the stdlib and the nimrod compiler hacked to load modules form appended zips |
22:55:50 | gradha | hence the name, a process which slurps its own binary |
22:56:27 | OrionPK | interesting |
22:56:46 | gradha | I think the NSFW http://uncyclopedia.wikia.com/wiki/Ouroboros link is better |
22:56:53 | Araq | gradha: have you confirmed appending to an ELF binary works? |
22:58:15 | reactormonk | gradha, on NSFW, pandora is playing Rammstein - Pussy right now... |
22:59:06 | gradha | Araq: that's the purpose of the module, contain damage external to the nimrod tree first |
22:59:51 | Araq | well you can test it with a cat |
23:00:21 | gradha | but I hate cats! |
23:02:38 | gradha | Araq: can't you instead download Allegro 4 and play with the exedat example on linux? I just tested that on macosx and it works |
23:02:55 | gradha | I appended with exedat a docx file to a nimrod binary and it runs without problem |
23:03:41 | gradha | use http://sourceforge.net/projects/alleg/files/allegro/4.4.2/allegro-4.4.2.zip/download to get allegro 4 |
23:04:37 | gradha | I guess if a poor crippled OS like macosx works, a superior OS like linux will certainly work? |
23:04:43 | * | Araq is using his package manager to get allegro 4.4 |
23:05:19 | gradha | nice, I wonder if the package manager includes allegro's examples, since exedat comes from there |
23:05:41 | * | Araq is looking for examples |
23:05:50 | gradha | look for an exedat binary tool |
23:06:06 | Araq | well that exists |
23:06:16 | NewGuy | Am I right to assume that iterators are inlined, so doing a 'for in' loop won't copy the values in my array, but allow me to operate on the original? |
23:06:21 | gradha | run it with "exedat -b yourbinary path/to/rubbish" |
23:07:23 | Araq | works |
23:07:53 | gradha | Araq: so basically this ouroboros module will be a clean reimplementation of that tool and a userland module for programs to use themselves |
23:08:16 | Araq | NewGuy: they are inlined and I think it doesn't introduce a copy but even if the C backend may optimize it away |
23:08:30 | gradha | I was thinking of using Allegro's magic exe marker so that other tools like upx work out of the box with such binaries |
23:08:51 | Araq | upx sux though |
23:09:37 | gradha | NewGuy: careful with modifying iterators though https://github.com/Araq/Nimrod/issues/525 |
23:09:51 | gradha | Araq: know of any non-sux version? |
23:10:16 | Araq | no it sucks in principle |
23:10:21 | Araq | the implementation is fine |
23:10:59 | gradha | compressing binaries is bad? |
23:11:07 | Araq | http://wiki.freepascal.org/Size_Matters#UPX |
23:12:00 | Araq | "Binary that are internally compressed can't be memorymapped by the OS, and must be loaded in its entirety. This means that the entire binary size is loaded into VM space (memory+swap), including resources. " |
23:13:56 | gradha | how outrageous to load whole binaries in ram, now that most are sized smaller than JPG files created by consumer cameras! |
23:14:18 | gradha | Araq: is this freepascal section about the raspberry pi? or 8bit systems or something? |
23:14:50 | Araq | gradha: why compress then in the first place? |
23:15:19 | Araq | arguing decompression doesn't matter on a modern system is backwards |
23:16:02 | gradha | I'm not arguing decompression doesn't matter, but rather the complain about loading a binary in memory is surprising |
23:16:32 | Araq | well the point is: UPX helps for HD usage but RAM usage is worse |
23:16:53 | gradha | so you hate desktop wallpapers too? |
23:17:09 | Araq | I have more HD space than RAM |
23:17:16 | Araq | dunno about your system :P |
23:17:16 | * | DAddYE_ joined #nimrod |
23:19:46 | gradha | any recent programs you've used which couldn't be loaded in ram? |
23:20:07 | Araq | no but it's not the point anyway |
23:20:25 | * | DAddYE quit (Ping timeout: 245 seconds) |
23:20:29 | Araq | the point is: UPX is pointless |
23:20:57 | Araq | note that I'm not arguing that compressing *resources* is bad |
23:21:09 | Araq | but the executable parts |
23:23:14 | gradha | upx is pointless now, it wasn't when it was created |
23:23:36 | Araq | maybe |
23:23:47 | gradha | it's pointless to compress now music to 64kb, but that's what I used to do to fit mp3 on my first 32MB player |
23:23:58 | Araq | did you develop upx, gradha? ;-) |
23:24:17 | * | Amrykid quit (Excess Flood) |
23:24:23 | gradha | no, I don't have the need of compressing binaries |
23:24:26 | * | Amrykid joined #nimrod |
23:25:43 | Araq | alright, well I have to sleep |
23:25:48 | Araq | so good night guys |
23:25:51 | gradha | good night |
23:33:01 | gradha | hehe, so the "upx will make you consume more RAM! RAM is expensive!" appears in that FAQ after the "oh, come on, multi MB binaries are not actually that big, don't worry" |
23:41:17 | NimBot | Araq/Nimrod master 61f0fd6 Araq [+0 ±1 -0]: bugfix createDir for solaris |
23:41:17 | NimBot | Araq/Nimrod master 88e184d Araq [+0 ±7 -0]: new VM: implemented constructors and jump optimizer |
23:41:17 | NimBot | Araq/Nimrod master ac474a7 Araq [+0 ±8 -3]: Merge branch 'master' of github.com:Araq/Nimrod |
23:42:42 | * | DAddYE_ quit (Remote host closed the connection) |
23:43:22 | * | DAddYE joined #nimrod |
23:53:57 | * | BitPuffin quit (Remote host closed the connection) |