<< 04-08-2013 >>

00:07:56*Trixar_za is now known as Trix[a]r_za
00:19:00*DAddYE joined #nimrod
00:34:34NewGuyStill no luck here with Aporia. Don't know what I'm overlooking here - it just refuses to load libglib.
00:56:42NewGuyI managed to get the .dll to load - the problem was 32 v 64 stuff.
00:56:59NewGuyHowever now loading Aporia gives me "could not import: gtk_combo_box_text_new"
01:02:09NewGuyAnd I tried switching to GTK 2.16, but the error just changes to "could not import: gtk_info_bar_new_with_buttons"
01:13:23*rubino123 quit (Remote host closed the connection)
01:14:19*q66 quit (Quit: Leaving)
01:55:55*Amrykid quit (Excess Flood)
01:56:14*Amrykid joined #nimrod
02:00:11AraqNewGuy: could be a new issue, you can try to use my binaries:
02:00:13Araqhttp://nimrod-code.org/download/aporia.zip
02:00:22Araqhttp://nimrod-code.org/download/gtk.zip
02:05:13NewGuyAraq: Nope, I think I've figured it out. My Mingw is using SEH exceptions, which don't allow 32 bit cross-compilation, apparently. So I can't compile Aporia 32 bit (without changing my entire Mingw setup), and the 64 bit of GTK+ is apparently somewhat broken.
02:05:39NewGuyBut thanks so much for those binaries.
02:09:03*DAddYE quit (Remote host closed the connection)
02:09:14*DAddYE joined #nimrod
02:09:18*DAddYE quit (Remote host closed the connection)
02:09:46*DAddYE joined #nimrod
02:14:10*DAddYE quit (Ping timeout: 245 seconds)
02:18:57Araqalright. good night
02:45:17*NewGuy quit (Quit: Page closed)
02:47:48*EvilAww quit (Quit: ZNC - http://znc.in)
02:48:12*EvilAww joined #nimrod
03:18:54*Associat0r quit (Quit: Associat0r)
04:44:56*erlnoob joined #nimrod
05:01:08*OrionPK quit (Quit: Leaving)
05:09:14*NewGuy joined #nimrod
05:09:42NewGuyDoes anyone else have problems making a custom nimcache path?
05:10:18NewGuyI've been trying to get a nimcache down one directory in a folder called "nimcache" (from the source directory)
05:11:00NewGuyUnfortunately the path that would be used (..\nimcache) puts it down *two* directories instead.
05:11:22*NewGuy quit (Client Quit)
05:12:06*NewGuy joined #nimrod
05:12:26NewGuyAnd what does end up working is ".\nimcache" (single period instead)
05:13:03NewGuyAnd I assume that's either an undocumented feature or a bug?
05:21:24*NewGuy quit (Quit: Page closed)
05:34:34*erlnoob_ joined #nimrod
05:36:14*erlnoob quit (Ping timeout: 240 seconds)
05:36:15*erlnoob_ is now known as erlnoob
06:58:09reactormonkany idea about https://github.com/Araq/Nimrod/issues/347 ?
07:13:14reactormonkany way it's possible to add that stuff at loop generation or so?
07:24:46Araqreactormonk: it's a minor bug. why does it concern you that much?
07:28:41*erlnoob_ joined #nimrod
07:31:13*erlnoob quit (Ping timeout: 276 seconds)
07:31:13*erlnoob_ is now known as erlnoob
07:33:18reactormonkAraq, not sure, I think I don't like a WA.
07:42:17reactormonkAraq, how do I wrap a function around in nimrod?
07:42:31reactormonkproc(item: tuple(TTilePos, string)) = # my try, doesn't like that
07:48:15reactormonkAraq, a simple solution would be to tell the for to generate a closure with {.closure.}
07:48:21*DAddYE joined #nimrod
07:49:00Araqreactormonk: learn the syntax then. seriously.
07:58:47*reactormonk quit (Ping timeout: 260 seconds)
08:00:08*BitPuffin joined #nimrod
09:31:11*erlnoob_ joined #nimrod
09:32:54*erlnoob quit (Ping timeout: 264 seconds)
09:32:55*erlnoob_ is now known as erlnoob
09:49:22*DAddYE quit (Remote host closed the connection)
09:49:48*DAddYE joined #nimrod
09:53:33*q66 joined #nimrod
09:53:50*DAddYE quit (Ping timeout: 240 seconds)
10:11:49BitPuffinYou guys are quiet today!
10:11:59Araqit's sunday
10:12:15BitPuffinyou mean everyone are hung over?
10:14:52Araqor in the swimming pool
10:15:39BitPuffinhahaha
10:16:49BitPuffinjust thought of a nice way to get a diff of the functions in opengl 4.3 and 4.4
10:18:54BitPuffinhttp://www.lwjgl.org/javadoc/org/lwjgl/opengl/GL43.html
10:20:25*DAddYE joined #nimrod
10:23:04BitPuffinaand well they havent had a release with 4.4 yet
10:42:39BitPuffinAraq: is it really wise to set TGLdouble to be float instead of float64?
10:43:05AraqI don't know what if we make float 32bits?
10:43:12Araqon some archs at least
10:48:05BitPuffinAraq: well exactly, then it wouldn't be a double precision floating point number
10:48:15BitPuffinwhich is what opengl would expect
10:48:22BitPuffinah wait
10:48:25BitPuffinI ment the other way around
10:48:31BitPuffinit should be float64 instead of float
10:48:37BitPuffinsorry
10:48:54BitPuffinhttp://www.nimrod-code.org/gl.html#130
10:49:19Araqyeah fix it
10:52:21BitPuffinAnd I should also add GL_ARB_ES2_compability extension to the glext module
10:53:26*DAddYE quit (Ping timeout: 240 seconds)
10:53:39BitPuffinstrange
10:53:54BitPuffinhttp://www.nimrod-code.org/opengl.html#116 here it's correct
10:56:24*Associat0r joined #nimrod
10:56:24*Associat0r quit (Changing host)
10:56:24*Associat0r joined #nimrod
10:57:40BitPuffinAraq: pull request opened
10:57:48BitPuffinfor the double stuff
11:00:50Araqok
11:01:02AraqI assume you tested your code with the change and nothing breaks
11:01:49BitPuffinwell no not really
11:01:53BitPuffinwhy wouldn't that work though?
11:02:13BitPuffinunless there is a reason someone made it float
11:02:14BitPuffinhrm
11:02:17dom96hello
11:02:47BitPuffinOkay so how should I test it? just compile nimrod?
11:02:52BitPuffindom96: howdy!
11:03:09AraqBitPuffin: compile your stuff with this change
11:03:19AraqI hope you use it :P
11:03:46Araqhi dom96
11:04:02BitPuffinwell not yet, I'm busy with linagl and cologne, and life :D
11:04:23Araqthen close the pull request already
11:05:26BitPuffinawh
11:05:26BitPuffinokay
11:05:38Araqsorry, I can change float to float64 without testing myself
11:05:42dom96gradha's blog looks nice
11:06:18Araqyou can help me by testing things
11:06:56BitPuffinof course you can, I was just thinking it's so trivial so it's better for you to focus on other stuff
11:06:58BitPuffinbut yeah
11:07:00BitPuffinmakes sense
11:07:05BitPuffindom96: link?
11:07:21dom96http://gradha.github.io/users-prefer-static-linking.html
11:07:59BitPuffinI suppose same goes for the extension
11:10:19dom96Araq: What do you think about Jehan's post?
11:11:24Araqhe has good points
11:12:34dom96Also in regards to http://forum.nimrod-code.org/t/195 I think I have to take the gtk2 wrappers out of the nimrod repo and into a seperate one finally.
11:13:15Araqyeah, has my blessing
11:33:03*Trix[a]r_za is now known as Trixar_za
11:52:00*DAddYE joined #nimrod
11:52:18*Trixar_za is now known as Trix[a]r_za
11:58:39BitPuffinAraq: Hmm, an array that stores matrices row major is that an array of columns or an array of rows
11:58:39BitPuffinerf
11:58:45BitPuffinrows I think?
12:04:39*Trix[a]r_za is now known as Trixar_za
12:22:05dom96Araq: Compiling niminst causes the compiler to go into an infinite loop...
12:23:29BitPuffinactually maybe it's always the same anyway
12:25:02*DAddYE quit (Ping timeout: 240 seconds)
12:37:37*Trixar_za is now known as Trix[a]r_za
12:53:38Araqdom96: lol? is that a new regression?
12:53:52dom96I think so
12:54:14dom96possibly x86_64 specific
12:54:27dom96IIRC nimbuild compiles niminst
12:54:33dom96but only on x86
12:58:19Araqdom96: can't reproduce it here on 64bit
12:58:27Araqit takes a while
12:58:33Araqbut it's no endless loop
12:58:58dom96ok let me try to leave it for longer
12:59:07dom96Although it seems to be hanging on osproc
12:59:13dom96oh it does work hah
12:59:29dom96why does it hang for so long though?
12:59:52Araqfor me it hangs here: tools/niminst/niminst.nim(115, 0) Hint: 589 [Processing]
13:00:57dom96for me it's: Hint: end of listing [CodeEnd]
13:01:06Araqhmm yeah
13:02:54dom96I don't think it ever was this slow.
13:03:08Araqindeed
13:05:43BitPuffinHow does one even get stuck on matrix transposition code >_>
13:08:15BitPuffinhttps://gist.github.com/BitPuffin/df9f8262a4c491035d44
13:08:21BitPuffinis that correct? or can it be done faster
13:09:08Araqlooks good to me
13:10:16Araqhu? it's always slow AFTER the inno.tmpl file no matter where I put it?
13:10:31BitPuffinalso if a documentation comment is right above a proc is it a part of the proc? or how does one properly document a proc
13:10:42BitPuffinbut it on the first line of the proc?
13:11:15Araqdoc comment above the proc doesn't work. simple.
13:11:46BitPuffinaight
13:13:07dom96Looks like Nimbuild needs to start measuring the time it takes to do each task.
13:14:44Araqdom96: looks like the regression is caused by the large number of & expressions that inno.tmpl produces
13:15:00dom96interesting.
13:18:54*Associat0r quit (Quit: Associat0r)
14:01:05*reactormonk joined #nimrod
14:06:57*EXetoC joined #nimrod
14:19:50BitPuffindoes import use relative paths?
14:20:06BitPuffinso that if two modules are in the same dir they can simply import each other
14:20:25BitPuffinand don't have to worry about the code that's later improting them imports them like lib/module
14:22:34*DAddYE joined #nimrod
14:24:19dom96yeah, I think so.
14:30:35BitPuffincool
14:30:37BitPuffinummmm
14:30:42dom96might wanna test it to be sure lol
14:30:56BitPuffinis it valid to do low(result)..high(result) ?
14:31:26BitPuffinis a proc?
14:31:30dom96depends what result is, if you're asking whether it's ok to have: 5 .. 9 then the answer is yes.
14:31:39BitPuffinguess there is only one way to find out
14:32:02*erlnoob quit (Quit: erlnoob)
14:32:31*Amrykid quit (Changing host)
14:32:31*Amrykid joined #nimrod
14:41:15*OrionPK joined #nimrod
14:46:24*Mat2 joined #nimrod
14:46:26Mat2hello
14:46:46BitPuffinhey Mat2
14:47:06Mat2hi BitPuffin
14:48:35BitPuffinsup?
14:48:49Mat2what means sup ?
14:50:24BitPuffinit means "what is up?"
14:50:34BitPuffinwhich weans "what are you doing?"
14:51:09*DAddYE quit (Ping timeout: 264 seconds)
14:53:22Mat2ah ok, preparing an ARM backend for my AOT compiler (which in fact is used for the microcode interface of my VM design)
14:54:14Mat2(the instruction-set can be extended at runtime)
15:00:19BitPuffinsweet!
15:00:27BitPuffinand I'm struggling with the most ridiculous thing
15:00:55Mat2sorry, what thing ?
15:01:37BitPuffinhow to pick out the row and the column from a 2d array >.<
15:02:54*OnionPK joined #nimrod
15:03:04BitPuffinit's stored column major
15:03:21BitPuffinarray[C, array[R, T]]
15:03:46BitPuffinso if I want the 0th row for example
15:03:55BitPuffinis that a[0]
15:04:28BitPuffinor is a[0] the 0th column
15:06:14Mat2you now, an 2-dimensional array is just an 1-dimensional array with row*dimension+col calculation ?
15:07:02BitPuffinyeah I know that
15:07:31*OrionPK quit (Ping timeout: 276 seconds)
15:07:49Mat2why don't you just define an 1-dimensional array and use a function for element calculation ?
15:07:52BitPuffinBut I'm working on matrices for my math library, and I want to be able to return a vector of a row or a column
15:08:18Mat2same for vector adressing
15:08:24BitPuffinyeah
15:08:29BitPuffinbut why would I do that when there is syntax for it?
15:08:42BitPuffinin fact when using [] aren't we using a proc?
15:09:58Mat2because that gives you possibilities for fast block-copies without the need of recalculation for example and that should be important if you want to implement vector processing routines
15:11:16Mat2(specially if you try to program shaders)
15:11:52BitPuffinwhy would I need recalculation?
15:13:47Mat2because otherwise you must transform from CR coordinates to offset-range
15:14:55BitPuffinisn't that optimized away though?
15:15:29Mat2that depends on the compiler (do you trust GCC ? - I wouldn't)
15:15:59Mat2its also easier (in my opinion)
15:16:51BitPuffinI thought GCC was fairly okay
15:16:54BitPuffinwell
15:17:00BitPuffinIt might be easier
15:17:06BitPuffinBut I've never done that before
15:17:29BitPuffinor wait
15:18:28BitPuffinthat works with a square matrix
15:19:45BitPuffinthis is a*b dimensional matrices
15:19:54BitPuffinmaybe I should have a separate type for square matrices
15:20:27Mat2yeah
15:21:43BitPuffinMat2: but your equation was for row major wasn't it?
15:22:24Mat2you can apply this method for all kinds of matrices
15:22:48*Onion_PK joined #nimrod
15:23:44Mat2(in fact, at machine-code level all these calculations are handled these way)
15:23:47BitPuffinMat2: I know but the row*dimension+col is row major isn't it? for column major it should be column*dimension+row shouldn't it?
15:24:26Mat2y*dimesion+x
15:24:35Mat2^dimension
15:25:10BitPuffin^dimension?
15:26:06Mat2dimension is the line-offset (the number of columns) of a 2d array
15:26:38*OnionPK quit (Ping timeout: 240 seconds)
15:26:50Mat2so for an 2d array of 80x25 elements, the calculation is: 80 * y + x
15:26:51dom96!repos
15:26:51NimBotAnnounced repos: Araq/Nimrod, nimrod-code/nimbuild, nimrod-code/aporia, nimrod-code/nimforum, nimrod-code/babel, nimrod-code/packages, dom96/jester, nimrod-code/csources
15:27:09Mat2hi dom96
15:27:16dom96hi Mat2
15:28:46Mat2BitPuffin: For fast access, its common to build a table of offsets for each x-y value
15:29:15BitPuffinMat2: yes but if we think in terms of matrices, if I want to store it column major. Let's say the matrix is 4x4. In column major the 12 13 14th elements contain translation
15:29:34BitPuffinMat2: then the equation is 4 * cols + row ?
15:29:45BitPuffincol*
15:29:47dom96Anyone on Windows?
15:29:54BitPuffindom96: hell no
15:30:04dom96I need someone to test something for me
15:30:13Mat2sorry, no
15:30:37BitPuffinMat2: is it correct?
15:30:46dom96pity
15:31:06BitPuffinAlso is there a way to tell nimrod that I really want something to be stored in the CPU cache instead of in ram
15:31:45BitPuffinso that I can store dimension * col calculation there when iterating through
15:31:59dom96http://build.nimrod-code.org/docs/manual.html#register-pragma
15:32:02BitPuffinI can imagine it being slower to access ram than to simply do the calculation again
15:35:02Mat2BitPuffin: you can't hint directly to preload cache-lines because that's 1.) cpu dependent and most processors do not have instructions for that 2.) can result in secondary cache-misses which tend to consume lots of clock-cycles, dependent on cache organisation
15:35:45BitPuffinMat2: so it's better to just store it as usual? Will that be faster though? (maybe it will keep it in cache anyway)
15:36:08Mat2exceptions are IA32 conform cpu'S because there exist some instructions for this purpose (PREFETCH0, PREFETCH1, INVD etc.)
15:37:10BitPuffinMat2: is there anything you don't know?
15:37:24Mat2on modern out-of-order designs you can trust the internal cache handling, it is higly effective
15:37:31BitPuffinneat!
15:37:35BitPuffinanyway
15:37:36Mat2BitPuffin: a lot !
15:37:46BitPuffinwas I correct about the whole column major thing
15:38:00BitPuffin4 * col + row for row major?
15:39:45Mat2for a 4x4 matrix, that should work
15:40:49BitPuffinMat2: sweet, I'll add that later then, just gotta finish n1*n2 dimensional matrices
15:40:52BitPuffinwanna support both
15:41:04BitPuffinand since nimrod supports dead code elim it shouldn't matter
15:43:02Mat2you can simply take calculary paper and calculate the offset per hand to see if it correct (or use a spreadsheet) !
15:43:29BitPuffinYeah that's true :)
15:43:40BitPuffinhttps://gist.github.com/BitPuffin/6150745 is this correct for n1*n2 dimensional matrices?
15:46:07BitPuffinR*C dimensional is a better thing to say probably
15:47:03*DAddYE joined #nimrod
15:47:04Mat2a node: I'm just new to Nimrod so can't say if these heavily C++ styled example is correct but the calculations seems so
15:47:49BitPuffinyou used a C++ snippet as reference?
15:47:57BitPuffinor did I do C++ style?
15:48:10Mat2no, but you seem to prefer common C++ style programming
15:48:21BitPuffinI do?
15:48:25*OnionPK joined #nimrod
15:48:39BitPuffinyou mean because I made column a template?
15:48:43Mat2yes
15:48:47BitPuffinah
15:48:54BitPuffinwell it's not the same as C++
15:49:00BitPuffinit's just substituted at compile time
15:49:26Mat2I came here with a Foth background- quite different philosophy
15:49:30Mat2^Forth
15:50:05BitPuffinaha!
15:50:24BitPuffinwell I thought it was better to make it a template
15:50:34BitPuffinI could also make it a proc and mark it with the compileTime pragma
15:50:52BitPuffindon't know what's the preferred convention
15:51:35Mat2do what makes sense for you - but think about the runtime consequences
15:51:45Mat2(the possible ones)
15:52:15dom96I think compile-time procs are meant to be used in macro primarily.
15:52:18dom96*macros
15:52:33Mat2we should ask Araq about that
15:52:49BitPuffinprobably
15:52:56BitPuffinwhen he gets back
15:53:01*Onion_PK quit (Ping timeout: 276 seconds)
15:53:19BitPuffinMat2: what would be the runtime consequences?
15:53:39OnionPKgood grief.. this guy's arguing with me that path's should be /'s instead of \ on windows.
15:54:16dom96/ also works on windows :P
15:54:35OnionPKthats just because windows is smart enough to know what you're trying to do
15:55:00OnionPKbut it will always give the user \'s for a path
15:55:20OnionPKthis guy would rather have his program mysteriously crash because the user put in \'s
15:55:23OnionPKrather than just handle it :p
15:55:43Mat2BitPuffin: Matrix calculations memory and adress-calculation restricted, so try to reduce both to the minimum
15:56:32Mat2OnionPK: This is a joke, right ?
15:57:05OnionPKMat2 I wish
15:57:48OnionPKsome people dont understand that user experience is kind of more important than petty pedantry about unix's superiority
15:58:17BitPuffinMat2: hmm, well in this case I can't really think of any problems that could occur, and it's never too late to turn it in to a proc later on
15:59:30Mat2OnionPK: well, we are humans, tending to be self-restricted in emotinal irrationalism
15:59:45OnionPKMat2: speak for yourself :P
15:59:59Mat2like anyone *lol*
16:00:22Mat2^emotional
16:00:48OnionPKbtw
16:00:48OnionPKhttps://github.com/dz0ny/leapcast
16:00:51OnionPKthats the project
16:00:59OnionPKit's actually pretty slick, I had thought about doing this myself
16:01:07BitPuffinhttps://gist.github.com/BitPuffin/6150802 I hope this is correct matrix*matrix multiplication, it's so easy to mess up lol :P But man that was expressive
16:01:11Mat2BitPuffin: Test it out, think over and try to find a simple but efficience solution
16:02:33BitPuffinMat2: Yeah I will, I'm just assuming that it's a bit unnecessary to call a procedure just to access a an array inside an array
16:02:42BitPuffinbut we'll see :)
16:04:14Mat2I suggest you minimize offset calculation though building a table if the matricies are fixed sized
16:05:12Mat2then, accessing elemnts is just an indirect load operation
16:06:04Mat2^elements
16:06:14BitPuffinMat2: Yeah I will, I'll create a separate type called TSquareMatrix
16:07:43Mat2ehm ok *shroug*
16:09:09BitPuffinMat2: or you mean even when they aren't square?
16:10:31BitPuffinhttps://gist.github.com/BitPuffin/6150834 Bug possibly?
16:11:24Mat2I mean even of course
16:12:06Mat2but as written before I'm new to Nimrod so I can not decide if the syntax is correct
16:12:16BitPuffinMat2: hmm, yeah that could make R*C dimensional matrices a bit faster too
16:12:40Mat2http://sgate.emt.bme.hu/patai/publications/z80guide/part5.html
16:12:42BitPuffinMat2: but I'm not sure how you mean I should build the table
16:12:56BitPuffinMat2: yeah it was a question to everybody more or less :)
16:13:21BitPuffindom96: you know all of nimrod and Araq is not here, so could you help me determine if this is a bug?
16:14:00dom96hrm
16:14:26dom96Wouldn't that be: range[range[]]?
16:14:39dom96Since you've defined C as being 'range'
16:15:18dom96Perhaps 'C' on its own is what you want?
16:16:09BitPuffindom96: well I just wanted to make it so that you can only pass in indices within the range
16:17:49BitPuffindom96: Hmm I think you were right
16:18:06BitPuffinbecause now it compiled :)
16:18:15dom96cool :P
16:19:16dom96If you want to pass '5 .. 8' etc.
16:19:23dom96Then use the TSlice[T] type
16:19:41dom96I wonder if you can specify a TSlice as a value for a range[]
16:20:14*DAddYE quit (Ping timeout: 240 seconds)
16:20:32dom96I guess that requires the 'generic values' feature
16:22:35dom96I think this should work: https://gist.github.com/dom96/f452f074b11d91775567
16:22:41dom96Araq: ^
16:25:52Mat2generally, for understanding Intel cpu's these link is a good start: http://www.righto.com/2013/01/inside-alu-of-8085-microprocessor.html
16:26:48*BitPuffin quit (Ping timeout: 245 seconds)
16:27:20*BitPuffin joined #nimrod
16:27:40Mat2some remendants of the 8-bit line are important until today
16:28:58BitPuffindom96: I think it works the way I did it, compilation didn't fail at least
16:31:14Mat2you should test if calculation is done right
16:31:31BitPuffinyeah I will do that
16:31:38BitPuffinbefore releasing :)
16:31:43BitPuffin0.2
16:32:04BitPuffinI won't make squarematrix until values passed to generics is added
16:32:21dom96BitPuffin: Are you going to make a cool 3d game with your lib? :P
16:32:28BitPuffindom96: for sure :)
16:32:33dom96yay :D
16:32:54BitPuffindom96: and blog about the process and mention nimrod like a million times :P
16:33:02dom96yeah! :D
16:33:38dom96I am tempted to create a little Minecraft clone. Never done anything with OpenGL before though.
16:34:28Mat2Apple spend some time (and money) in the past to hire so called evangelists for promoting :P
16:34:56BitPuffinMat2: gonna read the thing you linked now, problem is that I don't know asm
16:35:22BitPuffindom96: I almost got a freelancing job creating a minecraft clone which I would have pushed to make in nimrod haha
16:35:34BitPuffinbut he was very weird about salary and didn't respond
16:36:15dom96aww too bad, that would be cool.
16:36:48dom96I just really want to try OpenGL and Minecraft clone seems like a nice start.
16:36:50BitPuffinfor sure
16:37:01BitPuffinyeah could be
16:37:14dom96No idea how much work it would be though heh
16:38:03BitPuffindom96: there are lots of open source minecraft clones, you could use them as reference
16:38:19Mat2BitPuffin: http://tutorials.eeems.ca/Z80ASM/ <- that's the start
16:39:28dom96BitPuffin: Yeah, maybe if I get stuck, but I think I will learn more if I don't use one.
16:40:18BitPuffinMat2: thanks! that should be useful!
16:42:36BitPuffinMat2: I'll do that a bit later then, right now I need to move forward
16:42:52BitPuffindom96: probably
17:17:13*DAddYE joined #nimrod
17:23:26*DAddYE quit (Ping timeout: 240 seconds)
17:59:43NimBotnimrod-code/csources master 5502c78 Dominik Picheta [+2789 ±1 -1366]: Updated C sources to new format.
18:00:14dom96haha, look at that + and - count :D
18:01:47NimBotnimrod-code/nimbuild master 0a16027 Dominik Picheta [+0 ±1 -0]: Builder: Discard all changes before git pulling.
18:01:47NimBotnimrod-code/nimbuild master 104486a Dominik Picheta [+0 ±1 -0]: Builder: Added -o flag to 'unzip' (overwrite files without prompting).
18:01:47NimBotnimrod-code/nimbuild master f97de80 Dominik Picheta [+0 ±1 -0]: Implemented new C source build system.
18:06:57Araqcongrats, dom96 :-)
18:07:31dom96So I think that the converted between Async sockets and normal sockets is a bad idea.
18:07:34dom96*converter
18:07:45AraqI agree
18:07:54Araqconverters are generally a bad idea
18:09:13dom96Araq: Are you ok with the build scripts having an if statement?
18:09:28dom96I already implemented it so you better like it :P
18:09:44Araqso effectively niminst is not good enough for nimbuild?
18:09:51Araqand needs a special mode?
18:09:54dom96I made it so that it uses ./bin by default, but if ../koch.nim exists then it uses ../bin
18:10:08Araqthat sounds hacky
18:10:14dom96huh, what do you mean?
18:10:20Araqwhy not make yet another config option?
18:10:53Araqer ... do you mean the shell scripts contain an 'if' ?
18:11:00dom96yes
18:11:08Araqfine with me
18:11:11dom96I don't want to have two different c source versions.
18:11:22dom96Where one uses 'bin' and the other '../bin'
18:11:23Araqthe shell scripts are a pita anyway
18:11:25dom96because what's the point
18:12:01Araqsomebody should finally replace the directory system by a system that works
18:12:14dom96This way it essentially detects whether we are inside a nimrod repo
18:12:15dom96or not
18:12:24Araqyeah fine with me
18:13:50dom96Araq: You wouldn't be on Windows by any chance would you?
18:14:32Araqno ... whenever I boot windows ~4 systems decide they need updates
18:15:02Araqso I only boot windows when there is some TV show to watch in the meantime
18:15:37Araqbut there is nothing on TV this year ...
18:15:40Mat2ciao
18:15:47dom96bye Mat2
18:15:48*Mat2 quit (Quit: Verlassend)
18:16:01dom96Araq: is there ever?
18:16:09dom96I haven't watched TV since Eurovision.
18:16:41dom96In fact no. I haven't watched TV in way longer than that.
18:16:54dom96I remembered switching to bbc iplayer to watch Eurovision :P
18:20:12*DAddYE joined #nimrod
18:23:35*boredomist joined #nimrod
18:25:07dom96hey boredomist, long time no speak.
18:26:34*DAddYE quit (Ping timeout: 256 seconds)
18:28:37OnionPKtheres some decent shows, but they're all on channels i dont have
18:29:06AraqOnionPK: I was talking about german tv though
18:29:21Araqwhich seems to be much worse than others
18:31:00dom96Nowadays I am so used to watching TV shows with no ads that it's really hard to go back to normal TV.
18:31:16Araqhell ya, dom96
18:33:56OnionPKaraq my experience of german tv = american tv + german voice over :P
18:36:26NimBotnimrod-code/nimbuild master 465dbcd Dominik Picheta [+0 ±1 -0]: Builder: Modified C sources generation process.
18:37:12dom96OnionPK: Are you on Windows by any chance?
18:37:24OnionPKyeah
18:37:26dom96if so, mind testing something for me?
18:37:36*DAddYE joined #nimrod
18:38:06*Associat0r joined #nimrod
18:38:06*Associat0r quit (Changing host)
18:38:06*Associat0r joined #nimrod
18:40:11OnionPKperhaps, what'd you have in mind
18:40:21*q66_ joined #nimrod
18:40:45BitPuffindom96: dude that's a lot of code! What did you do?
18:41:10dom96BitPuffin: I built a time machine and stopped time!
18:41:21BitPuffindom96: sweet!
18:41:52dom96nah, I moved where the C sources are in the repo :P
18:42:16BitPuffindom96: how come that added like 1 400 lines of code?
18:43:12NimBotAraq/Nimrod master 32264d1 Dominik Picheta [+0 ±1 -0]: sockets.send now throws an exception when a non-blocking socket is... 1 more lines
18:43:12NimBotAraq/Nimrod master af4bda6 Dominik Picheta [+0 ±3 -0]: Modified the behaviour of the build scripts to accommodate new C sources... 1 more lines
18:43:53*q66 quit (Ping timeout: 240 seconds)
18:44:44dom96BitPuffin: It added a lot more than that. The numbers NimBot announces are file counts.
18:45:41dom96"Showing 4,154 changed files with 7,933,068 additions and 2,865,037 deletions."
18:45:45dom96https://github.com/nimrod-code/csources/commit/5502c78919d213e498df14343874d0fc5990bcb1
18:45:47dom96:P
18:46:23*q66_ quit (Ping timeout: 240 seconds)
18:49:14BitPuffin:o
18:49:40BitPuffingonna go grocery shopping
18:49:50BitPuffindom96: linagl has been bumped to 0.1.1 :D
18:49:55dom96:D
18:50:41BitPuffinIt renamed all the TVector aliases and added one for unsigned ints and changed the type of TIVecx to int32 instead of int
18:53:07dom96We should post on reddit about every version bump heh
18:53:22EXetoCI'll make a few bumps today then
18:56:10dom96yay. Also welcome back. :)
18:58:43EXetoCtnx!
18:58:52*BitPuffin quit (Ping timeout: 256 seconds)
18:58:55EXetoCgotta bring my computer next time. I just can't do without it
19:01:32EXetoCI was going to bring a laptop, but I was unable to build Nimrod on Windows. is the windows sdk or something needed? because it complained about an undefiend reference to _wfopen
19:09:41AraqEXetoC: dunno, use the gamera edition
19:09:44*Mat2 joined #nimrod
19:12:07EXetoCAraq: is that correctly spelled? I've gotten no relevant hits from google
19:13:15Araqhttp://nimrod-code.org/download/nimrod_gamera_0.9.2.exe
19:13:46dom96NimBot should get a !gamera command :P
19:14:03Mat2where from you haven an ARM board at hand ?
19:14:15dom96me?
19:14:42EXetoCthat explains it :>
19:15:20Mat2dom96: Beside the RPI ?
19:15:33EXetoCthanks. I missed that. I'll try to install from source again though
19:15:35*EXetoC quit (Quit: WeeChat 0.4.1)
19:15:46dom96Mat2: I only have an RPI
19:17:37Mat2hmm, I suspect the exception compiling Aporia is unique to the SoC used on the RPI
19:18:10dom96why?
19:18:23AraqMat2: you should turn off memory overcommitting and see what it changes
19:18:59*tass joined #nimrod
19:19:38*tass quit (Client Quit)
19:20:30Mat2dom96: because debugging leads to faulty page handling
19:20:51Mat2Araq: Hat do you mean with memory overcommitting ?
19:20:59Mat2^what
19:21:52dom96Mat2: I'm not sure how that suggests that the problem is unique to the SoC on the RPI.
19:22:27Araqdom96: linux does overcommitting on memory which means OOM is turned into a segfault
19:22:44Araq(OOM = out of memory)
19:22:59dom96was that directed at Mat2?
19:23:10Araqgah
19:23:15Mat2dom96: there exist some minor changes between ARMv6 and ARMv7 (an incompatiblity)
19:23:18AraqMat2: look at what I said to dom96
19:24:23Mat2Araq: ah ok
19:26:16dom96Mat2: Sorry, I still don't understand why you think it's unique to the RPI unless you tested it with a different ARM processor and found that it works.
19:26:52Mat2dom96: That was my plan
19:28:42Mat2sadly I do not have an board with ARMv7 cpu. I'll try to use QEMU for a test instead
19:44:58*EXetoC joined #nimrod
19:46:06Mat2Araq: ok, I have disabled memory overcommiting but no change compiling Aporia
19:46:47Mat2I try my luck with an emulated ARM7 board
19:47:25EXetoCit built, but then I got "file not found" when trying to compile two different sources. it didn't say which file or anything so I couldn't be bothered
19:48:08Araqwell with an error report like this, I can't be bothered either
19:49:51EXetoCobviously not
19:52:20dom96oh just realised, OnionPK got away with not testing stuff for me.
19:52:41dom96well maybe EXetoC can do it now, are you still on Windows?
19:56:56OnionPKdom96 what'd u want me to test?
19:57:58dom96Try compiling this: https://github.com/nimrod-code/csources
19:58:36dom96Just cloning that and executing build.bat should be good enough.
20:01:17OnionPKk
20:01:18EXetoCnot anymore
20:01:39dom96OnionPK: thanks
20:01:54EXetoCI wonder how many of the users are on windows
20:02:08OnionPKdom96 build.bat runs without error
20:02:26OnionPKgot a bin\nimrod.exe
20:02:34dom96cool
20:02:38dom96Thanks again.
20:02:41OnionPKnp
20:02:56boredomistdom96: Hey there
20:02:59boredomistjust lurking
20:03:02OnionPKworks with clang too
20:03:13dom96boredomist: ahh, alright.
20:03:24dom96OnionPK: Awesome.
20:03:43dom96Araq: Looks like we can finish the transition :)
20:07:25OnionPKwhats the transition?
20:09:35dom96OnionPK: Removing the csources.zip from the Nimrod repo.
20:09:44dom96And moving it to a separate github repo.
20:10:34OnionPKinteresting.. and then what, the build process wgets it?
20:11:49dom96Going to have to clone it.
20:12:01dom96Although perhaps it would be better to have a git submodule in there
20:12:06dom96But Araq dislikes those.
20:12:31OnionPKit'd be nice if the build script automatically cloned it or something if it finds it's not there
20:13:38OnionPKwhy split it into a diff repo anyway? why not just not have it zipped
20:14:09dom96That would work too yes.
20:14:16dom96We would have two build scripts then though.
20:14:31dom96A bit confusing but not really an issue.
20:14:52dom96The reason we split it up is because having it zipped causes the repo to increase in size by the size of the .zip every time the .zip is updated.
20:15:51OnionPKand why have it zipped?
20:16:30dom96because then you have diffs with 7million+ changes
20:17:06OnionPKwouldnt that still be an issue if it's a separate repo?
20:17:44dom96People wouldn't need to look at those diffs.
20:18:12dom96The biggest problem was when changes to .nim code and the c sources got mixed up.
20:18:45dom96Back then github just showed the whole diff, it did not truncate it.
20:19:38dom96Perhaps nowadays with some discipline we could get away with having it in the same repo.
20:20:02dom96lol.
20:20:12dom96I dunno. Araq's call.
20:42:26*q66 joined #nimrod
20:44:29Araqdom96: I can't follow sorry. We both agreed how to proceed with the C sources
20:46:43dom96yes, well thinking about it now. We could get away with putting the unzipped C sources in the Nimrod repo, because github will no longer list all of the 7 million changes.
20:47:11Mat2personally I see no problem handling the C sources in a different repro as long as handling is documentated
20:47:44dom96The only problem is inconvenience: having to clone the repo when bootstrapping for the first time.
20:47:50Araqdom96: still generated code doesn't belong in there
20:48:05Araqespecially not it's 7 million lines of code
20:48:19Araqthe repo grows enormous
20:48:41Araqfor the nimbuild repo we can regularly delete the history
20:48:46dom96Actually yeah. Another issue is that Github will think the repo is not a Nimrod repo but a C repo.
20:49:20dom96True. I don't think it will grow as much though.
20:50:16dom96I assume you don't want any submodules in the Nimrod repo?
20:50:20*Mat2 using Assembla and prefering Mercurial
20:50:52Araqnot if we can avoid it
20:51:05dom96Sure we can.
20:51:14AraqI admit I'm baised because submodules never worked for me
20:52:25dom96Do we want another build script to do the cloning of the C sources repo etc?
20:53:30dom96It's to automate the process described in the readme here: https://github.com/nimrod-code/csources
20:53:52boredomistOut of curiosity, why would you store automatically generated sources in a repository?
20:54:10OnionPKbecause you need to be able to build nimrod.exe somehow
20:54:13*NewGuy joined #nimrod
20:54:20OnionPKand you dont have nimrod.exe to build nimrod.exe
20:54:35boredomistWell yeah, but version control on something you don't care about versioning is somewhat weird
20:54:39boredomistIn my view
20:55:11OnionPK well.. there is versioning if the compiler is updated
20:55:21dom96boredomist: Yes, but remember that if someone wants to push code which breaks bootstrapping they must update the C sources.
20:55:55boredomistSure
20:56:09boredomistI just don't see the point of storing it in a VCS is all
20:56:09dom96Hosting it in a github repo allows anyone with access to it to push these C sources.
20:56:13OnionPKwould be nice if the build script could handle it all though, just have minimal barrier to entry, automate as much as feasible
20:56:59dom96indeed.
20:57:49dom96boredomist: Where would you store it?
20:58:14boredomistI'd probably do a tarball on nimrod.org or wherever
20:58:22OnionPKhosting on git makes sense, doesnt make sense to have multiple servers for that.. what if one goes down
20:58:44dom96That would mean that every dev would need ftp access to it.
21:00:05boredomistSure, but copying over public keys isn't too much trouble
21:00:29boredomistI'm not part of the project, so I don't really have any room to argue about this
21:00:32boredomistI was just curious
21:02:16Araqwell github got rid of its "download" feature so there
21:02:49Araqif we like it on github's servers (and we do) we have no choice anyway
21:04:47boredomistWell can I suggest that your build script does "git clone --depth=1" so it doesn't have to build down 7M changes * N commits?
21:05:01boredomistThat was main thought about using git
21:05:40boredomistReplace that second "build" with "pull"
21:06:18Araqboredomist: yeah we wanted to do that
21:06:28Araq--depth=1 ftw
21:06:53boredomistIt really annoys me that a --depth=1 repo is basically useless
21:07:00*gradha joined #nimrod
21:07:11boredomistCan't make commits, can't update it, blah
21:07:11boredomistSilly git
21:09:29dom96You can always download the tarball of the master of the csources repo which is basically the same as hosting it on nimrod-code.org
21:09:37dom96Araq: So you want that script?
21:10:45Araqdom96: I don't know, build.bat doesn't support git easily and then the scripts do different things
21:11:03dom96Well I was thinking of creating a separate script.
21:11:52Araqok then
21:12:46dom96But I dunno. Having a script automate the steps removes your options. You can't change between release and debug mode, and for Windows we will need a 32bit and 64bit version...
21:14:19dom96I guess there aren't that many more steps than there are now.
21:24:18NimBotAraq/Nimrod master a3163de Dominik Picheta [+0 ±2 -3]: Updated bootstrap instructions. Removed csources.zip.
21:29:06dom96gradha: how's pelican?
21:30:47dom96Araq: Did you see this?
21:30:49gradhahmm... ok?
21:30:57dom96<dom96> I think this should work: https://gist.github.com/dom96/f452f074b11d91775567
21:31:29gradhadom96: I tried installing jekyll but again something in ruby land fucked up so I looked at anything else and pelican was the first alternative I tried
21:31:33dom96gradha: I guess I should blame Arch for pushing Python 3 on me.
21:31:49dom96I've had problems with jekyll and pelican
21:31:57dom96Mostly because of pygments
21:32:04dom96And python 3
21:32:29gradhadom96: looks like you were my perfect target audience for the blog post
21:32:54dom96oh? I didn't read it yet.
21:33:16dom96I don't see any kpop videos :(
21:33:25Araqdom96: I saw it but it's a minor thing
21:33:34dom96Araq: Want a bug report?
21:33:45gradhadom96: I'm going to make a section for those, already two nice ideas queued
21:33:49Araqmeh sure
21:34:02dom96gradha: kpop video posts, or Nimrod posts? :P
21:34:08gradhakpop, of course
21:34:22dom96cool
21:34:26gradhaI can advance you one will be on group DalShabet and another on 2eyes
21:35:23gradhaI love these kpop groups, they go so much to the extreme negative that they overflow and become awesomely good
21:35:54dom96I'm watching the Dota 2 International so I feel like kpop videos will be a nice complement.
21:37:30gradhaother than that I have three ideas for tech, one may be large enough to split in two posts
21:37:52*Amrykid quit (Excess Flood)
21:38:16*Amrykid joined #nimrod
21:38:18dom96You should write lots of Nimrod posts and submit to reddit/HN :)
21:38:47dom96I will do that as soon as I can a damn blog working.
21:38:52dom96*can get
21:38:58gradhaBTW, if any of you loves dongles, just wait to read about DICKS in http://nmap.org/misc/hakin9-nmap-ebook-ch1.pdf
21:39:17gradhadom96: meh, don't use reddit/hn, feel free to post them yourself, I wont
21:39:28dom96gradha: That's inappropriate, send me a picture of you so that I can tweet about you!
21:39:45gradhagithub avatar not enough?
21:39:48gradhaok, wait a sec
21:40:04dom96nah, because then people won't believe me.
21:40:20gradhayou will want to unsee these http://gradha.sdf-eu.org/fotos.en.html
21:40:43dom96:D
21:40:47gradhaforgot, NSFW
21:41:07dom96haha
21:41:20gradhaI have to update the photo with my favourite language
21:43:31dom96lol just got to that photo...
21:43:44NewGuyHey guys, which threading model should I use?
21:44:31Mat2can you please explain what are your intentions ?
21:44:36AraqNewGuy: there is only one --threads:on
21:45:07NewGuyI meant message passing, actually.
21:45:31NewGuyBecause the actor system says that it's deprecated on the documentation page
21:45:43NewGuyOr should I just use bare channels
21:46:00*gradha wonders why there is no hollywood module in nimrod
21:46:27Araqok ok, you can use --gc:boehm and --threadAnalysis:off and get a second model ;-)
21:47:44Araqwell the actors API got renewed and works afaict, but I consider the API a pita and would go for bare bone channels
21:47:44NewGuyHaha, sounds good!
21:47:44gradhaisn't dom96 working on super async module which cures cancer?
21:48:18dom96Yes. It hasn't quite cured cancer yet though.
21:49:10AraqNewGuy: depending on what you're doing you could also use processes and the 0mq wrapper
21:49:26dom96pff, 0mq wrapper
21:49:30dom96Use sockets like a real man.
21:49:41dom96That's how nimbuild works.
21:51:31gradhadom96: I guess I don't follow reddit/hn because I already follow the equivalent of kpop, so I don't have much time left
21:52:14NewGuydom96: But we have no doubt it will cure it soon, though!
21:52:29dom96gradha: I think you should at least look at HN, it's very specific to technology news.
21:52:48NewGuyAraq: Nah, threads and channels will work just fine!
21:54:04NewGuyAraq: Although I would like to know how poor the performance for channels are (since it has a disclaimer in the docs).
21:55:21Araqwell the main problem is the copying which you can avoid by casting to 'ptr' but then you need to keep the stuff alive on your own
21:55:59Araqblocking channels could perhaps mitigate this issue
21:56:06gradhadom96: any time I look at tech news sites all I see is drama, so I prefer if the articles sport nice girls pictures
21:57:40gradhahmm... so http://www.reddit.com/r/programming/ features an article on how to write programming tutorials. Who would need that?
21:58:00*Amrykid quit (Excess Flood)
21:58:16*Amrykid joined #nimrod
21:58:54NewGuyAraq: Oh, I was expecting that kind of cost, so yeah no problems there!
21:58:54*Amrykid quit (Changing host)
21:58:54*Amrykid joined #nimrod
21:58:55dom96HN is usually better
21:59:35AraqNewGuy: well the implementation uses condition variables and locks
21:59:41Araqnot cool ;-)
22:01:23NewGuyNewguy: (Of course) - but it could be worse! Could have to use Go ;-)
22:01:49NewGuyAraq: Of course - but it could be worse! Could have to use Go ;-)
22:02:03Mat2ciao
22:02:09dom96NewGuy: I think you will fit in well here ;)
22:02:22*Mat2 quit (Quit: Verlassend)
22:04:03gradhayes, talking to yourself is a good predictor
22:04:28dom96lol
22:05:05NewGuyDamn, somebody noticed!
22:06:52Araqpeople don't like me saying anything negative about anything
22:07:25Araqso I'll just say that Golang is great except the name perhaps and the semantics and the type system
22:07:46gradhaawww, no mention of the mascot?
22:08:50NewGuygradha: Oh come on, that's the one thing I don't mind!
22:11:45*gradha wonders if the go mascot being a gopher is making some pun on internet protocols
22:13:43NewGuygradha: At the risk of sounding like a complete idiot - How do I go about doing that?
22:15:40gradhaNewGuy: I don't follow, sorry, what do you want to do?
22:17:08NewGuy"* gradha wonders if the go mascot being a gopher is making some pun on internet protocols"
22:17:30gradhaI just wonder if there's a connection to https://en.wikipedia.org/wiki/Gopher_(protocol)
22:18:00gradhagolang tends to be advertised as coroutines ideal for scaling web servers, or at least that's the example I get
22:18:04NewGuyHaha, I just meant the format of the message. No username, starts with an astericks
22:18:13gradhaah, ok
22:18:21gradhait's some IRC fancy stuff
22:18:29gradhayou prefix whatever you want to say with "/me "
22:18:37*gradha wonders if that explanation helped
22:18:52Araqthe truth is
22:18:56*NewGuy is very happy to learn something new
22:18:58AraqNimbot can read our minds
22:19:12Araqand sometimes it will write them there
22:19:20gradhaAraq: I don't believe that, he still doesn't high five me
22:19:27gradhaNimBot: high five pal!
22:19:28NewGuyAraq: Shit, does that mean our thoughts are under the same license as the forum?
22:19:31*Araq is always right
22:19:44*NewGuy intercepts
22:19:45*gradha reserves the right to believe any alternative reality
22:19:47dom96NimBot is just waiting for the right moment
22:20:44gradhaNewGuy: I'm sure there are more irc tricks you can learn here, dom96 presumably pings us under the table, and sometimes it tickles
22:20:56AraqNewGuy: no your thoughts are property of the NSA
22:21:28gradhaoh, that's why they follow me, they just get random noise
22:21:33NewGuyAraq: You aren't fooling me, I know how far Nimbot's control goes.
22:21:51*NewGuy puts on tin foil hat.
22:23:43dom96Tin foil hat won't help you, friend.
22:27:39gradhahah, they removed in Allegro5 the useful but obscure file appending/reading code
22:27:41dom96gradha: I can't help but cringe when I read 'operative system' :P
22:28:27gradhawhy? what meaning does it convey to you?
22:28:58dom96I just never see it called 'operative system'. 'Operating System' is extremely common.
22:29:57gradhamy bad, it's a direct translation of the spanish term, is operating system the english default?
22:30:06dom96yeah
22:30:32Araqgradha: I tried the append approach on linux once iirc
22:30:36Araqdoesn't work
22:31:11gradhaweird, I remember it working for Allegro under linux, I betatested the upx support
22:31:35gradhamaybe things have changed?
22:33:42dom96The thing is: there are absolutely no applications on Linux that use static linking, of the common libraries at least. The reason is that each library is installed using the package manager and you cannot update packages which are statically linked.
22:34:24gradhadom96: the "no update" is precisely the good thing for stability
22:34:49dom96What if the current version is unstable?
22:35:15gradhathen the people releasing the binary didn't test enough?
22:35:29gradhadynamic linking is not an excuse for writing correct software
22:35:37Araqdom96: chances are it works good enough for you or you wouldn't use it
22:36:01dom96What if there is a security issue you were not aware of?
22:36:25gradhadom96: sure, and the next version of the dynamic library breaks the API to fix that bug
22:36:48dom96Not necessarily.
22:37:04gradhayep, but not guaranteed either
22:37:30gradhaso basically, you are moving the cost of dependency maintenance on the user at the imaginary benefit of fixing bugs in the future
22:37:47gradhaI don't think that's a reasonable trade off
22:40:38dom96Perhaps. The problem is that most (if not all) linux distros use this philosophy.
22:40:51NewGuyI'm in gradha on this one, I prefer my static linking.
22:41:14gradhadom96: yes, that's the problem, linux distros expect users to be sysadmins. I've been there and don't mind, but it's why linux will never be usable
22:42:04NewGuyYou can't imagine the problems I have setting up old software on my Linux-box.
22:42:44NewGuyThe programs usually don't come with the dependencies and just say "get it from this site or the package management".
22:42:57Araqthe truth is also: most bugs fix corner cases that properly written clients do not trigger
22:43:09NewGuyAnd if it's not there, then I have to go scoure the internet and hope somebody has a copy that I need.
22:43:10Araqso this "it needs to be updated for every program" is wrong
22:43:59NewGuyAraq: Not to mentioon sometimes those corner fixes can cause other bugs (although this is far more rare). So an update may not add anything, but ruin something.
22:44:59gradhadynamic linking used to have value when memory/disk/bandwidth were scarce, but now most of my software is shorter in size than a 3 minute clip of kpop, not even in full hd, imagine the ration when we get 4K
22:45:25gradhas/ration/size ratio/
22:46:56gradhain a way this is like 3d card technology, dynamic linking is like "the ideal" solution, but thanks to the hardware growing exponentially, the "stupid" solution of static linking is effectively better for users
22:47:10comexstatic linking is fundamentally wrong because of security
22:47:41comexit may be also wrong due to bugs - honestly, I don't know, I haven't tried using statically linked desktop applications or anything
22:48:21comexbut if you're looking at embedding anything from WebKit, at the extreme, to, say, FreeType, which I've exploited a bunch of times
22:48:30comexyou're asking for trouble
22:48:44gradhaah, comex, just in case you didn't catch it we are sort of discussing http://gradha.github.io/users-prefer-static-linking.html which starts with static linking but actually goes on portability of software
22:48:48comexserver software is usually more flexible in this way - although consider those recent Rails vulnerabilities or whatever
22:49:10comexah, I remember arguing with some crazy person on HN about this once :)
22:50:08gradha"app bundles" are actually a patch to the "yeah, dynamic linking is better, we don't need stinking static linking!" mentality of some developers (eg. no GTK static libraries)
22:50:08NewGuygradha: Don't think I said it, but great article.
22:50:22gradhaNewGuy: thanks
22:50:53Araqwell I'm not crazy to discuss security issues with comex ...
22:51:02dom96indeed. Very good article.
22:51:32gradhameh, you'll see the stars when I start with kpop
22:53:18comexso perhaps there should be a balance - you could say iOS does this
22:53:32gradhaAraq: maybe using the zipfile for appending stuff to the binary, rather than going the file format of Allegro 4
22:53:33comexsince third party libraries are statically linked, but things like WebKit and FreeType are dynamically linked
22:53:36NewGuyI think I'm ballsy enough, Araq.
22:54:26NewGuycomex: How about we dynamically link where necessary for security or buggy libs - and statically link everywhere else? Middle ground sound good?
22:54:38gradhacomex: yes, the OS guarantees some dynamic libraries are always present, similar to libc and the like, but for others you can opt in, like statically linking sqlite or using the OS provided version
22:55:12gradhaNewGuy: there has to be a middleground, otherwise your binary would include the OS, like emacs
22:55:17comex:)
22:55:59comexNewGuy: it may be a good idea. on the other hand, *when* you put all the effort into making all the packages dynamically linked and working together, like a high quality Linux distro
22:56:08comexit probably comes out better, since you don't have to worry about anything being out of date at all
22:56:21comexof coure, Linux distros don't have nearly as many packages as app stores...
22:56:28comex*course
22:56:46*comex shrug
22:58:31NewGuyIt's really just a context and preference thing, really.
22:59:01*NewGuy resigns with Araq.
22:59:06dom96I think it makes sense on Windows where each application installs their own dependencies anyway.
23:02:33*Sergio965 joined #nimrod
23:03:51gradhait seems Allegro 5 dropped their datafiles in favour of https://icculus.org/physfs/ but nimrod could use the zipfile module, maybe
23:04:06comexi prefer bundles over ugly binary appending stuff
23:04:49dom96gradha: what about slurp?
23:06:09gradhaIIRC extra data appended to the binary won't be loaded into ram, with slurp you hit that penalty always
23:22:48gradhawell, there's not much magic to the way Allegro handled appended data, according to http://sourceforge.net/p/alleg/allegro/ci/4.4/tree/src/file.c#l1286 it should be fairly trivial to do this with zipfiles
23:27:55Araqgood night guys
23:28:01gradhagood night
23:28:40EXetoCbb
23:28:51dom96bye Araq
23:28:52*DAddYE quit (Remote host closed the connection)
23:29:18*DAddYE joined #nimrod
23:33:26*DAddYE quit (Ping timeout: 240 seconds)
23:42:26gradhabye bye
23:42:33*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
23:43:15*Associat0r quit (Quit: Associat0r)
23:47:01dom96good night