<< 16-04-2014 >>

00:01:14VarriountAraq: My getFileInfo addition is almost done. I just need to add support for birthTime, check that the _get_osfhandle native call is available on all compilers, and finish up the unit tests.
00:03:51*askatasuna joined #nimrod
00:06:26reactormonkflaviu, the model is 744MB
00:08:22flaviuI guess the PStream would work best, I doubt you can make it fit the json in memory
00:25:29reactormonkdid work best
00:25:51flaviuHow big was the output?
00:28:20reactormonkthe 750m
00:29:23reactormonkmostly zero, let's see if there's an error somewhere...
00:38:15*DAddYE_ joined #nimrod
00:39:06*DAddYE__ joined #nimrod
00:40:15*DAddYE__ quit (Remote host closed the connection)
00:41:45*DAddYE quit (Ping timeout: 258 seconds)
00:42:37*DAddYE_ quit (Ping timeout: 250 seconds)
00:58:26*nande joined #nimrod
01:14:25*q66 quit (Quit: Leaving)
01:19:36*brson quit (Ping timeout: 265 seconds)
01:21:17*brson joined #nimrod
01:24:04BitPuffinSkrylar: does not really apply in this case though but I see your point
01:35:59*mwpher joined #nimrod
01:36:12reactormonkI think the scala version might still be faster, but drinks memory as fuck.
01:37:47flaviureactormonk: Enable profiling and see what you get
01:39:53*mwpher_ joined #nimrod
01:41:17*DAddYE joined #nimrod
01:41:50*mwpher quit (Ping timeout: 265 seconds)
01:41:50*mwpher_ is now known as mwpher
01:43:44reactormonkflaviu, nimrod profiling?
01:43:47reactormonkI missed that one.
01:44:01flaviuYep, pretty neat: http://nimrod-lang.org/estp.html
01:44:16BitPuffinbrb
01:44:40*mwpher quit (Client Quit)
01:45:27EXetoCwaowaowowoa
01:45:46*DAddYE quit (Ping timeout: 258 seconds)
01:48:47*BitPuffin quit (Ping timeout: 252 seconds)
01:50:27*psquid joined #nimrod
01:51:40*Guest6461 quit (Ping timeout: 240 seconds)
02:14:51reactormonkflaviu, http://sprunge.us/RKOY hmmm
02:17:43flaviuassign.nim:129 var src = src # ugly, but I like to stress the parser sometimes :-)
02:19:03*DAddYE joined #nimrod
02:29:39*OrionPK quit (Ping timeout: 250 seconds)
02:33:33fowlflaviu, that not ugly, sometimes you need a local copy
02:34:00*Demos joined #nimrod
02:35:17Demosugh why do hardware configuration programs suck so much
02:35:31Demosmakes xorg.conf look like the best UX ever
02:37:40*Jesin joined #nimrod
02:38:36*Demos quit (Read error: Connection reset by peer)
02:39:20*Demos joined #nimrod
02:41:23flaviufowl: Not my code, but its a two line method where the second line just delegates to another method that doesn't need a var
02:41:41*Jesin quit (Client Quit)
02:43:23flaviuNever mind, I see. It calls addr on src, so it needs that copy
02:46:07*Jesin joined #nimrod
02:49:22reactormonkcan I iterate over the values of a table and modify it the same time?
02:49:30reactormonkor is that undefined behaviour.
02:50:21fowlreactormonk, mitems()
02:50:39*BitPuffin joined #nimrod
02:50:40reactormonkfowl, I want to delete some of them
02:51:13reactormonk*some of the items
02:53:07fowlo
02:53:28fowlmake a list of keys to delete and do it after iteration
02:54:11reactormonkhmm, that's gonna be big
02:55:23reactormonkuhm, do we have a sortBy somewhere?
02:55:55fowlalgorithm module
02:56:02fowlsort()
02:57:09reactormonkI'm not exactly sure my commit permissions correlate with my nimrod knowledge
02:58:07fowlyou are the prime minister of git
02:58:21fowldont worry about it
02:59:03reactormonkBOW TO ME
03:04:02*BitPuffin rises
03:06:33*nande quit (Ping timeout: 245 seconds)
03:08:13reactormonk relevantContexts = accumulateSeq(cc.pairs).sort(proc (a, b: tuple[string, int]) = cmp(b[1],a[1]))
03:08:17reactormonk^ find the syntax error
03:10:09fowllol
03:10:41fowlreactormonk, i think the proc you send to sort has to return -1 0 or 1
03:11:18fowlother than that i dont see any error
03:12:12fowlalthough accumulateSeq probably need to be assigned to a var
03:13:05fowlreactormonk, sort doesnt return a seq, its for sorting in place
03:15:20Skrylarmeep
03:15:33Skrylari have a pet peeve about methods named "sort"
03:15:44Skrylarthere are at least a dozen types of sort
03:17:04reactormonkfowl, oh, int?
03:17:05flaviuI hate compare functions with +1,0,-1. Why not just use an enum, which has 0 overhead and is 100x clearer
03:17:20reactormonkfowl, and I assume cmp does exactly that?
03:17:32Skrylarwell, in nimrod the compare function is a boolean
03:17:42SkrylarIIRC x > y is templated back to x < y
03:17:46Skrylar* y < x
03:18:28flaviu> fowl: reactormonk, i think the proc you send to sort has to return -1 0 or 1
03:19:29flaviuSo someone, somewhere, has decided that they prefer the weird version
03:19:47reactormonkflaviu, true false and nil otherwise?
03:20:09flaviuI don't know, sorry.
03:21:03reactormonkrelevantContexts = targets.sort(proc (a, b: tuple[string, int]): int = cmp(b[1],a[1]))
03:21:09reactormonkError: ':' or '=' expected, but found ']'
03:23:28fowlreactormonk, oh you have a tuple without types
03:23:54fowltuple[key:string,val:int]
03:24:18fowlflaviu, how does an enum have less overhead than an int
03:24:20reactormonkfigured
03:24:27reactormonklib/system.nim(1882, 2) Error: undeclared identifier: 'result'
03:24:31reactormonkwhen using accumulateResult
03:24:32flaviufowl: Enums are aliases for ints
03:25:18flaviuYou can do type Foo = enum a=1, b=2, c=3
03:27:02fowlless overhead, where?
03:28:22flaviuI said 0 overhead compared to ints. They are basically alias for ints, so they have equal performance as an int.
03:28:40fowleh
03:28:40fowlok
03:29:33flaviuif an int's performance is 100%, an enum has 0 overhead, so 100%+(100*0) = 100%. Sorry if my wording was unclear
03:29:37reactormonkError: cannot infer the type of the sequence
03:29:40reactormonkah, sad story
03:29:42*tyler joined #nimrod
03:30:06*tyler is now known as Guest75193
03:30:31*Guest75193 is now known as TylerE
03:30:44*TylerE quit (Client Quit)
03:30:55*TylerE joined #nimrod
03:31:09reactormonkError: expression 'sort(targets, proc (a, b: tuple[key: string, value: int]): int =
03:31:11reactormonk result = cmp(b[1], a[1]), Ascending)' has no type (or is ambiguous)
03:31:19BitPuffinfowl: you gonna test and merge or wat
03:32:54fowlreactormonk, sort sorts in place
03:36:59*flaviu quit (Quit: night)
03:37:21fowlBitPuffin, yes i keep getting distracted >_>
03:37:39BitPuffinfowl: hahah :)
03:41:32reactormonkI really wish I could just type .map(_.value) for getting something out of a tuple :-(
03:42:48BitPuffindo et
03:42:49BitPuffinnaooo
03:44:34fowlreactormonk, probably possible
03:45:16fowlreactormonk, i think i can do that :D give me a few mins
03:46:21BitPuffin*ahem*
03:46:31reactormonkfowl, .mapIt(it.value) :-/
03:46:45reactormonkanyway, I would like targets.keys[0..1999].toSet to work
03:46:54fowlis that a thing? mapIT?
03:46:57reactormonkyup
03:47:09fowli was going to write an &. macro
03:47:21reactormonkcheck sequtils
03:47:42fowl&.x would return proc(it:auto):auto=it.x
03:48:10reactormonkauto works?
03:48:16fowlmhm
03:48:22fowlBitPuffin, i already merge
03:48:23fowld
03:49:35*askatasuna quit (Ping timeout: 258 seconds)
03:52:03reactormonkhmm, no del for counttables?
03:56:36BitPuffinfowl: did you test it?
03:58:34*brson quit (Quit: leaving)
03:58:56reactormonkapparently nope. hm...
04:09:25fowlBitPuffin, visually
04:14:06Skrylarwat
04:14:16Skrylarnimrod is trying to do boolean and instead of binary and
04:23:26fowlthen give it numbers instead of bools lul
04:26:22Skrylarself.uint32 and button.uint32.ButtonMask
04:26:31Skrylarbuttonmask(uint32): uint32
04:26:33Skrylar:|
04:27:59fowldid u import unsigned
04:31:12Skrylaryerp
04:33:38Skrylartime to go through the usual "something broke, update and rebuild compiler" dance :b
04:34:21Skrylarfull compiler build in <20 seconds... i continue to be amazed
04:35:25Skrylaroh. well thats what went wrong
04:35:38SkrylarIt doesn't understand that ButtonMask returns a uint32 and so it gets confused
04:38:59reactormonkmuh, the sorting algorithm is tii slow
04:39:22reactormonklooks like I have to implement my own stuff
04:41:52Skrylarreactormonk: i did an insertion sort somewhere
04:42:05Skrylarwhat are you trying to sort?
04:43:41reactormonkSkrylar, a counttable, need top 2000
04:44:08reactormonkSkrylar, a modified insert sort should do
04:47:25reactormonkanything like mitems for seq?
04:48:59reactormonknope.
05:02:06Skrylari haven't benched my insertion sort, its a naive implementation thats like <30 lines
05:02:25Skrylari wrote it because the rectangle packer for sprite sheets needs sorting, and its a small dataset
05:06:28*bjz quit (Ping timeout: 240 seconds)
05:09:19reactormonkhmmm
05:09:40reactormonkbig dataset here
05:09:46reactormonktimsort, anyone? ^^
05:09:55Skrylarisn't quicksort the usual goto lol
05:10:09reactormonksort() isn't quicksort
05:10:27fowlisnt it?
05:10:57Skrylari didn't make any assertions on what sort() was, i said "isn't quicksort the usual goto" as in "isn't quicksort what people default to when insertion isn't good enough"
05:11:15Skrylarthough i think in some fancy systems, the generic sort() function will check the total element number and then choose an appropriate subsort
05:12:14reactormonkfowl, nope
05:12:29fowloh
05:12:36reactormonkSkrylar, timsort.
05:12:38fowli thought we had a qsort()
05:12:43reactormonkfowl, where?
05:13:01fowlreactormonk, if its not in algorithms i was probably high
05:14:17reactormonkthere's a few qsort things, but nothing accessible from nimrod
05:14:44reactormonk.gitignore:/tests/compile/tquicksort
05:14:46reactormonkhmmm
05:16:16reactormonkhttp://pastie.org/9083953
05:16:21reactormonkfound this here in the git repo
05:16:48fowlreactormonk, oh apparently accumulateResult is supposed to be used in a function returning a seq
05:16:49*bjz joined #nimrod
05:17:15fowlreactormonk, i attempted to make it work more like a function but im not sure how to get the type of seq from the iterator
05:18:32reactormonkohh, I use the sort of the counttables
05:18:35reactormonkwhich is shellsort...
05:20:28fowlreactormonk, if you still wanted to use accumulateresult in that way a better option is sequtils.toSeq
05:23:13reactormonkhmmm
05:23:17reactormonkdoes that work with iterators?
05:23:41fowl"Transforms any iterator into a sequence."
05:30:06reactormonk130648 <- number of elements in counttable
05:37:41*Demos quit (Read error: Connection reset by peer)
05:43:38Skrylari don't even want to know why you have 130,000 objects in memory
05:43:53Skrylarbut yeah, i don't think we have a sort for tables that big yet
05:55:30Skrylarreactormonk: i hope thats a table of indices or pointers
06:12:24reactormonkSkrylar, string -> int
06:12:33reactormonkSkrylar, some NLP models
06:12:51reactormonklooks like scala again...
06:22:01Skrylaris this a huge hash table?
06:23:07*nande joined #nimrod
06:30:49*noam joined #nimrod
06:33:16*noam_ quit (Ping timeout: 240 seconds)
06:39:49reactormonkSkrylar, yup
06:39:54reactormonkSkrylar, 100k, as mentioned.
06:44:32Skrylaryou shouldnt need to sort a hashtable
06:45:42reactormonkSkrylar, I need the top 2k of the counttable
06:48:03Skrylarseems like there should be a neat way to use a rolling window or something and just iterate it
06:48:32Skrylarinstead of trying to sort the whole 100k things, doing some cheaper check if there is room for something of a given size and keeping *that* sorted instead
06:49:38Skrylarwith a lowest/highest counter so it can quickly skip over entries that have beneath the current minimum
06:50:41reactormonkSkrylar, wanna write it? ;-)
06:50:58Skrylarlol
06:55:45reactormonkSkrylar, hmm, priority queue would do it here
06:55:53reactormonkbut I'm not sure if I want to implement a full one
06:59:50reactormonkhow fast is sort of 2k elements?
07:05:46Skrylarwell i acid test my hopscotch with 65k elements
07:06:13Skrylarso 2000 should be in the realm of a quicksort
07:06:34Skrylarthat said you still have to iterate the whole word table
07:06:59Skrylarand then insertion sort the words in to the 2k area, removing the lowest ranked item if a newer one comes in
07:07:15Skrylarwhich is why i suggested storing the lowest, so you can skip most of the small cases
07:07:47Araqreactormonk: just use db_sqlite and call it a day
07:07:47Skrylari might look at the data structure for that, but it won't be tonight
07:07:48reactormonkjust the question where to insert the new one
07:07:58reactormonkAraq, hm?
07:08:07Skrylarreactormonk: in a skip list probably
07:08:33AraqI'll never understand why you keep all this data in fragile RAM, use a slim database instead
07:09:04Araqselect top 2000 * from table order by someKey desc
07:09:24reactormonkAraq, using counttables mostly here
07:09:44reactormonkwould you go for full SQL here?
07:09:48Araqwhat's the problem? shellsort not fast enough?
07:09:55Skrylaryay sqlite
07:10:13Araq"go for full SQL" is a misconception, db_sqlite is really sweet to use
07:10:34reactormonkAraq, yup
07:10:45reactormonkAraq, but I think go db_sqlite is a good idea
07:11:01Araqpatch the sort to use the state of the art merge sort in algorithm.nim then
07:11:18reactormonkhmmm
07:11:30Araqthough you need a "top 2000" which doesn't really require full sorting
07:11:51reactormonkindeed
07:11:59reactormonkbut the idea of db_sqlite is good, I like it
07:12:25Araqyou get serialization for free
07:12:38reactormonkyup
07:12:45Araqand if you don't need serialization it can't be serious work anyway ;-)
07:13:09*Araq <3 databases
07:13:24*Skrylar stores Araq in a database
07:13:26reactormonkAraq, :D
07:13:43reactormonkAraq, yup, I like to be able to serizalize
07:13:50reactormonkmostly because nimrod doesn't have a repl ^^
07:14:01SkrylarI guess it could have one with the VM
07:14:19Araq"nimrod i" does use the VM ...
07:14:37reactormonkAraq, yeah, any way to call that from yer code?
07:14:53Araqnot yet
07:15:08AraqI lost the code :P
07:15:18Araqnah, not really but it's not ready
07:15:52reactormonkI wonder... should I store the corpus there too?
07:16:48Araqyes
07:17:08reactormonkbut that's seq[seq[string]]
07:17:09Araqbtw I will push the first implementation of spawn/sync tonight
07:17:26Araqso you can easily parallelize your code
07:17:44reactormonkhmmmm
07:17:59reactormonkAraq, got me some sample sqlite code around for init and table creation etc.
07:18:15Araqlook at nimforum's code
07:18:22VarriountAraq: I'm nearly ready to open the PR for the getFileInfo code.
07:19:03Araqseq[seq[string]] usually requires some other data representation for SQL, reactormonk
07:20:09Araqthe hacky way is to join(someSeparator) one level of 'seq' away ... :-)
07:20:50reactormonkAraq, pretty sure I don't want the corpus in here.
07:21:27Araqoh well
07:21:34VarriountHow do I raise a generic error again?
07:23:01Araqraise newException(EWhatever, "some message")
07:26:19*DAddYE quit (Remote host closed the connection)
07:27:19reactormonkAraq, hmmmmm, now to figure out how to index stuff
07:28:05VarriountAraq: For tests, should I cause a failure by writing output, or by raising an exception?
07:29:47AraqVarriount: just let it crash somehow, make it output 'success' when successful and specify that as supposed 'output'
07:30:05Araqthat's how I do it anyway
07:32:21reactormonkAraq, what's a data structure to store a few string -> string keys in? one or two, for column name -> value
07:33:39Araqcreate table Foo(key varchar(max), value varchar(max))
07:34:30Araqcreate index IX_Foo on Foo(key);
07:34:59Araqselect value from Foo where key = 'lalala'
07:36:10reactormonkAraq, sorry. a nimrod data structure.
07:36:53Araqif you have very few keys use a seq[tuple[key, val: string]]
07:37:02Araqotherwise use a TTable[string, string]
07:37:33Araqand watch out that these are value based datatypes
07:37:52VarriountAraq: Submitted a PR
07:37:52Araqdon't pass them around like no tomorrow as if it's a 'ref', it's not
07:39:18AraqVarriount: is it ready for inclusion into 0.9.4?
07:39:39VarriountAraq: Yes, to the best of my knowledge.
07:42:48reactormonkany way to escape for sqlite?
07:43:00reactormonkah, good old ?
07:43:04fowlmaaaan id like for tables to have an init() func so i didnt have to repeat the types of the table when i initialized it
07:43:56Varriount*I'd *didn't *I
07:44:41fowlud like for me to use proper punctuals woldnt u
07:44:51reactormonkfowl, return type overload?
07:45:17fowlreactormonk, wat
07:45:27Varriountfowl: You're killing me.
07:46:55reactormonkAraq, aaaand how do I insert those tuples into sqlite queries? I don't really like plain insert, although I'm pretty sure the values don't need to be escaped
07:47:45fowlVarriount, i never knoticed before, you capitalize your sentences and use periods, lol, you arent writing a novel, this is IRC
07:48:10reactormonkfowl, this is freenode. A basic grammar is expected. Take your slang to quakenet.
07:48:30fowlreactormonk, *every* input into a db should be escaped even if you completely trust it
07:49:05fowlreactormonk, exec() does it for you
07:49:13VarriountGoodnight guys.
07:51:07fowlreactormonk, irt freenode, grammar, etc: i disagree
07:52:08reactormonkfowl, bit more complicated if you have varargs
07:52:50Araqreactormonk: db_sqlite does all the quoting for you
07:53:03fowloh apparently all those functions take varargs
07:53:22Araqthey all quote properly
07:53:27reactormonkAraq, now I have that seq[tuple[key, val: string]] - how do I escape that properly?
07:54:34Araqfor tup in myseq: db.exec(sql"insert into Foo(key, value) values (?, ?)", tup.key, tup.val)
07:55:04reactormonknot that easy
07:55:29reactormonkeach of the pairs determines which column has to match what
07:55:30Araqadd some examples to the docs when you're done
07:56:16reactormonklooks like I have to
07:56:20Araqreactormonk: if it is not easy, you're doing it wrong
07:57:22*DAddYE joined #nimrod
07:57:40reactormonkAraq, trying to abstract over the update
07:57:56reactormonkehh, inc, basically.
08:00:12reactormonkproblem is, I got one or two columns as keys
08:00:34reactormonkAraq, http://pastie.org/9084295
08:01:40*DAddYE quit (Ping timeout: 240 seconds)
08:16:47*krusipo_ quit (Quit: leaving)
08:17:34*krusipo joined #nimrod
08:54:03*bjz quit (Ping timeout: 245 seconds)
08:57:55*DAddYE joined #nimrod
09:02:11*DAddYE quit (Ping timeout: 252 seconds)
09:09:12*bjz joined #nimrod
09:45:25*nande quit (Remote host closed the connection)
09:58:47*DAddYE joined #nimrod
10:03:21*DAddYE quit (Ping timeout: 250 seconds)
10:12:50*DAddYE joined #nimrod
10:17:31*DAddYE quit (Ping timeout: 258 seconds)
10:29:58*io2 joined #nimrod
11:13:35*DAddYE joined #nimrod
11:18:05*DAddYE quit (Ping timeout: 258 seconds)
11:24:53NimBotAraq/Nimrod devel c93c014 Dominik Picheta [+0 ±2 -0]: Modified tester output. Fixed JS tests.
12:14:31*DAddYE joined #nimrod
12:19:21*DAddYE quit (Ping timeout: 265 seconds)
12:40:43*DAddYE joined #nimrod
12:45:28*DAddYE quit (Ping timeout: 276 seconds)
12:47:25BitPuffin*sigh*
12:47:31BitPuffinkoch install is useless
12:47:42BitPuffinat least on unixes
13:07:03*askatasuna joined #nimrod
13:32:55*askatasuna quit (Ping timeout: 276 seconds)
13:41:26*DAddYE joined #nimrod
13:43:07BitPuffindom96, Araq: I have now created nimrod and babel packages for crux \o/
13:43:15BitPuffinjust gotta publish them
13:46:34*DAddYE quit (Ping timeout: 276 seconds)
13:55:29*darkf quit (Quit: Leaving)
14:42:09*DAddYE joined #nimrod
14:43:03*Demos joined #nimrod
14:46:46*DAddYE quit (Ping timeout: 265 seconds)
14:54:49*BitPuffin quit (Ping timeout: 276 seconds)
15:02:05*shodan45 quit (Quit: Konversation terminated!)
15:42:47*DAddYE joined #nimrod
15:42:52*vendethiel quit (Read error: Connection reset by peer)
15:43:12*vendethiel joined #nimrod
15:47:21*DAddYE quit (Ping timeout: 252 seconds)
15:54:01*OrionPK joined #nimrod
15:54:26*Demos quit (Ping timeout: 265 seconds)
16:02:21EXetoCsup
16:04:41*[1]Endy joined #nimrod
16:04:43AraqI've implemented 'spawn'
16:06:36EXetoCok how did you implement it?
16:06:54Araqas an AST->AST transformation in the compiler
16:06:57*Demos joined #nimrod
16:07:04Araqonce the type API is ready we can make it a macro instead
16:07:45EXetoCgreat
16:07:50Araqstill primitive though, doesn't do any work stealing
16:08:11Araqbecause work stealing makes no sense to me
16:08:55AraqI guess I am missing something :P
16:10:21EXetoC"Work-stealing has a serious advantage over work-requesting due to it's asynchronous nature: a thief thread is able to get some work, even if a victim thread is busy processing a user task or even de-scheduled by an OS..."
16:10:37EXetoCdoing some googling now. seems relevant
16:10:48EXetoC"it's" misused again :<
16:16:35Araqwell this doesn't mean anything though
16:18:22Araqit also completely ignores heap layouts and whether you have cheap sharing or not and message passing efficiency
16:22:19*joelmo joined #nimrod
16:22:26*joelmo left #nimrod (#nimrod)
16:24:22*[2]Endy joined #nimrod
16:28:12*[1]Endy quit (Ping timeout: 258 seconds)
16:32:30*[1]Endy joined #nimrod
16:35:40*[2]Endy quit (Ping timeout: 240 seconds)
16:43:32*DAddYE joined #nimrod
16:47:51*DAddYE quit (Ping timeout: 252 seconds)
16:51:51*[2]Endy joined #nimrod
16:52:44*Jesin quit (Quit: Leaving)
16:55:02*[1]Endy quit (Ping timeout: 258 seconds)
16:55:04*Demos quit (Ping timeout: 276 seconds)
17:02:13*[2]Endy quit (Quit: Want to be different? Try HydraIRC -> http://www.hydrairc.com <-)
17:10:05*BitPuffin joined #nimrod
17:12:53*askatasuna joined #nimrod
17:14:53*Demos joined #nimrod
17:20:20*Demos quit (Ping timeout: 258 seconds)
17:22:27*Demos joined #nimrod
17:28:49*Demos quit (Ping timeout: 250 seconds)
17:28:58*DAddYE joined #nimrod
17:28:59*q66 joined #nimrod
17:29:03*q66 quit (Changing host)
17:29:03*q66 joined #nimrod
17:40:28*filwit joined #nimrod
17:40:40filwitheya folks
17:41:01*q66 quit (Quit: Leaving)
17:41:06filwiti have some designs to show today :)
17:41:13dom96hellooo
17:41:15dom96yayyy
17:41:15filwitjust finishing some graphics up first tho
17:41:25filwitgive me an hour or so
17:41:53filwitps. noticed the repo has been purged!
17:41:59filwitthanks reactormunk
17:42:01filwitmonk*
17:42:52dom96filwit: We moved the release. New date is in 4 days.
17:43:00filwitoh, and I have a potential mascot too
17:43:01*q66 joined #nimrod
17:43:02*q66 quit (Changing host)
17:43:02*q66 joined #nimrod
17:43:07filwitdom96: still too soon
17:43:18filwitno way we can get everything done by then
17:43:30filwitat least, i doubt
17:44:13filwitmaybe we can get something of the visuals in, but we should probably just plan on making another announcement latter
17:45:20filwitin fact it might better to separate them. I have new graphics for the website, forum, docs, and eventually the nimbuild too
17:46:03filwitso making a specific announcement for a "graphics design update" would probably stand on it's own
17:46:48filwitand the language updates kinda stand on their own
17:46:59BitPuffinwoa fowl has the most epic name of all time
17:47:03filwitso we get more announcements this way
17:47:37BitPuffinI doubt we can fix all the stuff by then as well
17:47:38*Demos joined #nimrod
17:49:31filwitbtw, do i use devel or purged_devel?
17:49:48BitPuffinprobably devel
17:49:59BitPuffinI imagine purged_devel will become devel
17:50:19filwitwell that did help, lol
17:50:26filwitwhich one is the actually purged one?
17:50:34filwiti imagine purged_devel
17:50:45filwitbut i just saw devel get an update yesterday
17:50:47filwitso idk
17:51:01filwit...didnt** help...
17:51:23BitPuffinhaha
17:51:25BitPuffin:P
17:52:14BitPuffinzahary: do you think the current issues with static[T] and generics can be ironed out in just 4 days? because it seems unlikely. And it doesn't seem wise to ship them in their current state
17:52:22reactormonkBitPuffin, nah, purged_devel can be killed
17:52:31reactormonkBitPuffin, it was just an intermediate experimet
17:52:42BitPuffinreactormonk: so in other words it has already become devel
17:52:44filwitthanks reactormonk
17:53:06reactormonkBitPuffin, just killed them to clear it up.
17:54:51BitPuffinreactormonk: you are so violent
17:55:50BitPuffinwow that is one big damn fast forward
17:57:00dom96brb
17:57:42BitPuffinWe should set the release to like monday or something, and we'll spend the weekend in the VNUG helping each other fix compiler bugs
18:02:02BitPuffinfilwit: would that be enough time?
18:03:44Araqhi filwit
18:03:52filwithi Araq
18:04:00BitPuffinhey Araq
18:04:06Araqhi BitPuffin
18:04:07filwiti doubt it BitPuffin
18:04:13BitPuffinhrm
18:04:14filwitbut maybe for just the art changes
18:04:19filwiti'll see
18:04:25filwitright now i have a lot of stuff to do
18:04:45Araqping Varriount
18:04:53BitPuffinare you guys making money yet on the thing filwit?
18:06:01BitPuffinAraq: what do you think about a bug sprint?
18:06:12filwitBitPuffin, i told this to dom last time I was here, and I guess it's fine to say here. My Bones-Game project may have been shut-down, which is part of the reason why i haven't really been around.
18:06:32BitPuffinfilwit: oh damn :(
18:06:33filwitBitPuffin: we got classified as a gambling app, and Google kick us off the Play Store
18:06:34*Demos quit (Ping timeout: 276 seconds)
18:06:43BitPuffinfilwit: man that sucks
18:06:51filwitwe're currently taking legal actions, but it's slow
18:06:53BitPuffinhow are you guys recoverning?
18:06:56BitPuffinah
18:07:00filwitand we just signed up a radio station too...
18:07:12BitPuffin:(
18:07:29BitPuffinfilwit: hugs
18:07:33*gXen joined #nimrod
18:07:39Araqyeah my condolences
18:07:49filwitso things are a bit undetermined as far as my financial situation right now. But there's still hope too, so we'll see.
18:07:51BitPuffinhopefully it turns for the better
18:07:52filwitthanks, both
18:09:01Araqok, guys here comes the important question
18:09:33BitPuffinguess this one should be labeled as feature https://github.com/Araq/Nimrod/issues/1095
18:10:15Araqwe need an annotation/pragma for global variable usage tracking
18:10:15filwitafter Araq asks his question, everyone please give me feedback about my mascot design: http://reign-studios.net/philipwitte/nimrod/mascot.png
18:10:38Araqrigth now I am torn between 'accesses' and 'uses'
18:10:54filwitvote: uses
18:11:06Araqit doesn't distinguish between read and write access
18:11:17BitPuffinI'd say uses as well
18:11:31Araqas that's not as useful as I thought and much more work to implement
18:11:37Araqok, so
18:11:51BitPuffinfilwit: looks like it could punch the hell out of some gophers :D
18:12:01Araqproc foo() {.uses: [stdout, stderr].}
18:12:02filwitlol
18:12:22filwitusesGlobs ?
18:12:29filwitusesGlob
18:12:34BitPuffinI feel like there is a better name
18:12:51filwitactually... 'glob' is kinda pointless i guess huh?
18:12:55Araqwell it needs to be short :P
18:13:04BitPuffinuses is short
18:13:07Araqand 'glob' is not a common abbrev
18:13:10filwityeah and you can't really 'use' a local anyways
18:13:19BitPuffinAraq: glob is a common abbrev
18:13:33BitPuffinalthough you'd confuse it with another kind of glob
18:13:34AraqBitPuffin: not in nimrod's stdlib
18:13:40BitPuffinAraq: exactly
18:14:16BitPuffinI think me and Araq have a more difficult time coming up with the word for it since we are not native englishers
18:14:17filwitAraq, is there, or can you make, a pragma which allows a proc to be sort of "thought as" a variable ?
18:14:36BitPuffinyou mean kinda like js?
18:14:52Araqfilwit: you mean invokable without () ?
18:14:55filwitAraq, when i want a proc accessor to a global property (so i down expose the original), i can't do Something.foo.bar
18:14:55BitPuffinwhere function foo() == var foo = function()
18:15:04filwiti have to do Something.foo().bar
18:15:07filwitAraq: yes
18:15:32Araqa template allows for that, filwit though this feature needs to be re-thought
18:15:57Araqmy plan is
18:16:01filwitAraq: okay, well i'll come back to that later. It's just one of the two problems i've had recently with macro OOP stuff
18:16:16Araqtemplate foo: expr = bar # no () for invokation necessary
18:16:25Araqtemplate foo(): expr = bar # () for invokation necessary
18:16:32BitPuffinhmmmmmmmmmmmmmmmm
18:16:46Araqthough this is against nimrod's philosophy
18:16:48BitPuffinwill template foo: expr = bar still be callable with ()
18:16:50BitPuffin?
18:16:57Araqyeah, BitPuffin
18:17:00BitPuffinhm
18:17:04BitPuffinkinda inconsistent then
18:17:04filwitAraq: yeah it kinda goes against "write however, use however"
18:17:19Araqyup
18:17:19filwitAraq: i would almost prefer a pragma cause it's more explicit
18:17:21BitPuffinplus that makes it weird
18:17:25BitPuffinlike in docs and stuff
18:17:39BitPuffinwhy can't they be used interchangably?
18:17:51Araqyeah well, I need to think about it
18:17:56filwityeah
18:18:00BitPuffinyeah
18:18:08filwitbtw, Araq, thoughts on my mascot proposal?
18:18:31Araqfilwit: it's cool but too childish
18:18:33BitPuffinthe gopherpuncher 2000
18:18:43*brson joined #nimrod
18:18:45Araqnobody will take us seriously with a mascot like that
18:19:02BitPuffinAraq: people take Go seriously
18:19:13Araqno they don't
18:19:14BitPuffinhow about we make him hold a decapitated gopher head?
18:19:25filwitAraq: hmm.. okay. can you elaborate on what you'd like changed perhaps?
18:19:56Araqfilwit: I'm not sure we need more than the crown we currently have, in fact
18:20:18BitPuffinthat's where you are wrong
18:20:19*brson quit (Client Quit)
18:20:25*brson joined #nimrod
18:20:28filwitAraq: mascots are for TShirts and watermarks on the last page or presentations... the crown is the brand logo
18:20:30BitPuffinyou need a nice cartoon animal to be successful these days
18:20:34filwitof**
18:20:56Araqwell ok, IF we need an animal mascot
18:21:16Araqthis is not it, it's not nearly friendly enough
18:21:19BitPuffinoh look, ocaml has a new website
18:21:28BitPuffinAraq: so what you're saying is more kawaii?
18:21:39filwitlol, Araq, you specifically told me to make him look angry last we talked about it
18:21:55filwitBitPuffin, lol @ kawaii
18:22:08filwitgunna draw an animu honeybadger now..
18:22:19BitPuffindo it
18:22:23BitPuffinwith sparkly eyes
18:22:27filwitLOL
18:22:31Araqfilwit: maybe but I consider it a strength to be able to change his mind
18:22:35BitPuffinand like, pink cheeks
18:22:44filwitAraq: fair enough
18:22:51filwitand i concur
18:22:56BitPuffinAraq: that's one fancy way of saying you can't make up your mind :P
18:23:27filwitbut still, the mascot is one of the harder things to make, so it'll take a little while to change it, especially to make it completely different
18:23:30BitPuffinfilwit: did you draw tihs in krita?
18:23:39filwitno, Inkscape
18:23:39BitPuffinor inkscape
18:23:43BitPuffinah
18:23:45BitPuffinthought so
18:23:50BitPuffinsince it looked kinda vectory
18:23:51Araqfilwit: you only need to change its face though
18:24:18Araqmaybe try to make it more like "honey badger don't care"
18:24:20BitPuffinhow does it look if you put grey in the chest hair?
18:24:54filwitAraq: okay, "don't care" is descriptive enough. I'll see what i can do later
18:25:19BitPuffinI can think of a million ways to do don't care
18:25:20Araqbut don't make it look like it's on drugs!
18:25:25BitPuffinyou sure it's descriptive enough
18:25:36Araqand don't make it look like it's stupid
18:25:54Araqgive him sunglasses, lol
18:26:06BitPuffinmake him passed out with a bunch of beer bottles next to him and his wife and children look beaten up and are leaving him forever and have a text that says "honey badger doesn't care"
18:26:32BitPuffinor sunglasses.. yeah.. that works as well
18:26:46BitPuffinor WAIT!
18:27:08BitPuffinmake a gopher that is holding on for dear life to a cliff, and have the honey badger walk away, WITH SUNGLASSES!
18:27:44filwitAraq: lol @ the drugs... will combine BitPuffins anime with a stoned badger now.. perfect mascot!
18:27:51Araqhttps://www.youtube.com/watch?v=718T3rkJR5o
18:28:15filwitalso, sunglasses are not cool.. this is no longer the 90s
18:28:21filwit:P
18:28:36AraqI beg to differ
18:28:46filwityou still think it's the 90s?
18:29:01AraqI think they're still hip and trendy
18:29:02filwit:}
18:29:03BitPuffinsunglasses only make me think of http://youtu.be/X-LZWMc-OEY
18:29:11BitPuffinfilwit: lol you troll :)
18:29:27filwitin florida we have to weir sunglasses to drive or the UV's hurt our eyes
18:30:23filwitokay, let me finish some stuff up and show y'all the rest of the designs
18:30:36BitPuffin80s hits are the complete opposite of cool Araq
18:30:44Araqwell you better hurry with a better suggestion, BitPuffin
18:31:06Araqotherwise it's "uses"
18:31:10BitPuffinAraq: all of my suggestions were better
18:31:15BitPuffinoh
18:31:17BitPuffinyou mean to uses
18:31:21BitPuffinwell I can't think of one
18:31:26BitPuffinbut it feels like there's something better
18:31:44BitPuffinhowever I imagine uses is the shortest
18:31:59BitPuffinwhen will this be needed btw?
18:32:25AraqBitPuffin: we have a new notion of "thread safety"
18:32:52filwitnew notion: "safety is for looser squares"
18:33:10Araqwhere "thread safe" == "uses only globals that do not contain GC'ed data"
18:34:39dom96back
18:35:32dom96filwit: Really cool mascot. But I agree with others, it shouldn't look pissed off.
18:35:51filwitk, thanks for feedback
18:36:23dom96filwit: But do save it. Maybe someday we will use it for something :)
18:36:51dom96Araq: So 'uses' means "this global is used in a thread"?
18:39:39Araqno it simpy means proc uses global
18:43:45dom96why not call it 'usesGlobal' then?
18:44:43Araqdoesn't feel right
18:46:04filwitdom96, i suggested the same thing, but can you even 'use' a local really?
18:46:46filwitand i thought you already had read/writes ?
18:47:54Araqno but it is planned
18:48:33filwitwell i know it's not done, i guess i'm asking what the difference is between 'read/write' and 'uses'
18:50:12Araqwell 'uses: X' means 'reads: X; writes: X' obviously
18:51:01filwitk
18:52:15dom96how about 'in'?
18:52:44Araqfor "input"?
18:52:51dom96yeah
18:53:11BitPuffinAraq: how is using globals that don't contain GC'd data thread *safe*
18:53:12filwit'uses' makes more sense for what it does i think
18:53:18BitPuffinyeah
18:53:23BitPuffinI hate in and out keywords
18:53:35dom96'in' is already a keyword lol
18:53:44BitPuffinit is?
18:53:47BitPuffinI've never used it
18:53:52filwit:|
18:53:58filwitit's used everywhere in Nimrod..
18:54:08BitPuffinwat
18:54:12filwitif Something in { A, B, C }:
18:54:15BitPuffinoh
18:54:18BitPuffinwell that is fine
18:54:24BitPuffinI meant more like for function parameters
18:54:26BitPuffinlike in D
18:54:27filwitfor x in list: ...
18:54:28BitPuffinthey had like
18:54:30BitPuffinin
18:54:32BitPuffinout
18:54:33filwityeah
18:54:34BitPuffininout
18:54:36BitPuffinnever really got what it was for
18:54:46BitPuffinfor x in arr is totally cool
18:54:47filwitinout was for const stuff
18:55:10filwitin was basically the same as 'const', and out is the same as C#'s out
18:55:51BitPuffinah
18:55:55BitPuffinwell then why not just const
18:55:57BitPuffininout
18:56:08filwitinout means you can pass either a const or not
18:56:10BitPuffinthe fuck kind of a way is that to describe a constant
18:56:24BitPuffinfilwit: well in C you can also pass a const or not
18:56:27filwiti'm really not sure of the difference between 'in int' and 'const int' but i think there is one
18:56:33BitPuffinyeah
18:56:37BitPuffinthat's why I was confused
18:56:39BitPuffinit's stopid
18:56:39filwit'out int' means the variable is ref, but created in the proc
18:56:41BitPuffinanyway
18:56:47filwityeah
18:56:57filwitcan be confusing
18:57:06filwitconst in C is worse in some ways though
18:57:08BitPuffinAraq: should you really be thinking of this now though? Probably better to focus on fixing bugs for release
18:57:12filwitcause placement is important
18:58:47AraqBitPuffin: upcoming release has too few killer features
18:59:04Araqso I'm adding the major parts of the new concurrency model
18:59:23BitPuffinAraq: in 4 days? ._.
18:59:27Araqyes.
18:59:48AraqI've already added 'shared ptr T' and 'spawn' and 'sync'
19:00:24Araqglobal tracking is trivial to implement
19:00:39BitPuffinAraq: yes but it needs extensive testing
19:00:56Araqfor 0.9.6 only 'guarded' and deadlock freedom are left then
19:01:44dom96Araq: What about async? :(
19:02:25Araqdom96: I'm still trying to fix it for the release
19:03:07Araqbut it could be a time grave and then we have no killer feature for 0.9.4
19:03:27dom96Async await isn't a killer feature?
19:03:44Araqoh it is.
19:04:11Araqbut it's too risky to only focus on that
19:04:47Araqso I'm doing both things instead
19:05:03renesacanother pragma name suggestion: 'rwGlobals'
19:05:10renesacbut I'm not sure if it is better than 'uses'
19:05:29BitPuffindom96: maybe YOU should focus on it ;)
19:05:32BitPuffinseriously though guys
19:05:36BitPuffinbugsprint over the weekend?
19:05:56renesacAraq, are you sure distinction between reads and writes isn't needed?
19:06:13renesaca shared global state only for reading data is much safer than for rw data
19:07:19dom96BitPuffin: I don't have the knowledge or the time.
19:07:26Araqrenesac: when you have thread local heaps reading is actually not as harmless as it looks
19:07:32BitPuffindom96: acquire
19:07:45Skrylarmeep
19:08:04BitPuffinAraq: how can you implement uses when reads and writes hasn't been implemented
19:08:16BitPuffinif uses = reads + writes
19:08:39Skrylarit may just not make a distinction between the two
19:08:57Skrylar"this is a pointer therefore it is used" vs "i have analyzed the pointer is only read"
19:09:02BitPuffindom96: what about if you look at it during a bug sprint tho
19:10:11*nande joined #nimrod
19:10:57AraqBitPuffin: what Skrylar said is correct
19:11:10renesacAraq, sure many things can still go wrong, but if the initial setup and latter destruction is well separated phase from the threaded code, not so much
19:12:08BitPuffinSkrylar, Araq: Ah, so it's basically saying that it both reads and writes without actually verifying it?
19:12:25renesacand I laughed a bit in nimrod's new notion of thread safety, but I understand where this come from
19:12:26renesacXD
19:12:26AraqBitPuffin: yes, it only says it 'uses' it
19:12:46BitPuffinthen I get why it is more tirvial
19:12:50Skrylarrenesac: new notion of thread safety?
19:12:59Skrylardid we get the concurrency model of a clown hat
19:13:56BitPuffinstill have a hard time of seeing why this gives thread safety
19:14:02renesacSkrylar, [15:32:25] <Araq> BitPuffin: we have a new notion of "thread safety" [15:33:10] <Araq> where "thread safe" == "uses only globals that do not contain GC'ed data"
19:14:20Skrylari thought it already did that
19:14:32BitPuffinit does
19:14:43Araqrenesac: for a purely RC'ed GC any read operation is an RC update and thus racy unless it performs an atomic operation
19:14:43BitPuffinbut it's not verified I guess
19:15:00renesacAraq, yeah
19:15:06Skrylarfortunately atomic operations for ints are in most of the compilers
19:15:17BitPuffinAraq: I believe the correct term is "racist"
19:15:37renesacthread safe GCs seems a very complex beast, unless you go the thread local heaps way like most new languages do, including nimrod
19:15:46*BitPuffin hides in a corner
19:15:47Skrylaroperating only on static globals doesn't guarantee thread-safety, actually
19:16:01Araqyes, yes, I know
19:16:04Skrylarit prevents the RC racing that Araq mentioned, it doesn't do anything to stop two threads independently clobbering a global
19:16:23renesacyep, that is why it was funny
19:16:25Araqyes that's why will get more checking for globals later
19:16:27Skrylarrenesac: threads are pain :(
19:16:39BitPuffinyeah
19:16:41BitPuffinwell
19:16:46BitPuffinI mean
19:16:54Skrylarmicrothreading is <3, multithreading is </3
19:17:11BitPuffinif we get as strong thread local stuff as other languages and a nice global system like this I think we're pretty good
19:17:36BitPuffinSkrylar: isn't microthreading fully transparenty though?
19:17:37Araqthis rule patches a major hole that we have right now, it doesn't fix everything
19:17:50Araqread my blog for more details
19:18:00BitPuffinAraq: so right now there is nothing stopping me from using a ref as a global?
19:18:12renesacbut does microthreading works for anything not trivially paralelizable/embarasingly parallel?
19:18:35Skrylarrenesac: no, microthreading is used to maximize use of a single core
19:18:46BitPuffinaka hyperthreading?
19:18:54Skrylarno, hyperthreading pretends to be an extra cpu core
19:18:56renesachum, to mask cache misses?
19:18:57BitPuffinor do you just mean the concurrency the cpu does automatically
19:19:02Araqthere is a shitty global analysis pass that tries to ensure safety, BitPuffin
19:19:13BitPuffinAraq: ah, but it's easy to get around
19:19:14Araqbut I will remove it
19:19:34Skrylarmicrothreading is useful in some cases like dealing with I/O and futures
19:19:49Skrylarsince you can go "hmm there aren't any more packets yet? jmp to somewhere else instead of waiting"
19:20:08AraqSkrylar: we have that with async/await
19:20:20Skrylarisn't async/await unfinished :P
19:20:31Araqit works but leaks memory :P
19:20:39Skrylarthen it doesn't work :F
19:20:50Araqha, you have no idea
19:21:24Araqrails used to leak like no tomorrow, people used it in production nevertheless
19:21:39Araqok, the Rails guys are special, but still
19:22:05Skrylarsince when do rubyists care about things, its one of the slowest interpreters in the world xD
19:22:22Araqnot anymore
19:22:24renesacSkrylar, it got faster
19:22:40Skrylari haven't used ruby 2x
19:22:58Skrylari remember they were trying to build rubinius and a few others to make the VM uncrappy
19:23:11SkrylarI bet luajit still wins :)
19:23:42AraqI bet it doesn't for GC heavy benchmarks
19:25:24*Varriount|Mobile joined #nimrod
19:26:21*nande quit (Read error: Connection reset by peer)
19:26:42*nande joined #nimrod
19:31:21reactormonkAraq, I'm special \o/
19:43:48BitPuffinlook at Araq acknowledging good things about ruby
19:43:58BitPuffinspelling.se
19:44:38dom96I wonder if Yukihiro Matsumoto has a gun pointed to his head.
19:46:25Skrylardom96: why would he? other people were writing VMs
19:46:52Skrylarmatz always said ruby was about being fun to program in above all else
19:48:49Varriount|MobileAraq: You rang?
19:49:51AraqVarriount|Mobile: how come even mingw gcc 4.8 doesn't support __sync_bool_compare_and_swap ?
19:52:31Varriount|MobileAraq: No idea
19:52:50Araqit's really annoying to have no atomic ops for win32
19:53:55Varriount|MobileAraq: Have you tried asking #mingw?
19:57:24Varriount|Mobilehttp://sourceforge.net/p/mingw/bugs/1585/
19:57:59fowlBitPuffin, i have another allegro test for u to run later (if u dont mind)
19:59:57BitPuffinfowl: HOW DARE YOU
20:00:39BitPuffinNo but who could ever say no to someone called Billingsly Wetherfordshire
20:00:46BitPuffintoo cool name to conceive
20:01:09*Matthias247 joined #nimrod
20:05:16dom96oh cool. `%` supports named vars
20:05:27dom96There should really be an overload which accepts a string table.
20:06:13AraqI think there is
20:06:21Araqit's in strtabs though
20:07:00dom96oh cool
20:08:20Varriount|MobileAraq: I think sync_bool_compare_and_swap is available on mingw-w64
20:13:39*Mat3 joined #nimrod
20:13:46Mat3hi all
20:13:56Araqhi Mat3
20:14:11Mat3hi Araq, what's new ?
20:14:33Varriount|Mobilefilwit: I love the mascot! It really displays nimrod's "I'm a strong language and I don't care" attitude.
20:14:51filwitthanks for the feedback, Varriount|Mobile
20:15:29AraqMat3: I've implemented 'spawn'
20:15:45Mat3great !
20:16:36Araqspeaking of which, how do you measure low level cycle counting stuff?
20:17:20Mat3I use the performance counters which depend on the processor type
20:17:41Araqok
20:21:34Mat3you will likely need three measures, one for the number of cycles, one for possible BTB misses and at last one for the number of cache misses
20:26:36NimBotAraq/Nimrod devel 6692d95 Dominik Picheta [+0 ±1 -0]: Fixes incorrect nodejs detection in tester.
20:26:36NimBotAraq/Nimrod devel 2fb5d62 Dominik Picheta [+0 ±24 -0]: Tester now appreciates the test target. Modified 'cmd' in specs.
20:27:06*wan joined #nimrod
20:27:22Araqhi wan
20:27:31wanhi
20:29:07*BitPuffin resist saying joke about being the chosen wan
20:29:12wanconcerning the mascot, I think it looks too fat. It's a bear ! (or a fat dog...). Although honey badger have a loose skin, their arms are definitely slimmer
20:29:39wan*legs too
20:30:37fowlBitPuffin, :D
20:31:06wanThe gradient on the crown is a little out of place, there is no other gradient in the character
20:31:32BitPuffinwan: the charecter and crown is not the same material either though so that doesn't make sense to say
20:32:34fowldom96, i looked into making it allow dictionaries but the implementation is pretty involved
20:33:01fowldom96, i mean "$x" % {"x":"hello"}
20:33:17wanBitPuffin: It does, however. It's like mixin flat design with web2.0 gradients, it doesn't mix that well
20:33:53wanespecially considering the 'comics' look of shadows for the honey badger
20:34:22wan(fat pencil in the shadows zones)
20:34:30dom96fowl: strtabs does indeed have its own %
20:35:48fowlyea but i dont generally need to start a strtab for the input
20:35:55Mat3hmm, what mascot ?
20:36:14dom96fowl: ahh indeed.
20:36:30dom96fowl: So what was the problem, too much work?
20:36:44fowl".." % ["x","hello"] works but {"x":"hello"} is actually [(key:"x", val:"hello")] so the implementation for it would be simpler than the current way
20:37:17Araqyup, fowl is right
20:37:29fowldom96, well the current way (looks like) allows you mix $1 $2 $x
20:38:06Araqfowl: I don't think anybody used that feature though
20:38:07fowlthinking about it again, it doesnt sound difficult anymore, it should be a separate function than the other %
20:38:33EXetoCAraq: the dictionary sugar?
20:38:35AraqMat3: please read the logs, filwit created a new mascot
20:38:43EXetoC%?
20:38:53AraqEXetoC: no, mixing $1 and $name
20:38:56filwitMat3: http://reign-studios.net/philipwitte/nimrod/mascot.png
20:39:26fowlfilwit, i like the color scheme on the far right
20:39:30fowlreminds me of gobo :>
20:40:00filwityeah i like that one two.. fits into the a slide on the homepage well
20:40:05filwit:)
20:40:10filwitjust about ready to show
20:40:23filwitkinda rushed some last graphics, but you folks'll get the idea
20:41:11fowlhttp://distrowatch.com/images/yvzhuwbpy/gobo.png
20:41:32Mat3filwit: I can not access the server
20:41:48filwitMat3 really, odd...
20:41:58filwitit's my own server, try again in a minute
20:42:01wanfilwit: I realized I didn't say anything positive about your mascot. I shall have! I do like the all-grey look. I'm only good at criticizing and noticing defaults, though, don't take it the wrong way
20:42:25filwitwan, i missed all comments from you before, sorry :S
20:42:42filwitwan, wasn't paying attention, but i'll rescan logs and look in a minute
20:43:08filwitwan, also, thanks for the feedback, positive or not
20:45:13filwitwan, ah, i see "too fat". Yeah i was trying to slim him down a bit, and i can do that more. I was using these as reference: http://ngm.nationalgeographic.com/ngm/0409/feature6/images/ft_hdr.6.jpg http://www.badassoftheweek.com/honeybadger1.jpg
20:45:37wanHas anyone come accross a 'web templates' library that's nimrod-compatible? Like Mustache, something that exists for other languages as well (not like source code filters)?
20:48:05wan'cause I'll soon have something for jade templates (compiling them to nimrod code), don't know if anyone would be interested
20:48:56dom96wan: OrionPK created a templates thing
20:50:14wanIs it on github somewhere? I guess the username is not the same. Do you have it?
20:50:28dom96I think this is it: https://github.com/onionhammer/onion-nimrod/tree/master/templates
20:51:32wanThanks, I'll see how he does the calling. Could be interesting to have a common convention
20:54:57OrionPKit doesnt work on devel for some reason though
20:55:06OrionPKidk if it's a regression of what
20:55:08OrionPKor*
20:55:22OrionPKmy templates work well with NimLime wan
20:56:10AraqOrionPK: thanks for reporting that
20:56:26OrionPKhttps://dl.dropboxusercontent.com/u/417554/logic_example.png
20:56:31OrionPKaraq lol sorry
20:56:39OrionPKaraq I've been super busy last...... 4 weeks
20:56:43wanAh, that solves the syntax highlighting for strings inside nimrod files, nice. I'm on vim though, so not for me, but that feature is cool.
20:56:57wanDidn't know about NimLime
20:57:30OrionPKright, the html""" """ prefix just tells sublimetext what it is
20:57:32OrionPKhow to highlight it
20:57:56OrionPKthe tmpl/i bit translates it into result.add's and nimrod logic at compile time
20:59:27wanFor interfacing, I was planning on doing something like `proc my_template(locals): string = ...` (haven't tested yet)
21:00:02wanBecause I want the templates in separate files (.jade), I don't want to declare what they take as parameters
21:02:09OrionPKwhy have the templates in separate files?
21:02:25OrionPKI guess it's nice if you want to hcange them w/o having to recompile your nimrod
21:02:30OrionPKbut then you have runtime costs associated
21:02:32Mat3filwit: how about a sword as logo (because Nimrod is secure) ?
21:02:32wansyntax highlighting was one reason, reusing them for client-side is another
21:02:50EXetoCOrionPK: you can cache it
21:03:27filwitMat3: pretty sure logo wont change to something completely different :) and mascots are usually a creature of some kind, not an object
21:03:42EXetoCin some cases
21:03:58wanruntime costs? No, my_tempalte.jade->my_template.nim in a makefile, then `import my_template` in nimrod
21:04:51Mat3filwit: how about a frog with a crown ?
21:05:14Mat3(because Nimrod share so much hidden features)
21:05:16wanOrionPK: so I still have to recompile when I change my templates
21:05:16EXetoCa snail
21:07:12Mat3the frog is also the enblem of the merowinger dynasty
21:07:14filwitMat3: the honeybadger wasn't chosen by me, but by someone else, and liked by Araq
21:08:19OrionPKwan ah then probably my templates are better :P
21:09:52wanOrionPK: well, I'll never miss closing a tag with mine B)
21:10:15EXetoCcan doc comments be positioned below constants and fields?
21:12:07AraqEXetoC: use #\
21:12:13Araq# it like this
21:12:13OrionPKheh if you forget in mine, it wont compile
21:13:44wanOrionPK: I really want to try the philosophy of sharing templates between client and server, not having to either recode your templates or make javascript necessary. That was my goal for porting (most of) jade
21:14:16OrionPKit's an interesting idea
21:15:09wanThe problem being that you need to use the same template engine on both sides, and the choice is limited. Highly dependent on your stack...
21:17:06Araqhow do you share the template without javascript on the client?
21:17:48EXetoCclients? templates?
21:17:57OrionPKuse html on the server araq
21:17:59OrionPK:p
21:18:05wanYou serve already-filled html to the client, the ones with javascript can then dl scripts and pre-compiled templates, and query json api for an enhanced experience
21:18:57wanI'm designing my server-side views so that each one answers to json and html
21:19:34wanperfect marriage of webapp and website
21:19:47Araqhmm I know the words you're using but I don't get anything
21:19:49wanno compromise on SEO
21:20:27wanSEO* I mean crawlability
21:20:29OrionPKyeah im not sure I see where you're going w/ it wan
21:21:08OrionPKwhy not just have the clients download the precompiled HTML and serve it rather than use JSON
21:21:26*gXen quit ()
21:22:25wanJSON saves on bandwith when you have already fetched the pre-compiled templates.
21:22:52OrionPKJSON means more client-side processing
21:23:05OrionPKto translate what came back into HTML
21:23:08OrionPKand then render that
21:23:29wanI'm betting that phones have enough power to do that well, 3G connection is still more of a problem for latency nowadays
21:23:31fowlbetter than overheating the server
21:23:35OrionPKlol
21:23:56OrionPKfowl I saw you (or someone) fixed that dependency in the sdl lib, thanks
21:23:59wanYeah, the server doesn't care, it's not that more expensive to serve html
21:24:15fowlOrionPK, gracias pointing it out
21:24:35OrionPKi got the skeleton running on my mac :D
21:24:53OrionPK(again)
21:25:58Araqwan: serving static html can go through a highly optimized path in nginx for instance
21:26:20Araqso the server does care
21:26:35*Clement joined #nimrod
21:26:43Araqhi Clement welcome
21:26:58ClementHello Araq
21:26:59*Clement is now known as Guest87695
21:27:33wanOh yes, but this is for static files. Templates are for when your pages are dynamic, of course.
21:28:26Guest87695Could you please tell me whether this is a bug of an intended behavior ? https://gist.github.com/ClementJnc/a31a8dcf61668e2d045e
21:28:27EXetoCnot only
21:30:58dom96Guest87695: Works for me. Are you using 0.9.2?
21:31:11Guest87695I have different behavior with "result &= ..." and with "result = result & ..."
21:31:26Guest87695Using the last version from Git.
21:31:50fowlhow about result.add ".."
21:32:00dom96oh, I see what you mean.
21:32:04dom96Thought it crashed.
21:33:05Guest87695result.add give the same behavior as &=
21:34:53AraqGuest87695: is that a regression you hunted down to a minimal snippet?
21:35:18Guest87695Yes
21:35:51wanregression means it worked before, then?
21:36:15Araqreport it please. Oh and we need a 'regression' tag.
21:36:48Araqwan: that's what 'regression' means, yeah. And these are our biggest problem.
21:36:59Guest87695OK, I'll prepare a report.
21:38:32wanI didn't know the compiler changed that much. I guess after a while, you'll have a nice collection of tests if things break more often.
21:38:41*Demos joined #nimrod
21:39:07wanDirty trick for getting test contributions: break things.
21:39:22wanI'm joking of course
21:39:40Guest87695In fact, I have to check, I'm not sure this exact version has worked with an older version.
21:42:26wan(That's why I asked about regression (I know what it means!). Araq's question had two components: is it a regression, and have you made it minimal. I sensed that the singular response might need some double checking)
21:43:28Demoswan: protip -- you can use git bisect to quickly find out if it is a regression
21:43:35Demoswell fairly quickly
21:43:46Demosit helps that nimrod compiles really fast
21:43:54Araqwan: between 0.9.2 and the upcoming 0.9.4 we have over 1300 changes
21:44:18Araqso much for the "compiler doesn't change that much"
21:44:29Araq:D
21:44:37EXetoCc(:)-<
21:44:43wanDemos: does it recompiles backward for each commit and stops when it works? That seems awesome, didn't know about bisect!
21:45:32Demosit is a git feature, you give it a known working commit and a known buggy commit and it will checkout the commit between them, you test, then you tell git if it worked or not
21:45:49Demosyou can also give git a script that does the test and reports the result (by exit code I think)
21:46:16Demosit really pushes home how cool log(n) algorithms are
21:47:24wanbinary search ftw?
21:47:35Demospretty much :D
21:48:24Demosa fun project would be to integrate that into the builder, so you could add a test and then see when it started failing in the past
21:48:51wanDoesn't the history purge kinda limit that?
21:49:00Demosno
21:49:06*faassen left #nimrod (#nimrod)
21:49:21Demosthe history is still there, all the hashes just changes since we deleted some large binaries and c sources
21:49:28Demos*changed
21:49:52filwitOkay, due to an oversight on my part, I wont be showing the Web/Forum/Docs designs publicly. However, if you'd like to see them, please PM me and I'll see about showing them to you.
21:51:25wanNice futuristic look, however MASSIVE lack of contrast
21:51:42filwitthe designs are ready to show, and i'd appriciate any feedback, so please let me know if you're interested
21:51:44wanyou need the main background to be whiter
21:51:58wan(already found the links without asking you)
21:53:22wanyou might want to turn up the opacity on that #fff rgba that I suspect you have there
21:54:00wanthe grey-on-blue seems nice though
21:54:10dom96I thought the same thing. I wonder if filwit's monitor's brightness is set to "THE SUN".
21:54:44filwitwan... damn you!
21:54:51filwitbut yes, that's the general idea
21:54:56*Guest87695 quit (Quit: Page closed)
21:55:05filwitalso, not everything is fully fleshed out obviously
21:55:13BitPuffinYOU KNOW WHAT
21:55:14Mat3need some sleep, ciao
21:55:19*Mat3 quit (Quit: Verlassend)
21:55:19BitPuffinDesperate times
21:55:22BitPuffindesperate measures
21:55:23wanfilwit: Oh, did you mean you prefer feedback to be given in pm?
21:56:27filwitwan, it's okay, just that we don't want to spread the idea of a logo change, and don't want random people to think it's changing due to these images
21:56:29BitPuffinfor some reason doing this feels like admitting failure
21:56:31BitPuffinbut it's not really
21:57:17wanBitPuffin: care to share your worries?
21:58:12BitPuffinwan: well since bugs with generics is causing my 3d math lib not to work at all I am developing a "boring" subset of the library
21:58:31BitPuffinie one that is only generic with the type of the vector/matrix components and not size
21:59:15DemosI just converted some of my functions to have names based on the size and type, this way I can convert back eaisly when the compiler supports static[T] better
21:59:18BitPuffinso the boring subset will basically be just like every 3d math lib for every language whereas the regular ones that don't work are generally moar powerful than what is offered
21:59:39EXetoCit's temporary so whatever
22:00:17wanfilwit: on the docs page, the docstring below procs is too grey, need to be blacker
22:00:46reactormonkproc createModel(db: TDBConn, cc: ContextCounters, into: string) =
22:00:47wanfilwit: otherwise that one looks fantastic
22:00:53reactormonkexpression 'createModel(db, cc, "basic")' has no type (or is ambiguous)
22:00:58filwitwan, yes the docs are generally not contrasted enough
22:01:04reactormonkoh, it doesn't have a return type
22:01:11filwitwan: this will be fixed once i turn it into HTML
22:02:07wanfilwit: I was talking about docs.htm, not the pictures this time
22:02:14filwitoh i see
22:02:25filwitdocs.htm is not a graphics design thing
22:02:40filwitcolors where chosen to be consistent, not production
22:03:12filwitit's just to illustrate different things, like when you click on a type, it isolates all it's procs... the sidebar is togglble, etc...
22:04:30wanOh yeah. Much wow.
22:05:02dom96BitPuffin: Just implement what you need instead of a whole damn library.
22:05:33wanYou can improve the colors if you want, the design is such a great step forward compared to the current docs...
22:05:57filwitgreat!
22:06:05filwitthanks for your input, wan
22:06:10dom96yeah, in fact I would say it's better than any docs i've ever seen.
22:06:33wanfilwit: happy to help
22:08:03BitPuffindom96: well I want it to be available for others as well
22:09:08fowlthats what we have SVN for
22:09:39BitPuffinfowl: you are drunk?
22:12:51wanfilwit: (back to the pictures)the forum is a bit bland. Maybe expand each line's height? You could try having the posts and/or views counts on the left, a bit separated (in their own box) a la stackoverflow, or even a la HackerNews.
22:13:03BitPuffindom96: we should really *really* fix the security derps with the forum before the new release btw
22:13:15BitPuffinif this brings a wave of new users it's simply unacceptable to keep doing this
22:13:22dom96BitPuffin: are you volunteering?
22:13:40BitPuffinmaybe yeah
22:13:51BitPuffinjust that jester doesn't really work on mac
22:13:54*Matthias247 quit (Read error: Connection reset by peer)
22:14:02filwitwan, thanks. I'll experiment more once this is in HTML/CSS and we can play with those sorts of things
22:14:06dom96BitPuffin: why not?
22:14:13BitPuffindom96: redirect
22:14:29dom96BitPuffin: that's a compiler bug right?
22:14:35BitPuffinaye
22:14:43fowlBitPuffin, yep
22:14:47wanfilwit: we need to break up this 'lines, lines everywhere' aspect of the forum. Maybe introduce images on the left, a la forum.nofrag.com/forums/nofrag ?
22:14:53dom96gosh, so many problems with them Macs.
22:14:59BitPuffinfowl: cool, what are you drinking?
22:15:02BitPuffindom96: agreed
22:15:09*brihat joined #nimrod
22:15:28fowlamerican beer!
22:15:35dom96BitPuffin: Could you test async await on mac?
22:15:56BitPuffindom96: signed cookies would be acceptable compared to sending the password hash back and forth, but I'd really prefer the session store since that's the real solution
22:16:09BitPuffinhowever changing the hashing is probably prio #1
22:16:16filwitwan, pointless pics don't add much though... maybe show a small icon of the OP's avatar or something tho
22:16:25BitPuffindom96: the easiest way to migrate would probably be to have everyone reset their password
22:16:54EXetoCpassword recovery next then
22:17:02BitPuffinEXetoC: not necessarily
22:17:29BitPuffinEXetoC: could be first a login attempt with the new hash, if that fails, try with md5 and compare, if successful, ask them to write new password
22:17:59BitPuffindom96: I could, but you'd have to show me the way
22:18:57*flaviu joined #nimrod
22:19:15fowldid u all put heartbleed bugs in ur softwares yet?
22:19:17BitPuffinfowl: local brew?
22:19:23wanfilwit: yeah, I know, useless pics are useless. Well, if you feel like adapting the layout of another open-source forum, I recommend esotalk.org/forum/, which I think has the best forum design that I've seen (but has too big fonts though). Or I could help copying esotalk's design, if it's a fit.
22:19:23dom96BitPuffin: nimrod c -r tests/async/tasyncawait
22:19:34BitPuffinfowl: heartbleed does not affect nimrod, we don't use ssl anyway lol
22:19:54dom96we do in babel :P
22:19:57BitPuffindom96: too much work sorry
22:19:59BitPuffinjk
22:20:04filwitwan, yeah that forum looks slick
22:20:16EXetoCBitPuffin: not talking about that
22:20:31EXetoCit's an essential feature
22:20:32BitPuffindom96: 5000
22:20:59BitPuffinEXetoC: babel doesn't count, we are not providing the service for babel :P
22:21:00dom96BitPuffin: cool, now write a kqueue implementation for the selectors module :P
22:21:03BitPuffinEXetoC: what?
22:21:09BitPuffinI meant dom96
22:21:12BitPuffinwith the babel stuff
22:21:27dom96yeah, true.
22:21:30fowlBitPuffin, the next time you write packet serializing do it sloppily :D
22:21:43EXetoCBitPuffin: for the forum
22:21:47BitPuffindom96: someone needs to get us an SSL cert for the forum login
22:21:47dom96I say we all voluntarily help the NSA.
22:22:02BitPuffindom96: it's probably either you or Araq in that case
22:22:04BitPuffinprobably Araq
22:22:15BitPuffinfowl: wat
22:22:15dom96Means they don't need to spend as much money on breaking our security, which means they use less of our tax dollars, which means we can pay less tax!
22:22:23AraqBitPuffin: let me work
22:22:27BitPuffinAraq: ?
22:22:34Araqdon't highlight me
22:22:51BitPuffindon't look at highlights, rather
22:23:19BitPuffinplus it's not like it wasn't work related -_-
22:23:21dom96Araq: /msg *status detach #nimrod
22:23:52BitPuffinAraq: don't be rude
22:23:55wandom96: Europeans don't pay taxes for the USA
22:24:03BitPuffinwan: at least we THINK
22:24:15dom96wan: Well we have our own NSA equivalents.
22:24:23dom96Gotta help 'em out too.
22:24:34BitPuffinGCHQ + FRA + NSA <3
22:24:35fowlBitPuffin, bleeding heart caused by lazyness https://github.com/fowlmouth/nimrod-enet/blob/master/pkt_tools.nim#L50
22:25:56dom96The one thing I hate about spring is all these damn insects flying around my room.
22:26:13dom96RIP moth.
22:27:11BitPuffinfowl: there is no heartbleed in there
22:27:21wanfilwit: (home pic) the <pre> on the top of the page shouldn't use this font. The parenthesis look like square brackets, that's very confusing.
22:28:03BitPuffinfowl: well, if you wrapped malloc into a LIFO pool then maybe
22:28:06fowlBitPuffin, depends on how its used
22:28:16filwitwan, yeah that's an artifact of an older design i forgot to change.
22:28:18dom96haha: http://www.mumsnet.com/features/mumsnet-and-heartbleed-as-it-happened
22:28:25filwitwan, notice the code on the docs image doesn't have that font
22:28:44BitPuffinfowl: well the important thing about heartbleed was the stupid irresponsible fucking malloc wrapper
22:29:19flaviufilwit: It looks good, but the background is a bit too dark for my preference. I'm also not a big fan of the white in the syntax highlighting
22:29:24filwitwan, also things are not fully visualized in these designs. Like how the page content isn't all there, or the "lastest news"
22:29:31fowlBitPuffin, it would have been avoided with a simple check to see if the packet has enough bytes
22:29:36BitPuffinfowl: yes, the fact that it didn't check the incoming size was bad, but if they didn't wrap malloc then the extra bytes it would send back would not be anything useful, in fact it would probably crash for accessing memory it did not own
22:29:49filwitflaviu, okay, thanks for your input
22:30:00BitPuffinfowl: yes it would have, but the real source of the problem was malloc wrapper
22:30:02DemosThe real problem in heartbleed was that it was disclosed in a really dangerous way
22:30:18BitPuffinDemos: it was really fucking strange how it was disclosed
22:30:38BitPuffinlike some random cloud company I've never heard of before knew it one week before it was disclosed
22:30:53BitPuffinAmazon didn't even know before them
22:30:55BitPuffinlike wtf
22:30:56wanfilwit: by the way, what the hell happened with "Nimrod is efficient" kerning? `letter-spacing: calc(3px + random(10));`? The font kerning pairs informations for `ffi` seems to conflict with letter-spacing.
22:31:04Demosthey should have waited until the patch was in wide circulation before telling the world, sure attackers could read the patch notes but still
22:31:26BitPuffinand Debian + FreeBSD security officers didn't even know until it was out there
22:32:03filwitwan, eh?
22:32:18fowlBitPuffin, someone slipped up and told a friend, they told a friend, etc etc, probably nobody wanted to be the public discloser of it
22:32:28BitPuffinyeah
22:32:33BitPuffinwell it's fucked up anyway
22:32:37flaviufilwit: On the first link, web1
22:32:47Demosthe other thing is that I dont think you could get specific info, you just got whatever was in memory, which makes the disclosure situation even more insane
22:32:59flaviuDemos: Someone got private keys
22:33:12BitPuffinDemos: well whatever was latest free'd
22:33:28filwitwan, flaviu, sorry i'm not sure what you're talking about. the ".efficient ..." thing on the homepage?
22:33:33Demosflaviu: right, but it was not "I want this user's keys" it was "I got the keys in memory"
22:33:47filwitwan, flaviu: if so, that's pretty much as it always has been...
22:33:50wanfilwit: yes, the font in the docs image looks okay. Apart for, you know, italics. It's very weird for me to see italics in the code, maybe because I use vim in a terminal all day long, or maybe because italics shouldn't be used in code.
22:33:51flaviufilwit: No, in the body, under "Welcome to Nimrod"
22:34:15fowlBitPuffin, i bet there was a commit long ago patching malloc for openssl to fix the crash caused by the bug lol
22:34:47filwitwan, i disagree, i code with italics to distinquesh things with similar color but distinct differences (ei, properties vs methods)
22:34:52Demosso it was disclosed by cloudflare (I large CDN) in a public blog. They were like "look how on top of security we are"
22:35:16filwitwan, flaviu: oh, lol.. that's old content from the previous nimrod design
22:35:28BitPuffinfowl: haha, no the reason they wrapped malloc was for performance on some platforms
22:35:31BitPuffinwhich is a horrible reason
22:35:40filwitwan, flaviu: i just copy pasted it, as it wasn't really important for the design, just to get the idea across
22:36:03wanfilwit: for italics, I'm just saying, I was surprised to see italics. Do other programming languages use italics in their <pre>?
22:36:18flaviufilwit: The point is that it looks like 'Nimrod is E ffi cent'
22:36:22filwitwan, italics are an IDE thing, not a language thing
22:36:30filwitwan, though idk if other sites use it
22:36:32DemosOK cloud flare posted the blog after the patch was out.... but only 1 hour after
22:36:47wanfilwit: I'm talking about other languages' homepages or docs.
22:36:55BitPuffinhttp://article.gmane.org/gmane.os.openbsd.misc/211963
22:36:58filwitflaviu: yeah that's something odd with the font, or maybe i added a space on accident, dunno
22:36:58*brson quit (Ping timeout: 258 seconds)
22:37:08filwitwan, yeah i have no idea
22:37:26filwitwan, the exact way the code is highlighted is ultimately not up to me
22:37:40wanfilwit: Is it reasonable to assume that italics are okay, or that italics are weird, because they are very often used / not very often used on docs pages around the web?
22:37:42filwitwan, and probably wont look exactly like my designs here
22:38:09filwitwan, that's an argument from popularity, and not a very good reason to make a choice :P
22:38:29filwitwan, but then, if most people are completely against them, i guess it makes sense not to have them
22:38:34flaviuI personally like the italics
22:38:38filwitme too
22:38:47BitPuffinfowl, Demos: Honestly it's really suspicious, this is not the kind of thing you accidentally do
22:40:20EXetoCfowl: want to review the pull?
22:40:37EXetoCand maybe someone else who is interested https://github.com/nimrod-code/opengl/pull/3
22:40:45DemosBitPuffin: who knows. I am going to assume it was some clueless MBA type who thought "oooh we could get PR", seems more likely than disclosing the bug (1h /after/ the patch came out) because of evil
22:42:32BitPuffinDemos: https://www.youtube.com/watch?feature=player_detailpage&v=X0_3rpA5_WE#t=3212
22:44:41wanfilwit: yes, yes, I was trying to justify something based on its popularity, and that's not usually a good way to defend an argument. I don't remember seeing them around docs for python stuff or in <pre> in github repos' READMEs, and do find it highly unusual. Of course, each and everyone has their own experiences and usages, I'm just expressing my surprise.
22:45:27BitPuffinDemos: but yeah, OpenBSD is generally fantastic but the OpenSSL team is really weak imo
22:45:47DemosOpenSSL is not part of the OpenBSD project
22:45:55Demosin any way
22:46:46filwitwan, you're not allowed to express any emotion on the internet anymore. The NSA made that illegal last week. I'm going to have to report you to the authorities ;)
22:47:05fowlEXetoC, whats with the search in checkGlError()? just use $ error.TGlError
22:47:30BitPuffinDemos: oh it isn't?
22:47:36BitPuffinI always thought that
22:47:39BitPuffinguess not
22:47:53BitPuffinwell thaaaaat explains everything
22:47:53filwitwan, just kidding of course, and thank you for all your feedback and interest
22:48:36EXetoCfowl: what about any unknown error codes? might be a little excessive though. anyway, I could use an 'in' check instead
22:48:45filwitwan, i just did what looks good to me in my designs, but it may be completely out of place and not something we want in the final production. You'll have to convince Araq of that though, not me.
22:48:59fowlEXetoC, they'll get something like (Invalid data!)
22:49:21filwitwan, btw, i haven't seen you around here before. are you new to Nimrod?
22:49:56fowlEXetoC, why change ptr GLchar to cstring? they should be the same thing
22:50:25EXetoCfowl: apart from the implicit casting
22:50:27fowlEXetoC, but the wrapper should reflect GL's man pages
22:50:29*brson joined #nimrod
22:50:30BitPuffinDemos: I was ordering plane tickets and stuff earlier and I was actually kinda worried about heartbleed
22:50:45BitPuffinlike I dunno if Ryan air and stuff has patched their OpenSSL if they use it
22:50:48BitPuffinlikely not
22:50:52fowlEXetoC, there is no implicit cast if GLchar is char then ptr GLchar is ptr char aka cstring
22:51:01wanfilwit: I dropped in the irc some months ago, I have been lurking from time to time thanks to the irclogs mostly, I'm usually not talkative
22:52:37filwitwan, i see. well late-welcome i guess
22:52:58EXetoCfowl: cstring allows implicit casts from strings. I haven't found any functions yet that don't expect null-terminated strings
22:53:09*Varriount|Mobile quit (Remote host closed the connection)
22:53:11wanfilwit: thanks
22:53:16EXetoCwhich is according to the convention, but I could have a closer look some other time just to be sure
22:53:24*Varriount|Mobile joined #nimrod
22:53:38EXetoCas it doesn't appear that often last time I checked
22:53:46flaviuBitPuffin: They use ASP.NET, so I don't think they're affected
22:54:10BitPuffinflaviu: ah
22:54:20BitPuffinflaviu: well I also ordered from uuuhh
22:54:24BitPuffinwhat are they called
22:54:43BitPuffinstanstedexpress.com
22:55:36fowlEXetoC, you'll still have implicit conv from strings
22:56:11flaviuBitPuffin: https://filippo.io/Heartbleed/#www.stanstedexpress.com
22:56:12flaviuThat site didn't work for ryanair, their website had some sort of issue, but the end of the url was .aspx
22:56:29fowloh
22:57:12*Varriount|Mobile quit (Client Quit)
22:57:19BitPuffinflaviu: yeah I basically just did the same thing but with a mcaffee tool
22:57:34EXetoCfowl: that was not the case yesterday
22:57:37fowlEXetoC, cstring used to be ptr char.. its not anymore
22:58:08EXetoCthe current module uses it in some cases. it's binary compatible isn't it?
22:58:30EXetoCit uses cstringArray as well
22:59:32BitPuffinI would probably use NSS rather than OpenSSL nowadays
22:59:44fowlEXetoC, yes but weak to future opengl updates, make PGLchar* = cstring then, actually, when GLchar is char: type PGLchar* = cstring else: type PGLchar* = ptr GLchar
23:00:36fowlEXetoC, yea cstringarrays are annoying to deal with
23:01:50EXetoCI don't think they'll ever change
23:02:31renesacdom96, BitPuffin: http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libssl/src/ssl/d1_both.c.diff?r1=1.7;r2=1.8;f=h <-- quality coding
23:03:10fowlEXetoC, you dont like that compromise?
23:03:27BitPuffinrenesac: a lot better than openssl at least :P
23:03:37EXetoCfowl: it's fine
23:04:09Araqgood night
23:04:11EXetoCI didn't include PGLchar etc though, because of the upcoming changes. should I? I don't think it'll break much code
23:04:48filwiti really wish the standard was just to use 'ref Foo' everywhere
23:04:52fowlEXetoC, not sure how you use this: GLeglImageOES* = distinct pointer, if you need to be able to isNil() on it, its easier to use `ptr object`
23:05:18filwitbut that's because i'm still unclear on how to obtain a 'value type' of a 'ref object'
23:05:23fowlEXetoC, oh i see what u mean
23:05:48fowlfilwit, you can dereference it
23:06:14filwitno, i mean when you need to pass the type for generics
23:06:22renesacand somehow, I think Microsoft already knew this bug for a long time...: https://github.com/joyent/node/commit/28c6e42e
23:08:04EXetoCfowl: with?
23:08:20EXetoCknow about 'distinct with'? was added recently I think
23:08:20fowlEXetoC, you changed the types to GL*
23:08:48fowli dunno what you're talking about
23:08:58renesacfilwit, your bear looks too violent :P
23:09:03EXetoCfowl: "x = distinct with `isNil`" or something
23:09:11renesacbut my complaint is only about the face
23:09:24fowlEXetoC, oh really?
23:09:58fowlEXetoC, i used regions in a recent wrapper
23:10:12fowlit looks nice: ptr[Lacewing, TTimer]
23:10:14filwitrenesac, sorry brb
23:10:28fowlnot really necessary at all though >_>
23:13:18EXetoCright
23:17:46EXetoCuh oh segfault "sigmatch.nim(506) maybeSkipDistinct"
23:17:57BitPuffinfowl: what was it you wanted me to test?
23:19:44EXetoCok I'll just use 'ptr object' then
23:20:25BitPuffinEXetoC: pointer
23:20:44EXetoCfight!
23:21:37fowlBitPuffin, im trying to fix a bug before i have u run it.. its pissing me op >:/
23:23:12BitPuffinah
23:23:18BitPuffinwell let me know!
23:23:27*darkf joined #nimrod
23:32:47filwitrenesac, back
23:33:04filwitrenesac, that the mascot looks a bit too angry is the general feedback about the mascot
23:33:14filwitrenesac, did you see the other designs?
23:33:28renesacthe ones changing the color?
23:33:46filwitrenesac, no, the new web/forum/docs designs
23:33:50filwiti'll PM you
23:33:57renesacnot yet
23:36:17*zahary quit (Ping timeout: 250 seconds)
23:38:30*askatasuna quit (Quit: WeeChat 0.4.3)
23:43:55NimBotAraq/Nimrod devel 84c1aa9 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Adds missing import.
23:43:55NimBotAraq/Nimrod devel 208ef29 Simon Hafner [+0 ±0 -0]: Merge pull request #1101 from gradha/pr_adds_missing_import... 2 more lines
23:44:27NimBotAraq/Nimrod devel de04c97 Grzegorz Adam Hankiewicz [+0 ±1 -0]: Improves startProcess docstring for poEvalCommand usage.
23:44:27NimBotAraq/Nimrod devel 6886a47 Simon Hafner [+0 ±1 -0]: Merge pull request #1102 from gradha/pr_improves_startProcess_docstring... 2 more lines
23:49:16*BitPuffin quit (Ping timeout: 240 seconds)
23:54:28*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
23:54:31filwitlater folks
23:54:34*filwit quit (Quit: Leaving)
23:59:03*zahary joined #nimrod