<< 17-04-2014 >>

00:08:16*BitPuffin joined #nimrod
00:14:57reactormonkgot (TDbConn, string, int literal(1), int literal(2049), nil, proc (Pcontext, int32, PPValue), nil, nil)
00:15:11reactormonksqlite3.create_function(para1: PSqlite3, zFunctionName: cstring, nArg: int32, eTextRep: int32, para5: pointer, xFunc: Tcreate_function_func_func, xStep: Tcreate_function_step_func, xFinal: Tcreate_function_final_func): int32
00:15:21reactormonk... what did I forget?
00:16:41EXetoCxd
00:16:46EXetoCit should be pretty-printed
00:16:58flaviureactormonk: Expected PSqlite, got TDbConn
00:17:34reactormonkflaviu, TDbConn = PSqlite3
00:17:35EXetoCand maybe some highlighting too
00:17:45reactormonkEXetoC, https://github.com/Araq/Nimrod/issues/1104
00:19:32reactormonkEXetoC, http://pastie.org/private/lfgfpxwkqqamobsf18ja if you wanna help
00:23:46reactormonkok, it's the function.
00:25:31reactormonkError: type mismatch: got (proc (Pcontext, int32, PPValue)) but expected 'Tcreate_function_func_func'
00:25:33reactormonk-.-
00:26:41reactormonkTcreate_function_func_func* = proc (para1: Pcontext; para2: int32; para3: PPValue) {.cdecl.}
00:26:46reactormonk... any problems with that?
00:30:41*superfunc joined #nimrod
00:31:32superfuncare modules defined by filename? or how are they declared?
00:31:49flaviusuperfunc: Yes, by filename
00:33:48superfuncthanks
00:40:40reactormonkah, cdecl.
00:51:31*DAddYE quit (Remote host closed the connection)
00:51:48*superfunc quit (Ping timeout: 240 seconds)
01:02:11*q66 quit (Quit: Leaving)
01:07:38*superfunc joined #nimrod
01:16:27reactormonkhm. the nimrod process has gone defunct
01:16:40reactormonkdafuq.
01:19:17*xenagi joined #nimrod
01:22:03*phI||Ip_ joined #nimrod
01:22:06*phI||Ip quit (Ping timeout: 240 seconds)
01:23:39superfuncDoes nimrod allow for typeclasses similar to haskell or c++ concepts?
01:24:20flaviusuperfunc: Yes, http://build.nimrod-lang.org/docs/manual.html#user-defined-type-classes
01:24:37superfuncthanks again
01:24:57superfuncthis language has everything I want
01:24:59reactormonkflaviu, any typeclasses for the stdlib etc.?
01:25:07flaviuSure, no problem. Make sure you use the docs at build.nimrod-lang.org/docs/, the main docs are outdated
01:25:08superfuncand ignores everything I dislike
01:25:22flaviureactormonk: I'm not sure what you're asking
01:25:48reactormonkflaviu, are there typeclasses in the stdlib?
01:25:55reactormonksuperfunc, like syntaxes? ^^
01:27:18flaviureactormonk: I can't find any, no
01:28:11flaviuI grepped for 'generic ' and found nothing but comments
01:28:22superfuncspecifically, it has param. polymorphism, clean syntax, predictable performance(which is also fast), and a clean way of making variant types
01:28:25reactormonkflaviu, make an issue, we need this stuff ^^
01:28:35superfuncnot sure if variant is the right word
01:28:43flaviusuperfunc: It also has this: https://gist.github.com/flaviut/10515205/c6a84964da32847f4bd8ab9d4f52fbe1f6241e57
01:29:45flaviureactormonk: I'm not sure what you mean. Do you want the stdlib to use typeclasses? The docs cover type classes fairly well.
01:30:10reactormonkflaviu, yup, make the stdlib use them.
01:30:12superfuncI think he/she wants the language to define some useful typeclasses
01:30:38reactormonksuperfunc, aww, that's cute
01:30:48EXetoCthey're buggy still
01:31:05superfuncliving in california makes one very PC :3
01:31:16reactormonksuperfunc, I'm currently converting my laptop into a ballwarmer with nimrod
01:32:07superfunclol. I do agree that some pre defined type classes would be nice to have ala haskell
01:32:31reactormonksuperfunc, feel free to create them. You'll find a bunch of bugs I assume
01:32:54superfunclol, I have something big I'm already in the process of releasing to the community soon
01:33:01reactormonkcool
01:33:26reactormonkyup, just warpped my 100k sql inserts into a transaction, now it goes like wd40'ed
01:41:52superfunccan anyone speak to the quality of the SDL wrapper for nimrod?
01:42:14superfuncGonna start messing with some game stuff, just curious which graphical library is the most developed
01:42:27reactormonksuperfunc, there's been some word about opengl wrapping
01:46:49superfuncderp. it seems that the built in graphics module uses SDL
01:47:01superfuncthis is what happens on no sleep
01:50:30fowlsuperfunc, sdl is old, there is sdl2, glfw, csfml, allegro5, horde3d
01:51:20superfunctrue
01:51:36superfuncbut SDL is more than enough to write 2D games with, and I'm still somewhat familiar with it
02:05:46*Jesin joined #nimrod
02:07:28reactormonksqlite has a decent speed
02:09:58reactormonkwow, that fast fast.
02:11:47flaviuIs there a way to perform code generation for a module?
02:12:34reactormonkflaviu, did it with ruby once... macros?
02:13:13flaviuOk, it just seemed a bit ugly to make a one-time use function, but I guess that's the best way
02:25:54*xenagi quit (Read error: Connection reset by peer)
02:34:29*DAddYE joined #nimrod
02:48:57*ehaliewicz joined #nimrod
02:53:18*superfunc quit (Ping timeout: 240 seconds)
03:26:04flaviuI found another macro that crashes the VM :/
03:27:08flaviuI'll report it tomorrow
03:27:08flaviu/quit good night
03:27:13flaviu\quit good night
03:27:24*flaviu quit (Quit: Leaving.)
03:41:15*brson quit (Quit: leaving)
03:45:40*BitPuffin quit (Ping timeout: 240 seconds)
03:55:02*Jesin quit (Quit: Leaving)
04:03:46reactormonksomehow parseFloat doesn't really parse all that well
04:08:53reactormonk0.266064910040545 <- sql return string 0.0 <- when run parsefloat
04:34:57NimBotAraq/Nimrod devel 5859e80 Simon Hafner [+0 ±1 -0]: added an sqlite constant
04:35:09reactormonkoh, `$` on float
04:35:16reactormonkI think I'll have to fix it again :-/
04:48:19*superfunc joined #nimrod
04:48:52reactormonkhow would you create a sliding window?
04:57:32fowlsliding window?
05:05:14Skrylari think he means what i mentioned last night where you keep a rolling total of the lowest value so you don't try to insertion sort something you already know to be ineligible
05:07:02reactormonkfowl, https://stackoverflow.com/questions/22282486/scala-seq-sliding-violating-the-docs-rationale
05:15:08reactormonkfowl, or, X elements on either side of an element, if available.
05:34:46fowlyou can implement that
05:35:11fowli believe in you
05:40:42*Demos quit (Remote host closed the connection)
07:49:24*gXen joined #nimrod
08:01:49*cark quit (Read error: Connection reset by peer)
08:06:17*cark joined #nimrod
08:17:48*DAddYE quit (Ping timeout: 245 seconds)
08:22:44*DAddYE joined #nimrod
08:29:45*BitPuffin joined #nimrod
08:41:29*ehaliewicz quit (Remote host closed the connection)
08:47:52*fowl quit (Quit: Derogatory terms for gynecomastia can include moobs (for male boobs) and bitch tits.[34])
08:48:26*fowl joined #nimrod
08:48:46*DAddYE quit (Remote host closed the connection)
08:49:20*DAddYE joined #nimrod
08:53:45*DAddYE quit (Ping timeout: 258 seconds)
09:19:55*DAddYE joined #nimrod
09:24:25*DAddYE quit (Ping timeout: 258 seconds)
09:32:05*darkf quit (Ping timeout: 258 seconds)
09:39:13*darkf joined #nimrod
10:07:50*EXetoC quit (Quit: WeeChat 0.4.3)
10:20:46*DAddYE joined #nimrod
10:25:22*DAddYE quit (Ping timeout: 258 seconds)
10:32:18*superfunc quit (Ping timeout: 240 seconds)
10:36:37*nande quit (Read error: Connection reset by peer)
10:57:55*faassen joined #nimrod
10:58:07*runvnc joined #nimrod
11:13:33BitPuffindom96: okay so there is a couple of ways we could do a migration from the silly md5hash thing to scrypt
11:13:57dom96it's simple
11:14:04dom96new password field
11:14:13dom96if old password field exist then show password reset page
11:14:22dom96set the old password field to nil once reset
11:15:13BitPuffinyeah
11:15:18BitPuffinthat's probably the best way
11:15:49BitPuffineither that or manipulating the format and ask for passwords that have MD5YOBITCH at the start of them, but this is easier to query for indeed
11:16:22BitPuffinand then you can query for if there is a password that has the old way and if not, remove the column and update the code
11:16:59BitPuffinI think I'll have a look at it today
11:17:24BitPuffinI'll as for the sessions, we'll just do signed cookies or something for now probably
11:17:31BitPuffinand switch to session store later
11:19:14BitPuffinalternatively we could store sessions in sqlite but that feels a bit icky
11:19:53dom96that's what we do currently I think
11:21:33*DAddYE joined #nimrod
11:25:11BitPuffinah
11:25:22BitPuffindom96: then why are you even sending the password hash back and forth?
11:25:43*DAddYE quit (Ping timeout: 245 seconds)
11:30:06dom96I can't remember
11:33:10BitPuffindom96: aight, well I'll go and remove the derp and write the stuff
11:34:40BitPuffindom96: someone should get on getting an ssl cert for the login though
11:35:00BitPuffinand unless we wanna use a free one I'd imagine Andreas would be the one who'd pay for it
11:51:47*EXetoC joined #nimrod
12:05:06*isenmann quit (Quit: Leaving.)
12:22:18*DAddYE joined #nimrod
12:26:45*DAddYE quit (Ping timeout: 250 seconds)
12:40:32*DAddYE joined #nimrod
12:42:28*DAddYE_ joined #nimrod
12:44:54*DAddYE quit (Ping timeout: 258 seconds)
12:46:49*DAddYE_ quit (Ping timeout: 258 seconds)
12:50:52*oxful__ quit (Ping timeout: 240 seconds)
13:03:18*oxful__ joined #nimrod
13:28:11*faassen quit (Remote host closed the connection)
13:34:23*faassen joined #nimrod
13:43:03*DAddYE joined #nimrod
13:47:23*DAddYE quit (Ping timeout: 258 seconds)
13:48:23*jbe_ joined #nimrod
14:01:27*chris_st joined #nimrod
14:02:39chris_sthi -- curious why this fails: http://pastie.org/9087586
14:02:59chris_stError is "nhw_server.nim(11, 5) Error: value returned by statement has to be discarded"
14:03:05*darkf quit (Quit: Leaving)
14:03:18runvncI know that one
14:03:26runvncput discard at the beginning of the line
14:03:40EXetoC11?
14:03:44runvnc'discar'
14:03:48runvnc'discard'
14:03:49chris_stLine 11 is the "var mystr_content = "World"" line, so it seems silly to put a discard there... right?
14:04:38EXetoCis it even possible?
14:04:45dom96put 'discard' on line 24
14:04:48runvncoh. not sure then. but maybe you never used myster_content after that?
14:05:02chris_stNo, not possible on line 11... I'll try 24.
14:05:05dom96chris_st: Which version of Nimrod are you running?
14:05:29chris_st0.9.2
14:05:38*gXen quit ()
14:05:54EXetoCusing that version is not recommended
14:06:10chris_stAh, so I should build from the github source?
14:06:18dom96chris_st: the line number is wrong, that's like a 0.9.2 bug. Grab a version from github.
14:06:27dom96*likely
14:06:28chris_stAdding a discard on line 24 worked.
14:06:32EXetoCthere are nightlies too, right?
14:06:44EXetoCbut just take the github route if possible
14:06:51chris_stOkay, I'll give it a try.
14:06:58dom96it's easier to update if you build it yourself
14:06:58chris_stTHANKS!
14:07:06dom96but if you want a nightly tell me your platform
14:30:09jbe_i noticed that this: template blub(blip: varargs[TBlurb], bloop: stmt) does not work when the varargs parameter is longer than one.. should i add an issue about it?
14:31:34EXetoCI don't know what the plans are for that. varargs is usually the last parameter for that reason
14:31:38EXetoChow about an openarray?
14:32:11jbe_yeah.. but it would be useful for dsl stuff
14:32:48EXetoCthe difference isn't exactly big. it has been discussed a couple of times but I don't know if anyone ever reported it
14:34:22jbe_hmm ok
14:35:07BitPuffindom96: update the fucking teamspeak server, the client keeps nudging me like fuck xD
14:35:23BitPuffin2 times today already
14:35:24EXetoCreport it if 'varargs' doesn't turn up anything related
14:36:16jbe_right
14:40:15EXetoCI couldn't find any relevant issues
14:41:50*Puffin joined #nimrod
14:42:35*Puffin quit (Client Quit)
14:44:03*DAddYE joined #nimrod
14:44:34*Demos joined #nimrod
14:44:55jbe_i see that you can make it work by using openarray instead, or even using varargs while simply wrapping the parameters in [], but i'll add an issue
14:47:02*chris_st quit (Quit: Page closed)
14:48:43*DAddYE quit (Ping timeout: 258 seconds)
15:00:30*Jesin joined #nimrod
15:11:35*Demos_ joined #nimrod
15:13:05*Jesin quit (Quit: Leaving)
15:44:48*DAddYE joined #nimrod
15:49:17*DAddYE quit (Ping timeout: 258 seconds)
15:55:52*[2]Endy joined #nimrod
16:04:29Araqfunny how the same issue come up over and over
16:04:33Araq*issues
16:04:55Araqmaybe we're doing incredibly good and so only these few issues are left :P
16:05:45reactormonkAraq, hmm, sql too slow sometimes
16:05:57reactormonkand I seriously oom'd my machine
16:06:31Araqreactormonk: you can tell sqlite too act as a simple RAM buffer
16:07:36reactormonkAraq, I think it was the nimrod side because I started to count some stuff via TCountTable
16:07:50reactormonkand I've got ~50k * 100 elements in there
16:09:34Araqsounds like you want to start using manually managed memory and perhaps cstring
16:11:39reactormonkAraq, I'll try again with the bigger machine
16:12:11EXetoCmake sure that it got bigger hardware too
16:12:53reactormonkit's got 50G of swap
16:12:56reactormonk... just in case
16:13:12EXetoC:E
16:13:23reactormonkand 16G of real ram
16:13:28reactormonkhope that's plenty.
16:14:10jbe_unhh.. "Error: template/macro instantiation too nested" http://pastebin.com/grRKSecG am i doing something wrong?
16:14:53reactormonkjbe_, recursion?
16:15:09reactormonkjbe_, apparently you can't have a template within a template...
16:15:14reactormonkbut that sounds trange
16:17:49reactormonkAraq, how come cstring?
16:19:18jbe_hm, well, scope would be confusing if i could i guess
16:19:55reactormonkAraq, it's at 4G atm... should be fine
16:24:31reactormonk&G
16:24:33reactormonk*6G
16:24:56reactormonkI think I should have pipelined the stuff directly into SQL instead of storing it
16:30:02Araqjbe_: nope, report it, I will take a look
16:30:34jbe_Araq: ok
16:30:38Araqreactormonk: erm yeah ... also you can often easily make it incremental when you have persistency
16:30:59reactormonkAraq, didn't. Now it's writing to disk, so I should be fine
16:31:14reactormonknow it's harddrive speed, not code ^^
16:37:04reactormonkthat thing actually has spikes like 150M/s written
16:38:03*askatasuna joined #nimrod
16:41:17*jbe_ quit (Quit: Leaving)
16:42:20reactormonknow it's defunct :-(
16:44:57Araqwow you surely know how to treat harddisks
16:46:19reactormonkwhip them back and forth!
16:46:44reactormonkAraq, I think I should have run it on the HD :D
16:48:13reactormonks/HD/ramdisk/
16:54:52*nande joined #nimrod
17:03:51*q66 joined #nimrod
17:03:51*q66 quit (Changing host)
17:03:51*q66 joined #nimrod
17:04:45*DAddYE joined #nimrod
17:06:14BitPuffinAraq: https://www.youtube.com/watch?feature=player_detailpage&v=1aZSsTcoPRM#t=1365 oops
17:06:49BitPuffinthat was kinda funny xD
17:07:27*Demos_ quit (Read error: Connection reset by peer)
17:10:33*brson joined #nimrod
17:11:06*Jesin joined #nimrod
17:11:53*Demos quit (Ping timeout: 250 seconds)
17:12:55*Jesin quit (Read error: Connection reset by peer)
17:13:38*Jesin joined #nimrod
17:14:01*Jesin quit (Read error: Connection reset by peer)
17:16:15*Jesin joined #nimrod
17:22:11VarriountAraq: Are there any pull requests you would like me to look over and possibly merge?
17:22:34AraqVarriount: dunno, I don't really follow github issues atm
17:23:07AraqI'm busy solving the hard stuff for 0.9.4
17:23:17VarriountAh, I see.
17:24:38Araqbbl
17:34:32*gXen joined #nimrod
17:37:07NimBotAraq/Nimrod devel 1c89c45 Grzegorz Adam Hankiewicz [+0 ±2 -0]: Adds option to exclude nimcache dirs from time machine backups.
17:37:07NimBotAraq/Nimrod devel 63d384d Varriount [+0 ±2 -0]: Merge pull request #1100 from gradha/pr_excludes_nimcache_from_backups... 2 more lines
17:39:35*CarpNet quit (Quit: Leaving)
17:53:15*Matthias247 joined #nimrod
18:03:12VarriountHow would I test for the HAVE_ST_BIRTHTIME defined symbol from nimrod, as done here -> http://stackoverflow.com/questions/5929419/how-to-get-file-creation-date-in-linux
18:06:17*gXen quit ()
18:07:30*psquid_ joined #nimrod
18:07:40*psquid quit (Ping timeout: 258 seconds)
18:09:47*Demos joined #nimrod
18:09:58reactormonkVarriount, IIRC you need a c file for that
18:10:36VarriountDarn.
18:11:12Varriountreactormonk: What kind of C file?
18:23:09*nande quit (Ping timeout: 265 seconds)
19:07:25*Demos quit (Ping timeout: 276 seconds)
19:11:30BitPuffindom96: oi
19:26:10reactormonkVarriount, just make a good old .h file
20:07:09AraqVarriount: 'gorge' ftw
20:10:19*io2 joined #nimrod
20:12:59EXetoCso hacky, but better than nothing I guess
20:13:08reactormonkAraq, gorge?
20:13:22EXetoCsystem.gorge
20:13:57EXetoCstaticExec alias
20:14:05reactormonkO.o
20:14:11reactormonkwhere's that name from
20:14:11EXetoC:p
20:14:39EXetoCenglish?
20:15:09reactormonkEXetoC, why the fuck is this proc alias to gorge
20:15:47EXetoC"gorge (staticExec): To eat gluttonously.", "slurp (staticRead): To eat or drink something noisily." :-)
20:16:17EXetoCreactormonk: no practical reason
20:16:21reactormonkEXetoC, :-(
20:16:34reactormonkI actually consider to kick it.
20:17:11EXetoCAraq: funny aliases not appreciated :p
20:17:20BitPuffinriddle me this
20:17:27BitPuffinwhy the fuck does the RST parser require libcairo
20:17:46AraqBitPuffin: it doesn't
20:17:56Araqwe use libcario for capture generation
20:18:10BitPuffinah
20:18:12BitPuffinread that wrong
20:18:18BitPuffincaptcha*
20:18:21EXetoCfail
20:18:33BitPuffinI'm a bit tired
20:18:47Araqslurp and gorge are the cornerstone of the nimrod philosophy!
20:19:01Araqremove them and it's not nimrod anymore
20:19:07EXetoCreactormonk: that's right
20:19:13BitPuffinwtf is slurp and gorge
20:19:56EXetoCread and stuff
20:20:03BitPuffinshh
20:20:38BitPuffinEXetoC: "english" what a bitch you are ;)
20:20:44BitPuffinMR DIVA
20:21:41EXetoC?
20:22:23BitPuffinEXetoC: earlier regarding the quesion where the name came from
20:23:20reactormonkAraq, I've heard of slurp...
20:24:20BitPuffinis this a bug? 11009431
20:24:22BitPuffinoope
20:24:26BitPuffinhttps://gist.github.com/BitPuffin/11009431
20:24:32BitPuffindom96: so much for fixing nimforum I guess :P
20:29:59*vendethiel quit (Read error: Connection reset by peer)
20:34:11*vendethiel joined #nimrod
20:34:29*runvnc quit (Ping timeout: 258 seconds)
20:40:31*vendethiel quit (Read error: Connection reset by peer)
20:41:30VarriountIs there any particular logic behind disallowing 'when' inside type definitions, for conditional compile-time fields?
20:42:08*vendethiel joined #nimrod
20:43:37*EXetoC quit (Ping timeout: 276 seconds)
20:45:04*jbe joined #nimrod
20:45:44*runvnc joined #nimrod
20:51:08fowlVarriount, it is allowed inside object definition
20:51:39*EXetoC joined #nimrod
20:52:52VarriountOh.
20:53:45Varriountfowl: What happens if the members in importc'd structs are named differently than their actual definitions?
20:54:30fowlyou can importc specific fields
21:00:41*brson quit (Ping timeout: 250 seconds)
21:00:53*brson joined #nimrod
21:05:47*DAddYE quit (Remote host closed the connection)
21:06:59*Demos joined #nimrod
21:08:40*DAddYE joined #nimrod
21:10:17renesacok, I made a new clone, but now I don't know how to update my fork on github
21:10:46fowldelete it
21:11:34renesacok, I will be able to reuse the name, right?
21:11:43*superfunc joined #nimrod
21:17:43fowlyea u can just fork it again
21:18:36*[2]Endy quit (Ping timeout: 265 seconds)
21:21:32renesacok, looks like it worked!
21:22:15Demoshow do methods interact with closures?
21:23:16Demosthe dispatch mechanism is global so theoreticly one should be able to use a method as a "procvar", right?
21:24:01*nande joined #nimrod
21:30:22Demosalso how do methods interact with scope?
21:35:02*nande quit (Ping timeout: 265 seconds)
21:36:08fowlDemos, it would be hard to grab a method since they would all have the same name
21:36:47Demosright, you grab all of them. I guess you would grab the dispatching code
21:37:06BitPuffindid you guys know about cd -?
21:37:11BitPuffinbecause when I found out
21:37:13Demoswhat is that
21:37:14BitPuffinmy mind was blown
21:37:22BitPuffinDemos: well say you are somewhere
21:37:25BitPuffinand you wanna go homo
21:37:27BitPuffinI mean home
21:37:29BitPuffinoh god
21:37:41BitPuffinso you type `cd`
21:37:46BitPuffinand you do some stuff
21:37:56BitPuffinand then you wanna go back to where you were before
21:38:01BitPuffin`cd -`
21:38:02BitPuffindone
21:39:24Demosheh I remember my dad telling me about aliasing that to pd on the university PDP-11
21:39:28EXetoCI only knew about pushd/popd, but that's better
21:39:33BitPuffinDemos: I'm assume your delay in response is because you were busy wiping cum off your keyboard
21:39:40Demosindeed it was
21:39:59*ScriptDevil joined #nimrod
21:40:20*ScriptDevil left #nimrod (#nimrod)
21:40:38BitPuffinunfortunately it doesn't keep all history
21:40:52BitPuffinif you do cd - over and over it basically dances back and forth
21:40:56BitPuffinmaybe that's configurable
21:41:00BitPuffinor actually it's kinda cool
21:41:03BitPuffinnow that I think about it
21:42:54renesacBitPuffin, in my .bashrc I have an popd/pushd aliased to cd that keeps all the history
21:44:56BitPuffinrenesac: that's pretty good, I guess where this shines is that ones you pop you can't go back
21:48:17*io2 quit ()
21:49:29*ehaliewicz joined #nimrod
21:51:29renesacand you can still alias the builtin cd to 'ocd' or something like that
21:51:33renesacif you want to go back and forth
21:53:02BitPuffinyep
21:59:24*jez0990 joined #nimrod
22:00:05jez0990hey folks, does anyone know if the nimrod compiler compiles into js?
22:01:33Demosit does. not sure how well it works
22:01:54Demosand ofc you can not use stuff that does not make sense in JS
22:02:15Demosdear god reading software engeneering papers is depressing
22:02:51superfuncmy software engineering class is cringeworthy
22:04:49Demosmy impression is that total lines of code is pretty much the only really strong indicator of software quality/defect-rate.
22:05:57superfuncMy professor says loose-coupling and cohesion every single class
22:06:31superfuncwithout context, just loves throwing software buzzwords into the mix
22:08:34Demosthat kind of java style "software engeneering" comes down to cargo culting and magic
22:15:46jez0990Demos: cool, I'll give it go :)
22:15:57Araqhi jez0990 welcome
22:16:17Araqlatest github version has important fixes for the js code generator
22:16:49AraqDemos: any experience with c++'s futures?
22:17:33DemosAraq: no. I do not think they are standard yet
22:17:45Araqthey are
22:17:54Araqin C++11
22:18:18Demosyeah they indeed are standard
22:18:51AraqI won't why they split them into "promise" and "future". can't find any good explanations for this
22:18:57Araq*don't get
22:32:18Demoswell there is packaged_task, I /think/ it is because the promise is the way you get a value from thread a to thread b and the future is how it is computed. bartosz milewski has a collection of blog posts about the design
22:32:21DemosI gotta go though
22:33:20*psquid_ is now known as psquid
22:33:23Araqok, bye
22:36:30BitPuffinman docker is freaking awesome
22:37:09*Demos quit (Ping timeout: 258 seconds)
22:37:35*jbe quit (Quit: Leaving)
22:38:37superfuncI know SDL2 has iOS support, I wonder how well a game written with nimrod and the SDL2 wrapper would fare
22:38:57reactormonkjez0990, coding in emacs?
22:39:31reactormonksuperfunc, depends on the game :>
22:40:10BitPuffinsuperfunc: exellently
22:40:20superfuncI really just mean, how much work it would take to get it running, if any
22:40:52BitPuffinsuperfunc: probably not that much, problem is that if you ever wanna use anything outside of xcode you are in for a world of pain
22:41:25superfuncyep
22:41:46superfuncjust working on a desktop game, considering the possibilities for when its finished
22:42:10BitPuffinshould be possible without too much hassle
22:42:10superfuncdon't wanna write more obj-c than nec. haha
22:42:21BitPuffinjust that xcode outside of xcode is a bitch
22:43:14dom96BitPuffin: Why do you need me to fix nimforum?
22:43:29BitPuffindom96: I didn't say that what are you on about
22:43:58BitPuffindom96: I linked to an error I got when trying to run it and asked everyone if that's a bug and then said so much for fixing nimforum
22:44:04BitPuffinI didn't say you should fix nimforum
22:44:06BitPuffinyou are drunk dom
22:44:14BitPuffinsober up, get with the times
22:45:33*wan quit (Ping timeout: 250 seconds)
22:46:44*wan joined #nimrod
22:47:24dom96BitPuffin: pff, drinking makes you cool so I am with the times :P
22:48:08dom96but yeah, i'm tired, sorry.
22:49:56BitPuffindom96: how dare you say such a horrible thing alcohol is evil as fuk
22:50:00BitPuffinjk
22:50:02BitPuffinit's fine
22:50:11BitPuffinmet måtta, som med allt i livet
22:50:13BitPuffinmed*
22:50:36BitPuffindom96: why are you so tired
22:50:44dom96BitPuffin: been studying all day
22:51:44BitPuffindom96: so you're saying you don't already know everything :/?
22:53:10dom96Well I do know all the useful things :P
22:53:31BitPuffindom96: except how to play dota
22:53:55dom96I think you and me have a very different definition of 'useful'
22:54:25dom96So servo is passing acid 2. Maybe someone should write a browser engine in Nimrod?
22:54:39*Skrylar pushes dom96 in to a cardboard box
22:55:04*dom96 slaps Skrylar
22:55:06*fowl puts on his sunglasses and erases everyones memory
22:55:18fowldom96, you were talking about a new game you enjoyed?
22:55:19*Skrylar reboots the computer
22:55:28dom96"DENUERYLE--"
22:55:34BitPuffinermagerd I managed to recover memory using heartbleed
22:55:37BitPuffinbecause you called free
22:55:43BitPuffinbut it was actually never freed ;)
22:55:54Skrylaranother reason why C sucks. :D
22:56:06Skrylari once surmised that the majority of PC security issues are because people used C
22:56:27BitPuffinSkrylar: had nothing to do with C what so ever
22:56:29Skrylarwhoops i didn't check this one buffer now the whole system is pwned
22:56:46BitPuffinSkrylar: same thing would have happened if someone wrapped alloc in nimrod
22:56:47SkrylarBitPuffin: i thought it had to do with it not verifying the size of a data request in one particular spot
22:57:04BitPuffinSkrylar: yes, but that would have crashed if they didn't use their own free and malloc
22:57:18dom96BitPuffin: Same thing would have happened if someone used 'unsafe' in Rust.
22:57:33Skrylarpeople look at you if you put 'unsafe' in code though
22:57:35BitPuffinSkrylar: basically, they had their own free which just pooled it in to a LIFO buffer
22:58:01BitPuffinif they would have used the operating system's free it would have crashed for accessing memory which wasn't theirs
22:58:08BitPuffinbut since the process did own the memory it didn't crash
22:58:13dom96I look at people if they use alloc or cast in Nimrod :P
22:58:16Skrylari think its a bit easier to deal with code where you can check for the most Bad code by grepping a keyword
22:58:31BitPuffindom96: you can probably achieve the same thing with GC as well
22:58:38BitPuffinwith like object pooling or something
22:58:42Skrylardom96: i use cast in my event processor :\
22:58:48BitPuffinhowever I guess it would still require some shit
22:58:51BitPuffinso no
22:58:53BitPuffinbut still
22:58:56BitPuffinit wasn't C's fault
22:58:57dom96Skrylar: Why? :\
22:59:06BitPuffinit was because they were fucking idiots who wrapped malloc and free
22:59:14BitPuffinin the most insecure way possible as well
22:59:19Skrylardom96: it has to do with derping around generics
22:59:24BitPuffina god damn LIFO pool
22:59:25BitPuffingod damn it
22:59:37*BitPuffin gets all worked up thinking about it
22:59:58Skrylardom96: because there is no 'central' union for event types, it can't do the 100% typesafe way. so it does it by having a UID assigned to a type which then has a type-safe input interface and internally verifies the UIDs to re-establish typesafety on the way out
23:00:17BitPuffindom96: and you have to use alloc and free in nimrod for hardcore multithreading B)
23:01:12dom96Rust's memory safety is nice and all, but the majority of programmers are lazy and they will simply say "meh, let's get around this annoying compile-time error by using 'unsafe', what's the worst that could happen?"
23:01:13Skrylari need to peek in that module again some time
23:02:10BitPuffindom96: indeed, and we have memory safety if you don't use ptr, pointer, or cast
23:02:12dom96That said, I am almost religiously in love with Nimrod now so I will criticise every other language in whatever way I can :P
23:02:27BitPuffinand if you don't return ref I guess
23:02:37Skrylarwhy would returning ref be a problem
23:02:58dom96Skrylar: link to code?
23:03:01Skrylarnew(blah) init(blah) return blah # blah is still known to the GC?
23:03:11BitPuffinSkrylar: think it's something like proc pwnd: ref TObject = new(result)
23:03:16EXetoCdom96: well, I can say objectively that Nimrod wins at everything
23:03:45SkrylarBitPuffin: that will just give you an object with random crap in the fields
23:03:45dom96EXetoC: are you sure about that? :P
23:03:58Skrylarits not more dangerous than assigning random crap in the fields yourself
23:04:02BitPuffinSkrylar: well I can't remember what it was exactly, but for some reason it doesn't free
23:04:10Skrylarsecurity code should already be manually bzero'ing objects on deletion anyway
23:04:22*Demos joined #nimrod
23:04:29EXetoCdom96: yes
23:04:31BitPuffinbecause ownership isn't released ever or something
23:04:36BitPuffinso the refcount never goes to zero
23:04:39SkrylarBitPuffin: sounds like a bug?
23:04:49BitPuffinSkrylar: never said it was a security issue, it's a leak
23:04:58BitPuffinSkrylar: yes but it's also a feature
23:05:04Skrylardom96: https://github.com/Skrylar/Skylight/blob/master/skylight/dynemaps.nim here is the version that doesn't make araq cry
23:05:07BitPuffinbecause returning ref is needed
23:05:14BitPuffinand Araq don't know how he wants to solve it yet
23:05:21BitPuffinrust solved it with something called named lifetimes
23:05:24Skrylarhttps://github.com/Skrylar/Skylight/blob/master/skylight/dynequeue.nim this one is neat but it makes the GC sad
23:05:26BitPuffinnot sure if we'll do the same
23:06:36Skrylarlifetimes are because they ditched their GC
23:06:48BitPuffinaha
23:06:50Skrylara lifetime in rust is a static assertion that your pointer will not be invalidated at any point
23:07:09Skrylare.g. you cannot store a pointer to a member OUTSIDE of the object, because there is no guarantee the original object will always be available
23:07:19Skrylarwith a GC, there is no need for a lifetime because it will just incref the outer poitner
23:07:34BitPuffinah
23:07:39BitPuffinwell then I dunno
23:07:45BitPuffindon't have intimate knowledge with rust
23:07:46SkrylarI kind of prefer having the GC to be honest, because lifetimes are a pain in the ass for polymorphic code
23:07:56BitPuffinthanks to EXetoC and dom96 I'm stuck with nimrod
23:08:15Skrylardid they kidnap you and threaten to force you to solve a haskell puzzle if you try to escape
23:08:24BitPuffinSkrylar: I just feel it looks like a pain in the ass to have to type out the bullshit all the time lol
23:08:34dom96Yes, nerve gas will be released in your house if you betray us.
23:08:36Skrylaryeah well, its an architectural pain too
23:08:40BitPuffinI like haskell
23:08:51Skrylarif you want to write a GUI you basically have to do lookup codes for everything
23:08:52fowlwe should write up some billion year contracts
23:08:56fowlscientology style
23:09:10Skrylaronly if you promise to make the singularity happen :P
23:09:14dom96We should actually make a Church of Nimrod
23:09:15BitPuffindom96: and yet I can barely write a game because I can't get my math library functioning -_- nor my website because nimrod compiler hates mac
23:09:25BitPuffinnimchurch
23:09:27dom96That way we can get donations to work on the compiler.
23:09:37Skrylarthe church of case insensitivity
23:09:44*wan quit (Ping timeout: 258 seconds)
23:09:46dom96s/case/style/
23:09:48BitPuffinwe need a killer app for nimrod
23:09:53fowlBitPuffin, why dont u just use ranges instead of static int for ur matrices
23:10:05Skrylarkiller apps need infinite shit
23:10:13BitPuffinfowl: because it made some stuff that didn't work before
23:10:18BitPuffinbut has its own bugs
23:10:30BitPuffinand I want to use what the actual api will be
23:10:34Skrylari have a few apps i want to make but i keep getting saddled with GUI work xD
23:10:34BitPuffinranges for this is silly
23:10:39BitPuffinwell
23:10:51BitPuffinruby has rails, python has django, Go has Docker
23:11:08dom96We have Jester.
23:11:11Skrylarbut a web framework brings web derps
23:11:14*BitPuffin facepalms
23:11:15fowlBitPuffin, ok well if you need to a write a game then u need 3x3 or 4x4 matrices, just write what u need and fix it later
23:11:38BitPuffinfowl: yeah like I announced yesterday I'm probably gonna introduce linagl/boring/vector and linagl/boring/matrix
23:12:03*Demos quit (Ping timeout: 240 seconds)
23:12:24dom96BitPuffin: your game will probably only use 1% of your linagl lib
23:12:33dom96Seriously, just write what you need and make it work.
23:12:41dom96You can make it use your lib later
23:12:49BitPuffindom96: I don't even have everything I need in linagl yet :P
23:13:05dom96BitPuffin: what kind of game do you wanna make?
23:13:08Skrylari wish i could say the same for font code
23:13:17BitPuffindom96: my current project is an abstract horror game
23:13:25dom96BitPuffin: 3D?
23:13:56BitPuffinabstract because in july our genitals will no longer be separated by the ocean, merely terrain, and I won't have powerful hardware to run it on, solely a laptop
23:13:59BitPuffindom96: yes
23:14:15EXetoCpolygons?
23:14:20BitPuffinyes
23:14:22BitPuffinopengl
23:14:38dom96BitPuffin: fun
23:14:46dom96BitPuffin: I wanna help :P
23:14:48BitPuffindom96: genitals?
23:14:58EXetoCmouse or keyboard aiming?
23:15:05BitPuffinEXetoC: moose
23:15:18dom96damn, where am I going to get a moose?
23:15:18EXetoCthat's a good idea nowadays
23:15:28dom96Does it use a standard USB connection?
23:15:31BitPuffinhttp://www.epa.gov/glnpo/image/vbig/104.jpg next gen input device
23:15:45BitPuffindom96: no it only works with PS/2
23:15:56BitPuffinbecause USB has too much latency
23:16:03dom96So, do I mount it and then try to control it by it's horns?
23:16:07BitPuffinPS/2 uses interrupt and so it's realtime
23:16:19BitPuffinyeah you sit on top of it
23:16:34BitPuffinand then the game is based on you riding on it
23:16:41dom96Wow. People will be amazed.
23:16:41BitPuffinand wherever it walks you walk in the virtual world
23:16:45dom96This is truly innovative.
23:16:56fowlBitPuffin, can you see if my project at github/fowlmouth/flaming-nemesis compiles?
23:16:57BitPuffinit will build a virtual version of your surrounding as well drawn with an abstract dark look
23:17:03BitPuffinso it will be truly terrifying
23:17:15*askatasuna quit (Ping timeout: 240 seconds)
23:17:18BitPuffindom96: for sure this will put nimrod on the map
23:17:51dom96I had this idea for a game where the map is generated from HTML web pages.
23:17:53fowlBitPuffin, you dont need enet, nimrod c -p:"src" -p:"games" -p:"src/net" -d:useAllegro games/skel && ./games/skel
23:17:59BitPuffinfowl: yes if you give me the git clone so I can clone it dirrectly
23:18:05BitPuffinand the command etc
23:18:10dom96So it's a rendering of a web page, and you fight inside websites or something
23:18:12BitPuffinmake me a oneliner
23:18:32BitPuffindom96: I believe there is already stuff like that
23:19:00fowlBitPuffin, git clone [email protected]:fowlmouth/flaming-nemesis.git && cd flaming-nemesis && nimrod c -p:"src" -p:"games" -p:"src/net" -d:useAllegro games/skel && ./games/skel
23:19:12dom96BitPuffin: bah. I'm sure they're crap though :P
23:19:49fowlBitPuffin, you are on os x right?
23:20:00BitPuffinyes boi
23:20:10fowlbless your heart
23:20:18fowlusing that crippled os so that others dont have to
23:20:41SkrylarI liked my mac :\
23:21:08dom96I've always hated Macs
23:21:09BitPuffinfowl: cannot open signals
23:21:16BitPuffinSkrylar: it is the worst thing in life
23:21:21BitPuffinother than widows
23:21:26fowlBitPuffin, you'll need signals.nim from babel
23:21:51BitPuffinError: undeclared identifier: 'bottom='
23:21:58BitPuffinalgui.nim(424, 9)
23:23:11*wan joined #nimrod
23:23:13BitPuffingamestates.nim(2, 0) Info: instantiation from here
23:23:39fowlBitPuffin, update fowltek and do again
23:24:42BitPuffinfowl: https://gist.github.com/BitPuffin/11016944 have fun
23:26:45fowlBitPuffin, fixed
23:27:18BitPuffincompiles
23:27:20BitPuffincould not import: al_toggle_display_flag
23:27:30BitPuffinwait
23:27:39BitPuffinit's probably because you build for 5.0 or something
23:27:43BitPuffinI don't have that and never will :P
23:27:52BitPuffinor wait
23:27:58*Mordecai joined #nimrod
23:28:01BitPuffinmy local version of allegro5 in babel is 5.1
23:28:04BitPuffinso no
23:28:06BitPuffinthat's not why
23:28:18*Mordecai is now known as Guest59079
23:28:30fowlcheck your display.h plz
23:28:41BitPuffincheck for what?
23:28:54fowlit doesnt say that function isnt 5.1
23:28:56fowlin the manual
23:29:16*psquid quit (Ping timeout: 240 seconds)
23:29:19BitPuffinpattern not found al_toggle
23:29:40*darkf joined #nimrod
23:30:20fowl"Rename al_toggle_display_flag to al_set_display_flag, retaining the older name for compatibility."
23:31:22BitPuffinprobably requires me rebuilding al 5.1
23:32:16fowlBitPuffin, remove the old function that they turned into a macro for source compatibility
23:33:36*xenagi joined #nimrod
23:34:19Skrylari should probably look in to this babel thing
23:34:46EXetoCdude. of course
23:35:28BitPuffinfowl: wat
23:57:30EXetoCwot