00:07:53 | * | DAddYE quit (Remote host closed the connection) |
00:10:40 | * | DAddYE joined #nimrod |
01:59:36 | * | Associat0r quit (Quit: Associat0r) |
02:19:04 | * | q66 quit (Quit: Leaving) |
02:43:28 | * | Trixar_za is now known as Trix[a]r_za |
04:18:41 | * | EXetoC joined #nimrod |
04:35:28 | * | OrionPK quit (Read error: Connection reset by peer) |
05:03:58 | EXetoC | wake up guys, it's morning! |
05:04:03 | EXetoC | here anyway |
05:59:59 | * | DAddYE quit (Remote host closed the connection) |
06:44:16 | * | DAddYE joined #nimrod |
07:15:26 | * | Araq_ joined #nimrod |
07:47:46 | * | Araq_ quit (Read error: Connection timed out) |
07:48:06 | reactormonk | Wake up, time to die! |
07:48:43 | * | Araq_ joined #nimrod |
07:51:11 | EXetoC | wut |
07:51:55 | EXetoC | o |
07:55:01 | reactormonk | EXetoC, http://www.youtube.com/watch?feature=player_detailpage&v=azAELMY0_vU#t=27s |
07:59:41 | EXetoC | oh. I googled it and blade runner popped up |
07:59:54 | EXetoC | stupid circle won't render properly :( |
08:01:27 | EXetoC | I should just draw individual pixels instead. that shouldn't matter if the hardware is decent, right? :> |
08:07:33 | * | Araq_ quit (Read error: Connection timed out) |
08:08:46 | * | Araq_ joined #nimrod |
08:29:36 | * | zahary_ quit (Quit: ~ Trillian Astra - www.trillian.im ~) |
08:34:05 | * | Associat0r joined #nimrod |
08:34:05 | * | Associat0r quit (Changing host) |
08:34:05 | * | Associat0r joined #nimrod |
08:45:35 | * | Araq_ quit (Read error: Connection timed out) |
08:46:43 | * | Araq_ joined #nimrod |
09:08:57 | * | q66 joined #nimrod |
09:23:09 | DAddYE | bum bum |
09:23:18 | DAddYE | wtf is result? |
09:23:31 | DAddYE | I mean in nimrod source code there is in a lot of places |
09:23:37 | DAddYE | new(result) |
09:23:45 | DAddYE | Araq: ^^ |
09:25:59 | EXetoC | http://nimrod-code.org/manual.html#return-statement |
09:28:35 | DAddYE | EXetoC: so here https://github.com/Araq/Nimrod/blob/master/lib/pure/streams.nim#L265 |
09:28:39 | DAddYE | what is it? |
09:29:31 | DAddYE | PStringStream ? |
09:30:35 | EXetoC | PFileStream you mean? anyway, it's the variable that will be returned either implicitly or explicitly |
09:32:13 | EXetoC | "proc f(): int = 0" -> "proc f(): int = result = 0" -> "proc f(): int = # comment" -> "proc f(): int = discard" |
09:33:40 | EXetoC | or "proc f(): int = return result" or "proc f(): int = return" :> |
09:35:00 | EXetoC | and there's nothing special about new. see system.nim for the definition |
09:35:14 | DAddYE | EXetoC: thanks a lot |
09:35:21 | EXetoC | or system.html on the website |
09:38:20 | * | DAddYE quit (Remote host closed the connection) |
09:51:55 | * | BitPuffin joined #nimrod |
10:02:35 | * | Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 22.0/20130618035212]) |
10:08:46 | EXetoC | BitPuffin: morrn |
10:09:11 | BitPuffin | EXetoC: nämen tj tj tj tjeenaaa |
10:11:55 | EXetoC | :o |
10:11:57 | EXetoC | :# |
10:11:59 | EXetoC | :E |
10:30:46 | EXetoC | BitPuffin: spelet klart? |
10:30:56 | BitPuffin | EXetoC: nesh |
10:31:14 | BitPuffin | lär dröja till typ december |
10:31:22 | EXetoC | :/ |
10:34:47 | * | Araq_ joined #nimrod |
10:39:41 | * | DAddYE joined #nimrod |
10:45:50 | * | DAddYE quit (Ping timeout: 240 seconds) |
11:02:10 | BitPuffin | EXetoC: oavsett om det blir klart tills då eller ej :P |
11:02:16 | BitPuffin | eller innan* |
11:07:40 | BitPuffin | EXetoC: Det handlar om vinter så :) |
11:08:02 | Araq_ | speak english |
11:08:14 | BitPuffin | Okay |
11:08:17 | Araq_ | or german |
11:08:28 | BitPuffin | Is there a linear algebra lib for nimrod? |
11:08:38 | BitPuffin | Araq_: well, Swedish is a Germanic language, so close enough :) |
11:09:15 | Araq_ | BitPuffin: a recent pull request added support for polynomials |
11:10:44 | BitPuffin | well like |
11:10:59 | BitPuffin | matrices and stuff |
11:11:37 | BitPuffin | quaternions |
11:12:10 | Araq_ | fowl: has some stuff for game programming matrices I think |
11:12:37 | * | Araq_ distinguishes matrices from "game matrices" ;-) |
11:12:42 | BitPuffin | haha |
11:12:44 | BitPuffin | well |
11:12:50 | BitPuffin | regular matrices can be useful sometimes |
11:12:52 | BitPuffin | "regular" |
11:13:04 | Araq_ | well "real" matrices can have thousands of elements |
11:13:04 | BitPuffin | not only transformations |
11:13:10 | Araq_ | game matrices are 4x4 |
11:13:13 | BitPuffin | or 3x3 |
11:13:15 | BitPuffin | or 2x2 |
11:13:21 | Araq_ | yeah of course |
11:13:40 | BitPuffin | But "real" matrices become useful with physics simulations for example |
11:14:15 | Araq_ | well I don't think a single matrix type can cover both |
11:14:45 | BitPuffin | hmm |
11:14:48 | BitPuffin | I don't see why not |
11:14:50 | Araq_ | big matrices are often sparse for instance |
11:15:01 | BitPuffin | you could have the standard matrix operations |
11:15:19 | BitPuffin | and an extra utility for "lookAt" operations etc and create perspective matrix |
11:15:36 | Araq_ | and you might want O(1) row swaps for gauss's algorithm |
11:15:54 | Araq_ | which means an array of pointers |
11:16:04 | BitPuffin | there is the method binding stuff so why would it be difficult |
11:16:20 | Araq_ | it's not difficult at all |
11:16:29 | Araq_ | but it sucks for performance |
11:16:49 | Araq_ | it's better to have different types IMO |
11:16:57 | BitPuffin | I guess |
11:17:06 | BitPuffin | but it's less clean |
11:19:42 | Araq_ | for big matrixes I'd use openmp, for small ones ensure that vector ops are generated ... etc. it's foolish to use a single type for "matrix" and pretend they are the same |
11:20:40 | BitPuffin | fair enough |
11:21:05 | BitPuffin | so where is fowl's lib? |
11:24:43 | BitPuffin | https://github.com/fowlmouth/nimlibs/tree/master/fowltek ? |
11:25:03 | BitPuffin | I only see vectors |
11:26:36 | BitPuffin | best commit message "oops" |
11:29:55 | Araq_ | well I could be wrong |
11:30:53 | BitPuffin | plus |
11:31:04 | BitPuffin | there doesn't seem to be a license? |
11:31:19 | BitPuffin | which basically assigns full copyright |
11:31:30 | BitPuffin | well, the babel file says mit |
11:33:04 | BitPuffin | Araq_: any work being done on import renaming? :) |
11:35:09 | Araq_ | no ... |
11:35:25 | BitPuffin | okay |
11:35:35 | Araq_ | currently everything is on hold until my new VM works |
11:36:09 | BitPuffin | Araq_: is there a way to give a tuple element more than one id? like xyzw, rgba etc |
11:36:22 | BitPuffin | VM? What kind of VM? |
11:37:56 | Araq_ | BitPuffin: you can use a template to create aliases |
11:38:13 | Araq_ | the VM which is used to evaluate things at compile time |
11:39:54 | BitPuffin | ah |
11:40:12 | BitPuffin | I wonder if nimrod is powerful enough to make something as flexible as gl3n, I might give it a shot |
11:40:36 | BitPuffin | As my first open source contribution to the nimrod community :) |
11:42:46 | * | DAddYE joined #nimrod |
11:49:43 | * | DAddYE quit (Ping timeout: 276 seconds) |
11:58:18 | BitPuffin | Araq_: So basically I want to be able to swizzle elements around like you can in glsl with my library, can template aliases help me achieve that? |
11:59:19 | BitPuffin | Basically so v.zyx give a new vector with the elements arranged in that order |
11:59:41 | BitPuffin | (https://en.wikipedia.org/wiki/Swizzling_%28computer_graphics%29) |
11:59:53 | Araq_ | well for now you need a macro for that like macro `@`(x, y: expr): expr {.immediate.} |
12:00:00 | Araq_ | v@zyx |
12:00:10 | Araq_ | and the macro can analyse the second part |
12:00:29 | Araq_ | overloading of '.' for swizzling is a planned features ... yeah I know I know ... |
12:01:21 | BitPuffin | Hmm |
12:01:22 | BitPuffin | well |
12:01:32 | BitPuffin | I guess something like @ will have to do in the mean time then |
12:02:07 | BitPuffin | and when I can overload . for the same functionality I'll just deprecate @ |
12:04:00 | Araq_ | better use @. or something |
12:04:07 | Araq_ | @ is already in use ... |
12:05:06 | BitPuffin | what is @ used for? |
12:05:41 | BitPuffin | Araq_: I guess maybe postpone the feature until it's added |
12:05:58 | Araq_ | BitPuffin: that's fine |
12:06:10 | Araq_ | @ is used for @[1,2,3] sequence construction |
12:06:20 | Araq_ | normally overloading would ensure it works |
12:06:25 | BitPuffin | hmm |
12:06:34 | Araq_ | but overloading doesn't work for immediate templates/macros |
12:06:49 | Araq_ | and you need the immediate since the 2nd part is an undeclared identifier |
12:07:11 | BitPuffin | https://github.com/BitPuffin/linagl this is where the magic will happen |
12:08:23 | BitPuffin | Araq_: so what's the solution? just wait? |
12:09:36 | Araq_ | I'd support v["abc"] now and later make v.abc an alias |
12:10:49 | BitPuffin | hmm |
12:10:52 | BitPuffin | not a bad idea |
12:19:49 | * | EXetoC quit (Read error: Connection reset by peer) |
12:21:27 | * | EXetoC joined #nimrod |
12:43:05 | * | gradha joined #nimrod |
12:44:09 | * | gradha quit (Client Quit) |
12:54:47 | * | Trix[a]r_za is now known as Trixar_za |
13:01:41 | BitPuffin | FLOAT_LIT ::= digit (['_'] digit)* ('.' (['_'] digit)* [exponent] |exponent) |
13:01:47 | BitPuffin | [exponent] |exponent) |
13:01:50 | BitPuffin | wut |
13:06:30 | Araq_ | well .0 is invalid but apart from that it's the conventional 0.4e-2 stuff |
13:09:49 | * | Araq_ quit (Quit: ChatZilla 0.9.90 [Firefox 22.0/20130618035212]) |
14:51:45 | * | Trixar_za is now known as Trix[a]r_za |
15:07:59 | reactormonk | EXetoC, that's possible, WC3 doesn't have too many original texts ;-) |
15:57:56 | * | Mat2 joined #nimrod |
15:57:59 | Mat2 | hello |
16:03:54 | reactormonk | Mat2, sup |
16:04:07 | Mat2 | hi |
16:05:23 | Mat2 | I have a pointer into allocated memory, how I access that memory location byte and word size ? |
16:06:47 | Mat2 | ^sized |
16:12:41 | Mat2 | I think needing to write some templates for this but not sure |
16:13:34 | * | alexandrus joined #nimrod |
16:20:20 | reactormonk | Mat2, what are you working on? |
16:21:39 | reactormonk | Mat2, that's how I do it on an arduino: http://sprunge.us/DPWV - not sure if it's the official sanctioned method |
16:23:31 | Mat2 | I'm working on an AOT compiler as IL layer for my current project |
16:24:31 | reactormonk | IL layer? |
16:25:25 | Mat2 | immediate language = cpu abstracted low-level interface for cpu's |
16:26:06 | * | Mat2 tend to write circulary in english somehow |
16:34:47 | Mat2 | thanks for the example, I'm lost in unneeded type conversation this time |
16:41:49 | * | Sergio965 joined #nimrod |
16:47:59 | * | DAddYE joined #nimrod |
16:51:01 | * | DAddYE quit (Remote host closed the connection) |
16:51:37 | * | DAddYE joined #nimrod |
17:14:21 | Mat2 | ciao |
17:14:28 | * | Mat2 quit (Quit: Verlassend) |
18:34:03 | * | f0wl joined #nimrod |
18:34:05 | * | f0wl quit (Changing host) |
18:34:05 | * | f0wl joined #nimrod |
18:34:05 | * | f0wl quit (Changing host) |
18:34:05 | * | f0wl joined #nimrod |
18:39:50 | f0wl | gradha: i added you as a collaborator for nake, plz merge your changes in if they work, thanks |
18:41:29 | f0wl | oh hes not here |
18:41:35 | f0wl | hopefully he'll check the logs |
19:22:46 | * | f0wl quit (Quit: Page closed) |
19:24:44 | * | Mat2 joined #nimrod |
19:24:49 | Mat2 | hi |
19:25:02 | dom96 | hello |
19:26:52 | Mat2 | Araq remarking yesterday there exist a module for handling pointers, where can I find it ? |
19:31:19 | dom96 | I think he said it was something fowl wrote? |
19:31:24 | dom96 | check fowlmouth on github |
19:31:37 | Mat2 | thanks |
19:31:43 | * | fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org) |
19:36:25 | * | Sergio965 quit (Ping timeout: 276 seconds) |
19:43:41 | * | fowl joined #nimrod |
19:47:19 | Mat2 | by the way: what's the reason for explicit casting pointers ? |
19:47:30 | Araq | memory safety? |
19:48:12 | Mat2 | hello |
19:48:51 | Mat2 | oh, I thought pointers are unsave in nimrod |
19:49:23 | Araq | true but that doesn't mean they are completely type unsafe |
19:51:48 | Mat2 | I found an object referencing syntax readable: <pointer>.value for assignement and <pointer>.inc|dec for arithmetic. Just an idea. Should be possible with nimrod |
19:52:27 | Mat2 | well, at current I'm just learning handling the syntax |
20:01:19 | Mat2 | I likely would compile machine.code into a sequence, because this way the GB memory managment should be of use. I just do not know if it would be possible to get the pointer to its start-address |
20:02:38 | Mat2 | and call from it. The allocated memory must be garanted continuous for this |
20:12:27 | Araq | Mat2: this is all possible and easy |
20:12:39 | Araq | var pc = addr(instructions[0]) |
20:13:15 | Araq | once you built up the instructions it doesn't reallocate and then taking the address of the first element is fine |
20:13:49 | Mat2 | nice, thanks |
20:14:15 | Araq | and I have a seq[TInstr] in my VM too ;-) |
20:16:51 | Mat2 | does your VM using threaded code or it is a JIT compiler ? |
20:17:28 | * | DAddYE_ joined #nimrod |
20:17:47 | * | DAddYE quit (Read error: Connection reset by peer) |
20:18:00 | Araq | simple threaded code |
20:18:21 | Araq | well ... for now it's not even threaded but while+case (switch) |
20:20:00 | * | Sergio965 joined #nimrod |
20:20:23 | * | Amrykid quit (Ping timeout: 240 seconds) |
20:21:30 | * | Amrykid joined #nimrod |
20:28:32 | Mat2 | then your coding some kind of bytecode interpreter. Do you know a technique called dynamic-token threading for gain performance ? |
20:31:24 | Araq | well yes, it's bytecode; dunno about dynamic-token threading, I think I know about all the threading possibilities but can't remember the names :P |
20:35:17 | Mat2 | dynmaic-.token threading compile so-called superinstructions before execution though concatentating a fixed set of jump-locations and execute them though direct-threading dispatch |
20:36:26 | Mat2 | because dispatching bytecodes is more expensive than a direct-threading dispatch the overhead for compiling to DTC is irrelevant |
20:37:42 | Mat2 | this has alos advantages for short loops and tail-calls |
20:37:50 | Araq | direct-threading is also a PITA to debug; been there done that |
20:38:06 | Araq | so I'm back to good old (register based) bytecode |
20:38:24 | Mat2 | that's true, it can be hard to find out bugs |
20:45:11 | DAddYE_ | ciao Mat2 |
20:47:42 | Mat2 | ciao DAddYE_ |
20:49:48 | DAddYE_ | Mat2: are u Italian? |
20:49:52 | * | DAddYE_ is now known as DAddYE |
20:55:06 | * | Associat0r quit (Quit: Associat0r) |
20:55:06 | * | EXetoC quit (Read error: Connection reset by peer) |
20:58:51 | Mat2 | no, sorry |
20:59:34 | Mat2 | but growing in a multilingual family |
21:00:09 | Araq | lol really? "caio" is very common in German |
21:00:28 | Araq | though I would spell it "Tschau" |
21:01:10 | Mat2 | would you say "Tschau" as greeting ? |
21:01:14 | Mat2 | I'm not |
21:01:46 | Araq | no ... I thought it's meant as "bye" |
21:02:46 | Mat2 | you can use 'ciao' for both in italiano (though not so common dependent of age and so on) |
21:03:20 | Araq | yeah I know |
21:03:34 | Araq | didn't think of it because it's always "bye" in german |
21:06:09 | Mat2 | sometimes I head also 'ahoi' (that's Czech for hello) |
21:06:34 | Mat2 | languages flow... |
21:21:32 | Mat2 | get some sleep, ciao |
21:21:44 | * | Mat2 quit (Quit: Verlassend) |
21:21:45 | Araq | tschau |
21:34:43 | * | Associat0r joined #nimrod |
21:37:27 | * | Associat0r quit (Client Quit) |
21:41:23 | * | gradha joined #nimrod |
21:50:33 | gradha | fowl: ok, PR merged, though I have no idea if it works outside of macosx, we will soon find out |
21:51:37 | gradha | no idea either why you want me as admin |
22:00:21 | * | zahary quit (Read error: Connection reset by peer) |
22:00:33 | * | zahary joined #nimrod |
22:29:03 | * | OrionPK joined #nimrod |
22:33:02 | gradha | maybe I should install nimrod under wine |
22:35:31 | * | alexandrus quit () |
22:55:53 | * | Sergio965 quit (Ping timeout: 240 seconds) |
22:59:22 | * | f0wl joined #nimrod |
22:59:42 | * | f0wl writes case-insensitive code |
22:59:50 | f0wl | js |
23:00:01 | Araq | what's that? |
23:00:04 | Araq | I can't read it |
23:00:11 | Araq | oh you mean JS |
23:00:15 | f0wl | no |
23:00:20 | f0wl | js = just saying |
23:00:26 | gradha | it's Js |
23:00:33 | Araq | JavaScript? |
23:00:38 | f0wl | ..no |
23:00:40 | f0wl | nerds |
23:00:45 | gradha | jS |
23:01:14 | f0wl | i like the API to be nicelyCased but internally will call nicelycased or nicely_cased just because i can |
23:01:37 | Araq | that's bad of you f0wl and you're giving Nimrod a bad name |
23:02:03 | f0wl | well i've been called a bit of a maverick in my day |
23:02:13 | Araq | more confusing however is to have both nicelycased and nicely_cased and they mean different things |
23:02:38 | f0wl | i do wish i could use more underscores |
23:02:53 | f0wl | _here, here_ and he__re |
23:03:07 | Araq | yeah c99's _Bool is cool |
23:05:37 | gradha | maybe we should debate on vim: is it an IDE? what makes an IDE an IDE? |
23:05:58 | Araq | IDE = bloated crap with features I don't use |
23:06:12 | Araq | editor = cool with features I do use |
23:06:29 | gradha | you are too quick answering, I was going to look up a reference to the chewbacca defense |
23:06:35 | OrionPK | ^ this is why nimrod doesnt have good tooling :P |
23:07:16 | Araq | c2nim is the best header file translator that I've ever seen |
23:07:24 | Araq | of course I'm biased |
23:07:47 | Araq | but nimrod has good tooling |
23:08:06 | gradha | wait, I need popcorn for this one |
23:08:10 | OrionPK | having a few good tools (in my mind) does not make good tooling |
23:08:24 | Araq | interesting |
23:08:26 | OrionPK | I'm talking about support for popular IDEs, mainly |
23:08:43 | Araq | but we just agreed IDEs suck by definition |
23:08:48 | OrionPK | lol |
23:09:07 | gradha | meh, only found chocolate |
23:09:45 | gradha | if you accept vim/emacs as popular IDEs, then nimrod supports them, therefore excellent tooling support |
23:10:03 | OrionPK | with source code level debugging |
23:10:13 | OrionPK | integrated w/ the IDE |
23:10:43 | Araq | well we're all waiting for your GDB patches, OrionPK |
23:11:02 | OrionPK | :p |
23:13:09 | gradha | I wonder when dom96 will implement debugger support in Aporia |
23:13:30 | OrionPK | that would be kind of the holy grail.. |
23:13:56 | OrionPK | then maybe re-write aporia with aporia |
23:13:58 | OrionPK | :P |
23:14:17 | Araq | dom96 writes Aporia in Aporia ... |
23:14:22 | OrionPK | does he? |
23:14:25 | Araq | yes |
23:15:01 | OrionPK | at least we know aporia handles long nim well |
23:15:17 | OrionPK | fuck im a little bitch today, must have low blood sugar ;) |
23:15:22 | Araq | btw I use it all the time too |
23:15:46 | OrionPK | cool |
23:16:07 | * | f0wl quit (Ping timeout: 250 seconds) |
23:17:12 | gradha | haven't yet looked at endb, all I've written so far can be debugged with echo |
23:17:35 | Araq | I compile Nimrod code with a compiler written in Nimrod, using an editor written in Nimrod, pushing it to nimbuild which is written in Nimrod and then visit the Nimrod forum which is written in Nimrod |
23:18:14 | gradha | you even debug Nimrod in Nimrod |
23:19:52 | Araq | we need this OS written in nimrod though |
23:21:37 | gradha | didn't dom96 write one instead of implementing the Aporia debugger? |
23:21:58 | OrionPK | he could only write 1? |
23:22:11 | Araq | yeah but the OS can't do anything |
23:22:26 | gradha | so like HURD? |
23:23:28 | * | DAddYE quit () |
23:23:54 | * | DAddYE joined #nimrod |
23:23:56 | Araq | I think it's better than Hurd since it is a pico kernel |
23:23:57 | * | DAddYE left #nimrod (#nimrod) |
23:25:59 | * | Trix[a]r_za is now known as Trixar_za |
23:27:23 | gradha | I wonder if DAddYE will follow gour's path |
23:28:10 | gradha | ow, Nimrod is sliding down positions, now it's 101 on github, long after Delphi 40 |
23:28:46 | gradha | haha, we are just behind the bro programming language, bro |
23:36:09 | OrionPK | brogramming? |
23:36:35 | gradha | it's something about networks, http://www.bro.org/ |
23:37:01 | gradha | the logo was donated by the NSA |
23:38:36 | gradha | hoho, and now #521 is reopened again... who knows why |
23:40:17 | gradha | ah, I guess my brief message could be misunderstood as coming from a sarcastic jerk, even though it had the best of intentions |
23:43:45 | gradha | Araq: I'm not sure an iterator should be made constant inside the iteration body, maybe there is a use for mutating the contents while iterating over them |
23:44:12 | gradha | I just found this because I was replacing strings with others which didn't have the same length, but for same length strings it would be ok |
23:44:42 | Araq | maybe but most iterators are not written with "change under the hood" in mind |
23:45:38 | gradha | it's hard to create a case where it would be useful |
23:46:10 | Araq | I use a while loop when the underlying data changes |
23:48:18 | gradha | still don't know how you would prevent https://github.com/gradha/normalize_filenames/blob/master/normalize_filenames.nim#L74 |
23:48:45 | gradha | the problem is with dest being modified, it would be odd that dest is read only inside the loop |
23:50:29 | Araq | it's not odd at all, good type systems are flow sensitive these days |
23:50:41 | Araq | also it would only produce a warning |
23:54:30 | gradha | by the way, if somebody feels like ranting and not having enough with case, just go to http://sealedabstract.com/code/nsa-proof-your-e-mail-in-2-hours/ and join the party |