00:27:18 | * | OrionPKM quit (Remote host closed the connection) |
00:35:15 | * | OrionPKM joined #nimrod |
00:45:48 | dom96 | 'night |
00:56:30 | * | boydgreenfield quit (Quit: boydgreenfield) |
00:59:55 | NimBot | nimrod-code/packages master 96f5325 achesak [+0 ±1 -0]: Added csv. |
00:59:55 | NimBot | nimrod-code/packages master a5a1072 achesak [+0 ±1 -0]: Added api wrappers. |
00:59:55 | NimBot | nimrod-code/packages master 8ccdbd0 Dominik Picheta [+0 ±1 -0]: Merge pull request #34 from achesak/master... 2 more lines |
01:12:03 | MFlamer | you still up Araq? |
01:17:34 | * | DAddYE quit (Remote host closed the connection) |
01:24:24 | OrionPKM | think it's pretty late in Germany land |
01:26:13 | MFlamer | yeah, I suppose so. |
01:26:46 | * | boydgreenfield joined #nimrod |
01:27:00 | MFlamer | Most of my free time to work on nimrod is at night, PST time |
01:27:23 | MFlamer | when most everyone else is sleeping |
01:58:25 | * | brson joined #nimrod |
02:11:23 | * | mflamer_ joined #nimrod |
02:12:13 | * | Varriount_ joined #nimrod |
02:13:45 | * | Varriount quit (Ping timeout: 245 seconds) |
02:15:21 | * | Varriount joined #nimrod |
02:17:30 | * | Varriount_ quit (Ping timeout: 245 seconds) |
02:21:11 | OrionPKM | that sucks |
02:32:33 | * | zahary quit (Read error: No route to host) |
02:32:54 | * | zahary joined #nimrod |
02:34:16 | mflamer_ | zahary? |
02:44:39 | OrionPKM | he(li |
03:02:29 | * | MFlamer quit (Ping timeout: 272 seconds) |
03:18:58 | * | mflamer_ quit (Ping timeout: 272 seconds) |
03:21:34 | * | DAddYE joined #nimrod |
03:24:11 | * | mflamer joined #nimrod |
03:25:50 | * | DAddYE quit (Ping timeout: 240 seconds) |
03:37:19 | * | mflamer quit (Ping timeout: 272 seconds) |
03:38:23 | fowl | for you windows ppl http://bliker.github.io/cmder/ |
03:43:37 | OrionPKM | it's just a bunch of settings for conemu |
03:45:58 | * | boydgreenfield quit (Quit: boydgreenfield) |
03:54:41 | * | brson quit (Quit: leaving) |
03:55:36 | * | Varriount is ready to beat his optical network terminal in with a bat. |
03:56:37 | OrionPKM | optical network? |
03:57:24 | Varriount | Optical Network Terminal. It translates signals from a fiber network to ethernet/coax/phone signals, and vice-versa |
03:57:56 | OrionPKM | yeah.. I know |
03:57:57 | * | mflamer joined #nimrod |
03:58:02 | OrionPKM | you have fiber? |
03:58:09 | Varriount | Yes. |
03:58:22 | Varriount | My house just happens to have one that relies on a backup battery unit being available and powered on in order to work, which is ironic. |
03:59:02 | OrionPKM | ugh. wish I had fiber |
03:59:07 | Varriount | Normally it's powered by a 12v battery, and charges the battery from a 48v power source (it drains 12 volts off, and feeds the rest to the ONT) |
03:59:47 | Varriount | However, for some reason, it just decided not to charge the battery anymore. |
04:00:22 | Varriount | Thus, my internet is going to be going up and down like a ping-pong ball until the repairman comes tomorrow |
04:00:37 | OrionPKM | where do you live? |
04:00:37 | fowl | maybe need a new battery |
04:00:48 | Varriount | fowl, we replaced the battery 3 times. |
04:01:09 | fowl | try rebooting it |
04:01:14 | Varriount | It's the fact that the backup battery unit both uses the battery for power, and charges it. |
04:01:20 | Varriount | fowl, you can't. |
04:02:24 | Varriount | fowl, it looks something like this, except without the wall plug. http://fierceandnerdy.com/wp-content/uploads/2012/03/Verizon-FIOS-battery-backup.jpg |
04:02:53 | fowl | oh |
04:03:16 | Varriount | Inside that compartment is a 12 volt lead acid battery. |
04:03:52 | Varriount | Here, I'll take a picture of mine. |
04:10:10 | Varriount | fowl, OrionPKM -> http://imgur.com/Xduc96z,EmYMQbK |
04:10:49 | OrionPKM | jeez |
04:11:15 | Varriount | I had to deal with four, FOUR younger siblings, without any internet, TV, or phone to appease them, for SIX HOURS yesterday. |
04:11:40 | fowl | shove them outside |
04:12:56 | Varriount | fowl, The temperature been hovering around freezing for the past week, and it has been raining/hailing off an on for the past two days. |
04:13:22 | fowl | that changes nothing |
04:13:36 | Varriount | -_-' |
04:14:10 | Varriount | fowl, how many younger siblings do you have? |
04:14:19 | fowl | 1 |
04:16:54 | * | boydgreenfield joined #nimrod |
04:17:12 | Varriount | Hey boydgreenfield, how's your bloom filter coming along? |
04:18:03 | fowl | she's in las vegas, doing illegal tattoos and hallucinogenics, chasing her dream |
04:18:42 | Varriount | fowl, her dream being? |
04:18:46 | boydgreenfield | Ha – well, not started. But plan to do it either tomorrow or this weekend. I'll put it up on GitHub once it's moderately well fleshed out. |
04:18:57 | Varriount | (Illegal tatoos?) |
04:19:13 | fowl | yea |
04:19:23 | fowl | without a license |
04:22:52 | * | DAddYE joined #nimrod |
04:25:17 | Varriount | fowl, well, if she's happy, then I guess... good for her? |
04:27:30 | * | DAddYE quit (Ping timeout: 252 seconds) |
04:28:58 | fowl | yea |
04:29:07 | fowl | what are your siblings doing with their lives |
04:29:14 | fowl | :p |
04:30:07 | Varriount | All of them are in school, which I can say, from experience, is not the most exciting thing to do. :3 |
04:30:32 | fowl | i hated school but miss it now |
04:30:57 | fowl | i regret not doing more drugs, girls and getting better grades |
04:31:23 | fowl | though i dont think its possible to achieve all those things, i could have done better with at least 2 of them |
04:31:49 | Varriount | Doing drugs and getting good grades tend to be mutually exclusive. I think the best bet would be good grades and girls. |
05:01:43 | * | boydgreenfield quit (Quit: boydgreenfield) |
05:24:28 | * | DAddYE joined #nimrod |
05:29:01 | * | DAddYE quit (Ping timeout: 252 seconds) |
05:29:23 | * | fowl quit (Quit: Leaving) |
05:32:43 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
05:33:04 | * | fowl joined #nimrod |
05:33:20 | * | ics joined #nimrod |
05:35:04 | * | OrionPKM quit (Remote host closed the connection) |
05:53:14 | * | OrionPKM joined #nimrod |
05:53:58 | * | OrionPKM quit (Remote host closed the connection) |
06:25:20 | * | DAddYE joined #nimrod |
06:26:35 | * | ics quit (Ping timeout: 252 seconds) |
06:30:14 | * | DAddYE quit (Ping timeout: 264 seconds) |
06:31:25 | * | ics joined #nimrod |
06:44:09 | * | mflamer quit (Ping timeout: 272 seconds) |
06:57:16 | * | mflamer joined #nimrod |
07:00:06 | * | webskipper quit (Ping timeout: 240 seconds) |
07:15:49 | * | mflamer quit (Ping timeout: 272 seconds) |
07:26:33 | * | DAddYE joined #nimrod |
07:31:20 | * | DAddYE quit (Ping timeout: 260 seconds) |
07:35:00 | * | Varriount quit (Ping timeout: 245 seconds) |
07:35:19 | * | Varriount joined #nimrod |
08:42:08 | * | Raynes quit (Ping timeout: 265 seconds) |
08:44:32 | * | Raynes joined #nimrod |
09:09:25 | * | capisce_ quit (Remote host closed the connection) |
09:09:34 | * | capisce joined #nimrod |
09:14:49 | * | DAddYE joined #nimrod |
09:14:51 | * | webskipper joined #nimrod |
09:15:21 | * | DAddYE quit (Remote host closed the connection) |
09:15:27 | * | DAddYE_ joined #nimrod |
09:28:04 | webskipper | hi |
09:43:34 | * | CarpNet joined #nimrod |
09:47:21 | * | DAddYE_ quit (Remote host closed the connection) |
10:48:39 | * | DAddYE joined #nimrod |
10:53:02 | * | DAddYE quit (Ping timeout: 240 seconds) |
11:46:09 | * | webskipper quit (Ping timeout: 246 seconds) |
11:49:44 | * | DAddYE joined #nimrod |
11:54:50 | * | BitPuffin joined #nimrod |
11:55:02 | * | DAddYE quit (Ping timeout: 240 seconds) |
12:03:09 | BitPuffin | good day folks! |
12:04:03 | EXetoC | lo |
12:04:52 | BitPuffin | sup EXetoC? |
12:47:30 | * | Varriount quit (Ping timeout: 245 seconds) |
12:51:32 | * | DAddYE joined #nimrod |
12:55:50 | * | DAddYE quit (Ping timeout: 240 seconds) |
12:59:15 | * | q66 quit (Quit: Leaving) |
13:12:54 | * | q66 joined #nimrod |
13:13:24 | EXetoC | BitPuffin: working on the glfw lib |
13:13:37 | BitPuffin | EXetoC: sweet, what are you working on with it? |
13:19:11 | EXetoC | BitPuffin: I'm tying the hints to the window creation proc, and I'll be adding the ability to define hard constraints to all the hints |
13:19:17 | EXetoC | over-engineering? who knows |
13:23:26 | BitPuffin | EXetoC: :P |
13:23:29 | BitPuffin | well hurry |
13:23:35 | BitPuffin | I'll be using your lib in just a few days |
13:23:42 | BitPuffin | xD |
13:23:51 | EXetoC | nah, I guess not. more static typing etc is always nice, but there might not be too much of a gain, because glfw isn't exactly difficult to use |
13:24:44 | EXetoC | ok I should be done tomorrow |
13:26:06 | BitPuffin | well whatever can be refined should be |
13:26:13 | BitPuffin | even if there isn't much to refine in glfw :P |
13:33:33 | * | Varriount joined #nimrod |
13:48:16 | BitPuffin | hmm, shadow mapping doesn't seem all too hard |
13:52:31 | * | DAddYE joined #nimrod |
13:53:17 | BitPuffin | don't think this project even needs it though |
13:58:14 | * | DAddYE quit (Ping timeout: 265 seconds) |
14:02:34 | * | BitPuffin quit (Read error: Connection reset by peer) |
14:02:46 | * | BitPuffin joined #nimrod |
14:54:22 | * | DAddYE joined #nimrod |
14:59:03 | * | DAddYE quit (Ping timeout: 272 seconds) |
15:01:50 | * | OrionPKM joined #nimrod |
15:34:22 | * | webskipper joined #nimrod |
15:38:27 | * | q66 quit (Quit: Leaving) |
15:41:20 | * | boydgreenfield joined #nimrod |
15:47:41 | * | q66 joined #nimrod |
16:01:24 | * | mflamer joined #nimrod |
16:01:49 | mflamer | good morning |
16:03:39 | Araq | hi |
16:03:47 | zahary_ | good evening |
16:07:27 | BitPuffin | good * |
16:12:46 | mflamer | How do skParams work? They dont seem to have any ast which I guess is because they are bound at runtime? |
16:13:30 | * | BitPuffin quit (Quit: WeeChat 0.4.2) |
16:14:41 | * | dyu joined #nimrod |
16:15:22 | zahary_ | what do you mean? an skParam just represents the proc param variable (it has a name and a type) |
16:16:43 | mflamer | I get myself confused thnking there is more to this than there really is |
16:23:08 | * | Jackneill joined #nimrod |
16:32:36 | * | dyu quit (Quit: Leaving) |
16:35:21 | fowl | anybody on windows? |
16:38:27 | mflamer | I am |
16:42:03 | fowl | can you see if this runs https://gist.github.com/fowlmouth/7694659 |
16:42:12 | fowl | (with allegro 5.0.10 also) |
16:42:55 | mflamer | Sure |
16:43:23 | mflamer | whats allegro? |
16:43:39 | mflamer | I need that dll? |
16:43:50 | fowl | https://www.allegro.cc/files/?showresults=1 |
16:44:02 | fowl | a game library like SDL |
16:44:07 | mflamer | ok |
16:46:57 | mflamer | Araq: How might I get back up the ast to create a new global? This seems tough. Would I be climbing up the scopes and adding a new symbol to a table? |
16:52:18 | mflamer | fowl: I see a bunch of dlls but no liballegro.dll in the downloads |
16:53:17 | OrionPKM | liballegro is nix naming convention, not windows :P |
16:53:31 | mflamer | ok |
16:53:48 | fowl | try the -md one or -mt |
16:54:32 | mflamer | elif defined(Windows): |
16:54:32 | mflamer | const |
16:54:33 | mflamer | LIB_NAME = "liballegro.dll" |
16:55:30 | * | boydgreenfield quit (Quit: boydgreenfield) |
16:56:23 | * | boydgreenfield joined #nimrod |
16:56:40 | mflamer | opens a new window fowl |
16:56:55 | zahary_ | mflamer, see the .global. pragma |
16:56:58 | mflamer | Is this an openGL window? |
16:57:03 | fowl | mflamer, cool thanks |
16:57:08 | fowl | it should be |
16:57:17 | * | DAddYE joined #nimrod |
16:57:24 | mflamer | Fowl:Nice! |
16:57:24 | fowl | what DLL name did you end up using |
16:57:45 | mflamer | LIB_NAME = "allegro-5.0.10-mt.dll" |
16:58:15 | mflamer | zahary_: will that work in the compiler? |
17:00:22 | fowl | now gradha has no reason not to finish this wrapper |
17:00:28 | fowl | since it works fine on windows |
17:01:08 | * | boydgreenfield quit (Ping timeout: 260 seconds) |
17:01:19 | mflamer | zahary_: I'm trying to identify when the user passes a value like an intLit and convert it into a heap variable (un GC'd) |
17:01:39 | * | DAddYE quit (Ping timeout: 252 seconds) |
17:01:39 | mflamer | at compile time |
17:17:57 | mflamer | zahary_: here's what I'm trying to do, https://gist.github.com/mflamer/7591727 |
17:31:47 | zahary_ | why do you need to detect intLit specifically here and why do you need any kind of global vars |
17:31:47 | zahary_ | the way I see it, you'll generate a generic constructor (or multiple overloaded constructors accepting each variant) and then you'll have code like this: |
17:31:47 | zahary_ | proc TypeName[T](val: T) = var store = new(T); store[] = val; |
17:32:48 | zahary_ | then store "store" variable in the instance using type erasure |
17:33:46 | zahary_ | and that's if you want heap values at all - it's also possible to use a case type under the hood |
17:35:45 | * | zahary1 joined #nimrod |
17:35:50 | zahary_ | and I see that you are having fun, but what's wrong with TMaybe defined as a case type; I tried to convince Araq in the past that we need Option[T] in the standard library |
17:35:51 | zahary_ | https://gist.github.com/zah/1392058 |
17:36:44 | fowl | i like my maybe[t] better |
17:37:01 | fowl | it just has a converter(v: maybe[t]): bool = v.hasValue |
17:37:20 | zahary_ | fowl, does your maybe have some of the features I have described in my gist? |
17:37:32 | * | zahary quit (Ping timeout: 259 seconds) |
17:37:53 | zahary_ | I'm still here :) |
17:38:29 | fowl | with the converter it handles if someMaybeVal: nicely |
17:38:58 | zahary_ | the delegator pragma can be used now to implement the second feature |
17:39:01 | fowl | but its not infectious like the Option(foo).bar[10].baz returning option[type(baz)] |
17:39:09 | zahary_ | proxy types = delegator pragma |
17:47:00 | fowl | an annoying bug |
17:47:13 | fowl | sometimes I can do {.push importc: "al_$1".}, sometimes it just doesnt work |
17:49:06 | mflamer | zahary_: In cases beyond the Option or Maybe example, like trees, the union type seems like a waste of memory. |
17:49:48 | zahary_ | aha, I see what you are after |
17:50:53 | zahary_ | there was an idea btw to provide an alternative allocation strategy for case objects. if you give up the reset feature (the ability to change the value), you can allocate only as little memory as it's needed |
17:50:55 | mflamer | In the case where the number of variants is small, the type and the pointer are packed. I have everything in that example Gist working |
17:51:18 | mflamer | that's interesting |
17:51:33 | mflamer | that could be a pragma |
17:51:59 | zahary_ | I guess it could be a type attached pragma or just an alternative allocation function; (or mix of the both) |
17:52:48 | zahary_ | type attached pragma will get you a compile-time error when you use reset, otherwise you'll get a run-time error |
17:53:01 | * | DAddYE joined #nimrod |
17:53:14 | * | DAddYE quit (Remote host closed the connection) |
17:53:20 | * | DAddYE joined #nimrod |
17:56:08 | mflamer | I think the enum type syntax is really clean though. |
17:57:05 | zahary_ | it's nice, but maybe you are throwing too much meta-programing at the problem, when the other solution is just behind the corner |
17:57:45 | mflamer | could be... |
18:00:16 | * | DAddYE quit (Remote host closed the connection) |
18:10:05 | mflamer | The part of my plan I'm really worried about is adding generics. Useless without, and seems like it may be really complex to add support |
18:12:11 | zahary_ | I can think of a hacky way to do it |
18:13:07 | zahary_ | you could have the type as a return type of a generic function (the body of the type will be inside it); the use type(my_helper_function[T, U]()) |
18:16:41 | mflamer | ok, I sorta get that. Going to have to think about that for a while. |
18:17:44 | zahary_ | but yeah, that's quite hacky and it's only point is to avoid treating your type as generic in the compiler itself |
18:20:44 | mflamer | the next step was to create a heap copy of whats passed to my constructors. I catch the constructors in semcall.nim, but by that point I'm usually in a var block. It's almost like I need to do a pree process pass or something |
18:21:53 | zahary_ | but aren't you developing this in user space? |
18:22:14 | mflamer | as opposed to in the compiler? |
18:22:18 | zahary_ | yes |
18:22:21 | mflamer | no |
18:22:37 | mflamer | All in the compiler as a pragma for enums |
18:23:04 | zahary_ | with new tyX and flags and everything? |
18:23:38 | mflamer | just enum type pragma and a flag |
18:23:54 | mflamer | look at my example again |
18:24:51 | zahary_ | the hack that I mentioned was assuming you are working in user space - the proper way to do generics in the compiler is to go in semGeneric, semtypinst, etc |
18:25:19 | mflamer | OK, thats why it wasnt totally clear |
18:25:38 | mflamer | I'll cross that bridge soon enough |
18:26:21 | zahary_ | but a compiler patch will have to compete with the other case objects solution I mentioned - we'll have to decide which one to use |
18:27:48 | mflamer | ok, well if you guys think the case option is the way to go, I'll abandon ship |
18:28:48 | zahary_ | well, working code is often the best argument, but I think here we'll have quite a big patch for the enum version versus quite a small one for the case objects |
18:29:27 | mflamer | With the case option you wouldnt be able to create an array,because of the different sizes. You would use ref's which would be the same as what I'm doing.... |
18:30:02 | zahary_ | yes, it would be the same, exactly (so it's still supported) |
18:30:27 | mflamer | Compile time field access checks are nice, which case objects dont have, correct? |
18:30:29 | webskipper | whats the differene between "object of" and "ref object of" internally ? |
18:30:30 | * | ics quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
18:31:06 | * | CarpNet quit (Quit: Leaving) |
18:31:08 | mflamer | webSkipper: ref is a GC'd pointer |
18:31:13 | webskipper | firt variant inherits from object, second points only to ? |
18:31:27 | zahary_ | can you elaborate? (the compile time field access checks) |
18:32:17 | mflamer | foo.z on a variant that dosent have a z field is runtime error instead of compiletime |
18:32:18 | zahary_ | test = Just(x) # here you use a more specific type than the enum? |
18:32:57 | zahary_ | are we talking about non-existing fields at all or just about fields that are in some other "case"? |
18:33:11 | mflamer | in some other case |
18:33:30 | zahary_ | so, test = Just(); test.x # error; how does this work? |
18:34:44 | mflamer | test gets treated like a ptr to a TPnt, so it gets checked at compile |
18:35:22 | zahary_ | and when is that type lost? when I pass it to a proc expecting an enum value? |
18:36:05 | zahary_ | we have flow analysis for case objects that is supposed to discover such errors |
18:36:07 | mflamer | I dont think so, the example `$` proc works |
18:36:40 | zahary_ | I meant, in the example proc, if I try to use the field 'x', how is this going to be detected as error? |
18:36:50 | zahary_ | we don't know the particular TMaybe type there |
18:37:14 | zahary_ | the '$' proc |
18:37:26 | mflamer | yes, thinking... |
18:37:56 | mflamer | we do because the ord value is stored in sym.position |
18:38:11 | mflamer | and i pack the pointer with it |
18:38:23 | mflamer | so at runtime we know the variant |
18:38:35 | mflamer | and compile time |
18:38:47 | zahary_ | sure, at run-time. I asked how is the error detected at compile-time? |
18:39:09 | zahary_ | proc will be compiled in just one version handling all run-time types |
18:39:26 | zahary_ | so it doesn't know the run-time type and can't assume anything about it |
18:39:47 | mflamer | ok, could be.... |
18:39:53 | mflamer | let me try |
18:40:25 | zahary_ | anyway, we have similar abilities to detect errors with case objects as long as the information is not lost in similar fashion |
18:41:51 | mflamer | OK |
18:45:46 | * | xenagi joined #nimrod |
18:46:04 | mflamer | I guess I'll look into the case object option a bit and see what that woud be like |
18:46:31 | mflamer | would |
18:47:45 | mflamer | Maybe we can sugar up the syntax with some macros or something |
18:48:13 | zahary_ | the syntax is usually the easiest part |
18:48:46 | mflamer | After using Haskell ADT's and GADT's it's tough to accept anything else |
18:49:16 | zahary_ | you planned some pattern-matching on top of the enum types? |
18:49:35 | mflamer | yes, eventually |
18:50:37 | mflamer | although, it's less important when you have nice mutable field access. As long as you can case on the variants |
18:50:50 | zahary_ | I have an idea how pattern matching could be written with the current case types; the cool thing about pattern matching is the deconstruction, right? |
18:54:45 | mflamer | I think the most important thing is just to be able to case on the variant something like "match foo: variant1: variant2: " etc. and have compile time field access. |
18:55:46 | mflamer | Haskell has a notiorously poor record field naming problem that makes deconstructing really important. |
18:56:23 | mflamer | I meant "field access cheking above" |
18:59:24 | mflamer | lucky :: (Integral a) => a -> String |
18:59:24 | mflamer | lucky 7 = "LUCKY NUMBER SEVEN!" |
18:59:24 | mflamer | lucky x = "Sorry, you're out of luck, pal!" |
18:59:42 | mflamer | matching on values is also cool |
19:00:47 | mflamer | Anyway, how are your userdefined types classes? |
19:01:30 | * | DAddYE joined #nimrod |
19:06:26 | * | DAddYE quit (Ping timeout: 272 seconds) |
19:07:48 | zahary_ | you may have heard that I often cite an alternative languages that I planned to build, before I discovered nimrod (I usually call it hypolang here (from hypothetical)) |
19:08:05 | zahary_ | it was supposed to have a pattern matching feature that works like this: |
19:08:07 | zahary_ | https://gist.github.com/zah/7696809 |
19:14:09 | mflamer | I have to study that for a min, and now I'm getting inturrupted by kids, wife etc. Let's pick this conv up again sometime soon? |
19:16:23 | zahary_ | there is an interesting approach to pattern matching in the F# langauge - it allow you to define user-defined deconstructing expressions |
19:20:21 | mflamer | zahary_:Thanks for your time. Happy Thanksgiving |
19:23:30 | zahary_ | see you later :) I updated my gist a little bit to add an example of such user-defined deconstructor |
19:24:03 | * | noam quit (Read error: Connection reset by peer) |
19:24:29 | * | noam joined #nimrod |
19:31:46 | * | mflamer quit (Ping timeout: 272 seconds) |
19:35:36 | * | ics joined #nimrod |
19:39:26 | * | OrionPKM quit (Remote host closed the connection) |
19:43:08 | * | OrionPKM joined #nimrod |
19:55:07 | Varriount | Yay! My internets are fixed :D |
19:57:27 | * | mflamer joined #nimrod |
20:01:50 | * | OrionPKM quit (Remote host closed the connection) |
20:02:43 | * | DAddYE joined #nimrod |
20:07:02 | * | DAddYE quit (Ping timeout: 240 seconds) |
20:10:13 | * | boydgreenfield joined #nimrod |
20:15:06 | * | BitPuffin joined #nimrod |
20:43:20 | * | Varriount quit (Ping timeout: 245 seconds) |
20:46:25 | mflamer | zahary_: so this new case object would not be represented by a union then? It would be like a struct instead, for each variant? |
20:50:09 | * | Varriount joined #nimrod |
20:52:47 | * | Varriount_ joined #nimrod |
20:55:21 | * | Varriount quit (Ping timeout: 272 seconds) |
21:03:08 | Araq | mflamer: do a little bit of type analysis, enhance the GC and you have your optimized 'case' objects |
21:03:29 | Araq | the codegen doesn't HAVE to emit a union for them |
21:09:29 | * | gradha joined #nimrod |
21:11:10 | mflamer | Araq: Are you refering to my enum project or the idea of an optional variant object representation that zahary proposed? |
21:12:11 | mflamer | Oh, I see. Your talking about the second. |
21:13:13 | mflamer | at that point they are really similar. |
21:18:24 | * | webskipper quit (Ping timeout: 252 seconds) |
21:22:00 | mflamer | but using the existing variant object as the starting point probably gets us alot of milage, generics etc. are done already. I could just toss what I have done and start over. Tough call, depends on what you guys think mostly, as I need support |
21:24:22 | EXetoC | same thing, different approach, I guess |
21:24:43 | * | xenagi quit (Quit: Leaving) |
21:27:12 | * | brihat left #nimrod (#nimrod) |
21:30:28 | mflamer | yeah |
21:30:43 | * | q66_ joined #nimrod |
21:31:51 | * | q66 quit (Disconnected by services) |
21:31:55 | * | q66_ is now known as q66 |
21:39:40 | mflamer | Off to eat turkey now. Have a good day guys. |
21:41:08 | BitPuffin | dom96: yeah document.cookie is just a string :/ |
21:41:10 | BitPuffin | so it should be set |
21:42:33 | BitPuffin | umm |
21:42:38 | BitPuffin | what is c.userpass |
21:43:06 | dom96 | maybe JS just sucks? I dunno |
21:43:07 | BitPuffin | please don't tell me that you are storing a hash of the username and password in the cookie being sent unencrypted between the server and client |
21:46:02 | BitPuffin | ah it's just the password |
21:46:04 | BitPuffin | come |
21:46:06 | BitPuffin | on |
21:46:25 | BitPuffin | dom96, Araq: don't make me smack you guys |
21:47:41 | BitPuffin | Storing them as a straight md5 is one thing, but not even really having to break in to the server to get the hash of the password |
21:47:57 | BitPuffin | instead it's sent back and forth unencrypted |
21:49:34 | fowl | merry thanksgivings |
21:50:08 | Araq | huh? well we don't use https if that's what you mean |
21:50:14 | BitPuffin | Araq: yeah exactly |
21:50:27 | BitPuffin | Araq: and you store the password hash in the cookie |
21:50:32 | Araq | so? |
21:50:35 | BitPuffin | ._. |
21:50:39 | Araq | it's a hash. it's safe :P |
21:50:44 | BitPuffin | yeah totally safe |
21:50:46 | BitPuffin | an md5 hash |
21:50:48 | BitPuffin | so safe |
21:51:00 | Araq | with salt |
21:51:11 | fowl | md5 can withstand a thousand brute forces |
21:51:11 | BitPuffin | Araq: it's still md5 |
21:51:12 | Araq | no way you can crack that |
21:51:18 | gradha | salt is good, had some with eggs today |
21:51:21 | BitPuffin | are you actually serious? |
21:51:41 | Araq | no, but I also don't care too much. It's an infrequently used forum. |
21:51:41 | BitPuffin | md5 was maybe secure around 10 years ago |
21:51:43 | BitPuffin | actually no |
21:51:45 | BitPuffin | barely |
21:51:53 | BitPuffin | but still |
21:51:54 | BitPuffin | today |
21:51:57 | BitPuffin | that's nothing for a gpu |
21:51:57 | Araq | you're free to improve it and make pull requests |
21:52:09 | Araq | I'm waiting for your patches then. |
21:52:15 | BitPuffin | Araq: Well it doesn't matter if it is an infrequently used forum, people use the same patches everywhere |
21:52:20 | BitPuffin | passwords |
21:52:22 | BitPuffin | lol |
21:52:27 | BitPuffin | reading and typing, not a good idiea |
21:52:48 | Araq | again, feel free and improve it. I'm busy fixing the bug that's blocking you. |
21:52:58 | BitPuffin | first of all there is NO reason to store the password in the cookie |
21:53:03 | BitPuffin | I don't even know why you wanna do that |
21:53:17 | gradha | BitPuffin: it avoids maintaining a cookie table on the server |
21:53:35 | BitPuffin | Araq: yes and I'm grateful for that, but I'm also busy :/ |
21:53:41 | BitPuffin | gradha: that can be avoided anyway |
21:53:59 | gradha | BitPuffin: but then you are burning preciousss cpu cycles... my cyclessssss |
21:54:27 | BitPuffin | gradha: have a long secret that is only known on the server, hash the username with that secret, store the username and hash in the cookie, verify that the username + secret is indeed the hash |
21:54:55 | gradha | preciousssssss... cpu cyclesssssss... |
21:55:12 | BitPuffin | gradha: how is that any different than storing the password hash |
21:55:28 | BitPuffin | except it's more secure |
21:55:49 | BitPuffin | well with md5 it wouldn't be that secure, but it would still not send peoples passwords around in basically plain text security |
21:56:15 | gradha | maybe to avoid storing the password has it should store the plain password |
21:56:30 | BitPuffin | may as well |
21:56:45 | gradha | but encrypt it with triple des, at least it works wonders for Adobe |
21:57:07 | BitPuffin | well, it would still be harder to crack than md5, but when you do, you'd have the solution for all of them |
21:57:35 | gradha | BitPuffin: you look willing to implement SQRL |
21:57:51 | fowl | gradha, what was your issue with wrapping allegro |
21:58:03 | BitPuffin | fowl: wasn't I the one having an issue with that |
21:58:20 | gradha | fowl: my issue is I don't use allegro |
21:58:34 | fowl | BitPuffin, ok, what was your issue |
21:58:44 | BitPuffin | fowl: c2nim complained, I was new to nimrod etc |
21:59:17 | fowl | oh |
21:59:43 | fowl | well i have started wrapping it and mflamer tested it on windows |
21:59:48 | fowl | (i thought that was the issue) |
22:00:33 | BitPuffin | fowl: 5.1? |
22:00:36 | fowl | BitPuffin, it will have to be written by hand though, thanks to the macro AL_FUNC |
22:00:42 | fowl | no, 5.0.10 |
22:00:49 | gradha | fowl: 100% coverage of their API? Did they drop magic cross-platform defines? |
22:00:59 | BitPuffin | why not 5.1? |
22:01:02 | BitPuffin | live for the future |
22:01:05 | fowl | gradha, thats only needed for static linking |
22:01:33 | fowl | BitPuffin, because 5.1 is not even available for download on the main site |
22:01:51 | fowl | i dont see any mention of it at all |
22:01:58 | gradha | fowl: they used to have AL_FUNC and funny stuff like that |
22:02:28 | gradha | fowl: I expected them to have more such macros |
22:03:56 | gradha | good night, honey badgers |
22:04:10 | * | gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=2IzR_ClTE8Y again) |
22:04:51 | BitPuffin | Araq: http://robinverton.de/blog/2012/08/27/cracking-salted-md5-with-hashcat/ |
22:04:56 | * | DAddYE joined #nimrod |
22:05:02 | * | mflamer quit (Ping timeout: 272 seconds) |
22:05:02 | BitPuffin | 7 seconds |
22:06:02 | BitPuffin | salted |
22:06:38 | Araq | well it's not that I don't believe you |
22:07:03 | BitPuffin | "no way you can crack that " |
22:07:05 | BitPuffin | right |
22:07:07 | Araq | and it would really be nice if you could improve the code |
22:07:20 | Araq | I wasn't serious when I said that, omg |
22:07:58 | BitPuffin | alright, well irc is not the best way to portray sarcasm |
22:08:18 | BitPuffin | Araq: Anyways I'd like to improve the code, maybe I will when I've gotten things rolling, so that would be sometime next year maybe |
22:08:27 | BitPuffin | if someone else has the time that would be super though |
22:08:41 | BitPuffin | scrypt.nim isn't far from finish either |
22:08:49 | BitPuffin | what's basically missing is the verifying part |
22:08:53 | BitPuffin | which takes a minute to write lol |
22:08:57 | BitPuffin | but yeah |
22:09:02 | * | DAddYE quit (Ping timeout: 240 seconds) |
22:13:01 | * | Jackneill quit (Remote host closed the connection) |
22:13:24 | Araq | just for the record: I do consider it a *bug* and since jester is not only for the forum, it really needs to be improved quickly |
22:16:16 | * | tq_ joined #nimrod |
22:16:52 | * | q66_ joined #nimrod |
22:19:04 | * | q66 quit (Disconnected by services) |
22:19:06 | * | q66_ is now known as q66 |
22:19:39 | * | snearch joined #nimrod |
22:21:34 | * | snearch quit (Client Quit) |
22:23:20 | dom96 | Araq: This isn't a Jester bug, it's a nimforum bug. |
22:25:06 | Araq | sure but jester suggests a similar approach? |
22:25:29 | Araq | hi tq_ welcome |
22:26:03 | tq_ | hi! :) |
22:26:40 | * | mflamer joined #nimrod |
22:28:38 | * | simpleirc joined #nimrod |
22:29:01 | * | simpleirc is now known as Guest56155 |
22:31:06 | * | mflamer quit (Remote host closed the connection) |
22:31:06 | * | Guest56155 quit (Remote host closed the connection) |
22:35:36 | * | OrionPKM joined #nimrod |
22:35:40 | BitPuffin | Araq: hmm, what do you mean suggest? Jester doesn't seem to suggest anything |
22:35:53 | BitPuffin | but I guess that's kind of a problem, maybe jester needs to provide a sane default way to do things |
22:35:59 | BitPuffin | but maybe that's also out of the scope of jester |
22:36:29 | Araq | well my thought is that people simply copy the forum's approach since jester doesn't provide one |
22:36:50 | BitPuffin | ah true |
22:37:18 | BitPuffin | yeah that's a problem |
22:37:37 | * | mflamer joined #nimrod |
22:38:46 | mflamer | another little thing i noticed about case objects is the variants cant share field names |
22:39:27 | Araq | yeah but then they can't in ML/Haskell either, can they? |
22:39:44 | mflamer | like if you want 2 variants to have an x field and others not. |
22:40:21 | mflamer | no, thats the big problem with field namespacing in haskell |
22:41:23 | mflamer | in fact, the namespace is module wide for fields, so even seperate types conflict. its a nightmare |
22:41:39 | * | Varriount_ quit (Read error: Connection reset by peer) |
22:54:20 | * | mflamer quit (Remote host closed the connection) |
23:06:20 | * | DAddYE joined #nimrod |
23:07:58 | * | OrionPKM quit (Remote host closed the connection) |
23:08:24 | * | boydgreenfield quit (Quit: boydgreenfield) |
23:10:34 | * | DAddYE quit (Ping timeout: 246 seconds) |
23:20:21 | BitPuffin | Araq: luckily as nimrod and jester are in their infancy you and me are pretty much the only ones using jester |
23:20:56 | BitPuffin | well luckily and luckily |
23:20:59 | BitPuffin | but you know what I mean |
23:21:57 | Araq | sure |
23:23:50 | BitPuffin | Araq: isn't it kind of fun that businesses are starting to use nimrod? :D |
23:24:39 | EXetoC | rly |
23:24:45 | EXetoC | ? |
23:24:58 | BitPuffin | yeah! |
23:25:19 | Araq | yeah well I need to sleep now. tomorrow your bug will be gone |
23:26:05 | BitPuffin | Araq: sleep well! Thanks :) Seems like a nasty bug :/ |
23:27:40 | Araq | well I'm trying to fix other places that are affected |
23:28:37 | BitPuffin | Araq: cool! So this patch will take down more than just this bug? |
23:28:42 | BitPuffin | That's a pretty nice payoff I think |
23:29:50 | Araq | well that's the plan at least |
23:30:01 | Araq | usually the tester proves me wrong ... :P |
23:30:25 | BitPuffin | I mean yeah fixing bugs may not be the hottest thing to do, but it's really extremely under appreciated considering how much work that goes in to it :P |
23:30:29 | BitPuffin | haha :P |
23:35:57 | EXetoC | I want the names of those who don't appreciate bug fixes enough |
23:36:20 | BitPuffin | EXetoC: I'm pretty sure it's everyone |
23:36:38 | BitPuffin | Because you don't notice that a bug was fixed unless you were affected by it |
23:37:43 | BitPuffin | so unless someone sits around tracking every single bug in the list and thanking the hell out of the one fixing them they aren't appreciating it enough. But then on the other hand they wouldn't get much coding done to get affected by bugs so they would probably not care all that much :P |
23:46:23 | EXetoC | that might be the case with projects that are relatively stable, but I recognize the fact that any bug fix leads to more stability |
23:47:30 | * | Amrykid quit (Excess Flood) |
23:47:39 | * | Amrykid joined #nimrod |
23:47:56 | BitPuffin | EXetoC: yeah but my point is that every bug fix deserves a lot of appreciation |