<< 06-08-2013 >>

00:00:28dom96never measured its memory usage properly so can't help you there
00:01:29BitPuffindom96: can you take a guess?
00:02:01dom96~20mb
00:02:23BitPuffinhmm, then maybe 256mb ram is totally fine
00:02:39dom96definitely
00:02:44BitPuffinor even 128
00:03:57BitPuffindebian requires 64mb minimum
00:04:36BitPuffinI wonder how much overhead openvz adds to hat
00:04:38BitPuffinthat*
00:05:41BitPuffinWell, I guess I could just start with minimum plan and then bump it up a notch if it needs more
00:05:45BitPuffinsounds like a plan
00:09:45*zahary_ quit (Ping timeout: 264 seconds)
00:10:03dom96cool
00:10:21dom96where are you buying this from?
00:10:30BitPuffindom96: VPS?
00:10:37dom96yeah
00:10:38BitPuffinglesys.se
00:11:26BitPuffinthat's what I'm currently looking at at least
00:12:02dom96hrm, not bad.
00:14:02BitPuffindom96: you understand the swedish and the SEK?
00:14:24dom96lol no, they have an english translation
00:14:35BitPuffinoh right
00:15:01BitPuffindom96: swedish version has debian 7, weird
00:17:20BitPuffindom96: actually htmlgen doesn't seem like such a bad thing
00:18:02dom96oh yes, that's nice too
00:18:12BitPuffindom96: does it have support for html5 elements?
00:18:28dom96not sure
00:21:04BitPuffinhttp://pages.bitbucket.org/ didn't realize bitbucket has that too
00:29:36BitPuffinis nimrod bundled with sqlite?
00:34:13dom96you mean the dlls?
00:34:14dom96no
00:34:25BitPuffinokay
00:34:25BitPuffinwell
00:34:33BitPuffinit's available from package manager so meh
00:35:20dom96hrm, I should probably merge my sendfix jester branch now
00:35:40BitPuffindom96: go a head if it's done
00:36:03dom96I put it in a separate branch because I didn't want to accidentally screw up the framework benchmarks :P
00:36:29NimBotdom96/jester master ff74e05 Dominik Picheta [+0 ±1 -0]: Fixes socket being closed when it has send data buffered.
00:36:29NimBotdom96/jester master 8beda57 Dominik Picheta [+0 ±1 -0]: Merge branch 'sendfix'
00:36:50BitPuffindom96: the benchmarks?
00:36:52dom96It seems to be working for nimbuild so it shouldn't cause any issues
00:36:54dom96BitPuffin: yeah
00:39:15BitPuffindom96: can't see any benchmarks, streaming responses sure would be a nice addition
00:39:36dom96This: http://www.techempower.com/benchmarks/
00:40:44dom96Yeah, there are many things left to do for jester
00:41:23BitPuffincan't see jester in the list :s
00:41:44dom96look at the json benchmarks
00:44:13BitPuffinHmm
00:44:21BitPuffinsurprised to see that PHP perfomed better
00:44:57dom96yes, well. I was too busy to optimise it properly.
00:45:19BitPuffinI wonder if you can beat yesod and node
00:45:23BitPuffinthat would be sweet
00:45:23dom96I spawned 8 processes instead of doing proper scaling for example.
00:45:36dom96It's still using select()
00:46:08BitPuffindom96: perhaps redo them in time for round 7?
00:46:16dom96yeah, i'm trying.
00:46:43dom96My async work is meant to help with this.
00:46:45BitPuffindom96: so the faults was more because of your benchmark code than jester itself?
00:47:01BitPuffindom96: jester wasn't async wihen these were made?
00:47:15dom96not really. The fault is with the implementation of jester/asyncio.
00:47:29dom96But not with nimrod itself
00:47:43BitPuffinbut it works as it should now?
00:47:58dom96I haven't optimised it yet, no.
00:48:25dom96btw forum is currently using 10MB of RAM.
00:48:39BitPuffindom96: the nimrod forum?
00:48:42dom96yes
00:48:49BitPuffinthat runs on jester?
00:48:52dom96yes
00:48:54BitPuffinhigh 5
00:49:08dom96it says so in the footer :P
00:49:21BitPuffinWell then I can probably cut that down 4 times
00:49:37BitPuffinthis isn't so much a web app as it is a website which can have edited fields
00:49:38dom96Don't worry about the speed for now. It's not so bad IMO.
00:49:50BitPuffinhaven't visited the forum yet I think :P
00:50:13dom96Unless you want to run the next facebook it should be fine :P
00:50:26BitPuffinit will probably be fine
00:50:30dom96And I will keep optimising it
00:50:35BitPuffinand it will only get faster from here!
00:50:44dom96yes.
00:51:08dom96I really didn't have time back then to do proper optimisations.
00:51:09BitPuffinit would be nice with a web framework that is also more like django and rails for larger projects
00:51:13dom96I was in the middle of exams hah
00:51:21BitPuffinhehe I understand
00:51:44dom96hrm, I think nimbuild is doing something silly because it's using a lot of memory.
00:51:55EXetoCI'm working on a facebook successor, so please hurry
00:52:22dom96lol
00:53:06dom96redis is using 4MB
00:53:27BitPuffinI wonder how much sqlite would take
00:53:29BitPuffinprobably less
00:53:33BitPuffinsince it isn't in memory
00:53:59dom96Yeah, but what about when you're reading the DB? :P
00:54:11BitPuffinyeah then it probably goes up a little bit
00:59:39dom96Another thing I need to do is add some docs about how to set up nginx with jester web apps :)
01:00:08BitPuffinyeah definitely do that
01:06:14BitPuffindom96: memory usage should obviously be lower than sinatra right?
01:06:52dom96That would be a good target, yes.
01:07:02dom96Depends what you are doing of course.
01:07:18BitPuffindom96: well the same respective app
01:07:34BitPuffinbut ruby itself probably adds more memory usage than nimrod
01:07:45dom96yeah
01:14:21BitPuffinstupid cat, don't stand where you can fall out of the window and die :(
01:15:19EXetoCthey know what they're doing... most of the time
01:15:34BitPuffinwell, almost
01:15:44BitPuffinsometimes they are extremely clever
01:15:52BitPuffinand sometimes incredibly stupid
01:15:53dom96they just act stupid, but they are getting ready to murder us all.
01:17:13BitPuffinthat's probably true
01:17:52EXetoCI'll make sure to enter the correct account number the next time I do some contract work :p
01:18:22EXetoCI read about someone who made the same mistake, but with about $70000. that must suck pretty badly
01:18:27BitPuffintoday I may have said that I expected a salary of 15-20 pounds a week rather than saying per hour
01:18:43EXetoClol
01:19:33BitPuffinthat's 0.5 pounds per hour xD
01:20:55dom96oh so you guys are both freelancers?
01:21:04BitPuffinabout 5kr per hour
01:21:13BitPuffindom96: yes, but this was for a permanent position
01:21:47dom96I wonder, how do you start in the freelancing business? :P
01:22:04BitPuffindom96: uh, I don't know, I'm only a freelancer because I can't get a job :P
01:22:05EXetoCnot really. I did it once
01:22:24BitPuffindom96: I don't really get any jobs, what I'm doing now is for my dad so
01:22:36dom96awww. Freelancing sounds tempting to me.
01:22:50BitPuffindom96: but I'd say start a programming blog with an easy way to contact you and they will come
01:23:03BitPuffinaccording to some thing I read
01:24:59dom96Yeah, I wish someone would create a static blog generator in Nimrod.
01:25:12dom96All the ruby/python ones piss me off :P
01:25:59BitPuffinmeh, just write something with sqlite and jester :P
01:26:39dom96but I don't have timeeeee
01:26:51BitPuffindom96: wanna hire me to do it? :P
01:26:59dom96I don't have moneeeyyyy
01:27:02dom96lol
01:27:09BitPuffinget money then!
01:27:48dom96right, back to genetically engineering that money tree.
01:27:50EXetoCyeah just get it
01:29:00dom96then again, maybe it's easier to just figure out how to print money
01:29:26EXetoCshouldn't be too hard
01:29:49*DAddYE quit (Remote host closed the connection)
01:30:11EXetoCI don't know if the state has anything to say about that though
01:30:25EXetoCit never hurts to ask
01:30:38dom96hrm, i have a better idea.
01:30:48dom96I'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:44BitPuffinlol!
01:34:22dom96164 stargazers now
01:34:35dom96I wonder where this steady stream is coming from.
01:37:05*Associ8or quit (Quit: Associ8or)
01:39:47dom96reactormonk: Why not add nim-kwin to babel?
01:41:52dom96if you do decide to then give it a 'javascript' tag :)
01:41:59dom96I should sleep.
01:42:03dom96Good night guys.
01:50:46BitPuffinnight!
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:45NewGuyHow well does Nimrod work with the VCC compiler?
02:20:05NewGuy(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:40reactormonkdom96, 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:11BitPuffinmoooooring!
10:56:58dom96helloooooooo
10:57:06dom96reactormonk: read babel's readme
10:57:17BitPuffinsup mr dominick
10:57:30BitPuffinor howover it is spelled
10:57:38BitPuffinhowever
10:57:40dom96just a 'k' :P
10:57:44BitPuffinaaah
10:57:44dom96not much
10:57:48dom96Still half asleep
10:57:51BitPuffindoesn't some people spell it with a q or something too
10:58:02dom96dominique
10:58:04dom96yeah I guess
11:01:58dom96argh, I stayed up too late yesterday.
11:03:31BitPuffinsame here
11:06:30dom96BitPuffin: how's work on that site for your dad going?
11:06:48BitPuffindom96: currently starting to set up a repo for it
11:07:04dom96cool, will it be open source?
11:07:11BitPuffindom96: nah
11:07:27BitPuffinI don't think it will be of use for anyone else really
11:07:59dom96you never know. But it's for your dad so it's understandable.
11:08:19BitPuffindom96: I guess I could ask him about it
11:08:23BitPuffinbut I dunno
11:08:40BitPuffinit also opens up vulnerabilities that people know that the site is built with jester etc
11:09:02dom96true.
11:10:20BitPuffinand it would be sad if people stole the design etc
11:10:22BitPuffinAnyhow
11:10:27BitPuffinI might make my website open source
11:10:29BitPuffinnot sure yet
11:10:42BitPuffinmaybe even my company site
11:11:03BitPuffinbut 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:55dom96Do you think there are many people out there who would actively try to find a vulnerability?
11:12:50BitPuffinno
11:13:01BitPuffinbut if they want to mess with me they would
11:18:06*Boscop joined #nimrod
11:29:58BitPuffindom96: can I do an include inside a filter to mimic layouts?
11:30:20dom96err. no idea. Try it.
11:30:48BitPuffinsure hope so
11:32:44BitPuffindom96: wait that won't work at all
11:33:14BitPuffindom96: then I can't call include inside the filter or it will always be the same, maybe if I parameterize it
11:33:21BitPuffinsomehow :s
11:35:55dom96just create a function and call it in your template?
11:36:06dom96i'm not sure what you're trying to do exactly
11:37:11BitPuffindom96: I'm trying to have a layout template that then merges with a specific view template
11:37:17BitPuffinso that hte surrounding website is the same
11:37:41BitPuffinbut with different content for /, /about, etc
11:38:20dom96create a genMain proc
11:38:26dom96and pass the content to it
11:43:26*BitPuffin quit (Ping timeout: 240 seconds)
11:49:31*BitPuffin joined #nimrod
11:53:06BitPuffindamn linux
11:56:40dom96ping zahary
11:57:02*zahary_ joined #nimrod
11:57:21dom96there are too many zahary's!
11:57:24dom96ping zahary_
11:57:53BitPuffinomg they're everywhere!!
11:58:32zahary_I'm the real one, death to the impostors :P
11:58:48dom96heh
12:00:15dom96zahary_: 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:12dom96hrm, but then I suppose a simple field can help with that.
12:01:50zahary_promise.value could be a noop void expression for void promises
12:03:29dom96hrm, yeah.
12:09:17Araq_zahary_: isn't this whole promises stuff a bit overblown? all that's missing from dom's approach is the Either request
12:09:21BitPuffinzahary_: how's the generic value passing going? :)
12:11:12zahary_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:36zahary_see my notes here:
12:11:37zahary_https://github.com/Araq/Nimrod/commit/95dcabc799c51cb2770f506ec14ecaa373fb18a0#commitcomment-3788478
12:12:09dom96You technically can have async operations running in parallel.
12:12:22dom96by using 'reg'
12:12:41dom96But your async proc continues running, it doesn't wait for a proc that you register
12:12:49dom96so no return values are possible
12:13:03dom96and it's not exactly what zahary_ has in mind
12:13:11dom96you could do:
12:13:18dom96reg download "..."
12:13:21dom96await download "..."
12:13:44dom96The proc would continue executing after the second download finishes without paying attention to the first.
12:14:25zahary_yes, I second that
12:15:27dom96but perhaps it would be less work to get it working with my current implementation.
12:15:41Araq_dom96: yeah true, well my idea was: await Either(download"...", download"...")
12:15:59Araq_Either would take 2 requests and compose it into a single request
12:16:10Araq_that then allows you to query which event happened
12:18:49zahary_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:09zahary_and frankly, the end result will be simpler with promises, not the other way arround
12:22:19Araq_I don't know
12:22:49Araq_the promises stuff seems to add more overhead which might bite us for benchmarks
12:26:31zahary_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:40BitPuffinmeh
12:27:50BitPuffindon't feel like writing a scrypt binding right now
12:27:53BitPuffingonna work on my game stuff instead
12:28:02zahary_the only difference I see is that usually promises allow for multiple subscribers for completion events, which would hardly produce much inefficiency
12:28:28BitPuffindid it once for D, gonna do it soon for nimrod https://github.com/BitPuffin/scrypt.d
12:32:50Araq_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:41BitPuffinokay so this I don't get at all
13:58:14BitPuffinconversion from Array constructor[0..2, int] to TVector is invalid
13:58:19BitPuffinTVector IS an array
13:59:32BitPuffinahh
13:59:36BitPuffinit's because it's int32
13:59:45BitPuffinand the literals are int
13:59:46BitPuffinlol
14:00:03BitPuffinHey shouldn't the compiler know if an int literal fits within an int32 or not?
14:02:49BitPuffinfeels a bit ridiculous to have to write [2i32, 84i32, 83i32, 7i32, 9i32, 11i32, 38i32] etc
14:08:43EXetoCit 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:16BitPuffinmight add that then just for completeness
14:10:20BitPuffinbut 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:55EXetoCAraq doesn't want to allow too many implicit conversion to be made IIRC
14:17:25EXetoC"x: varargs[T, `$`]"
14:17:59dom96You just have to write 'i32 once IIRC
14:18:12EXetoCorly
14:18:45EXetoCdom96: what about [int32(2), 1, 2, 3] ?
14:19:09EXetoCwill try it
14:19:13dom96it should work
14:19:25dom96but yeah, test it. Don't ask me :P
14:19:38dom96Most of the time I can only guess
14:20:16EXetoCyep. that's good enough imo
14:21:59EXetoCworks with floats as well
14:22:47BitPuffinhmm
14:22:51BitPuffinman the compiler is so annoying
14:22:58*Boscop joined #nimrod
14:23:02BitPuffinmatrix.nim(88, 5) Error: redefinition of 'row'
14:23:03BitPuffinokay
14:23:07BitPuffinclashing with what row
14:23:30*Boscop quit (Disconnected by services)
14:26:11BitPuffincan't find any row in system
14:28:06EXetoCso in your code then, unless it's a bug
14:28:24BitPuffinit's in my code
14:28:35BitPuffinI couldn't name the parameter R because that was a generic parameter
14:28:42BitPuffinso genius me named in row
14:28:46BitPuffinwhich is the name of the proc
14:28:59*Boscop joined #nimrod
14:29:24*Boscop quit (Disconnected by services)
14:30:17EXetoCeasy mistake. that's one of the few cases where I often forget about the case-insensitivity
14:30:55BitPuffinwell I actually named it r, but R was the generic thing
14:30:56BitPuffinyeah
14:31:00BitPuffinand huzzah
14:31:10dom96perhaps it's worth submitting an issue regarding the fact that the compiler does not tell you where the other definitions are.
14:31:11BitPuffinI have an error that I can't possibly ever ever figure out where it came from
14:31:26BitPuffinit compiles
14:31:36BitPuffinrun it, boom segfault
14:31:42BitPuffingonna add a few echos
14:33:44BitPuffinokay so it's when multiplying
14:35:09*fowl quit (Ping timeout: 276 seconds)
14:35:25BitPuffinor actually it's when extracting a column
14:35:32BitPuffinrow *
14:35:36*Associat0r quit (Quit: Associat0r)
14:37:31BitPuffinyay they work
14:38:13BitPuffinsomething that is extremely freaking weird though
14:38:14*fowl joined #nimrod
14:38:23BitPuffinis that `a + b` works
14:38:51BitPuffinbut 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:20BitPuffinbug?
14:43:20EXetoChard to tell
14:43:56dom96show us some code
14:47:55BitPuffindom96: trying to do a base case
14:48:00dom96k
14:50:42dom96wth github
14:50:47dom96Nimrod code and Haxe code have the same color.
14:53:34dom96Actually, they are not the same. But extremely similar colors: #346D51 vs. #37775B
14:53:43BitPuffinokay the base case works..
14:57:10*Araq_ joined #nimrod
14:58:29BitPuffincould it be because they are templates? 0.o
15:04:01BitPuffinso gist doesn't seem to work
15:05:05EXetoCmake it a fork if you want :>
15:05:54EXetoCas long as it compiles. he's fine with it then, last time I checked
15:06:47BitPuffinhttps://gist.github.com/BitPuffin/6165305
15:06:52BitPuffinThat's matrix.nim
15:07:14BitPuffinyou can see the error near the bottom
15:07:38BitPuffinhttps://gist.github.com/anonymous/8bfcc8d69736bc7ab68e
15:07:47BitPuffinand that's vector.nim
15:07:57dom96lol
15:07:58BitPuffinfor some stupid reason github won't let me gist them together
15:08:12dom96assert((a + b) == [[-7, 7, 9], [1, -2, 6], [4, 3, 1]])
15:08:17dom96That should work.
15:09:05BitPuffinyeah..
15:09:11BitPuffinbut where the hell does it get TVector from
15:09:50dom96no idea
15:11:04BitPuffinWell okay
15:11:08BitPuffinthen I know what to report at least
15:11:21BitPuffinit was a minor issue but it shouldn't suddenly start throwing vectors at us
15:13:07EXetoCorly
15:16:53BitPuffinhttps://github.com/Araq/Nimrod/issues/565
15:24:26dom96So TIL unpaid internship is illegal in the UK
15:25:37BitPuffinCan't operators take just one param?
15:25:41BitPuffinallowing for -a
15:25:45BitPuffin(negation)
15:25:51dom96they can
15:26:05BitPuffinthen why do I get an error saying wrong number of arguments
15:26:33dom96I guess i'm wrong then
15:27:15BitPuffinassert -a == [[-1, 0, -7], [5, 2, -2], [-3, -6, 4]] # Error: wrong number of arguments
15:28:03BitPuffinhm
15:28:13BitPuffinit works when surronded by ()
15:28:15dom96yes
15:28:22*Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 22.0/20130618035212])
15:28:23BitPuffinassert(-a...])
15:28:34dom96In most cases you have to wrap it in ()
15:28:50BitPuffinshouldn't that be just one argument though?
15:29:36*Boscop joined #nimrod
15:29:41BitPuffini can't see how it thinks it's more than one
15:30:55dom96I dunno
15:42:09reactormonkyou can have ; in type annotation?
15:42:16BitPuffinreactormonk: yeah
15:44:39reactormonkany different from , ?
15:45:28EXetoCyes. consider this: [A, B: T]. now the T is bound to both parameters
15:45:51EXetoCsame as [A: T, B: T]
15:46:23reactormonkEXetoC, go on...
15:46:25EXetoC[A; B: T]: only B is constrained, IIRC
15:46:55EXetoCif this is what you mean by type annotation
15:47:19EXetoCproc f[T]()...?
15:47:24reactormonkyup
16:04:05BitPuffinOdd
16:04:23BitPuffinthe compiler doesn't seem to catch if two parameters don't have the same value for a generic parameter
16:04:47BitPuffinproc mul*[T; R, N, C: range](a: TMatrix[T, R, N], b: TMatrix[T, N, C]): TMatrix[T, R, C] {.noSideEffect.} =
16:05:55BitPuffinhere 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:07BitPuffinholy mother of...
16:26:25BitPuffinah
16:26:32BitPuffinnow that was stupid
16:26:55BitPuffinI did low(a.low)..high(a.low) on a vector thinking it was a vector
16:26:57BitPuffinmatrix*
16:27:11BitPuffinso it tried to loop through lowest value of int to highest lol
16:30:34BitPuffinanyways
16:30:51BitPuffinevery matrix proc has now been tested and they all work just as expected!
16:36:33BitPuffingonna make a compiletime version of transposed for array litterals
16:36:47BitPuffinthen I'll go ahead and call linagl 0.2
16:36:50BitPuffinmaybe
16:37:02BitPuffinor 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:44Mat2hi @ all
18:00:53*Mat2 is now known as Mat2-coding
18:02:42EXetoChi @ you
18:02:56Mat2-codinghi EXetoC
18:10:01*silven quit (Remote host closed the connection)
18:14:32EXetoCMat2-coding: coding low level stuff I assume
18:17:35Mat2-codingyes
18:36:08*Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:00:00BitPuffinhi Mat2-coding
19:00:17Mat2-codinghi 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:53BitPuffinah
19:03:02BitPuffinit's got an algorithm in this book
19:03:03BitPuffinwhoppie
19:05:36BitPuffinOkay so what do you guys think
19:06:29BitPuffinfor 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:56dom96i'd say keep it in matrix.nim
19:08:11BitPuffinokay one vote for matrix.nim :)
19:08:16Mat2keep them all together
19:08:22BitPuffintwo votes
19:08:29BitPuffinEXetoC: throw in your two cents?
19:10:01EXetoChaving them in the same module seems reasonable
19:10:49BitPuffinEXetoC: do you prefer it?
19:13:05EXetoCI think so
19:18:45EXetoCmaybe 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:18EXetoCas transformation matrix utilities. glm has a couple of headers named transform something
19:20:57EXetoCspeaking of glm... navigating it is a bitch; at least when analyzing the implementations :>
19:21:39NimBotnimrod-code/nimforum master 0c6eb83 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Fixes rss generated dates to conform to RFC-3339.... 2 more lines
19:21:39NimBotnimrod-code/nimforum master 1a8339b Grzegorz Adam Hankiewicz [+1 ±1 -0]: Adds license page generated from static rst file. Refs #10.
19:21:39NimBotnimrod-code/nimforum master 6554985 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds to footer hyperlink to forum content license. Refs #10.
19:21:39NimBotnimrod-code/nimforum master a11ee64 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Renders RSS entries in HTML. We are not from the past.
19:21:39NimBot3 more commits.
19:23:40dom96I like that the nimforum is 37.7% CSS hah
19:23:45EXetoCwithout an IDE of course. I'm sure C++ IDEs are alright these days. must've taken ages to develop, that's all
19:41:41BitPuffinEXetoC: hmm well there will probably be quite a bit
19:41:47BitPuffinEXetoC: but probably not too much
19:42:10BitPuffinEXetoC: gl3n keeps both matrices, vectors and quatiernions AND all these functions in the same file
19:46:22EXetoCI know. that seems a little excessive
19:47:37*Associat0r quit (Quit: Associat0r)
19:47:38BitPuffinthis lib will probably even contain math utils for kinematics, rotational dynamics and stuff like that
19:47:44BitPuffinlike not actual simulation things
19:47:55BitPuffinbut procedures that help you build one
19:49:33EXetoCsounds good
19:50:11*Associat0r joined #nimrod
19:50:16BitPuffinyeah
19:50:20BitPuffinwe'll see though :)
19:50:24BitPuffinit 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:06EXetoCyeah
20:22:17*NewGuy joined #nimrod
20:29:07*rubino123 joined #nimrod
20:39:26*gradha joined #nimrod
20:40:26Araqgradha: I heard adrian got aporia to work on macosx by cross compiling
20:40:53Araqthis means in theory we should be able to find the bug by diff'ing the compiler's C sources
20:41:14gradhaaren't they the same for different platforms?
20:41:16Araqor perhaps diff'ing aporia's C sources
20:41:37Araqbut since the compilation fails, the compiler is buggy
20:41:52gradhacan't get full aporia c sources
20:42:01Araqno the compiler generates platform specific C code
20:42:05Mat2interesting
20:44:30gradhawhen nimrod crashes there's still no nimcache generated
20:48:35zaharyAraq, should macros be tracked for effects?
20:50:59Araqzahary: no; effects tracking happens after macro expansions
20:51:07zaharyI'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:17zaharyI meant the body of the macro
20:51:34zaharyshould it be tracked? the macro doesn't have effects so this seems unnecessary
20:51:45Araqhmm good question
20:51:54Araqit is executable code
20:52:37Araqgradha: that doesn't matter as the bug is a compiler bug, so the compiler's C code is what's interesting
20:53:23gradhawhat do you want me to provide for this diff?
20:53:32Araqzahary: I don't know; effects tracking might be useful for complex macros
20:54:26dom96hello
20:55:09Araqgradha: please upload a .zip containing the final nimcache from your machine somewhere built with -d:release
20:55:43Araqhi dom96
20:56:48gradhaany specific commit?
20:59:18Araqthe latest please
20:59:19*rubino123 quit (Ping timeout: 264 seconds)
21:00:42gradhaso removed csources.zip by dom96
21:01:09dom96aka a3163d
21:02:10NimBotAraq/Nimrod zahary 7db1516 Zahary Karadjov [+0 ±4 -0]: work-in-progress for compiling generics in their owner module
21:02:31NimBotAraq/Nimrod master 9150c11 Zahary Karadjov [+0 ±2 -0]: fixes #534
21:02:46gradhadom96: shouldn't the build instructions mention removing any previous csources checkout to avoid conflicts whenever you push after a rebase?
21:03:14gradhaor are you letting csources grow?
21:03:57Mat2break for sleep, ciao
21:04:01*Mat2 quit (Quit: Verlassend)
21:04:02dom96gradha: If you're referring to clearing the .zip from the history we will do that later.
21:04:40gradhano, I meant if the csources repo will be rebased, I guess not since you put the --depth thingy
21:04:56dom96oh, not sure.
21:05:50gradhathen you would need to put some "cd csources && git pull && cd .." or something in the instructions
21:06:50gradhaso, 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:32dom96well I suggested submodules but Araq dislikes them
21:08:41dom96So take it up with him :P
21:08:54gradhaAraq just loves bug reports
21:09:39Araq*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:53Araqalso: most of the time you don't need to build from the bare bones C sources
21:11:01Araqmost of the time the old compiler can compile the new one
21:14:10dom96Maybe I should just write a little interface to upload the c sources to our server
21:14:19dom96using github auth
21:14:36dom96and then we can be done with this silliness.
21:18:02dom96This charles81 guy in #nimbuild is starting to creep me out
21:19:51gradhawould it help if he was charlesnsa?
21:20:33*NewGuy quit (Ping timeout: 250 seconds)
21:21:09gradhaah, that would be now charlesNSA, or maybe charlesNsa, but definitely not CharlesNsa nor CharlesNSA
21:21:23dom96lol
21:21:47gradhamaybe we should get rid of _ as a number separator, it confuses people with snake_case
21:23:56EXetoCNO!
21:24:08EXetoCc(:)-<
21:24:20NimBotnimrod-code/nimbuild master eb5f7cb Dominik Picheta [+0 ±1 -0]: Builder: Checkout is now forced.
21:26:28EXetoCgradha: let's remove you as a number separator
21:27:33NimBotnimrod-code/nimbuild master 3492a9e Dominik Picheta [+0 ±1 -0]: Builder: Fix build.sh path.
21:28:24EXetoClame
21:50:50*troydm joined #nimrod
21:51:18*NewGuy joined #nimrod
21:51:24troydmhey 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:30troydmany suggestions?
21:52:24NewGuyDoes it give an error? If it just can't create it - it could be something as simple as permission issues
21:52:36dom96perhaps the compiler doesn't have the permissions to create ... yeah what NewGuy said.
21:52:44troydmnot a chance of permissions since just doing mkdir creates it without problem
21:52:47NewGuydom96: Hey dom!
21:52:51dom96hey NewGuy!
21:53:14troydmbut even if it's created i still get cannot create nimcache directory
21:53:32NewGuytroydm: Are you trying to specify a nimcache directory via compiler flags?
21:53:46dom96Can you gist all the output that you get from the compiler?
21:53:49troydmNewGuy: no, i'm just doing nimrod c test.nim
21:54:03dom96or pastebin if that's more handy
21:56:06troydmdom96: sure http://pastebin.com/VckLeg5p
21:58:57gradhaAraq: after compiling nimrod nimcache only has koch's c sources, why is that useful?
21:59:34Araqgradha: compiler/nimcache should contain the C code of the compiler ...
21:59:35troydmdom96: btw running it with sudo didn't helped
21:59:44Araqhi troydm
21:59:59Araqnever saw this problem before :P
22:00:00gradhaoh, that's not the nimcache I'm looking for
22:00:04troydmAraq: hello
22:00:08dom96troydm: I'm not sure what the problem is, but Araq will hopefully help you.
22:00:46Araqtroydm: can you bootstrap?
22:00:49troydmAraq: i'm running OpenIndiana a6 and source code i've compiled is 0.9/2
22:00:57troydmAraq: bootstrap?
22:01:40troydmAraq: btw i did compiling by just running ./build.sh and then sudo ./install.sh /usr/local/bin
22:01:46NewGuytroydm: Did you follow the directions to bootstrap/install that are on the Github page or downloads page on Nimrod's homepage?
22:02:10Araqwhat's OpenIndiana? Solaris?
22:02:16troydmAraq: yeah
22:02:27troydmNewGuy: i've just downloaded sources from homepage
22:02:44Araqok, I don't think anybody ever run it on solaris :P
22:03:08troydmrly? page said it was supported on Solaris amd64 :)
22:03:35Araqmaybe I ran it once via a virtual machine and can't remember
22:03:44troydmic
22:03:46dom96I think you did.
22:03:47Araqor maybe somebody reported "it works"
22:03:51Araq;-)
22:03:55NewGuytroydm: Yeah, I'm personally going to blame Solaris for this one. Don't see any other reason it would bug out.
22:04:13dom96Perhaps it's just an issue with createDir on solaris heh
22:04:29troydmshould i try to compiling latest version from github?
22:04:50troydmor it's the same
22:04:53AraqI don't think that changes anything
22:05:12Araqhowever the offending thing seems to be:
22:05:21Araq if mkdir(dir, 0o711) != 0'i32 and errno != EEXIST:
22:05:22Araq OSError(OSLastError())
22:05:43Araqdom96: did we change the OSError handling before or after 0.9.2?
22:05:59dom96after, IIRC
22:06:15Araqtroydm: then try github, might make a difference
22:06:20dom96I doubt that would be the problem though
22:06:35troydmAraq: ok
22:06:41dom96but yeah, worth a try anyway
22:07:43Araq"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:48Araqhttps://bugreports.qt-project.org/browse/QTBUG-32414?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel
22:08:06Araqlooks like this is it
22:08:48Araqso go fix your OS :P
22:09:17troydmhmm
22:09:39NewGuyAraq: If he makes the nimcache dir manually, it'll work though, won't it?
22:09:42troydmSolaris NFS?
22:09:43troydmO_o
22:09:49troydmi don't use NFS
22:10:19troydmNewGuy: it didn't worked
22:10:57NewGuytroydm: Well I'm just a NewGuy, I'm just educated guessing. Same output I presume?
22:11:08dom96zahary: I think your branch causes the tgeneric2 tests to go on forever.
22:11:25dom96hrm, it seems to be the rodfiles/tgeneric2 tests
22:12:29Araqtroydm: edit the os.c that build.sh compiled
22:12:43dom96It's possible that the compiler just calls createDir without checking for its existence
22:14:18Araqdom96: the compiler does what os.nim promises to do: not raise an exception for an existing directory
22:14:33dom96Araq: I know.
22:14:47dom96I was just explaining why it may still fail even if he creates the directory manually.
22:15:05Araqtroydm: edit the function rawcreatedir_*
22:15:15troydmAraq: which os.c ?
22:15:18Araqremove the lines that look like:
22:15:21Araq LOC8 = oslasterror_92052();
22:15:23troydmthere are bunch of os.c in build directory
22:15:23Araq oserror_92005(LOC8);
22:15:37Araq edit the os.c that build.sh compiled
22:16:31troydmwhat's with this strange numbers like 4_1 and 2_1 and such ?
22:16:37dom96troydm: 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:05troydmdom96: this seems overcomplicated
22:17:41Araqbut it's not
22:17:45NewGuytroydm: 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:47dom96I would say that Solaris' mkdir function is slightly different from other unix OS'
22:18:56Araqhttp://bugs.mysql.com/bug.php?id=38843
22:18:57dom96Not that it has a bug :P
22:19:10Araq"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:18AraqThe internet says it is buggy.
22:20:00troydmAraq: there are no lines like that in my arch os.c
22:20:18Araqthe numbers are different, troydm
22:21:13troydmAraq: i'm searching for oslasterror but there is no such thing in os.c
22:21:27troydm4_1/os.c
22:21:30dom96search for oserror
22:21:32Araqsearch for oserror
22:22:05troydmAraq: too many matches
22:22:09Araqand yeah, my bad, that's what we changed after 0.9.2 ...
22:22:22Araqtroydm: the function is rawcreatedir_*
22:22:37Araqshould be 1 line then
22:23:32troydmokey, compling
22:29:04troydmnice! now everything works, thx alot :)
22:30:50AraqI'll patch it for better solaris support
22:32:15Araqbut these things don't help improve my opinion about unix :P
22:32:36dom96I wonder where the docs for solaris' mkdir is.
22:32:51dom96Perhaps i'm not searching enough.
22:33:32NewGuyAraq: Would you recommend the msvc or ming-w64 compiler for a Windows setup?
22:34:03NewGuysince we're on the topic of OS support.
22:34:15Araqmsvc produces a faster compiler, NewGuy but has not been tested as well as mingw
22:35:01NewGuyReasonable enough, thanks!
22:44:30reactormonkdom96, so I create a babel file aaaaand?
22:44:52dom96then edit nimrod-code/packages/packages.json
22:45:01reactormonkdom96, you can also slap an issue onto the project
22:45:17reactormonkneed to get some ruby done by today
22:45:57dom96the babel readme tells you everything
22:46:07dom96including how to submit the package
22:46:47reactormonkkk
22:46:57reactormonkdom96, both projects or just the lib?
22:47:15dom96I think just the lib.
22:47:37dom96No point in installing a js package really.
22:48:48dom96hrm, I guess I need to allow the compilation of js packages in babel.
22:51:59gradhaok, boys and boys, my next nimrod module will be called ouroboros
22:52:27dom96isn't that the sound your stomach makes when you're hungry?
22:52:47gradhathat sound is scary, I avoid it by overeating
22:53:05OrionPKthats the snake eating itself, right?
22:53:17reactormonksop, finally streamlined github ;-)
22:53:19gradhaOrionPK: likely https://en.wikipedia.org/wiki/Ouroboros
22:53:41OrionPKyeah, serpent
22:53:53dom96oh cool
22:53:58OrionPKand what does it *do*? :P
22:54:01gradhaawww... you click the link "eating its own tail" and its SFW content... as expected from wikipedia
22:54:58gradhaOrionPK: 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:23gradhaonce 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:50gradhahence the name, a process which slurps its own binary
22:56:27OrionPKinteresting
22:56:46gradhaI think the NSFW http://uncyclopedia.wikia.com/wiki/Ouroboros link is better
22:56:53Araqgradha: have you confirmed appending to an ELF binary works?
22:58:15reactormonkgradha, on NSFW, pandora is playing Rammstein - Pussy right now...
22:59:06gradhaAraq: that's the purpose of the module, contain damage external to the nimrod tree first
22:59:51Araqwell you can test it with a cat
23:00:21gradhabut I hate cats!
23:02:38gradhaAraq: 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:55gradhaI appended with exedat a docx file to a nimrod binary and it runs without problem
23:03:41gradhause http://sourceforge.net/projects/alleg/files/allegro/4.4.2/allegro-4.4.2.zip/download to get allegro 4
23:04:37gradhaI 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:19gradhanice, 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:50gradhalook for an exedat binary tool
23:06:06Araqwell that exists
23:06:16NewGuyAm 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:21gradharun it with "exedat -b yourbinary path/to/rubbish"
23:07:23Araqworks
23:07:53gradhaAraq: so basically this ouroboros module will be a clean reimplementation of that tool and a userland module for programs to use themselves
23:08:16AraqNewGuy: they are inlined and I think it doesn't introduce a copy but even if the C backend may optimize it away
23:08:30gradhaI 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:51Araqupx sux though
23:09:37gradhaNewGuy: careful with modifying iterators though https://github.com/Araq/Nimrod/issues/525
23:09:51gradhaAraq: know of any non-sux version?
23:10:16Araqno it sucks in principle
23:10:21Araqthe implementation is fine
23:10:59gradhacompressing binaries is bad?
23:11:07Araqhttp://wiki.freepascal.org/Size_Matters#UPX
23:12:00Araq"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:56gradhahow outrageous to load whole binaries in ram, now that most are sized smaller than JPG files created by consumer cameras!
23:14:18gradhaAraq: is this freepascal section about the raspberry pi? or 8bit systems or something?
23:14:50Araqgradha: why compress then in the first place?
23:15:19Araqarguing decompression doesn't matter on a modern system is backwards
23:16:02gradhaI'm not arguing decompression doesn't matter, but rather the complain about loading a binary in memory is surprising
23:16:32Araqwell the point is: UPX helps for HD usage but RAM usage is worse
23:16:53gradhaso you hate desktop wallpapers too?
23:17:09AraqI have more HD space than RAM
23:17:16Araqdunno about your system :P
23:17:16*DAddYE_ joined #nimrod
23:19:46gradhaany recent programs you've used which couldn't be loaded in ram?
23:20:07Araqno but it's not the point anyway
23:20:25*DAddYE quit (Ping timeout: 245 seconds)
23:20:29Araqthe point is: UPX is pointless
23:20:57Araqnote that I'm not arguing that compressing *resources* is bad
23:21:09Araqbut the executable parts
23:23:14gradhaupx is pointless now, it wasn't when it was created
23:23:36Araqmaybe
23:23:47gradhait'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:58Araqdid you develop upx, gradha? ;-)
23:24:17*Amrykid quit (Excess Flood)
23:24:23gradhano, I don't have the need of compressing binaries
23:24:26*Amrykid joined #nimrod
23:25:43Araqalright, well I have to sleep
23:25:48Araqso good night guys
23:25:51gradhagood night
23:33:01gradhahehe, 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:17NimBotAraq/Nimrod master 61f0fd6 Araq [+0 ±1 -0]: bugfix createDir for solaris
23:41:17NimBotAraq/Nimrod master 88e184d Araq [+0 ±7 -0]: new VM: implemented constructors and jump optimizer
23:41:17NimBotAraq/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)