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 :/ |