00:00:05 | Araq | he's sleeping |
00:00:11 | OrionPK | mm |
00:00:43 | OrionPK | he'll have to be more specific about 'not working at all' :D |
00:06:58 | * | OrionPK quit (Remote host closed the connection) |
00:06:58 | * | BitPuffin quit (Read error: Connection reset by peer) |
00:07:51 | * | OrionPK joined #nimrod |
00:09:00 | dom96 | OrionPK: "at all" may be an exaggeration. But when people say something all I can see is ':' and nothing else. |
00:09:16 | dom96 | also when I say something it isn't displayed in the browser |
00:09:21 | OrionPK | which browser |
00:09:23 | dom96 | user list doesn't work either |
00:09:25 | dom96 | firefox |
00:09:26 | dom96 | 26 |
00:09:28 | OrionPK | ok |
00:09:34 | dom96 | anyways, good night. |
00:09:36 | OrionPK | I had firefox and IE working |
00:09:37 | OrionPK | but |
00:09:43 | OrionPK | that was over a month ago |
00:09:48 | OrionPK | lot has changed andI havent retestedit |
00:09:59 | OrionPK | try chrome next time |
00:10:05 | dom96 | ok. |
00:10:08 | dom96 | 'night |
00:10:11 | OrionPK | night |
00:42:11 | Araq | forum action! |
00:42:14 | Araq | good night |
00:47:07 | OrionPK | night |
00:48:30 | OrionPK | You can simulate shared memory via message passing (which is what modern hardware does, to some extent) and you can use message passing to simulate shared memory. |
00:48:32 | OrionPK | seems redundant |
00:55:40 | Demos__ | yeah I saw that as well |
01:02:11 | Varriount | OrionPK: Can't you also use memory mapped files? |
01:02:26 | OrionPK | say what? |
01:02:42 | OrionPK | oh |
01:02:47 | OrionPK | that was from araq's blog |
01:03:12 | Varriount | Ah. Sorry, just woke up from a nap, still a bit groggy |
01:11:44 | OrionPK | how does this work... |
01:11:45 | OrionPK | let it = b while it != nil: if it.word == word: inc it.counter return it = it.next |
01:19:36 | Varriount | Huh. Nimrod currently has 19 outstanding pull requests |
01:44:07 | * | brson quit (Quit: leaving) |
02:09:34 | * | shodan45 joined #nimrod |
02:24:29 | Demos__ | how big are nimrod's enums? do they default to 32 bits or start at 8 bits and expand if needed |
02:26:42 | OrionPK | try looking at the generated C |
02:56:25 | Demos__ | http://sdrv.ms/1cvddH8 w00t |
02:57:06 | OrionPK | nice |
02:58:24 | OrionPK | can it do anything but color things? |
02:59:06 | Demos__ | not really. but it colors things using the same functions that the docgen does |
02:59:11 | Demos__ | which is pretty cool |
02:59:21 | Demos__ | actually I had to modify the docgen a little bit to get it to work |
02:59:29 | OrionPK | hopefully it works better than the github highlighting :) |
03:00:12 | Demos__ | well it knows it is working with nimrod |
03:00:30 | OrionPK | the first ' in a char isn't highlighted |
03:00:43 | Demos__ | I hope I did not break anything, I had to change TGeneralTokenizer in the highlight module from an object to a tuple |
03:00:49 | Demos__ | yeah I just fixed that |
03:41:42 | Demos__ | now on to figure out how the hell idetools does its magic |
03:47:46 | OrionPK | not going to invoke it directly? |
03:48:38 | Demos__ | I dont really want to parse the return values, would prefer to have idetools living in VS's process and just call functions. But who knows, that kind of thing is hard |
03:49:17 | Demos__ | I may do build support and project structure first, although as usual all the visual studio extensibility interfaces are totally undocumented |
03:49:43 | Demos__ | it is good to have something useful though |
03:51:04 | OrionPK | yeah |
03:51:08 | OrionPK | build supor twould be nice |
03:53:06 | Demos__ | yeah, one problem is that nimrod projects are defined by what the main nodule references, not sure how adding files would work, maybe nake has something I could use |
03:54:00 | OrionPK | well |
03:54:04 | OrionPK | it'd be up to you wouldnt it? |
03:54:16 | OrionPK | your project file would set a main nimrod file |
04:12:05 | Demos__ | right |
04:13:02 | Demos__ | I wonder if I could get the compiler to generate a project file, so that I don't have to deal with keeping a project file in sync for xplatform dev. |
04:21:03 | * | radsoc joined #nimrod |
04:38:40 | * | BitPuffin joined #nimrod |
04:45:00 | BitPuffin | dom96: you have to say I totally called it |
04:47:08 | Demos__ | called what? |
04:48:33 | BitPuffin | That Araq's "Competitive Concurrency Model" Didn't have anything to do with threads competing with each other or anything the like, but rather that it is competitive compared to what others offers haha |
04:50:29 | Demos__ | by others we mean pretty much just Rust though, everyone else just lets races happen |
04:51:34 | BitPuffin | does D? |
04:55:47 | Demos__ | I mean I think it has channels and threads with a GC that can deal with shared memoryt |
04:56:08 | Demos__ | but I don't think it tries to detect races |
04:56:34 | Demos__ | oh I had a thought about a nimrod graphics library last night |
04:56:51 | Varriount | Ooh, do tell. |
05:01:27 | Demos__ | so one of the most annoying parts of GL and DX is that you have this shader program that is pretty simple that you need to set up. That set up is really annoying since the API does not know anything about the source language or the data. My thought was to have some kind of shader template where you would list per-vertex and uniform data, write your shader, and perhaps specify pipeline options. The library could figure out how to bind your resou |
05:01:28 | Demos__ | rces to the pipeline and generate a shader. I was even thinking that if the library implementing stuff like swizzleing worked outside this template you could call nimrod functions from within the shader and if they could be inlined the graphics library would do so and generate some shader code. |
05:01:45 | Demos__ | I had this idea at like 4AM but still, I think it is neat |
05:02:28 | Demos__ | actually getting this to work goes on my list of things to do, I want to get visual studio working first |
05:04:07 | Varriount | Demos__: Any thoughts on a somewhat... higher level api? |
05:04:25 | Demos__ | what? |
05:04:47 | Demos__ | my thoughts were on doing shaders in nimrod(ish) |
05:05:15 | Varriount | Ah. |
05:05:31 | OrionPK | demos.. how would that work |
05:05:42 | OrionPK | compile-to-GLSL? |
05:06:03 | OrionPK | because graphics hardware kinda expects GLSL/HLSL |
05:06:07 | OrionPK | for hw acceleration |
05:09:34 | Demos__ | yeah probably generate GLSL strings, for direct3D one could use the FLG |
05:11:20 | OrionPK | it'd have to be a subset of GLSL though, i'd think |
05:11:23 | OrionPK | erm |
05:11:26 | OrionPK | a subset of nimrod I mean |
05:11:41 | Demos__ | ofc |
05:12:19 | OrionPK | interesting idea, you should mock up some examples of what a sample shader might look like |
05:12:26 | Demos__ | and there would probably be some macro trickery for data binding, I am writing a mock now |
05:12:34 | OrionPK | cool |
05:19:14 | Demos__ | https://gist.github.com/barcharcraz/8278622 |
05:19:20 | Demos__ | something like that, more or less |
05:21:56 | Varriount | OrionPK: Just so you know, ircFamilier works without any flaws on Windows, on Chrome. I'm about to try accessing the client from my phone. |
05:22:13 | OrionPK | thanks for testing it out |
05:22:16 | Varriount | Have you thought about any particular icon for your program? |
05:22:18 | OrionPK | I'm aware of issues in firefox & ie |
05:22:25 | OrionPK | it has an icon :P |
05:22:38 | Varriount | It has... a shape. :3 |
05:22:54 | OrionPK | and it lights up when ur away & get a message :p |
05:23:13 | OrionPK | if you make a better one, ill gladly use it |
05:23:19 | OrionPK | but i'm more or less satisfied w/ the current icon |
05:23:36 | Varriount | I dunno. When I first heard the name, I thought of something like maybe a bunny popping out of a hat, or an owl, or a cat |
05:23:53 | OrionPK | yeah |
05:23:54 | Varriount | Something along the lines of a Witch's/Wizard's familier |
05:24:04 | OrionPK | it's more of a robot familiar heh |
05:24:12 | OrionPK | for techno wizards |
05:24:13 | OrionPK | like us |
05:24:18 | Varriount | :D |
05:24:38 | OrionPK | that is what it's named after though, a wizard familiar |
05:24:38 | Varriount | By the way, why the dependancy on pcre.dll? |
05:24:54 | OrionPK | because I'm using regular expressions for things like detecting links |
05:24:59 | * | VarriountFamilie joined #nimrod |
05:25:00 | Varriount | Ah. |
05:26:46 | OrionPK | once familiar is runnable w/o hacks to the nimrod stdlib (prior to compilation), I'm going to put up the source |
05:27:17 | Demos__ | bunny with a crown... |
05:27:26 | OrionPK | it'd be nice if nimrod didn't have a dependency on pcre for regex |
05:28:12 | OrionPK | maybe just give the cube some eyes and seams :P |
05:28:59 | BitPuffin | Demos__: I will be working on something like thst |
05:29:06 | BitPuffin | however slightly different |
05:29:10 | BitPuffin | anyways sleep |
05:29:14 | Varriount | Well to be fair, pcre is one of the best regular expression libs out their, at least in terms of performance. |
05:29:21 | Varriount | Or so I've heard. |
05:29:59 | Demos__ | BitPuffin, how different? high level or just with a syntax that was not thought out over the past 20mins |
05:32:43 | OrionPK | you finish you example demos? I gotta sleep too:-P |
05:32:53 | Demos__ | I posted a gist |
05:33:12 | OrionPK | oh. missed it |
05:33:20 | Demos__ | https://gist.github.com/barcharcraz/8278622 |
05:33:25 | * | BitPuffin quit (Ping timeout: 245 seconds) |
05:33:58 | OrionPK | why a different tuple syntax? |
05:34:09 | Demos__ | where |
05:35:52 | OrionPK | http://nimrod-lang.org/tut1.html#tuples |
05:36:53 | Demos__ | what not doing the tuple[x:int, y:int] thing? I just like the other syntax better, both type foo = tuple \n stuff and tuple[...] work |
05:39:43 | OrionPK | hmm. guess I've never tried it |
05:40:31 | EXetoC | you mean fields on separate lines? I've never seen that |
05:41:13 | Demos__ | http://build.nimrod-lang.org/docs/manual.html#tuples-and-object-types |
05:43:36 | Demos__ | I was under the impression type TFoo = object... is like a c++ class with a virtual member and type TFoo = tuple ... is like a c++ class without a virtual member |
05:48:17 | OrionPK | I'm off. night |
05:48:36 | EXetoC | yeah, I think I need to use the final pragma more |
05:49:13 | Demos__ | night |
05:49:25 | EXetoC | but I don't know what happens when the inheritable pragma isn't used, and nothing is inherited from |
05:49:46 | Demos__ | yeah, anyway I did not want any kind of pointer to RTTI stuff in there |
05:49:49 | Demos__ | hence the tuples |
05:49:58 | Demos__ | or I would not want that if the sample worked |
05:50:25 | Demos__ | although ofc you can pass a struct with RTTI info the the GPU as long as you tell the GPU about the offsets |
05:51:47 | EXetoC | ok "bla = object" seems to imply 'final', which makes sense |
05:52:59 | Varriount | EXetoC: If you want to make an object inheritable, you either have to use the 'inherit' pragma, or use "TObject" as a base |
05:53:49 | Demos__ | and what of RTTI info? do objects just contain a pointer to it as a "first member"? |
05:53:58 | EXetoC | yes, or anything declared with inheritable |
05:54:04 | EXetoC | did you mean inheritable? |
05:54:15 | Varriount | Probably |
05:54:20 | EXetoC | yeah |
05:55:09 | * | VarriountFamilie quit (Read error: Connection reset by peer) |
05:55:41 | * | VarriountFamilie joined #nimrod |
05:56:49 | * | VarriountFamilie quit (Read error: Connection reset by peer) |
05:57:35 | * | radsoc quit (Ping timeout: 245 seconds) |
06:10:30 | Araq | Demos__: you're wrong "object" is the same as struct when you don't use "object of" (and not .inheritable) |
06:10:41 | Araq | no need to use tuple |
06:11:56 | Demos__ | oh, neat |
06:11:58 | Demos__ | thanks |
06:16:38 | * | VarriountMobile joined #nimrod |
06:44:29 | Varriount | Hm. |
06:44:41 | * | VarriountMobile quit (Read error: Connection reset by peer) |
06:45:02 | * | VarriountMobile joined #nimrod |
06:45:27 | Demos__ | yes? |
06:46:54 | VarriountMobile | Demos__: Just testing out OrionPK's irc application |
06:47:03 | Demos__ | oh neat |
06:47:11 | Demos__ | is it written in nimrod? |
06:47:20 | VarriountMobile | And typescript |
06:47:36 | VarriountMobile | He posted a link to it today, look through the logs. |
06:47:50 | Demos__ | can not be arsed. I will find it when it gets onto babel |
06:47:57 | VarriountMobile | :3 |
06:48:25 | VarriountMobile | Now, let's see what happens if I open two connections to the same client. |
06:49:06 | VarriountMobile | Now I'm seeing double. |
06:49:33 | VarriountMobile | It's like, webchat, but with the ablity to host it yourself. |
06:53:40 | Varriount | Anyway, off to bed. G'night Demos__ |
06:53:45 | * | VarriountMobile quit (Read error: Connection reset by peer) |
06:53:53 | Demos__ | night |
07:17:17 | * | Demos__ quit (Ping timeout: 272 seconds) |
07:18:55 | * | girvo joined #nimrod |
07:48:16 | * | ponce joined #nimrod |
07:48:16 | * | Icefoz joined #nimrod |
08:12:24 | * | zielmicha joined #nimrod |
08:13:01 | * | fowl quit (Ping timeout: 272 seconds) |
08:13:55 | * | zielmicha1 quit (Ping timeout: 272 seconds) |
08:15:20 | * | Araq_ joined #nimrod |
08:32:51 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]) |
10:08:05 | * | CarpNet joined #nimrod |
10:16:11 | * | zielmicha quit (Ping timeout: 260 seconds) |
10:20:19 | * | zielmicha joined #nimrod |
10:33:25 | * | zahary_ joined #nimrod |
10:52:33 | * | zielmicha0 joined #nimrod |
11:02:13 | * | shodan45 quit (Quit: Konversation terminated!) |
12:01:25 | * | gradha joined #nimrod |
12:15:29 | * | darkf quit (Quit: Leaving) |
12:15:42 | * | faassen joined #nimrod |
12:23:02 | * | zielmicha0 quit (Remote host closed the connection) |
12:23:08 | * | zielmicha0 joined #nimrod |
12:24:10 | * | zielmicha0 quit (Remote host closed the connection) |
12:24:15 | * | zielmicha0 joined #nimrod |
12:26:01 | * | zielmicha0 quit (Remote host closed the connection) |
12:26:08 | * | zielmicha0 joined #nimrod |
12:27:07 | * | Araq_ joined #nimrod |
12:27:19 | * | zielmicha0 quit (Remote host closed the connection) |
12:27:27 | * | zielmicha0 joined #nimrod |
12:30:16 | * | Araq_ quit (Client Quit) |
12:31:27 | * | zielmicha0 quit (Remote host closed the connection) |
12:31:35 | * | zielmicha0 joined #nimrod |
12:33:40 | * | zielmicha0 quit (Remote host closed the connection) |
12:34:46 | * | zielmicha0 joined #nimrod |
12:40:13 | * | zahary__ joined #nimrod |
12:40:13 | * | zahary_ quit (Read error: Connection reset by peer) |
12:42:27 | * | EXetoC quit (Quit: WeeChat 0.4.2) |
12:56:16 | * | girvo quit (Quit: My iMac has gone to sleep. ZZZzzz…) |
13:31:53 | * | BitPuffin joined #nimrod |
13:48:25 | * | [1]Endy joined #nimrod |
13:54:31 | * | ddl_smurf quit (Quit: ddl_smurf) |
13:54:56 | * | Araq_ joined #nimrod |
13:57:18 | * | yogin joined #nimrod |
13:57:49 | * | yogin left #nimrod (#nimrod) |
13:58:57 | * | [2]Endy joined #nimrod |
14:02:24 | * | [1]Endy quit (Ping timeout: 276 seconds) |
14:02:41 | * | brihat joined #nimrod |
14:03:16 | OrionPK | Varriount try putting the name in quotes |
14:03:23 | OrionPK | Varriount I'm using the cfgparser module |
14:03:41 | OrionPK | oh |
14:03:55 | * | brihat left #nimrod (#nimrod) |
14:04:58 | OrionPK | i use it on my phone all the time (chrome beta for android) |
14:31:30 | OrionPK | -21F is that all? |
14:34:14 | * | zielmicha0 quit (Remote host closed the connection) |
14:34:21 | * | zielmicha0 joined #nimrod |
14:41:46 | * | EXetoC joined #nimrod |
14:53:55 | * | Araq_ quit (Quit: ChatZilla 0.9.90.1 [Firefox 26.0/20131205075310]) |
15:09:10 | * | vendethiel quit (Ping timeout: 245 seconds) |
15:25:32 | * | ponce is now known as Guest40111 |
15:25:32 | * | Guest40111 quit (Killed (hobana.freenode.net (Nickname regained by services))) |
15:25:41 | * | p0nce joined #nimrod |
16:00:30 | * | capisce quit (Ping timeout: 245 seconds) |
16:06:47 | * | capisce joined #nimrod |
16:26:25 | * | zielmicha0 quit (Remote host closed the connection) |
16:26:32 | * | zielmicha0 joined #nimrod |
16:50:34 | * | Demos__ joined #nimrod |
16:56:15 | zahary__ | Araq, I don't have much time, but do you want to discuss quickly the concurrency plans? |
16:56:32 | Araq | yeah sure |
16:56:58 | zahary__ | so, the plan is to have only monitor objects? (objects where the lock always resides next to the data it protects?) |
16:57:12 | Araq | no it's a mixture |
16:57:50 | zahary__ | I can say that an object is protected by a global varialbe? |
16:57:53 | Araq | as I write it's quite decoupled, you can annotate fields explictly via {.guard: someLock.} |
16:57:55 | zahary__ | global mutex |
16:57:58 | Araq | yeah |
16:58:07 | zahary__ | that |
16:58:09 | zahary__ | that |
16:58:20 | zahary__ | ah, sorry, my enter is in the wrong place :) |
16:58:36 | zahary__ | that's done with the guards pragma I guess? |
16:58:44 | Araq | yeah |
16:59:05 | zahary__ | how does shared[L] interact with it? it's not quite clear to me |
17:00:15 | Araq | shared doesn't mean guarded |
17:00:32 | Araq | guarded means "protected by some guard" |
17:00:58 | Araq | shared[L] doesn't exist as that's viral |
17:02:17 | Araq | and seems to be overly restrictive |
17:02:18 | zahary__ | hmm, ok, I need to read that part again more carefully. what confused me initially was that you are again doing analysis based on types instead of instances, but when I got to the examples it became more clear that it's about monitor objects |
17:03:04 | Araq | well maybe this shared vs guarded distinction is not necessary |
17:03:21 | Araq | but this occurred to me later after I had introduced "nothread" |
17:03:28 | zahary__ | what happened to the unique types? maybe you don't need .nothread., because unique pointers can be upgraded into shared pointers as long as this is the last thing that happens to them |
17:03:53 | Araq | I removed them as I can't see them working |
17:04:00 | zahary__ | why not? |
17:04:12 | Araq | you need to multiplex unique pointers somehow |
17:04:33 | Araq | otherwise you can only send them to 1 thread |
17:05:06 | zahary__ | what do you mean by "multiplex"? |
17:05:48 | zahary__ | the way I see it, the only thing that you have to enforce about unique pointers is that the pointer is no longer usable after it has been passed to another proc accepting unique type (you have passed the ownership) |
17:06:46 | zahary__ | threads here are not strictly a requirement, but just one scenario where ownership gets passed |
17:07:42 | Araq | well you also need "lent" for "unique" to be useful |
17:08:03 | Araq | and then we might as well copy Rust's type system completely |
17:08:15 | zahary__ | lent is the default when you pass it to a normal proc, no? |
17:08:25 | Araq | no |
17:08:52 | Araq | lent means you can't store the passed pointer in some datastructure |
17:09:27 | zahary__ | I meant to a proc that accept value, not a ptr type |
17:10:08 | Araq | hmm |
17:10:08 | zahary__ | forbidding use of addr in such procs is not much of a limitation |
17:10:35 | zahary__ | and they are more generic anyway, so that's now most procs should be written |
17:11:48 | Araq | well I have to think about this |
17:12:07 | zahary__ | ok, and I'll read the plans again to understand shared[L] :) |
17:12:12 | Araq | however, the fundamental problem is that we use the type system to model time |
17:12:34 | Araq | and so we have a point of time where access to field F requires a lock |
17:12:45 | Araq | and we have a point of time where this lock is not required |
17:12:56 | Araq | that's what I try to model with 'thread' and 'nothread' |
17:13:22 | Araq | it's hard to find definitive stuff about Rust's model |
17:13:39 | Araq | but afaict it says "pass unique pointers and things are fine" |
17:13:54 | Araq | and has not much support for locks etc. in its safe mode |
17:15:27 | Araq | also my design is about getting 80% of safety for 20% of implementation effort :P |
17:17:21 | Araq | the shared[L] btw comes mostly from the paper about Cyclone's safe concurrency, so you might want to read that, was rather easy to follow |
17:17:51 | zahary__ | do you have a link at hand? |
17:19:37 | Araq | http://homes.cs.washington.edu/~djg/papers/cycthreads.pdf |
17:19:51 | * | Mat3 joined #nimrod |
17:19:55 | zahary__ | I'll read the rust manual too. few other points of interest are task-local variables, which will allow work stealing implementations of the spawn construct |
17:20:18 | Mat3 | hi |
17:21:29 | gradha | hello Mat3 |
17:22:01 | zahary__ | and I like the Future libraries from the async world better than the C++'s std::future (with combinators such as after_all_are_done(), after_first_is_done()), but I'll have to look at examples of how these have been combined in the past |
17:22:47 | Mat3 | task-local variables sounds interesting to me, it's good to see that feature in a C oriented language about ~35 years after its introduction |
17:23:41 | Mat3 | hi gradha and all |
17:25:59 | zahary__ | well, task-local variables already exist in a relatively natural way with closures - the bigger problem in C++ may actually be that you cannot forbid the use of real thread local variables inside the tasks (which we can do with the effect system) |
17:27:06 | Araq | I'm not sure I like the Future[T] but it surely is natural |
17:27:41 | Araq | non-void procs are nice and traditional threading/actors really don't work well with that |
17:28:07 | Araq | in fact, I agree with the people who say the actor model is completely *un*functional |
17:29:10 | dom96 | Araq: I read your blog post. Current question I have is: why is annotating with 'nothread' necessary? |
17:29:22 | dom96 | Why won't all procs be nothread by default? |
17:29:36 | Araq | well the name could be better |
17:29:51 | Araq | but most procs are thread agnostic aka re-entrant |
17:29:58 | Mat3 | Araq: Reading your blog and write documentation beside |
17:30:16 | Araq | "nothread" means that it doesn't run concurrently |
17:30:24 | Araq | well |
17:31:06 | Araq | it means we're either in a "setup" or "teardown" for a classical fork&join setting |
17:31:11 | dom96 | But I can't spawn a proc not marked with 'thread' |
17:31:17 | dom96 | so I don't see the difference |
17:31:19 | Araq | yes |
17:31:31 | Araq | "thread" means "WILL" run in parallel |
17:31:45 | dom96 | oh, I think I get it. |
17:32:02 | dom96 | A proc which does not have any annotation can still be called by a proc with a {.thread.} annotation? |
17:32:19 | Araq | yes iff its effects allow for that |
17:33:28 | dom96 | hrm, right |
17:36:40 | dom96 | nice to see that people are obeying your "Please no reddit" request |
17:37:10 | Araq | indeed |
17:38:09 | dom96 | I really wish the `Bucket` would be called a `PBucket` |
17:38:15 | Araq | lol |
17:38:22 | gradha | dom96: I thought only you did read reddit |
17:38:47 | dom96 | gradha: 90% of people here probably found Nimrod through Reddit/HN :P |
17:39:06 | gradha | man, google must be hurt |
17:39:28 | dom96 | Araq: I actually looked at the 'next' field and though "huh, how can this be an object... it should be a pointer--- ohhhh, I miss the prefixes :(" |
17:40:10 | dom96 | *thought |
17:40:23 | gradha | IIRC the first article has a type typo in the last example |
17:40:42 | gradha | SharedStuff vs SharedIntPtr |
17:40:56 | Araq | gradha: I think I fixed that |
17:41:14 | Araq | dom96: well ... I agree :-/ |
17:41:36 | dom96 | Araq: An easier to follow example would be nice too btw |
17:41:43 | dom96 | I don't know how hashtables work damn it. |
17:42:02 | Araq | the example has not been picked by random |
17:43:21 | dom96 | Also, you have 2 comments. |
17:43:47 | dom96 | That's way too little for the amount of code that example shows. |
17:44:04 | * | shodan45 joined #nimrod |
17:44:12 | Araq | well I can add more examples |
17:46:50 | dom96 | Why is there a disproportionate number of locks in comparison to the number of buckets? |
17:46:59 | dom96 | and what does Lock[0] mean? |
17:47:33 | Araq | 0 is the lock level |
17:47:53 | Araq | I used 0 because I have no idea what that should be :P |
17:48:12 | dom96 | Why is there a disproportionate number of locks in comparison to the number of buckets? |
17:48:28 | OrionPK | so you can only do 100 at a time |
17:48:39 | Araq | dom96: because locks are more expensive than pointer slots |
17:49:38 | Araq | bbl |
17:49:43 | * | Demos__ quit (Ping timeout: 260 seconds) |
18:08:35 | * | Demos__ joined #nimrod |
18:11:26 | * | DAddYE joined #nimrod |
18:16:22 | * | CarpNet quit (Quit: Leaving) |
18:20:53 | * | aftersha_ quit (Ping timeout: 248 seconds) |
18:25:15 | * | aftershave joined #nimrod |
18:34:27 | * | zielmicha0 left #nimrod ("Leaving") |
18:38:35 | * | q66_ joined #nimrod |
18:38:58 | * | q66 quit (Disconnected by services) |
18:39:00 | * | q66_ is now known as q66 |
19:00:18 | dom96 | Araq: What are these lock levels? |
19:00:50 | Araq | they ensure deadlock freedom at compile time |
19:01:14 | Araq | they won't matter in most cases afaict |
19:01:28 | Araq | just use 0 and call it day unless the compiler complains |
19:08:09 | gradha | in what platforms does "\n" expand to a multibyte sequence? |
19:08:49 | Araq | windows |
19:08:53 | Araq | CR+LF |
19:12:56 | * | brson joined #nimrod |
19:17:35 | * | mal``` quit (Ping timeout: 245 seconds) |
19:18:23 | * | mal`` joined #nimrod |
19:30:16 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
19:30:57 | * | fowl joined #nimrod |
19:32:14 | Araq | hey fowl |
19:41:46 | * | DAddYE_ joined #nimrod |
19:41:47 | * | DAddYE quit (Read error: Connection reset by peer) |
19:45:35 | Varriount | OrionPK: ping |
19:45:42 | OrionPK | what's up? |
19:45:49 | Varriount | Did you get my messages? |
19:45:57 | OrionPK | your feedback? yeah |
19:46:14 | OrionPK | so with the username thing |
19:46:22 | OrionPK | did you try putting quotes around the username? |
19:46:36 | Varriount | No, I didn't |
19:46:56 | OrionPK | k, i didn't write the parsecfg module, so that's more of a parsecfg limitation |
19:47:20 | OrionPK | http://nimrod-lang.org/parsecfg.html |
19:47:30 | Varriount | Yeah, I guessed. |
19:47:47 | Varriount | What about that socket creation/deletion every 10 seconds? |
19:47:52 | OrionPK | could you elaborate on what you meant by "username in the connection address is cut off"? |
19:48:00 | OrionPK | we'll get to that ;) |
19:48:06 | Varriount | OrionPK: Same thing at the nickname |
19:48:29 | OrionPK | oh, you mean the authentication name? |
19:48:32 | OrionPK | vs the irc nickname? |
19:48:35 | Varriount | Yes |
19:48:37 | OrionPK | okay |
19:48:46 | Varriount | username is the name visible in the irc address |
19:48:47 | OrionPK | nickname cut off at 16 characters |
19:49:09 | Varriount | or maybe address name is a better term. :/ |
19:49:10 | OrionPK | where did you mean on that? |
19:49:16 | Varriount | Lemme show you |
19:49:19 | OrionPK | okay |
19:50:07 | * | VarriountMobile joined #nimrod |
19:50:55 | Varriount | See how the connection name ("[email protected]") is cut off? |
19:51:08 | OrionPK | hmm, nope |
19:51:16 | OrionPK | but I'm on ircfamiliar and I dont show that kind of info |
19:51:24 | OrionPK | my guess is that's an ircmodule limitation |
19:51:28 | OrionPK | irc* module |
19:51:44 | Varriount | It should say "VeryLongNameIsCutoff@" |
19:51:54 | Varriount | And then the ip |
19:52:00 | OrionPK | right, interesting |
19:52:08 | OrionPK | you sure it's exactly 16 characters? |
19:52:39 | Varriount | This is the line in the config file: "username: VeryLongNameIsCutoff" |
19:52:40 | OrionPK | I dont see a limit in the irc module |
19:52:40 | OrionPK | http://nimrod-lang.org/irc.html |
19:53:00 | OrionPK | I'm just passing whatever you put in verbatim |
19:53:22 | Araq | maybe that's even part of the irc protocol? |
19:53:28 | OrionPK | yeah, that's possible |
19:53:30 | Araq | dom96 we need you |
19:53:32 | Varriount | That was my second guess |
19:53:34 | * | aftersha_ joined #nimrod |
19:53:52 | OrionPK | the irc module should really be a babel package ;) |
19:54:07 | OrionPK | we have irc but we dont have sha1 in the standard lib |
19:54:09 | Varriount | OrionPK: Now, the socket issue? |
19:54:28 | OrionPK | are you saying your browser was trying to hit the application |
19:54:36 | OrionPK | or that the applicaiton was tyring to hit something? |
19:54:41 | Varriount | Huh? |
19:54:57 | Varriount | I mean the socket creation/deletion every 10 seconds/ |
19:55:00 | Varriount | *. |
19:55:01 | OrionPK | or are you reading that in the console? |
19:55:03 | OrionPK | where ar eyou seeing that |
19:55:05 | gradha | irc supports names longer than 9 characters, just look at people in this channel |
19:55:16 | OrionPK | we're not talking about that gradha |
19:55:33 | OrionPK | these are nicknames |
19:56:30 | OrionPK | Varriount was it the irc familiar console window, or was it in a browser console? |
19:56:48 | gradha | OrionPK: my name on this channel is longer than 9 characters, seem to do fine, same with other people I can query |
19:56:49 | Varriount | For when I tried to connect to irc familier via my phone? |
19:56:54 | OrionPK | yes |
19:56:56 | OrionPK | the socket issue |
19:57:02 | Varriount | It was the console |
19:57:43 | OrionPK | my guess is that's part of the issue w/ sockets and httpserver |
19:57:51 | Varriount | ? |
19:58:00 | OrionPK | and asyncio |
19:58:03 | Varriount | Ah |
19:58:06 | OrionPK | they're not very mature and kinda buggy |
19:58:23 | OrionPK | and httpserver doesnt really work at all w/o a hack |
19:58:48 | OrionPK | thats one of the main bottlenecks to me releasing this |
19:59:00 | OrionPK | so the 10 second interval thing, that's a separate issue? |
19:59:36 | Varriount | It's not an issue as such, it's just something I noticed |
20:00:08 | Varriount | I don't know if it's intended or not, it just seemed like odd behavior. For all I know, it might be part of what httpserver does |
20:00:34 | Varriount | Also, the port number that I sent you is incorrect. The port randomly changes each time the cycle repeats |
20:00:47 | OrionPK | where are you seeing it happen |
20:01:13 | OrionPK | what are your port/service port set to in the cfg file? |
20:01:24 | Varriount | Well, I was using Process Explorer to view the performance and internals of the ircFamilier process |
20:01:43 | OrionPK | did it say what it was trying to hit? |
20:01:54 | Varriount | The port and service port are the defaults. |
20:02:00 | OrionPK | I dont do anything other than IRC/http/websocket ports |
20:02:01 | Varriount | "Trying to hit"? |
20:02:11 | OrionPK | is there an IP with that port |
20:02:18 | OrionPK | or was it just loopback? |
20:02:42 | Varriount | The ip is localhost |
20:02:46 | OrionPK | oh, that's right you said that |
20:02:55 | OrionPK | i have no idea what 61581 is for :\ |
20:03:11 | OrionPK | it should only look at 6667, 8080/8081 |
20:03:29 | OrionPK | that's all *my* code is doing, but I cant speak for the nimrod std lib |
20:03:34 | * | mal`` quit (Ping timeout: 240 seconds) |
20:03:41 | Varriount | Odd. It's not doing it anymore |
20:04:04 | OrionPK | so were you able to get it working on your mobile? |
20:04:12 | Varriount | Or rather, the instance of ircFamilier that I spawned this time isn't showing the 10 second socket thing |
20:04:17 | Varriount | OrionPK: No |
20:04:25 | OrionPK | what browser/OS? |
20:04:32 | * | mal`` joined #nimrod |
20:04:33 | Varriount | I tried switching browser agents, |
20:04:41 | Varriount | I used android, dolphin browser |
20:04:52 | OrionPK | does dolphin support websockets? |
20:05:08 | Varriount | I believe so. One moment |
20:06:43 | Varriount | Huh. Apparently not |
20:08:08 | OrionPK | well, there's no fallback.. this thing is made for modern browsers |
20:08:29 | OrionPK | it should work in chrome/chrome beta |
20:08:38 | OrionPK | I havent tried firefox mobile |
20:08:46 | Varriount | Thing is, I could have sworn that it Dolphin Browser beta had websocket support a year ago. |
20:09:01 | Varriount | I would have thought that it would be introduced into the regular version already |
20:09:10 | OrionPK | that sucks |
20:11:01 | Varriount | Hm. Seems that dolphin browser has a separate addon that boasts supporting html5 features, I'll try that |
20:11:51 | Varriount | OrionPK: Don't useragents tend to have version numbers in them? |
20:12:33 | Varriount | You could have a warning pop up if the useragent suggests that the browser won't support websocket |
20:12:40 | OrionPK | the only difference user agents will make to irc familiar is A) how much of the log to send back, and B) it'll dad a CSS class to a couple elements |
20:12:52 | OrionPK | you can detect that with client side code |
20:13:05 | OrionPK | JS can just see if the websocket object exists and show an error |
20:13:55 | Varriount | Ok, html5test.com says dolphin browser with the jetpack addon supports websockets. Let's try this |
20:14:23 | OrionPK | as far as I'm concerned, that's gold plating, but I'll add to my 'first release prep' iteration |
20:14:51 | * | VarriountMobile quit (Read error: Connection reset by peer) |
20:15:15 | Varriount | OrionPK: I was also looking through the string's left in ircFamilier's exe/memory |
20:15:32 | gradha | good night, honey badgers |
20:15:35 | Varriount | You'd be amazed at some of the strings left in exes |
20:15:37 | * | gradha quit (Quit: bbl, need to watch http://www.youtube.com/watch?v=dEf4PJZXBxA again) |
20:15:40 | OrionPK | :) |
20:15:45 | OrionPK | what'd u find? |
20:16:16 | OrionPK | i slurp a lot of resources into the binary |
20:16:19 | Varriount | Nothing interesting. But you'd be surprised - sublime text, for example, has the author's user drive in it |
20:16:35 | Varriount | Or at least, that's who I assume the drive name is |
20:16:50 | OrionPK | what was the name? |
20:19:50 | Varriount | c:\JJ\Projects\sublimex\third_party\boost_1_44_0\include\boost |
20:20:20 | OrionPK | weird |
20:20:23 | Varriount | Nothin useful, but interesting nonetheless |
20:20:35 | OrionPK | yeah must be the sublime developer.. i guess |
20:20:40 | OrionPK | not sure how that made it into ircfamiliar though :) |
20:21:05 | * | VarriountMobile joined #nimrod |
20:22:47 | Varriount | OrionPK: Nope |
20:23:01 | OrionPK | what happens? |
20:23:04 | Varriount | Or at least, not into the executable image |
20:23:32 | OrionPK | oh |
20:23:41 | OrionPK | sorry I thoguht you were saying sublime's got into irc familiar |
20:23:47 | Varriount | OrionPK: I get a browser error page, the generic "connection could not be made" thing |
20:23:48 | OrionPK | but you were saying it got into sublime's :) |
20:23:54 | Varriount | OrionPK: Yeah |
20:24:05 | Varriount | I still can't connect. :/ |
20:24:05 | OrionPK | Im not surprised u couldnt find anything in ircfamiliar's |
20:24:08 | OrionPK | it's UPXed |
20:24:10 | OrionPK | and stripped |
20:24:15 | Varriount | No error this time though |
20:24:30 | OrionPK | well, if you want to try chrome for android, that's the recommended one |
20:24:31 | Varriount | Just "GET /" in the console |
20:25:37 | Varriount | Works on chrome. Maybe a cache issue or something with dolphin |
20:25:54 | OrionPK | try swiping away the user list |
20:26:07 | VarriountMobile | Hi |
20:26:24 | OrionPK | VarriountMobile hi |
20:26:32 | VarriountMobile | User list swipes successfully |
20:26:38 | OrionPK | :-) |
20:26:54 | OrionPK | what phone is it? |
20:27:15 | VarriountMobile | Samsung Galaxy S2, i777 |
20:27:15 | OrionPK | I screwed up landscape for it in my last build, its got a big black margin up at the top |
20:27:38 | VarriountMobile | Running Cyanogen Mod and a custom kernal |
20:27:47 | VarriountMobile | *kernel |
20:28:02 | OrionPK | thats an old ass phone |
20:28:10 | VarriountMobile | No black margin here. |
20:28:18 | OrionPK | maybe it didnt get into that release then |
20:28:32 | VarriountMobile | OrionPK: It may be old, but it works. |
20:28:53 | VarriountMobile | I only upgrade when my phone finally breaks beyond reasonable repair. |
20:29:02 | OrionPK | hehe |
20:29:10 | OrionPK | I have a new phone every year, basically |
20:34:09 | * | vendethiel joined #nimrod |
20:40:30 | Demos__ | guah I used to run a custom version of windows phone 7, but my new phone has Secure Boot and not enough people working to get custom kernels running |
20:41:09 | VarriountMobile | OrionPK, anything else I need to test? |
20:41:42 | * | [2]Endy quit (Ping timeout: 265 seconds) |
20:41:42 | OrionPK | nope, just nice to get other people using it to help me find things. thanks for testing it out |
20:41:59 | VarriountMobile | It's my pleasure. |
20:46:32 | OrionPK | hopefully when I release it someone will port all the typescript to nimrod:-P |
20:46:50 | OrionPK | then again that might produce a lot of boat |
20:46:54 | * | zielmicha0 joined #nimrod |
20:47:14 | * | zielmicha0 left #nimrod ("Leaving") |
20:47:20 | * | zielmicha0 joined #nimrod |
20:47:24 | Varriount | OrionPK: You know, this is something that could really put nimrod on the map |
20:47:29 | OrionPK | the size of the app.js file is pretty small atm |
20:47:56 | OrionPK | glad you like it |
20:48:32 | Varriount | Your ircFamilier is like a BNC, webchat, and irc client all rolled into one, and no-where near as complicated to set up as similar software |
20:48:48 | Demos__ | is there a link to this irc client? |
20:48:56 | Varriount | Demos__: Look in the logs |
20:49:01 | Demos__ | I am |
20:49:08 | OrionPK | i'll send you it |
20:49:19 | OrionPK | https://dl.dropboxusercontent.com/u/417554/ircfamiliar.zip |
20:49:31 | Varriount | OrionPK: Does a 64 bit version work? Or are there issues? |
20:49:33 | OrionPK | obviously not for distribution |
20:49:55 | OrionPK | um i shouldnt think so.. it just would need to be built with 64 bit, with a 64 bit version of pcre/zlib |
20:50:13 | * | familiar125 joined #nimrod |
20:51:13 | OrionPK | my next project is probably going to be to make a blog/resume site for a friend of mine, and then potentially replace my own blog site |
20:51:17 | Varriount | OrionPK: Well, unless you use another pattern matching module.. |
20:51:27 | Varriount | Have you tried the peg parsing module? |
20:51:29 | OrionPK | hopefully something will come out of that, easy to use blog engine |
20:52:00 | OrionPK | I could probably eliminate the regex dependency, but jester depends on it afaik |
20:52:21 | * | familiar125 quit (Read error: Connection reset by peer) |
20:52:38 | * | familiar125 joined #nimrod |
20:52:39 | * | familiar125 quit (Read error: Connection reset by peer) |
20:52:42 | OrionPK | so I'd have to ditch jester in order to get rid of pcre dependency |
20:52:56 | Varriount | Hm. Can pcre be statically linked/included? I don't think zlib can, due to the license |
20:53:05 | OrionPK | no idea |
20:53:15 | Demos__ | are zlib and pcre GPL? |
20:53:16 | OrionPK | distributing 3 files isn't terrible |
20:53:27 | OrionPK | or 4 |
20:54:03 | Varriount | pcre is under bsd |
20:54:20 | Demos__ | oh, it looks like zlib is a permissive license as well |
20:54:29 | Demos__ | should be no problems static linking them |
20:55:04 | Demos__ | just make sure you use the same msvcrt for everything on windows |
20:55:31 | Demos__ | anyhow I gotta go |
20:55:35 | OrionPK | later |
20:57:03 | Varriount | OrionPK: On a different topic, I had an idea for an easy but useful addition to nimrod-sublime |
20:57:10 | OrionPK | yeah? |
20:57:14 | OrionPK | I have a couple new ones too |
20:57:22 | Varriount | DocComment expansion |
20:57:25 | OrionPK | ha |
20:57:39 | OrionPK | how would that work? |
20:57:56 | OrionPK | I was thinking of a hotkey toggle to do doc comments (##) |
20:58:07 | Varriount | It's irritating to have to type a new "## " each time you press enter |
20:59:14 | OrionPK | yeah |
20:59:21 | Varriount | So have the plugin do it for you. Use a EventListener to listen for key presses, if a keypress is enter and the previous like has a doc comment, create the new comment |
20:59:29 | Varriount | *previous line |
20:59:48 | OrionPK | then if you hit enter again, it has to look up and see if it added an empty ## line and remove it |
21:00:10 | OrionPK | or something |
21:00:11 | Varriount | Not neccesarily - what if you want an empty line in your doc-comment? |
21:00:17 | OrionPK | yeah good point.. |
21:00:21 | * | Demos__ quit (Ping timeout: 276 seconds) |
21:00:23 | Varriount | I guess that could be a setting |
21:00:25 | OrionPK | maybe ctrl+/ toggles double comments off |
21:00:42 | OrionPK | in addition to toggling regular comments |
21:00:48 | Varriount | Anyway, it's a useful feature, and shouldn't take too much time to implement. |
21:00:54 | OrionPK | agreed |
21:01:14 | Varriount | Do you want me to implement it, or you? I won't be able to get to it right away - I'm currently painting my room |
21:01:34 | OrionPK | what would your ETA be? |
21:01:53 | OrionPK | if its in the order of days, better for you to do it.. im going to be working on other stuff for the next couple weeks probably |
21:02:00 | Varriount | This weekend, if I can keep my attention on it and remember to do it. |
21:02:58 | OrionPK | sounds good, I'll make sure to bug you :P |
21:03:11 | OrionPK | loves my doc comments |
21:03:36 | Mat3 | ciao |
21:04:10 | * | Mat3 quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
21:06:00 | * | achim joined #nimrod |
21:09:50 | * | radsoc joined #nimrod |
21:09:58 | * | zielmicha0 left #nimrod ("Leaving") |
21:10:11 | Araq | hi radsoc |
21:10:31 | radsoc | Hi Araq, happy new year |
21:10:40 | Araq | oh thanks. to you too |
21:13:10 | radsoc | I just had a problem with memfiles on windows: GetFileSize doesn't work with files bigger than 2^32 B |
21:14:20 | Araq | er ... ok :D |
21:14:34 | Araq | it should use int64 though |
21:15:32 | radsoc | I had to add GetFileSizeEx in winlean.nim and update memfiles.nim accordingly but I don't know if there is another way of doing this |
21:16:12 | Araq | well memfiles doesn't even support getFileSize |
21:16:18 | Araq | so I'm not sure what you mean |
21:17:29 | Araq | oh I see |
21:17:34 | radsoc | GetFileSize is used for calculating result.size in memfiles.nim |
21:18:19 | Araq | yeah got it |
21:19:45 | Araq | alright please make a pull request |
21:21:08 | * | zielmicha quit (Ping timeout: 260 seconds) |
21:25:28 | radsoc | are you sure? (first PR ever on github...) |
21:30:32 | * | achim quit (Quit: Computer has gone to sleep.) |
21:30:36 | OrionPK | first time for everything |
21:37:22 | Varriount | On linux, when using stat, what does "st_ctime" ("time of last status change") actually mean? |
21:37:32 | Varriount | What is a "status change"? |
21:43:42 | Varriount | Araq: ping |
21:43:44 | Araq | posix'ish for modification I guess |
21:43:59 | Araq | radsoc: yes, I'm sure |
21:44:30 | Varriount | Araq: right now I'm writing up the structures for the stat()-like procedure for os.nim |
21:45:08 | Varriount | What should the behavior be if the data for a member cannot be retrieved, for example, if the host system doesn't support getting that information? |
21:45:31 | Varriount | *file data for |
21:46:51 | Varriount | I was thinking that either class variants could be used, along with having various members be nil if data retrieval fails. |
21:47:49 | Araq | well the point of a common subset is that no such fields exist by definition |
21:48:42 | Araq | otherwise the programmer might as well call the OS specific version ... |
21:50:09 | Varriount | Yes.. but the reality is that many systems, although posix compliant, extend their support. I know, for example, that although file creation time is not mentioned in the posix stat() specification, some systems have a 'birthtime' member in the structure returned by stat. |
21:57:45 | Araq | well if I call "nimstat" I expect it to return the same stuff on every OS. otherwise I can call posix.stat myself easily since I need an "if supported" check anyway |
21:58:15 | Varriount | Hm. Ok |
22:00:37 | * | EXetoC1 joined #nimrod |
22:00:37 | * | EXetoC quit (Read error: Connection reset by peer) |
22:01:01 | * | EXetoC1 is now known as EXetoC |
22:10:25 | * | Demos joined #nimrod |
22:14:09 | * | aftersha_ quit (Quit: Computer has gone to sleep.) |
22:36:31 | * | ddl_smurf joined #nimrod |
22:36:52 | dom96 | OrionPK: Varriount: The username limit is likely enforced by the ircd, but who knows. Test it to be sure. |
22:37:32 | * | dom_familiar joined #nimrod |
22:40:13 | * | dom_familiar quit (Remote host closed the connection) |
22:40:33 | dom96 | Meh. I thought I had Chrome installed. |
22:45:06 | * | io2 joined #nimrod |
22:56:29 | Demos | hm I should submit a pr for my changes to nimdoc's highlite module |
23:05:28 | OrionPK | im not too concerned about that one dom96 |
23:11:14 | * | io2 quit () |
23:17:06 | * | darkf joined #nimrod |
23:18:56 | * | radsoc quit () |
23:31:17 | * | Demos quit (Ping timeout: 248 seconds) |
23:38:40 | * | shodan45 quit (Quit: Konversation terminated!) |
23:43:14 | * | faassen quit (Quit: Leaving.) |
23:51:44 | * | p0nce left #nimrod (#nimrod) |
23:57:23 | * | ddl_smurf_ joined #nimrod |