<< 04-04-2014 >>

00:06:54*q66 quit (Quit: Leaving)
00:19:24*nande quit (Read error: Connection reset by peer)
00:22:19*nande joined #nimrod
00:23:21*DAddYE quit (Remote host closed the connection)
00:23:54*BitPuffin quit (Ping timeout: 240 seconds)
00:23:57*DAddYE joined #nimrod
00:28:29*DAddYE quit (Ping timeout: 268 seconds)
00:42:11VarriountAraq: default(T)?
00:46:59*Demos quit (Ping timeout: 268 seconds)
00:57:38*nande quit (Remote host closed the connection)
01:00:31*BitPuffin joined #nimrod
01:04:01*nande joined #nimrod
01:06:38*psquid quit (Ping timeout: 240 seconds)
01:07:23*psquid joined #nimrod
01:29:54*vendethiel quit (Ping timeout: 255 seconds)
01:30:17*vendethiel joined #nimrod
01:49:37*Demos joined #nimrod
01:53:53*xenagi quit (Quit: Leaving)
02:15:13*brson quit (Ping timeout: 240 seconds)
02:49:33*Demos quit (Ping timeout: 255 seconds)
02:56:33*davedong joined #nimrod
03:01:59*askatasuna joined #nimrod
03:08:00*askatasuna quit (Ping timeout: 255 seconds)
03:15:36*rta quit (Ping timeout: 245 seconds)
03:19:28*Demos joined #nimrod
03:30:54*rta joined #nimrod
03:39:38*DAddYE joined #nimrod
03:44:00*ehaliewicz joined #nimrod
03:47:37*DAddYE quit (Remote host closed the connection)
03:48:13*DAddYE joined #nimrod
03:48:25*Demos quit (Ping timeout: 240 seconds)
03:52:38*DAddYE quit (Ping timeout: 240 seconds)
04:03:37*davedong quit (Ping timeout: 240 seconds)
04:10:58*tiservice joined #nimrod
04:14:58*ics_ joined #nimrod
04:17:53*ics quit (Ping timeout: 268 seconds)
04:58:43*DAddYE joined #nimrod
05:00:26Araqhi tiservice welcome
05:02:54*DAddYE quit (Ping timeout: 240 seconds)
05:18:35*DAddYE joined #nimrod
05:47:30*ics_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
05:59:43*zahary joined #nimrod
06:08:17*ics joined #nimrod
06:21:28*skyfex quit (Quit: Computer has gone to sleep.)
06:29:35*DAddYE quit (Remote host closed the connection)
06:30:09*DAddYE joined #nimrod
06:34:26*DAddYE quit (Ping timeout: 252 seconds)
06:51:39*DAddYE joined #nimrod
06:57:00*tiservice quit (Remote host closed the connection)
07:00:39*fowl quit (Ping timeout: 255 seconds)
07:02:52*fowl joined #nimrod
07:06:50NimBotAraq/Nimrod devel 517b78b Araq [+0 ±2 -0]: minor VM bugfix
07:06:50NimBotAraq/Nimrod devel 545875a Araq [+0 ±1 -0]: new VM: fixes for exception handling
07:11:24AraqEXetoC: check out my patches :-)
07:39:37*BitPuffin quit (Ping timeout: 240 seconds)
07:44:25*runvnc joined #nimrod
07:45:06runvnchello
07:45:14*BitPuffin joined #nimrod
07:45:36runvncso if I am getting exceptions like InvalidReply every time I try to use anything in between redis multi and exec then I am doing something wrong right
07:45:37BitPuffindom96: turns out SOMA is not a space game after all, it's set under the ocean
07:59:14*nande quit (Remote host closed the connection)
08:00:45Araqrunvnc: ask again when dom96 is around
08:00:56runvnck thanks. I posted it to the forum
08:19:48*DAddYE quit (Remote host closed the connection)
08:20:24*DAddYE joined #nimrod
08:24:25*DAddYE quit (Ping timeout: 240 seconds)
08:26:36*BitPuffin quit (Ping timeout: 255 seconds)
08:57:31reactormonkrunvnc, grab wireshark and take a look at what crosses the wire
08:59:58runvncok, I will look at it tomorrow unless dom96 has some obvious explanation. I can also just insert some logs in the lib/pure/redis.nim probably
09:33:34*ics quit (Ping timeout: 240 seconds)
09:35:11*ics joined #nimrod
09:59:51Araqrunvnc: I skimmed redis.nim and the recent documentation of the protocol and apparently redis got a new way to encode strings via a leading '+' that is not implemented in the redis.nim module
10:00:27Araqit should be easy to fix though, you can try to do it yourself and make a PR or wait for dom96 to do it for you. ;-)
10:00:57Araqor you downgrade your redis version
10:04:31EXetoCAraq: I wouldn't have figured that out of course, but at least I got my feet wet
10:05:05AraqEXetoC: actually you did all the hard work
10:05:19Araqthe fix was pretty obvious after your descriptions
10:08:13Araqalso I'm sure it's still buggy as hell .. ;-)
10:08:20Araqplease test it more
10:13:56*BitPuffin joined #nimrod
10:16:44BitPuffindom96, Araq: new eppasod http://youtu.be/2M1Z8JrvO-A :)
10:16:46BitPuffinliek it plox
10:16:49BitPuffintänks
10:17:13EXetoCAraq: my exception handlers are ignored now basically
10:19:01EXetoCno, wait..
10:20:05EXetoCmaybe if I bootstrap first. yeah, that might cause the compiler to actually be upgraded
10:26:54*BitPuffin quit (Ping timeout: 240 seconds)
10:29:20*BitPuffin joined #nimrod
10:30:42EXetoCAraq: the gist works now, but I cannot yet except EOverflow
10:44:45*darkf_ joined #nimrod
10:44:50*darkf_ quit (Changing host)
10:44:50*darkf_ joined #nimrod
10:46:37EXetoCshould it be possible to replace that proc with a block?
10:46:58*ehaliewicz quit (Ping timeout: 240 seconds)
10:48:14*darkf quit (Ping timeout: 265 seconds)
10:48:38*darkf_ is now known as darkf
11:17:01*Trimsty joined #nimrod
11:20:40*io2 joined #nimrod
11:23:10AraqEXetoC: EOverflow etc and not supposed to be catchable in general. the spec allows for this.
11:23:14Araq*are not
11:23:27*askatasuna joined #nimrod
11:32:48Araqwe can easily support it though. you need to change the calls to 'stackTrace' to do something else...
11:46:11*askatasuna quit (Ping timeout: 268 seconds)
12:33:20*isenmann quit (Quit: Leaving.)
13:20:39*askatasuna joined #nimrod
13:52:16*darkf quit (Quit: Leaving)
14:07:44*nande joined #nimrod
14:10:27*Demos joined #nimrod
14:39:00VarriountAraq: What is default(T)
14:39:54*askatasuna quit (Ping timeout: 240 seconds)
15:01:38*Demos quit (Ping timeout: 240 seconds)
15:50:09dom96hi
16:15:56AraqVarriount: default(T) is T's default value (binary zero). proc default(T: typedesc): T = discard # somebody should ensure this works
16:16:26Araqping zahary
16:16:59dom96ping zahary
16:17:06Araqhi dom96
16:17:17dom96hey
16:20:20Araqso how's work on async progressing?
16:21:50dom96Haven't started work yet today.
16:22:41AraqI studied the open sourced c# compiler
16:24:19Araqfun facts: nimrod's lamdalifting it 800 lines and also does closure iterator transformation. c#'s is ~3000 lines
16:25:02Araqand apparently they have about 350 tests while we have about 600.
16:25:25dom96Does C#'s support multi-level closures? :P
16:25:58Araqwhich perhaps means we're still doing not so well when it comes to testing
16:26:03EXetoCof which ~400 is brackets? :>
16:26:36AraqEXetoC: I dunno
16:26:49Araqdom96: yes it does :P
16:27:28Araqbtw it is implemented too for nim, but doesnt work yet
16:27:59Araqso it wont bloat the code by a factor of 2
16:29:08*[1]Endy joined #nimrod
16:35:06VarriountAraq: What's the difference between default(T) and nil for strings and sequences?
16:35:52EXetoCnothing?
16:35:57Araqwell the question is whether default(string) == "" or nil
16:36:36Araqcurrently it is nil and with the upcoming changes 'nil' for seqs/strings will become much more crash safe
16:36:40VarriountAraq: The thing is, concerning the toFunc pragma and default values, many of the procedures in the strutils module use newString(inputLength)
16:37:06VarriountWhich is an optimization over just initializing a default string.
16:37:43VarriountTo put it plainly, I don't see why the asFunc pragma should concern itself with the initialization of values.
16:38:01Araqgood point. we need addLen(s, inputLength)
16:38:13Araqor something similiar
16:39:41Araqah you mean since we need to change things we might as well care for 'nil'?
16:39:56Araqand leave asFunc simple?
16:45:33VarriountYes
16:46:05Araqok, I suppose that makes sense once the new 'nil' handling for 'len' and 'add' arrived
16:46:29Araqwhich is not on our roadmap btw
16:46:43Araqwho will fix this? it's scheduled for 0.9.6
16:47:23VarriountAraq: Well couldn't it be turned into a simple term-rewriting macro (the nil handling for len and add)
16:47:52VarriountOr, how hard would it be to implement?
16:50:27Araqfowl had a hard time to implement it
16:50:50AraqI dunno why though. it's not hard
16:51:22Araqa TR macro should not change semantics so that's out of the question
16:51:53VarriountWell, to be honest, the compiler internals aren't the most well documented pieces of code. Perhaps fowl was trying to augment the wrong parts of the compiler.
16:52:40VarriountAs in, he thought that parts XXX should be modified, when in actuality parts YYY should be.
16:52:50Araqwell he knows where to find the C code gen
16:55:44VarriountAraq: Which procedures did you want me to modify to use 'asFunc' again?
16:56:01Araqall where it makes sense
16:56:14VarriountAlso, what's the difference between a procvar and a closure?
16:56:17Araqoh btw I won't merge it for 0.9.4
16:56:25VarriountAraq: That's fine.
16:57:31Araqthis also means every $ should become binary and asFunc ... perhaps
16:58:31Araqprocvar means you can take the address of a proc. closure means the proc has an environment
16:59:48Araqclosure implies procvar but then so does every explicit calling convention iirc
17:00:06Araq"The flow analysis phase of the Roslyn compiler is responsible for implementing the C# language specification’s rules about reachable statements (section 8) and definite assignment (section 5.3.3). Rather than being a strict implementation of the specification (which itself has some nontrivial bugs), the implementation is intended to accept all programs accepted by Dev10 and all programs...
17:00:08Araq...accepted by the intent of the language specification. This phase also computes and reports the warnings regarding unused local variables."
17:00:21Araqothers only cook with water too
17:01:25VarriountSo.. the implementation follows the spirit of the specification?
17:02:27Araqyes
17:04:46VarriountAraq: Where is the 'roadmap'?
17:05:10Varriount(Also, you do know that Github has a milestone mechanism, right?)
17:12:48*BitPuffin quit (Ping timeout: 252 seconds)
17:13:55*Demos joined #nimrod
17:14:08VarriountHi Demos
17:14:16Demoshi Varriount
17:14:39DemosI have thought of a name for the nimrod clone of thrust/accelerate
17:15:15VarriountWhat's thrust/accelerate?
17:15:36Demoshttps://developer.nvidia.com/thrust
17:15:47Demoshttp://hackage.haskell.org/package/accelerate
17:16:13Demosthere is also a haskell module that makes accelerate work with anything that implements the linear typeclass (presumably linear spaces and linear functions)
17:17:17VarriountIs there an existing nimrod clone of those libraries?
17:18:00DemosI dont think so
17:18:44Demosbut afaik the semantics are pretty easy to get working, you just need to make em run on the GPU ("the hard part")
17:19:03Demosor it looks like accelerate works with clik as well
17:19:17Demos*cilk
17:20:01*Matthias247 joined #nimrod
17:27:16*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
17:28:38*io2 joined #nimrod
17:30:12AraqDemos: nimwarp is an obvious candidate
17:30:39*q66 joined #nimrod
17:30:43DemosI was think Hydrazine, or some other rocket fuel
17:30:49Demoss/think/thinking
17:32:20*DAddYE joined #nimrod
17:40:15dom96There are too many projects with a nim prefix
17:40:26*nande quit (Remote host closed the connection)
17:42:27Demosalso warp is the name of microsofts software rasterizer
17:42:40EXetoCdom96: you think suffixes are better?
17:43:20dom96No
17:43:24EXetoCI don't like the idea of relying on neither
17:44:06dom96Also warp is the name of Facebook's pre-processor.
17:45:46Araqyeah that thing is faster than GCC's preprocessor
17:45:47EXetoCbut it's not a wrapper, is it? it doesn't matter then imo, assuming that the name is somewhat unique
17:45:54Araqbut slower than clang's lol
17:47:44dom96Demos: I like the name Hydrazine.
17:48:43Demosyeah. I thought it was pretty good. Now all we need is an implementation :D
17:51:25AraqDemos: just do it, I can help.
17:52:05Araqand yeah Hydrazine is fine for a name
17:52:17VarriountAraq: Under what circumstances is an object copied?
17:52:20Araqget that github project name and a URL right now
17:53:11AraqVarriount: assignment and sometimes for 'yield'
17:53:32Araqmaybe there are other contexts but I don't remember
17:54:31DemosAraq: just did, my exams are coming up, so I only have ~3-5 hours a night to work, but this lib should be light on design (last words)
17:54:48Araqcapturing a parameter comes to mind
17:55:08*q66 quit (Ping timeout: 252 seconds)
17:55:09Demosanyway I gotta go to class.
17:55:26AraqDemos: you know I wrapped opencl, right?
17:56:57VarriountDemos: 12 week course exams?
17:59:27*Demos quit (Ping timeout: 255 seconds)
18:02:15EXetoCTComplex should really operate on TReal, right?
18:07:21*q66 joined #nimrod
18:11:42AraqEXetoC: dunno
18:13:38EXetoCcan't see why not, along with some convenience procs
18:18:05Araqbtw what about the vm's exception handling?
18:18:15Araqis it stable already? ;-)
18:26:07Skrylarmeep
18:26:48SkrylarI guess I can't put off dealing with GL hell that much longer
18:29:39EXetoCAraq: I don't know. when are we getting a configurable random code generator with no-hang guarantees?
18:30:30EXetoCI'll test it with some complex nested static exception code later
18:32:42Araqwe have good tests in tests/exception
18:34:02*shodan45 joined #nimrod
18:40:48*seubert is now known as etc
18:41:29*etc is now known as seubert
18:47:37AraqSkrylar: what GL hell do you mean?
19:31:55*Demos joined #nimrod
19:37:25*nolan_d left #nimrod (#nimrod)
19:55:49*Demos quit (Ping timeout: 268 seconds)
20:12:08fowlAraq, i'd like to make the magic functions for seq private and wrap them in if isNil(x): newseq(x,0)
20:12:14fowlAraq, because im lazy
20:16:19Araqbah, I'd prefer to patch the codegen instead
20:18:12fowlwell, this method would mean you dont have to touch cgen, jsgen, vmgen, etc :p
20:18:51Araqyeah but still
20:19:18Araqthere is no etc. here. we only have 3 backends :P
20:19:43Araqbut fine
20:19:47Araqdo it your way
20:20:10Araqand expose the old stuff under "xlen" and "xadd" ?
20:20:39Araqfor increased efficiency I can then pick versions that don't care about 'nil'
20:21:51Araq"add" for PNimrodNode should be patched for vmgen though. vm code generation for macros will suck otherwise
20:22:35Araqbtw your bug is really weird
20:22:59Araq const
20:23:01Araq KeyMax = 227
20:23:02Araq myconst = int((KeyMax + 31) / 32) # works
20:23:21Araq type T = array[int((KeyMax + 31) / 32), cuint] # doesn't
20:23:49fowlyeah
20:24:03fowlone wonders what could be over or underflowing
20:24:32Araqthe fact that not every constant folding uses the VM is starting to hurt us
20:25:13fowlwhat should add for a nil PNimrodNode do?
20:25:20fowlthe node doesnt have a kind yet
20:25:34Araqoh good point
20:30:24fowllooks like system.safeAdd already does this >_>
20:30:59Araqoh yeah, forgot about that
20:35:51VarriountIt must be human flaw, that reading the complete meltdowns and hilariously stupid actions of others is so entertaining.
20:36:58VarriountEspecially when "others' refers to PHP developers.
20:45:46*Skrylar looks at the opengl xml's '_'
20:45:54Skrylarthose are huge :[
20:49:51*nande joined #nimrod
20:50:22AraqSkrylar: what's wrong with the existing opengl wrapper?
20:50:50Araqand especially: why is it so bad that you guys have to invent xml2nim to create a new wrapper?
20:51:32SkrylarAraq: i haven't looked at both yet
20:51:35VarriountHey, *I* think that the existing wrapper is fine.
20:51:47Varriount"Both"?
20:52:04Skrylarthough i wasn't impressed from what i heard when half the IRC was trying to get through hello triangle and nothing worked :P
20:52:16SkrylarVarriount: i usually like to peer around at the options before committing to one
20:52:27Skrylar(which is why there are two event engines in skylights right now -_-)
20:52:27VarriountI didn't know there was more than one wrapper.
20:53:00dom96it does seem that the loadExtensions stuff catches many new people out.
20:53:26Araqyeah but I still think it's unsolvable for technical reasons
20:53:59Araqbut we could make it a valid call even no extensions are used
20:54:03VarriountSkrylar: The opengl wrapper I'm using works, If you heard me complaining, it was probably due to me trying to practice a C++ opengl tutorial in nimrod.
20:54:20dom96The packages in the nimrod-code org really could use some readme's explaining how they are installed.
20:54:40EXetoCSkrylar: I was working on parsing gl.xml, but I haven't finished it yet. it's too bad it's not organized in such a way that a more type-safe interface can't be generated
20:54:47Varriount"babel install PackageName" you mean?
20:55:01dom96yes
20:55:05SkrylarEXetoC: what do you mean?
20:55:10VarriountSkrylar: What are the two opengl wrappers?
20:55:20SkrylarVarriount: by 'both' i mean 'the current wrapper' and 'the registry'
20:55:23*foodoo joined #nimrod
20:55:32Skrylarif the appearance of the wrapper looks too derpy to me vs. the derpiness of the xml
20:55:45VarriountThe registry? You mean the XML?
20:55:46EXetoCSkrylar: enum/function and pointer/size mappings basically
20:56:05Skrylari don't see why a lot of the enums couldn't be typesafe'd
20:57:00Skrylarthat said; do we have a native xml parser
20:57:08Skrylari was probably going to jank it with ruby+nokogiri
20:57:11EXetoCautomatically? not really
20:57:18EXetoCSkrylar: we do
20:57:30Skrylarbah, i don't auto-wrap :(
20:57:45EXetoC?
20:58:11SkrylarI'm one of those excessively picky people that wrap+binds at the same time so it looks like it belongs there
20:59:05VarriountWhat's the difference again?
20:59:37SkrylarVarriount: the difference is whether a rust wrapper requires you to throw 'unsafe' around all the time so you can use pointers, or if it accepts the language-native "Maybe X / Nothing" convention
21:00:21Skrylare.g. if you have non-nillable types, and the C API calls for "this must never be null", why not stick that on?
21:00:52EXetoCAraq: it lacks symbols for 1-2 minor versions, but few people will actually need them so it's only a minor issue
21:03:08VarriountSkrylar: You're writing a Rust wrapper?
21:04:28EXetoCso 4.4 and maybe 4.3, while 3.0-3.3 is commonly target nowadays it seems
21:05:05dom96Which HTTP client libs do you guys love the most?
21:05:05SkrylarVarriount: not anymore
21:05:06EXetoC*targeted
21:05:24Skrylardom96: curl seems pretty popular
21:05:43EXetoCdom96: Requests
21:06:13EXetoCwith that said, I've used very few of these, but Requests has pretty much everything you might need
21:07:08*[1]Endy quit (Ping timeout: 240 seconds)
21:07:19dom96yeah, requests looks good.
21:08:17*ehaliewicz joined #nimrod
21:08:40Araqhi ehaliewicz
21:21:39*oal left #nimrod ("Leaving")
21:24:58fowlAraq, shall i deprecate safeadd, replace it with add, add xlen, xadd then?
21:25:14runvncdom96 about the redis transactions, did they work before with maybe an older redis
21:25:27dom96runvnc: oh sorry, forgot to reply to you.
21:25:29fowlAraq, i did a github search, the only place safeAdd is used in in the compiler
21:25:43dom96runvnc: I don't think I ever tested them, so go ahead and fix it for your redis version.
21:25:50runvncok thanks
21:37:42*Demos joined #nimrod
21:37:48dom96Araq: I'm going to combine uri and parseurl into a single url module then deprecate uri and parseurl. Is that ok with you?
21:38:04Skrylarturning on a jackhammer six feet from someone who values their hearing is a good way to invoke wrath -_-
21:42:32Araqdom96: not really
21:42:48dom96Araq: why?
21:43:53Araqbecause the new url module wont be good enough either
21:44:08Araqand then we need url2.nim
21:44:31Araqurls are complex beasts
21:44:59dom96Perhaps we should just have some breakage?
21:45:28dom96All these deprecations are adding up and creating lots of unnecessary noise.
21:45:36Araqlike we tried with parseopt?
21:45:37Demosis there an industrial strength URL library out there we can use
21:46:20AraqDemos: sure but its major concern is what happens if malloc fails
21:47:50dom96The current uri module is kind of useless.
21:47:59dom96Jester uses it though.
21:48:37dom96But ok, I can save this for later.
21:48:45dom96So that we have time to ensure the url module is good.
21:48:49Araqjester is kind of useless. the forum and nimbuild use it though :P
21:49:36dom96So it's fine to break select which is used almost everywhere, but not something which is only used in one project?
21:49:45EXetoCthose are pretty useless too. some use it though
21:50:49Araqdom96: yes because 'select' was the *other way round* from all the other selects
21:50:59Araqthat people are used to
21:51:03Araqit was embarrassing
21:51:19Araqand so it was acceptable to break code
21:52:15dom96There are many places where things are the other way around from what people are used to in Nimrod...
21:52:46Araqlike?
21:52:48*DAddYE quit (Remote host closed the connection)
21:53:09dom96$ for floats not being equal to formatFloat for example.
21:53:51Araqwe will change that
21:54:43*foodoo quit (Quit: leaving)
21:55:40Demosdoes printf/iostreams print floats at full percision
21:55:59*nolan_d joined #nimrod
21:56:05*DAddYE joined #nimrod
22:16:02*Trimsty quit (Quit: Trimsty)
22:16:46*nolan_d left #nimrod (#nimrod)
22:38:48Skrylari think today i'll put off doing graphics code and work on string search
22:39:03Skrylarmaybe araq can take the stemming/approximation code for forum search :P
22:39:12AraqSkrylar: want me to coach you?
22:39:26Skrylari had a whitepaper for the stemmer
22:40:16Araqyou seem to do great work but you're too erratic ;-)
22:40:33AraqI also have a stemmer written in nimrod lying around somewhere
22:40:53Araqstems german and english, ported it from snowball
22:48:48*flaviu joined #nimrod
22:51:30Skrylaryay i do good work \o/
22:55:28VarriountStemmer?
22:57:03SkrylarSkrylar: removes suffixes from words, "smartly" becomes "smart"
22:57:31Skrylar"boxed cats" gets stemmed to "box cat" which makes it easier to search for text by index
23:00:05SkrylarI was poking around with a tool named "pcgen" that has to do with tabletop character sheets, and I think it just punts the java string functions because that thing is HORRIBLY SLOW
23:00:42Skrylari have rarely seen something that has to scan ~1,000 really short titles that is that bad
23:01:29VarriountSkrylar: My favorite java gotcha: Take a substring of a really large string, and then wonder why memory never gets deallocated for the large string.
23:04:52*BitPuffin joined #nimrod
23:05:46SkrylarVarriount: :\
23:05:56DemosEXetoC: ping
23:05:58SkrylarD handled that somewhat with explicit slicing semantics
23:07:22EXetoCDemos: pøng
23:07:36SkrylarI like slicing insofar as zero-copy stuff; when you know that this string is part of a network packet and you only care about each slice for the next thirty seconds or so
23:08:01DemosI was just using nim-glfw and I noticed that I can set closures for my window's callback functions. How do you do that?
23:08:26Skrylareasy way is to declare a proc and add {.procvar.} at the end
23:08:47VarriountSkrylar: What piece of mind-mapping software would you most recommend?
23:08:49Demosrught, but glfw expects regular old function pointers
23:08:58SkrylarVarriount: freeplane
23:09:09DemosVarriount: paper, with a pencil (or a pen I guess)
23:09:30EXetoCDemos: you're using just the wrapper?
23:09:36Demosno
23:09:44DemosI am using glfw/glfw.nim
23:10:03SkrylarInspirations is really nice if you can get a box copy (digital download has DRM stupidity) because you can turn on the Rapid Fire button and just hit enter to make new clouds; Freeplane is free and does anything you'd really want, you just have to hit the enter key more often
23:10:29Demosdo you keep the closure contexts in a structure pointed to by glfw's userdata pointer?
23:10:39EXetoCDemos: have you looked at events.nim? basically you just register callbacks with `fooCb=`
23:10:52DemosI know /how/ to register callbacks
23:10:56SkrylarDemos: if you're doing OO code, you set the userdata to a pointer to self
23:10:58EXetoCI haven't done anything regarding user data
23:11:27DemosI just want to make sure that my closures are not working by chance
23:11:42Skrylari don't recommend closures with C code, nimrod actually treats a closure as a struct
23:11:50Skrylarinstead, use a minor form of OO
23:12:00Skrylarbecause you can pass ptr MyThing as userdata, and extract that back out from the callback
23:12:03EXetoCbasically the original function pointers are wrapped
23:12:06SkrylarUse a template to cover up the skeletons
23:12:15DemosSkrylar: right, but I am using EXetoC high level wrapper which actually does not provide a way to set the userdata
23:12:22EXetoCyes I got some ugly template in there
23:12:22Skrylar:\
23:12:29*Skrylar nudges EXetoC
23:13:00AraqSkrylar: yeah slicing is cool. we need it too.
23:13:08DemosI just wanted to make sure that my closures were not just being cast and working by chance
23:13:08Araqafter 1.0 is out I guess
23:13:13Skrylarslicing can be done userland
23:13:18Skrylarfor the most part
23:13:26VarriountSlicing?
23:13:37Araqit's actually the old problem "how to design strings"
23:13:40VarriountOh, like string slicing.
23:13:45Skrylarits just a ref to the string, a start/stop ID, and a couple procs that let you do comparisons
23:13:54Araqnimrod's strings are good for string building
23:13:54Skrylarif you're doing more than just comparing or reading, you don't need a slice anymore
23:14:14AraqSkrylar: that is a very good point
23:14:27Skrylaractually if the type is StringSlice, it would force people to realize its a slice
23:14:28Araqnever looked at it from this perspective
23:14:44Araqit's also wrong ;-)
23:14:49AraqI think ...
23:14:53Skrylarhowso?
23:15:04Skrylaryou can do a converter to copy out a legitimate string if needed
23:15:20Skrylarand the 'slice' in the name makes it obvious why it keeps something bigger around
23:15:50SkrylarAFAICT its entirely a module-level solution, since there's nothing special about a slice
23:15:55Skrylarand you can override []/[]= anyway
23:16:00Araqwe need 2 string types, I think
23:16:11Skrylari must food
23:16:28Araqone for building/appending, the current string is good at that
23:16:42Araqand one for reading/parsing/slicing
23:16:55fowlIstring and Ostring
23:16:59fowl?
23:17:09Araqthe current string is not too good at that, lots of proc take a 'start: int' parameter for this reason
23:17:37VarriountAraq: Is this a long-term goal/speculation/thinking aloud?
23:17:44AraqVarriount: yes.
23:17:45fowlAraq, but its easier to write loops with the start:int thing
23:18:12Araqyeah a 'slice' is not really good for parsing either
23:18:21VarriountMaybe you could set a string to a certain "mode"?
23:18:44Araqyou need to keep the 'i' in a register for efficiency and slices make that harder
23:19:06VarriountOr just have two kinds of strings implicitly convertable to each other..
23:19:07Araqalso often you only need the 'start' different from 0 and the end can stay the same
23:19:34Araqand then slices lose again
23:19:41EXetoCDemos: it's binary compatible. any registered closures are invoked through the original event mechanism
23:19:47Araqstrings are hard
23:19:50VarriountDemos: You once mentioned microsoft having VM images of windows to test stuff on - Do you know where I could get that?
23:20:08VarriountI need to test the installs.
23:20:11*Matthias247 quit (Read error: Connection reset by peer)
23:20:27DemosI dont think I was the one who said that, but let me see if I can find em
23:21:14Demoshttp://www.modern.ie/en-us/virtualization-tools#downloads
23:22:06VarriountDemos: Thanks. Very much appreciated.
23:22:09AraqDemos: what's wrong with the closures?
23:22:36EXetoCeither way, it doesn't matter because the type system won't just let you deviate from the binary interface
23:23:03EXetoCunless maybe you cast or something
23:26:59flaviuI'm not sure whats going on in compiler/ast.nim:1047: #612840 # 612905 # 614635 # 614637 # 614641 ...
23:27:37DemosAraq: nothing, I just noticed that it was working and thought "that is kinda neat"
23:29:09Araqflaviu: id debugging code?
23:31:32flaviuAraq: Do the commented numbers have any significance, or are they just old values?
23:33:16Araqold values
23:33:33Araqflaviu: it is actually superb for debugging when you know how to use it
23:36:06flaviuOh, I see. That makes sense, thanks
23:42:30VarriountAraq: Wasn't there a suggestion by someone to re-write the git history of the main nimrod repo to shrink the size?
23:43:02Araqyeah lots of people say we should do that
23:43:26Araqreactormonk created the issue
23:43:31DemosVarriount: it would break EVERYONE's forks though
23:43:36*Varriount is watching yet another git clone of nimrod take 30 minutes.
23:43:52Demosjeez I have never had it take that long
23:43:55VarriountDemos: In what way? Would they have to re-fork?
23:44:10*darkf joined #nimrod
23:44:11Demosthe history of upstream would change, they would have to rebase or something
23:44:27VarriountSend out an email with a guide on what to do?
23:44:30Demosit would break stuff, I dont know enough about git to say exactly what
23:46:32*Mordecai joined #nimrod
23:46:53*Mordecai is now known as Guest78262
23:47:59VarriountHi psquid!
23:48:08*psquid quit (Ping timeout: 240 seconds)
23:54:34fowlVarriount, clone with --depth 1
23:54:57Varriountfowl: Will pull still work?
23:55:15fowlVarriount, you only get the active branch but yes
23:55:26fowlmake sure you pick devel too (idk if its automatic)
23:55:57Araqgood night
23:56:15fowlgood night
23:56:43reactormonkVarriount, yup, it will break everything git-based
23:58:30EXetoCfowl: it's the base branch now
23:59:00Varriountreactormonk: Doesn't do me much good, since I don't know which branch Araq will want used for the installers :/