| 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:11 | Varriount | Araq: 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:26 | Araq | hi 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:50 | NimBot | Araq/Nimrod devel 517b78b Araq [+0 ±2 -0]: minor VM bugfix |
| 07:06:50 | NimBot | Araq/Nimrod devel 545875a Araq [+0 ±1 -0]: new VM: fixes for exception handling |
| 07:11:24 | Araq | EXetoC: check out my patches :-) |
| 07:39:37 | * | BitPuffin quit (Ping timeout: 240 seconds) |
| 07:44:25 | * | runvnc joined #nimrod |
| 07:45:06 | runvnc | hello |
| 07:45:14 | * | BitPuffin joined #nimrod |
| 07:45:36 | runvnc | so 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:37 | BitPuffin | dom96: 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:45 | Araq | runvnc: ask again when dom96 is around |
| 08:00:56 | runvnc | k 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:31 | reactormonk | runvnc, grab wireshark and take a look at what crosses the wire |
| 08:59:58 | runvnc | ok, 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:51 | Araq | runvnc: 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:27 | Araq | it 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:57 | Araq | or you downgrade your redis version |
| 10:04:31 | EXetoC | Araq: I wouldn't have figured that out of course, but at least I got my feet wet |
| 10:05:05 | Araq | EXetoC: actually you did all the hard work |
| 10:05:19 | Araq | the fix was pretty obvious after your descriptions |
| 10:08:13 | Araq | also I'm sure it's still buggy as hell .. ;-) |
| 10:08:20 | Araq | please test it more |
| 10:13:56 | * | BitPuffin joined #nimrod |
| 10:16:44 | BitPuffin | dom96, Araq: new eppasod http://youtu.be/2M1Z8JrvO-A :) |
| 10:16:46 | BitPuffin | liek it plox |
| 10:16:49 | BitPuffin | tänks |
| 10:17:13 | EXetoC | Araq: my exception handlers are ignored now basically |
| 10:19:01 | EXetoC | no, wait.. |
| 10:20:05 | EXetoC | maybe 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:42 | EXetoC | Araq: 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:37 | EXetoC | should 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:10 | Araq | EXetoC: EOverflow etc and not supposed to be catchable in general. the spec allows for this. |
| 11:23:14 | Araq | *are not |
| 11:23:27 | * | askatasuna joined #nimrod |
| 11:32:48 | Araq | we 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:00 | Varriount | Araq: What is default(T) |
| 14:39:54 | * | askatasuna quit (Ping timeout: 240 seconds) |
| 15:01:38 | * | Demos quit (Ping timeout: 240 seconds) |
| 15:50:09 | dom96 | hi |
| 16:15:56 | Araq | Varriount: default(T) is T's default value (binary zero). proc default(T: typedesc): T = discard # somebody should ensure this works |
| 16:16:26 | Araq | ping zahary |
| 16:16:59 | dom96 | ping zahary |
| 16:17:06 | Araq | hi dom96 |
| 16:17:17 | dom96 | hey |
| 16:20:20 | Araq | so how's work on async progressing? |
| 16:21:50 | dom96 | Haven't started work yet today. |
| 16:22:41 | Araq | I studied the open sourced c# compiler |
| 16:24:19 | Araq | fun facts: nimrod's lamdalifting it 800 lines and also does closure iterator transformation. c#'s is ~3000 lines |
| 16:25:02 | Araq | and apparently they have about 350 tests while we have about 600. |
| 16:25:25 | dom96 | Does C#'s support multi-level closures? :P |
| 16:25:58 | Araq | which perhaps means we're still doing not so well when it comes to testing |
| 16:26:03 | EXetoC | of which ~400 is brackets? :> |
| 16:26:36 | Araq | EXetoC: I dunno |
| 16:26:49 | Araq | dom96: yes it does :P |
| 16:27:28 | Araq | btw it is implemented too for nim, but doesnt work yet |
| 16:27:59 | Araq | so it wont bloat the code by a factor of 2 |
| 16:29:08 | * | [1]Endy joined #nimrod |
| 16:35:06 | Varriount | Araq: What's the difference between default(T) and nil for strings and sequences? |
| 16:35:52 | EXetoC | nothing? |
| 16:35:57 | Araq | well the question is whether default(string) == "" or nil |
| 16:36:36 | Araq | currently it is nil and with the upcoming changes 'nil' for seqs/strings will become much more crash safe |
| 16:36:40 | Varriount | Araq: The thing is, concerning the toFunc pragma and default values, many of the procedures in the strutils module use newString(inputLength) |
| 16:37:06 | Varriount | Which is an optimization over just initializing a default string. |
| 16:37:43 | Varriount | To put it plainly, I don't see why the asFunc pragma should concern itself with the initialization of values. |
| 16:38:01 | Araq | good point. we need addLen(s, inputLength) |
| 16:38:13 | Araq | or something similiar |
| 16:39:41 | Araq | ah you mean since we need to change things we might as well care for 'nil'? |
| 16:39:56 | Araq | and leave asFunc simple? |
| 16:45:33 | Varriount | Yes |
| 16:46:05 | Araq | ok, I suppose that makes sense once the new 'nil' handling for 'len' and 'add' arrived |
| 16:46:29 | Araq | which is not on our roadmap btw |
| 16:46:43 | Araq | who will fix this? it's scheduled for 0.9.6 |
| 16:47:23 | Varriount | Araq: Well couldn't it be turned into a simple term-rewriting macro (the nil handling for len and add) |
| 16:47:52 | Varriount | Or, how hard would it be to implement? |
| 16:50:27 | Araq | fowl had a hard time to implement it |
| 16:50:50 | Araq | I dunno why though. it's not hard |
| 16:51:22 | Araq | a TR macro should not change semantics so that's out of the question |
| 16:51:53 | Varriount | Well, 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:40 | Varriount | As in, he thought that parts XXX should be modified, when in actuality parts YYY should be. |
| 16:52:50 | Araq | well he knows where to find the C code gen |
| 16:55:44 | Varriount | Araq: Which procedures did you want me to modify to use 'asFunc' again? |
| 16:56:01 | Araq | all where it makes sense |
| 16:56:14 | Varriount | Also, what's the difference between a procvar and a closure? |
| 16:56:17 | Araq | oh btw I won't merge it for 0.9.4 |
| 16:56:25 | Varriount | Araq: That's fine. |
| 16:57:31 | Araq | this also means every $ should become binary and asFunc ... perhaps |
| 16:58:31 | Araq | procvar means you can take the address of a proc. closure means the proc has an environment |
| 16:59:48 | Araq | closure implies procvar but then so does every explicit calling convention iirc |
| 17:00:06 | Araq | "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:08 | Araq | ...accepted by the intent of the language specification. This phase also computes and reports the warnings regarding unused local variables." |
| 17:00:21 | Araq | others only cook with water too |
| 17:01:25 | Varriount | So.. the implementation follows the spirit of the specification? |
| 17:02:27 | Araq | yes |
| 17:04:46 | Varriount | Araq: Where is the 'roadmap'? |
| 17:05:10 | Varriount | (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:08 | Varriount | Hi Demos |
| 17:14:16 | Demos | hi Varriount |
| 17:14:39 | Demos | I have thought of a name for the nimrod clone of thrust/accelerate |
| 17:15:15 | Varriount | What's thrust/accelerate? |
| 17:15:36 | Demos | https://developer.nvidia.com/thrust |
| 17:15:47 | Demos | http://hackage.haskell.org/package/accelerate |
| 17:16:13 | Demos | there is also a haskell module that makes accelerate work with anything that implements the linear typeclass (presumably linear spaces and linear functions) |
| 17:17:17 | Varriount | Is there an existing nimrod clone of those libraries? |
| 17:18:00 | Demos | I dont think so |
| 17:18:44 | Demos | but afaik the semantics are pretty easy to get working, you just need to make em run on the GPU ("the hard part") |
| 17:19:03 | Demos | or it looks like accelerate works with clik as well |
| 17:19:17 | Demos | *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:12 | Araq | Demos: nimwarp is an obvious candidate |
| 17:30:39 | * | q66 joined #nimrod |
| 17:30:43 | Demos | I was think Hydrazine, or some other rocket fuel |
| 17:30:49 | Demos | s/think/thinking |
| 17:32:20 | * | DAddYE joined #nimrod |
| 17:40:15 | dom96 | There are too many projects with a nim prefix |
| 17:40:26 | * | nande quit (Remote host closed the connection) |
| 17:42:27 | Demos | also warp is the name of microsofts software rasterizer |
| 17:42:40 | EXetoC | dom96: you think suffixes are better? |
| 17:43:20 | dom96 | No |
| 17:43:24 | EXetoC | I don't like the idea of relying on neither |
| 17:44:06 | dom96 | Also warp is the name of Facebook's pre-processor. |
| 17:45:46 | Araq | yeah that thing is faster than GCC's preprocessor |
| 17:45:47 | EXetoC | but it's not a wrapper, is it? it doesn't matter then imo, assuming that the name is somewhat unique |
| 17:45:54 | Araq | but slower than clang's lol |
| 17:47:44 | dom96 | Demos: I like the name Hydrazine. |
| 17:48:43 | Demos | yeah. I thought it was pretty good. Now all we need is an implementation :D |
| 17:51:25 | Araq | Demos: just do it, I can help. |
| 17:52:05 | Araq | and yeah Hydrazine is fine for a name |
| 17:52:17 | Varriount | Araq: Under what circumstances is an object copied? |
| 17:52:20 | Araq | get that github project name and a URL right now |
| 17:53:11 | Araq | Varriount: assignment and sometimes for 'yield' |
| 17:53:32 | Araq | maybe there are other contexts but I don't remember |
| 17:54:31 | Demos | Araq: 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:48 | Araq | capturing a parameter comes to mind |
| 17:55:08 | * | q66 quit (Ping timeout: 252 seconds) |
| 17:55:09 | Demos | anyway I gotta go to class. |
| 17:55:26 | Araq | Demos: you know I wrapped opencl, right? |
| 17:56:57 | Varriount | Demos: 12 week course exams? |
| 17:59:27 | * | Demos quit (Ping timeout: 255 seconds) |
| 18:02:15 | EXetoC | TComplex should really operate on TReal, right? |
| 18:07:21 | * | q66 joined #nimrod |
| 18:11:42 | Araq | EXetoC: dunno |
| 18:13:38 | EXetoC | can't see why not, along with some convenience procs |
| 18:18:05 | Araq | btw what about the vm's exception handling? |
| 18:18:15 | Araq | is it stable already? ;-) |
| 18:26:07 | Skrylar | meep |
| 18:26:48 | Skrylar | I guess I can't put off dealing with GL hell that much longer |
| 18:29:39 | EXetoC | Araq: I don't know. when are we getting a configurable random code generator with no-hang guarantees? |
| 18:30:30 | EXetoC | I'll test it with some complex nested static exception code later |
| 18:32:42 | Araq | we 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:37 | Araq | Skrylar: 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:08 | fowl | Araq, i'd like to make the magic functions for seq private and wrap them in if isNil(x): newseq(x,0) |
| 20:12:14 | fowl | Araq, because im lazy |
| 20:16:19 | Araq | bah, I'd prefer to patch the codegen instead |
| 20:18:12 | fowl | well, this method would mean you dont have to touch cgen, jsgen, vmgen, etc :p |
| 20:18:51 | Araq | yeah but still |
| 20:19:18 | Araq | there is no etc. here. we only have 3 backends :P |
| 20:19:43 | Araq | but fine |
| 20:19:47 | Araq | do it your way |
| 20:20:10 | Araq | and expose the old stuff under "xlen" and "xadd" ? |
| 20:20:39 | Araq | for increased efficiency I can then pick versions that don't care about 'nil' |
| 20:21:51 | Araq | "add" for PNimrodNode should be patched for vmgen though. vm code generation for macros will suck otherwise |
| 20:22:35 | Araq | btw your bug is really weird |
| 20:22:59 | Araq | const |
| 20:23:01 | Araq | KeyMax = 227 |
| 20:23:02 | Araq | myconst = int((KeyMax + 31) / 32) # works |
| 20:23:21 | Araq | type T = array[int((KeyMax + 31) / 32), cuint] # doesn't |
| 20:23:49 | fowl | yeah |
| 20:24:03 | fowl | one wonders what could be over or underflowing |
| 20:24:32 | Araq | the fact that not every constant folding uses the VM is starting to hurt us |
| 20:25:13 | fowl | what should add for a nil PNimrodNode do? |
| 20:25:20 | fowl | the node doesnt have a kind yet |
| 20:25:34 | Araq | oh good point |
| 20:30:24 | fowl | looks like system.safeAdd already does this >_> |
| 20:30:59 | Araq | oh yeah, forgot about that |
| 20:35:51 | Varriount | It must be human flaw, that reading the complete meltdowns and hilariously stupid actions of others is so entertaining. |
| 20:36:58 | Varriount | Especially when "others' refers to PHP developers. |
| 20:45:46 | * | Skrylar looks at the opengl xml's '_' |
| 20:45:54 | Skrylar | those are huge :[ |
| 20:49:51 | * | nande joined #nimrod |
| 20:50:22 | Araq | Skrylar: what's wrong with the existing opengl wrapper? |
| 20:50:50 | Araq | and especially: why is it so bad that you guys have to invent xml2nim to create a new wrapper? |
| 20:51:32 | Skrylar | Araq: i haven't looked at both yet |
| 20:51:35 | Varriount | Hey, *I* think that the existing wrapper is fine. |
| 20:51:47 | Varriount | "Both"? |
| 20:52:04 | Skrylar | though 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:16 | Skrylar | Varriount: i usually like to peer around at the options before committing to one |
| 20:52:27 | Skrylar | (which is why there are two event engines in skylights right now -_-) |
| 20:52:27 | Varriount | I didn't know there was more than one wrapper. |
| 20:53:00 | dom96 | it does seem that the loadExtensions stuff catches many new people out. |
| 20:53:26 | Araq | yeah but I still think it's unsolvable for technical reasons |
| 20:53:59 | Araq | but we could make it a valid call even no extensions are used |
| 20:54:03 | Varriount | Skrylar: 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:20 | dom96 | The packages in the nimrod-code org really could use some readme's explaining how they are installed. |
| 20:54:40 | EXetoC | Skrylar: 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:47 | Varriount | "babel install PackageName" you mean? |
| 20:55:01 | dom96 | yes |
| 20:55:05 | Skrylar | EXetoC: what do you mean? |
| 20:55:10 | Varriount | Skrylar: What are the two opengl wrappers? |
| 20:55:20 | Skrylar | Varriount: by 'both' i mean 'the current wrapper' and 'the registry' |
| 20:55:23 | * | foodoo joined #nimrod |
| 20:55:32 | Skrylar | if the appearance of the wrapper looks too derpy to me vs. the derpiness of the xml |
| 20:55:45 | Varriount | The registry? You mean the XML? |
| 20:55:46 | EXetoC | Skrylar: enum/function and pointer/size mappings basically |
| 20:56:05 | Skrylar | i don't see why a lot of the enums couldn't be typesafe'd |
| 20:57:00 | Skrylar | that said; do we have a native xml parser |
| 20:57:08 | Skrylar | i was probably going to jank it with ruby+nokogiri |
| 20:57:11 | EXetoC | automatically? not really |
| 20:57:18 | EXetoC | Skrylar: we do |
| 20:57:30 | Skrylar | bah, i don't auto-wrap :( |
| 20:57:45 | EXetoC | ? |
| 20:58:11 | Skrylar | I'm one of those excessively picky people that wrap+binds at the same time so it looks like it belongs there |
| 20:59:05 | Varriount | What's the difference again? |
| 20:59:37 | Skrylar | Varriount: 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:21 | Skrylar | e.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:52 | EXetoC | Araq: it lacks symbols for 1-2 minor versions, but few people will actually need them so it's only a minor issue |
| 21:03:08 | Varriount | Skrylar: You're writing a Rust wrapper? |
| 21:04:28 | EXetoC | so 4.4 and maybe 4.3, while 3.0-3.3 is commonly target nowadays it seems |
| 21:05:05 | dom96 | Which HTTP client libs do you guys love the most? |
| 21:05:05 | Skrylar | Varriount: not anymore |
| 21:05:06 | EXetoC | *targeted |
| 21:05:24 | Skrylar | dom96: curl seems pretty popular |
| 21:05:43 | EXetoC | dom96: Requests |
| 21:06:13 | EXetoC | with 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:19 | dom96 | yeah, requests looks good. |
| 21:08:17 | * | ehaliewicz joined #nimrod |
| 21:08:40 | Araq | hi ehaliewicz |
| 21:21:39 | * | oal left #nimrod ("Leaving") |
| 21:24:58 | fowl | Araq, shall i deprecate safeadd, replace it with add, add xlen, xadd then? |
| 21:25:14 | runvnc | dom96 about the redis transactions, did they work before with maybe an older redis |
| 21:25:27 | dom96 | runvnc: oh sorry, forgot to reply to you. |
| 21:25:29 | fowl | Araq, i did a github search, the only place safeAdd is used in in the compiler |
| 21:25:43 | dom96 | runvnc: I don't think I ever tested them, so go ahead and fix it for your redis version. |
| 21:25:50 | runvnc | ok thanks |
| 21:37:42 | * | Demos joined #nimrod |
| 21:37:48 | dom96 | Araq: 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:04 | Skrylar | turning on a jackhammer six feet from someone who values their hearing is a good way to invoke wrath -_- |
| 21:42:32 | Araq | dom96: not really |
| 21:42:48 | dom96 | Araq: why? |
| 21:43:53 | Araq | because the new url module wont be good enough either |
| 21:44:08 | Araq | and then we need url2.nim |
| 21:44:31 | Araq | urls are complex beasts |
| 21:44:59 | dom96 | Perhaps we should just have some breakage? |
| 21:45:28 | dom96 | All these deprecations are adding up and creating lots of unnecessary noise. |
| 21:45:36 | Araq | like we tried with parseopt? |
| 21:45:37 | Demos | is there an industrial strength URL library out there we can use |
| 21:46:20 | Araq | Demos: sure but its major concern is what happens if malloc fails |
| 21:47:50 | dom96 | The current uri module is kind of useless. |
| 21:47:59 | dom96 | Jester uses it though. |
| 21:48:37 | dom96 | But ok, I can save this for later. |
| 21:48:45 | dom96 | So that we have time to ensure the url module is good. |
| 21:48:49 | Araq | jester is kind of useless. the forum and nimbuild use it though :P |
| 21:49:36 | dom96 | So it's fine to break select which is used almost everywhere, but not something which is only used in one project? |
| 21:49:45 | EXetoC | those are pretty useless too. some use it though |
| 21:50:49 | Araq | dom96: yes because 'select' was the *other way round* from all the other selects |
| 21:50:59 | Araq | that people are used to |
| 21:51:03 | Araq | it was embarrassing |
| 21:51:19 | Araq | and so it was acceptable to break code |
| 21:52:15 | dom96 | There are many places where things are the other way around from what people are used to in Nimrod... |
| 21:52:46 | Araq | like? |
| 21:52:48 | * | DAddYE quit (Remote host closed the connection) |
| 21:53:09 | dom96 | $ for floats not being equal to formatFloat for example. |
| 21:53:51 | Araq | we will change that |
| 21:54:43 | * | foodoo quit (Quit: leaving) |
| 21:55:40 | Demos | does 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:48 | Skrylar | i think today i'll put off doing graphics code and work on string search |
| 22:39:03 | Skrylar | maybe araq can take the stemming/approximation code for forum search :P |
| 22:39:12 | Araq | Skrylar: want me to coach you? |
| 22:39:26 | Skrylar | i had a whitepaper for the stemmer |
| 22:40:16 | Araq | you seem to do great work but you're too erratic ;-) |
| 22:40:33 | Araq | I also have a stemmer written in nimrod lying around somewhere |
| 22:40:53 | Araq | stems german and english, ported it from snowball |
| 22:48:48 | * | flaviu joined #nimrod |
| 22:51:30 | Skrylar | yay i do good work \o/ |
| 22:55:28 | Varriount | Stemmer? |
| 22:57:03 | Skrylar | Skrylar: removes suffixes from words, "smartly" becomes "smart" |
| 22:57:31 | Skrylar | "boxed cats" gets stemmed to "box cat" which makes it easier to search for text by index |
| 23:00:05 | Skrylar | I 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:42 | Skrylar | i have rarely seen something that has to scan ~1,000 really short titles that is that bad |
| 23:01:29 | Varriount | Skrylar: 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:46 | Skrylar | Varriount: :\ |
| 23:05:56 | Demos | EXetoC: ping |
| 23:05:58 | Skrylar | D handled that somewhat with explicit slicing semantics |
| 23:07:22 | EXetoC | Demos: pøng |
| 23:07:36 | Skrylar | I 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:01 | Demos | I 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:26 | Skrylar | easy way is to declare a proc and add {.procvar.} at the end |
| 23:08:47 | Varriount | Skrylar: What piece of mind-mapping software would you most recommend? |
| 23:08:49 | Demos | rught, but glfw expects regular old function pointers |
| 23:08:58 | Skrylar | Varriount: freeplane |
| 23:09:09 | Demos | Varriount: paper, with a pencil (or a pen I guess) |
| 23:09:30 | EXetoC | Demos: you're using just the wrapper? |
| 23:09:36 | Demos | no |
| 23:09:44 | Demos | I am using glfw/glfw.nim |
| 23:10:03 | Skrylar | Inspirations 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:29 | Demos | do you keep the closure contexts in a structure pointed to by glfw's userdata pointer? |
| 23:10:39 | EXetoC | Demos: have you looked at events.nim? basically you just register callbacks with `fooCb=` |
| 23:10:52 | Demos | I know /how/ to register callbacks |
| 23:10:56 | Skrylar | Demos: if you're doing OO code, you set the userdata to a pointer to self |
| 23:10:58 | EXetoC | I haven't done anything regarding user data |
| 23:11:27 | Demos | I just want to make sure that my closures are not working by chance |
| 23:11:42 | Skrylar | i don't recommend closures with C code, nimrod actually treats a closure as a struct |
| 23:11:50 | Skrylar | instead, use a minor form of OO |
| 23:12:00 | Skrylar | because you can pass ptr MyThing as userdata, and extract that back out from the callback |
| 23:12:03 | EXetoC | basically the original function pointers are wrapped |
| 23:12:06 | Skrylar | Use a template to cover up the skeletons |
| 23:12:15 | Demos | Skrylar: right, but I am using EXetoC high level wrapper which actually does not provide a way to set the userdata |
| 23:12:22 | EXetoC | yes I got some ugly template in there |
| 23:12:22 | Skrylar | :\ |
| 23:12:29 | * | Skrylar nudges EXetoC |
| 23:13:00 | Araq | Skrylar: yeah slicing is cool. we need it too. |
| 23:13:08 | Demos | I just wanted to make sure that my closures were not just being cast and working by chance |
| 23:13:08 | Araq | after 1.0 is out I guess |
| 23:13:13 | Skrylar | slicing can be done userland |
| 23:13:18 | Skrylar | for the most part |
| 23:13:26 | Varriount | Slicing? |
| 23:13:37 | Araq | it's actually the old problem "how to design strings" |
| 23:13:40 | Varriount | Oh, like string slicing. |
| 23:13:45 | Skrylar | its just a ref to the string, a start/stop ID, and a couple procs that let you do comparisons |
| 23:13:54 | Araq | nimrod's strings are good for string building |
| 23:13:54 | Skrylar | if you're doing more than just comparing or reading, you don't need a slice anymore |
| 23:14:14 | Araq | Skrylar: that is a very good point |
| 23:14:27 | Skrylar | actually if the type is StringSlice, it would force people to realize its a slice |
| 23:14:28 | Araq | never looked at it from this perspective |
| 23:14:44 | Araq | it's also wrong ;-) |
| 23:14:49 | Araq | I think ... |
| 23:14:53 | Skrylar | howso? |
| 23:15:04 | Skrylar | you can do a converter to copy out a legitimate string if needed |
| 23:15:20 | Skrylar | and the 'slice' in the name makes it obvious why it keeps something bigger around |
| 23:15:50 | Skrylar | AFAICT its entirely a module-level solution, since there's nothing special about a slice |
| 23:15:55 | Skrylar | and you can override []/[]= anyway |
| 23:16:00 | Araq | we need 2 string types, I think |
| 23:16:11 | Skrylar | i must food |
| 23:16:28 | Araq | one for building/appending, the current string is good at that |
| 23:16:42 | Araq | and one for reading/parsing/slicing |
| 23:16:55 | fowl | Istring and Ostring |
| 23:16:59 | fowl | ? |
| 23:17:09 | Araq | the current string is not too good at that, lots of proc take a 'start: int' parameter for this reason |
| 23:17:37 | Varriount | Araq: Is this a long-term goal/speculation/thinking aloud? |
| 23:17:44 | Araq | Varriount: yes. |
| 23:17:45 | fowl | Araq, but its easier to write loops with the start:int thing |
| 23:18:12 | Araq | yeah a 'slice' is not really good for parsing either |
| 23:18:21 | Varriount | Maybe you could set a string to a certain "mode"? |
| 23:18:44 | Araq | you need to keep the 'i' in a register for efficiency and slices make that harder |
| 23:19:06 | Varriount | Or just have two kinds of strings implicitly convertable to each other.. |
| 23:19:07 | Araq | also often you only need the 'start' different from 0 and the end can stay the same |
| 23:19:34 | Araq | and then slices lose again |
| 23:19:41 | EXetoC | Demos: it's binary compatible. any registered closures are invoked through the original event mechanism |
| 23:19:47 | Araq | strings are hard |
| 23:19:50 | Varriount | Demos: You once mentioned microsoft having VM images of windows to test stuff on - Do you know where I could get that? |
| 23:20:08 | Varriount | I need to test the installs. |
| 23:20:11 | * | Matthias247 quit (Read error: Connection reset by peer) |
| 23:20:27 | Demos | I dont think I was the one who said that, but let me see if I can find em |
| 23:21:14 | Demos | http://www.modern.ie/en-us/virtualization-tools#downloads |
| 23:22:06 | Varriount | Demos: Thanks. Very much appreciated. |
| 23:22:09 | Araq | Demos: what's wrong with the closures? |
| 23:22:36 | EXetoC | either way, it doesn't matter because the type system won't just let you deviate from the binary interface |
| 23:23:03 | EXetoC | unless maybe you cast or something |
| 23:26:59 | flaviu | I'm not sure whats going on in compiler/ast.nim:1047: #612840 # 612905 # 614635 # 614637 # 614641 ... |
| 23:27:37 | Demos | Araq: nothing, I just noticed that it was working and thought "that is kinda neat" |
| 23:29:09 | Araq | flaviu: id debugging code? |
| 23:31:32 | flaviu | Araq: Do the commented numbers have any significance, or are they just old values? |
| 23:33:16 | Araq | old values |
| 23:33:33 | Araq | flaviu: it is actually superb for debugging when you know how to use it |
| 23:36:06 | flaviu | Oh, I see. That makes sense, thanks |
| 23:42:30 | Varriount | Araq: Wasn't there a suggestion by someone to re-write the git history of the main nimrod repo to shrink the size? |
| 23:43:02 | Araq | yeah lots of people say we should do that |
| 23:43:26 | Araq | reactormonk created the issue |
| 23:43:31 | Demos | Varriount: it would break EVERYONE's forks though |
| 23:43:36 | * | Varriount is watching yet another git clone of nimrod take 30 minutes. |
| 23:43:52 | Demos | jeez I have never had it take that long |
| 23:43:55 | Varriount | Demos: In what way? Would they have to re-fork? |
| 23:44:10 | * | darkf joined #nimrod |
| 23:44:11 | Demos | the history of upstream would change, they would have to rebase or something |
| 23:44:27 | Varriount | Send out an email with a guide on what to do? |
| 23:44:30 | Demos | it 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:59 | Varriount | Hi psquid! |
| 23:48:08 | * | psquid quit (Ping timeout: 240 seconds) |
| 23:54:34 | fowl | Varriount, clone with --depth 1 |
| 23:54:57 | Varriount | fowl: Will pull still work? |
| 23:55:15 | fowl | Varriount, you only get the active branch but yes |
| 23:55:26 | fowl | make sure you pick devel too (idk if its automatic) |
| 23:55:57 | Araq | good night |
| 23:56:15 | fowl | good night |
| 23:56:43 | reactormonk | Varriount, yup, it will break everything git-based |
| 23:58:30 | EXetoC | fowl: it's the base branch now |
| 23:59:00 | Varriount | reactormonk: Doesn't do me much good, since I don't know which branch Araq will want used for the installers :/ |