00:09:48 | * | xenagi joined #nimrod |
00:10:41 | * | io2 quit () |
00:15:39 | BitPuffin | horrible |
00:16:23 | xenagi | terrible |
00:16:46 | Araq | terrific |
00:18:05 | xenagi | I'm starting an online Crypto course next week. I'm gonna do it with Nimrod! |
00:18:32 | xenagi | I'm even tempted to try to build a basic crypto library, but (correct) crypto is hard, so I'm a little hesitant lol |
00:27:42 | NimBot | Araq/Nimrod devel f191f36 Araq [+0 ±5 -0]: added #903 to the test suite |
00:27:42 | NimBot | Araq/Nimrod devel 205a76d Araq [+0 ±3 -0]: implemented 'borrow dot' feature for distinct types |
00:29:46 | Araq | dom96: I hardly tested it but it should work |
00:29:59 | Araq | good night |
00:30:22 | Araq | syntax is: Bar {.borrow: `.`.} = distinct Foo |
00:35:56 | BitPuffin | xenagi: yeah it's a lot of responsibility to have if someone uses your crypto lib |
00:36:25 | BitPuffin | xenagi: it's one of the reasons (othor than having better things to do) that scrypt.nim requires libtarsnap |
00:37:02 | xenagi | yeah we'll see how it goes. |
00:53:34 | * | DAddYE quit (Remote host closed the connection) |
00:54:10 | * | DAddYE joined #nimrod |
00:57:59 | * | darkf_ joined #nimrod |
00:58:43 | * | DAddYE quit (Ping timeout: 264 seconds) |
01:01:28 | * | darkf quit (Ping timeout: 265 seconds) |
01:34:39 | * | darkf_ is now known as darkf |
01:39:22 | BitPuffin | dom96: filwit is playing cs |
01:39:31 | BitPuffin | you should ask him to come back |
01:47:02 | * | q66 quit (Quit: Leaving) |
02:05:29 | * | psquid quit (Ping timeout: 268 seconds) |
02:20:52 | * | psquid joined #nimrod |
02:41:53 | * | Demos joined #nimrod |
02:42:17 | Demos | I am getting a malformed AST error in os.nim |
02:42:26 | Demos | on a rethrow it looks like |
02:46:37 | * | BitPuffin quit (Ping timeout: 240 seconds) |
03:12:04 | fowl | Demos, ? |
03:12:12 | Demos | hm |
03:13:14 | fowl | how to reproduce? |
03:13:28 | Demos | try and use the unittest module, that is what I was doing |
03:13:58 | * | psquid quit (Ping timeout: 240 seconds) |
03:14:20 | Demos | I was on RHEL 6.5 |
03:14:39 | * | psquid joined #nimrod |
03:14:47 | fowl | damn im 11 cents short for cigarettes >:/ |
03:15:43 | Demos | hm I can not build on windows either |
03:19:26 | fowl | whats the define for os x |
03:19:33 | fowl | MacOSX? |
03:19:40 | Demos | I think so yeah |
03:23:15 | Demos | the code that seemed to produce the malformed AST was in a linux only when section I think |
03:23:24 | Demos | pissed that I can not build :D |
03:58:49 | * | xenagi quit (Quit: Leaving) |
04:08:57 | * | gverilla quit (Ping timeout: 240 seconds) |
04:23:53 | * | gverilla joined #nimrod |
04:26:22 | * | Demos quit (Read error: Connection reset by peer) |
04:53:13 | * | brson quit (Ping timeout: 268 seconds) |
05:04:42 | * | DAddYE joined #nimrod |
05:21:37 | * | brson joined #nimrod |
06:19:51 | * | isenmann joined #nimrod |
06:23:02 | * | DAddYE quit (Remote host closed the connection) |
06:23:29 | * | DAddYE joined #nimrod |
06:27:40 | * | DAddYE quit (Ping timeout: 246 seconds) |
06:32:28 | * | Mordecai joined #nimrod |
06:32:47 | * | Mordecai is now known as Guest94141 |
06:32:56 | * | psquid quit (Ping timeout: 246 seconds) |
06:33:17 | * | AndChat-320025 quit (Ping timeout: 240 seconds) |
07:02:29 | fowl | b |
07:02:55 | * | Guest94141 quit (Ping timeout: 264 seconds) |
07:03:15 | * | Guest94141 joined #nimrod |
07:09:59 | * | Matthias247 joined #nimrod |
07:11:08 | * | Matthias247 quit (Client Quit) |
07:16:50 | * | Mat3 joined #nimrod |
07:16:56 | Mat3 | hello |
07:23:59 | * | DAddYE joined #nimrod |
07:26:37 | * | brson quit (Ping timeout: 240 seconds) |
07:28:38 | * | DAddYE quit (Ping timeout: 265 seconds) |
07:48:43 | * | Guest94141 quit (Quit: travel) |
07:51:59 | * | io2 joined #nimrod |
08:17:54 | Araq | hi Mat3 |
08:51:43 | Mat3 | hi Araq |
08:56:21 | Mat3 | ciao |
08:56:24 | * | Mat3 quit (Quit: Verlassend) |
09:18:35 | * | io2 quit () |
09:19:48 | * | io2 joined #nimrod |
09:30:29 | * | easy_muffin joined #nimrod |
09:33:59 | dom96 | hi |
09:36:01 | io2 | hi dom96 :) |
09:36:15 | dom96 | hey io2 |
09:36:33 | io2 | how is it going, still pissed over the oculus buyout? |
09:37:12 | dom96 | wouldn't say pissed, more like disappointed. |
09:38:33 | io2 | This is a common theme with developed companies who have enough cash to buy out developing companies, especially if they see opportunities in extending their product domain. |
09:39:26 | io2 | The side effect of such corporate actions is that it becomes less and less likely that true innovation comes about on its own two feet and used for purposes other than the ones of the buying company. |
09:40:05 | NimBot | Araq/Nimrod devel e674d46 Jimmie Houchin [+0 ±1 -0]: fixed parens around getSysType arguments |
09:40:05 | NimBot | Araq/Nimrod devel 2b6ce5e zah [+0 ±1 -0]: Merge pull request #1036 from jlhouchin/devel... 2 more lines |
09:54:24 | NimBot | nimrod-code/nimbuild master 8c069d7 Dominik Picheta [+0 ±1 -0]: Website: fix now succeed/fail numbers. |
09:56:28 | zahary_ | FYI: http://robert.ocallahan.org/2014/03/introducing-rr.html mozilla are releasing a trace-recording debugger |
10:13:54 | * | Kooda quit (Quit: leaving) |
10:23:19 | * | BitPuffin joined #nimrod |
10:29:25 | NimBot | Araq/Nimrod devel 86bfff6 Dominik Picheta [+0 ±4 -0]: Move asyncdispatch tests to asyncnet. |
10:34:00 | * | easy_muffin quit () |
10:40:07 | * | reloc0 quit (Ping timeout: 264 seconds) |
10:43:24 | * | reloc0 joined #nimrod |
10:58:13 | * | easy_muffin joined #nimrod |
11:18:21 | * | reloc0 quit (Read error: Operation timed out) |
11:29:46 | * | reloc0 joined #nimrod |
11:47:55 | * | reloc0 quit (Ping timeout: 264 seconds) |
11:50:22 | * | reloc0 joined #nimrod |
11:56:56 | * | faassen joined #nimrod |
12:01:38 | * | reloc0 quit (Ping timeout: 240 seconds) |
12:04:52 | * | armin1 joined #nimrod |
12:05:04 | * | armin1 is now known as reloc0 |
12:35:54 | * | Kooda joined #nimrod |
12:40:40 | dom96 | Araq: Should I make it a convention to add an 'async' suffix to each async proc's name? |
12:40:56 | Araq | dunno |
12:41:02 | Araq | if it's not excessive |
12:41:08 | dom96 | I'm thinking about how the interface will look for httpclient. |
12:41:26 | dom96 | Actually. Just got a better idea. |
12:41:40 | Araq | maybe async should be the default these days and we need a Sync suffix |
12:41:46 | dom96 | I can create an HttpClient and AsyncHttpClient type |
12:42:09 | zahary_ | you can use module qualifiers in the unlikely scenario that you use both sync and async |
12:42:48 | dom96 | zahary_: That would require each module to be split into a sync and async version. |
12:43:12 | zahary_ | ah, I thought this was the case already |
12:43:38 | dom96 | It is. The question is should it be that way. |
12:44:01 | dom96 | Nothing implements the new async stuff yet except the net/asyncnet modules. |
12:44:30 | dom96 | well, the 'net' module is the sync version of asyncnet is what I mean. |
12:45:21 | zahary_ | if you async stuff, you are very likely to have a hard requirement to not block the single (or a single per core) worker thread - so the sync stuff should be used with great caution |
12:45:50 | dom96 | Yes, I think the effect system can help us with that. |
12:45:50 | zahary_ | from this point of view it makes certain sense to me for them to be separated |
12:46:37 | dom96 | I'm not sure if it would be a good idea to have an httpclient and asynchttpclient module though. |
12:46:56 | zahary_ | async/httpclient (not that this is much different) |
12:47:20 | Araq | uh oh, are we starting to use subdirs now? |
12:49:21 | dom96 | Actually the basic sync and async split is currently done using both of the methods I mentioned: |
12:49:30 | dom96 | It's split up into separate modules. |
12:49:39 | dom96 | (Asyncnet/net) |
12:49:46 | dom96 | and separate types (PAsyncSocket/PSocket) |
12:51:01 | dom96 | Do we want a split like this for all modules which use sockets? |
12:53:59 | zahary_ | my vote would go for split modules, but I don't have such a strong feelings about it |
12:54:53 | zahary_ | in jester, do you support both modes already? |
12:55:02 | dom96 | Perhaps we should not enforce this rule and do whatever feels right for each module. |
12:55:03 | zahary_ | how does the code feel like? |
12:55:15 | dom96 | Yes. But using the old asyncio |
12:55:53 | dom96 | The code works well I think. |
12:56:04 | dom96 | The new async may be harder to implement though. |
12:57:18 | dom96 | Araq: Thoughts? |
12:57:47 | zahary_ | the old asyncio uses the same scheme? same proc names, different types? considering that most of these procs also already take parameters with different types, having the same name is even smaller problem |
12:58:17 | dom96 | zahary_: yeah. |
12:58:55 | zahary_ | so go for it, overloading for the win |
12:59:42 | dom96 | The current way that httpclient is designed (no HttpClient type which keeps state) would prove problematic. But that design is bad anyway. I wonder if there are any use cases where that design would work though because in that case the sync and async procs would either need different names or to be split into different modules. |
13:02:36 | dom96 | zahary_: According to skype it's your birthday. So happy birthday :) |
13:03:25 | zahary_ | thanks :) |
13:06:20 | * | jbe_ joined #nimrod |
13:15:27 | * | jbe_ quit (Remote host closed the connection) |
13:44:07 | * | EXetoC quit (Quit: WeeChat 0.4.3) |
13:55:13 | * | Skrylar joined #nimrod |
13:55:27 | Skrylar | MeeeEeeEeeep. |
14:00:13 | * | EXetoC joined #nimrod |
14:00:15 | * | darkf quit (Quit: Leaving) |
14:14:42 | * | easy_muffin quit () |
14:17:13 | * | Demos joined #nimrod |
14:18:26 | EXetoC | apparently 'it' for mapIt cannot be used outside the module where mapIt is defined |
14:43:58 | Skrylar | EXetoC: did it accidentally get marked private? |
14:50:22 | EXetoC | Skrylar: no it's a gensym'ed var, but the problem lies elsewhere |
15:03:20 | * | Endy joined #nimrod |
15:06:30 | * | Ransel quit (Quit: Connection closed for inactivity) |
15:18:54 | * | vendethiel quit (Read error: Connection reset by peer) |
15:19:23 | * | easy_muffin joined #nimrod |
15:21:07 | * | vendethiel joined #nimrod |
15:33:22 | Skrylar | EXetoC: hrm.. i haven't seen a gensym in macros |
15:35:55 | EXetoC | oops, *inject |
15:36:26 | Skrylar | :P |
15:36:48 | EXetoC | but that templates contains gensym too |
15:36:53 | EXetoC | -s |
15:38:32 | Skrylar | I have 90% of a macro now that deals with Wx-style event maps :> |
15:41:35 | Skrylar | I'm not sure yet if it was worth two days of development time, but it sits over an SDL-ish event queue and lets you list handlers with the "On(Type, ID, doStuff)" format |
15:46:14 | Demos | why not just have a bunch-o-function pointers |
15:46:32 | Skrylar | Demos: function pointers are fungly |
15:46:41 | Demos | not in nimrod |
15:46:59 | Skrylar | you still have to differentiate between proc(self, data) and proc(data) |
15:48:08 | Demos | put self in a closure |
15:48:24 | Skrylar | maybe |
15:48:34 | Skrylar | when i talked about a model like that araq said he hated callbacks though |
15:49:09 | Demos | granted your way probably avoids indirect calls at the expense of being unable to change the mappings at compile time. And the whole point of an event loop is to do callbackish things |
15:49:22 | Skrylar | you mean runtime? |
15:49:28 | Demos | sorry I do indeed |
15:49:34 | Skrylar | well, i have 3 prototypes here |
15:49:46 | Skrylar | i wanted to make sure i choose the best one since my gui stuff has to stick with whichever one i go with |
15:50:40 | Demos | well I gotta go to class |
15:50:43 | Skrylar | i have signals & slots, an event map, and a C-style event queue with some macro on top |
15:50:46 | Skrylar | Demos: be safe |
15:51:34 | Demos | they are all fundimentially the same construct I think. Not sure what the hell an event map is, I will get on IRC in lecture and you can tell me |
15:51:38 | * | Demos quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
15:54:06 | EXetoC | Skrylar: what particular aspect of it requires a macro? |
15:54:43 | EXetoC | assuming that it's exposed to users |
15:55:58 | Skrylar | EXetoC: it makes it look nicer mostly |
15:57:31 | Skrylar | EXetoC: i have one macro that assigns a unique ID to event objects (avoids the "i have to pick an available ID which one do i use" problem) and the handler macro just lets the code read "on this, and ID foo, do this code" instead of case blah.uid of blahtype.getuid: ..." |
15:58:12 | Skrylar | mainly to mimic the way event tables read in wxWidgets, which a lot of people seem comfortable with |
16:02:49 | EXetoC | I guess I'll see it in action soon |
16:07:32 | * | Demos joined #nimrod |
16:07:44 | Skrylar | yeah i could probably gist it later |
16:13:30 | * | DAddYE joined #nimrod |
16:14:49 | Demos | so event maps are just like listing out all the events like e --> proc right? |
16:14:56 | * | DAddYE quit (Remote host closed the connection) |
16:15:23 | * | DAddYE joined #nimrod |
16:15:39 | Skrylar | Demos: pretty much; Wx uses them in C++, they're some #defines that go over other stuff so you can say WX_COMMANDEVENT(ID_SAVE, ThisFunction) |
16:16:20 | Skrylar | they use an array so you can attach listeners at runtime though, and afaict they're immediately run instead of queued |
16:16:45 | Demos | seems to me that there are some invertable code transforms between these things :D. |
16:17:31 | * | gverilla quit (Ping timeout: 252 seconds) |
16:17:32 | Demos | fwiw I was working on events for a game engine and it turned into an unholy mess. I eventually figured out that you only really need one event on each thing. |
16:18:09 | Skrylar | yeah event code can be hard to keep clean :( |
16:18:53 | Skrylar | i know in wx they tend to use the ID for things like buttons; so clicking a button/menu/toolbat will all be set to #47 and so they generate a command event on ID 47 |
16:19:47 | Demos | one option is to have multiple event loops, so like you get a call every time ANY event comes in and you can do a switch. |
16:19:50 | * | DAddYE quit (Ping timeout: 265 seconds) |
16:20:07 | Demos | but then there are all kinds of dependencies you need to worry about |
16:20:32 | Demos | I am not a huge fan of having events bubble across trees but it seems to work OK for the DOM |
16:23:31 | Skrylar | i will say that i don't know of too many times i actually needed dynamic mapping for events |
16:25:58 | Demos | true. But I doubt benifit of doing it staticly. You get inlineing and maybe better constat folding, probably only in cases where it does not matter. |
16:26:09 | Demos | and each core event loop will be different code |
16:28:04 | * | Trimsty joined #nimrod |
16:31:40 | Skrylar | i wonder how some of the old amiga guis didit |
16:31:41 | dom96 | Damn. So close. :( |
16:31:49 | dom96 | Got async httpclient working |
16:31:56 | dom96 | Tried multiple requests and the GC crashes D: |
16:33:50 | Skrylar | dom96: you should track how many times the garbage collector has to get a new truck :D |
16:34:16 | dom96 | a new truck? what? |
16:34:21 | Skrylar | its a pun |
16:34:23 | Skrylar | garbage collector |
16:34:34 | Skrylar | garbage men drive trucks. the garbage collector crashed |
16:34:53 | dom96 | Oh... right... lol |
16:35:23 | Skrylar | http://wiki.amigaos.net/images/9/98/LibFig2-1.png what is it with the FOSS fonts and their ugligness in rendering :( |
16:35:44 | Skrylar | it looks like theres always this weird haze around the letters |
16:35:54 | Demos | ubuntu does fonts really well |
16:36:36 | Demos | honestly for GUIs it may be worth going full-on dynamic and saying fuckit to speed. Apple gets by with objective-c and WPF "works" for most definitions of works |
16:36:44 | Demos | or as dynamic as reasonable |
16:39:41 | EXetoC | no way. metaprogramming ftw :> |
16:40:38 | * | Endy quit (Ping timeout: 240 seconds) |
16:41:48 | NimBot | Araq/Nimrod devel 7e35518 Dominik Picheta [+0 ±4 -0]: Implemented async for httpclient. |
16:42:23 | Skrylar | having used a few WPF programs, that is abysmal |
16:43:06 | Skrylar | i'm pretty sure Articy:Draft and UVOutliner are implemented using WPF, and both of those when I tried them had absolute dog performance |
16:43:08 | Demos | yeah, gotta keep it reasonable. But overhead in dispatching events like click and /maybe/ mouse move is OK |
16:43:17 | Demos | VisualStudio is as well |
16:43:38 | Skrylar | newer sharpdevelops are i think, i didn' have as much of a problem with those but they use unreasonable amounts of ram |
16:43:45 | Demos | WPF does this thing where it just doubles your timer frequency for no good reason |
16:43:57 | Demos | I thought sharpdev was like winforums |
16:44:15 | Skrylar | i'm pretty sure they changed it in newer versions |
16:44:18 | Demos | mono will never get WPF because it is so complex that reimplementing it is totally impossible, probably even for microsoft |
16:44:41 | Skrylar | and the monodevelop derps decided to rewrite an old sharpdevelop to gtk# instead of making winforms work |
16:45:09 | Skrylar | now the compatability is nigh non-existent *and* people still don't trust it \o/ yay for making mono worthless |
16:45:46 | Demos | I tried to use mono on OSX once... it went badly |
16:46:06 | Demos | also their GC sucks, apperently it has gotten better but unity still uses the old one |
16:46:21 | Skrylar | unity does not impress me :/ |
16:46:33 | Demos | compared to others it is pretty good |
16:46:36 | Skrylar | it was neat at first, but in recent years its really only a set of bindings for commercial SDKs |
16:46:46 | Demos | yeah, that bothers me as well |
16:46:59 | Skrylar | and requires web activation to compile.. how about no |
16:47:08 | Demos | did you watch that "technical" overview of watch_dog's engine? |
16:47:40 | dom96 | ooh, link? |
16:47:41 | Skrylar | i haven't heard of it |
16:49:26 | Demos | it was essentially like "we do everything with flowgraphs" then it shows something that looks like the new labview flavor of ramen noodles followed by a bunch of people talking about how "easy" and "productive" it is |
16:49:37 | Demos | http://www.rockpapershotgun.com/2014/03/21/the-divisions-engine-trailer-snowdrop/ |
16:49:44 | Demos | sorry it is the engine for the division |
16:49:54 | Skrylar | i actually like noodle/pin graphs for some things |
16:50:24 | Demos | I think you need to hugely limit them for em to be useful. |
16:50:49 | Skrylar | that said, "oh yay yet another waste of effort engine" |
16:51:10 | Skrylar | "OUR copy and paste of siggraph whitepaper algorithms is better!" |
16:51:25 | Demos | hehe, so much truth there |
16:51:41 | Skrylar | I get really bored with a lot of engines because they don't do what I want |
16:51:56 | Skrylar | they go on about "SOURCE IS BEST EVER" and then you throw a big level at it, it chokes and dies |
16:52:15 | Demos | source is pretty old, and HAMMER (not the filesystem) is pretty sad |
16:52:21 | Skrylar | Elder Scrolls Construction Kit in the morrowind days is progress. |
16:52:34 | Skrylar | Yet another Quake-BSP loader is not progress, even with ambient occlusion shading. |
16:53:04 | Demos | bethsofts tools are actually pretty good come to think of it... although they have a crapton of technical problems |
16:53:16 | * | DAddYE joined #nimrod |
16:53:31 | Skrylar | bethsoft really needs to just use a carmack engine and make tools for it |
16:53:39 | Demos | I hear Idtech5 is good but the mod tools take 3.5 hours to open |
16:53:53 | Demos | OK 2 hours, but still |
16:54:19 | Skrylar | thats why i get really stressful when people propose some highly inefficient solution and say it should be "fast enough" |
16:54:42 | Demos | well idtech is really fast at runtime |
16:54:42 | Skrylar | like in music daws, apparently Cubase is a dog |
16:55:16 | Skrylar | a huge team of people and all that millions and they can't make a program that opens to save its life, yet 3 guys (one ex-winamp developer) can implement most of the features that opens in seconds |
16:55:21 | Demos | but id was like "why not buy 600 xenons and use em to compress 500000x500000 textures |
16:56:04 | Skrylar | oh, the megatextures thing |
16:56:40 | Demos | yeah |
16:56:42 | Demos | it actually works |
16:56:47 | Skrylar | i like reading about how crysis or silent storm or soldner has these super advanced destructible terrain engines |
16:56:59 | Skrylar | but if you ask someone why we can't have a proper xcom, they go "well its just impossible" |
16:57:06 | Demos | crysis is just a bunch of walls hooked together with physx |
16:57:26 | Skrylar | destructible 3d isn't new |
16:57:35 | Skrylar | silent storm is from like, '04 and runs on most computers |
16:57:53 | Skrylar | they actually have things set up so you can shoot out support beams and crash sniper towers on the ground, or blow holes in walls to use as entry points. Non-scripted. |
16:58:01 | Skrylar | So basically, how X-Com ground combat worked |
16:58:19 | Skrylar | But you give a more experiend team an exponent more of money, and they assure you that destructible terrain can't make it because of "technical reasons" |
16:58:27 | Skrylar | a.k.a. they have no real skill |
17:00:25 | Skrylar | where noodlegraphs become really useful isn't so much programming as asset pipelines |
17:01:35 | * | Demos quit (Ping timeout: 252 seconds) |
17:10:46 | * | QuickQuestion joined #nimrod |
17:11:54 | * | Demos joined #nimrod |
17:12:24 | * | QuickQuestion quit (Client Quit) |
17:13:38 | Demos | Skrylar: so like defineing how to munge assets? |
17:15:39 | Demos | and the new X-COM does destruction pretty well |
17:16:46 | Skrylar | eh, i liked parts of that but i tend not to like firaxis |
17:16:54 | Skrylar | IMO the only game they did a good job on was Alpha Centauri |
17:17:47 | Skrylar | that had a massive amount of atmosphere and story to it, but anyway |
17:18:43 | Skrylar | Demos: yeah stuff like filterforge or blender's material editor (or mayas, a lot of them use noodles) where you can put a graph node in for one texture and a graph node for another texture, and then tell it "mix these two by this third one" because its easier to see the ramen flow than it is a routing table |
17:20:19 | Demos | so like three uniform sampler2Ds and link samp1 + (samp2 * samp3)? |
17:20:29 | Demos | s/link/then/ |
17:21:33 | Skrylar | yerp |
17:23:38 | * | nande joined #nimrod |
17:27:25 | Demos | see I would rather just write the shader. I get that atrists are not programmers but I fail to see how these flowgraphs are not programming |
17:31:02 | Skrylar | some of those graphs get complex and thats no fun to program :) |
17:31:58 | Skrylar | i wanted a filterforge-y type thing after seeing this http://dev.quixel.se/ since i realized most of what it does could be done with a graph |
17:34:43 | Demos | I still do not see why the graph is better in any way than just writing code to do that stuff |
17:45:36 | * | faassen left #nimrod (#nimrod) |
17:56:26 | * | Demos quit (Ping timeout: 245 seconds) |
17:57:15 | * | q66 joined #nimrod |
18:22:16 | Araq | hey zahary_ happy birthday! :-) |
18:30:42 | dom96 | hey Araq |
18:31:12 | dom96 | Araq: I think i'm hitting another corruption |
18:31:14 | dom96 | :( |
18:31:31 | Araq | no worries |
18:31:37 | dom96 | Async httpclient does work for 1 request though :) |
18:32:07 | dom96 | Which is amazing in itself. This is one of those extreme tests. |
18:32:14 | dom96 | Because I call like 5 levels of async procs. |
18:36:11 | dom96 | We should hire the girl from the Gnome 3.12 introduction video to do a voice over for a nimrod release intro video :P |
18:36:33 | Araq | link? |
18:36:36 | dom96 | http://www.gnome.org/news/2014/03/gnome-3-12-released/ |
18:37:21 | * | XAMPP joined #nimrod |
18:37:21 | * | XAMPP quit (Changing host) |
18:37:21 | * | XAMPP joined #nimrod |
18:38:35 | Araq | meh nothing special |
18:39:36 | dom96 | Araq: Could you take a look at the crash in httpclient? |
18:40:39 | dom96 | Although it doesn't crash in gc.nim anymore |
18:40:40 | dom96 | argh |
18:40:48 | dom96 | anyway brb |
18:49:14 | * | brson joined #nimrod |
19:03:39 | dom96 | back |
19:03:49 | dom96 | Araq: wrell? |
19:03:55 | dom96 | *well |
19:04:04 | Araq | I'm busy |
19:07:19 | * | easy_muffin quit () |
19:23:16 | * | Matthias247 joined #nimrod |
19:26:13 | Skrylar | dom96: Gnome. :| |
19:27:06 | Araq | EXetoC: iirc it is an inherent problem with generics and their interaction with templates. not sure if we can do something here |
19:27:57 | Araq | mapIt should work if not used in a generic, the module boundaries have nothing to do with it |
19:35:06 | NimBot | Araq/Nimrod devel b53d5e9 Araq [+1 ±2 -0]: borrow dots for distinct types documented |
19:35:06 | NimBot | Araq/Nimrod devel e755602 Araq [+0 ±2 -0]: fixes #992 |
19:35:06 | NimBot | Araq/Nimrod devel 9f60b25 Araq [+0 ±3 -0]: fixes #1025; don't know what this breaks |
19:35:06 | NimBot | Araq/Nimrod devel 59f89ac Araq [+0 ±6 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
19:39:57 | EXetoC | Araq: I realized that. I don't think the bug report mentions modules |
19:41:10 | EXetoC | that makes mapIt pretty limited then, but mapIt shouldn't really be needed once we get some syntactic sugar for lambdas |
19:49:23 | EXetoC | "<proto>void <name>glColor3ub</name></proto>" |
19:51:16 | EXetoC | fowl: C-XML ftw |
19:52:12 | fowl | EXetoC, yuck:/ |
19:52:17 | fowl | EXetoC, did u see my comment |
19:52:21 | EXetoC | yes |
19:52:23 | * | Demos joined #nimrod |
19:52:33 | EXetoC | on IRC, yesterday? |
19:52:44 | fowl | no on the opengl issue |
19:53:13 | fowl | why not keep the var versions and the ptr versions |
19:53:27 | EXetoC | I'll just extract those, and then provide actual overloads as well. hopefully it won't be too difficult to parse |
19:54:18 | EXetoC | fowl: Araq told me to, and I'm just assuming that he's right all the time |
19:56:18 | EXetoC | fowl: we could, but it's a handful of procs out of a gazillion that uses pointers instead of vars |
19:57:04 | EXetoC | but ok let's drop the deprecation for now |
20:03:11 | * | Varriount_ is now known as Varriount |
20:12:47 | Demos | EXetoC: you writing a new opengl wrapper? |
20:13:36 | Demos | I actually think it would be reasonable to emit a warning for trying to use a var param or return type in an {.importc.}'d function |
20:16:45 | EXetoC | Demos: yes. I'm particularly interested in automating generation of type-safe procs |
20:17:00 | Demos | what does "type safe" mean in this context |
20:17:32 | EXetoC | Demos: type-safe enums, buffers etc |
20:17:57 | EXetoC | <proto>void <name>glGetBufferSubData</name></proto> |
20:17:59 | EXetoC | 0 <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param> |
20:18:16 | Demos | not helpful, what are type-safe enums and buffers in this context. because like 1/2 of opengl is concerned with telling GL how big stuff is and if you fuck up you are gunna be reading unallocated memory |
20:18:25 | EXetoC | it's difficult in some cases as you can see |
20:18:53 | EXetoC | no sets of values are tied to buffertargetarb, so that can't be automated |
20:19:04 | OrionPK | fowl is sdl2 going to wrap SDL_opengl.h ? |
20:19:56 | EXetoC | Demos: type-safe as in the parameter doesn't accept bogus values |
20:20:02 | Demos | please just generate the prototypes as close to C as you can. It would be good to have an opengl wrapper that is just as close to gl as can be |
20:20:40 | Demos | EXetoC: I would not worry too much, nobody goes and says like glBindBuffer(0xDEADBEEF, -5) |
20:20:52 | EXetoC | Demos: I'll do that too, of course. we already have that though |
20:21:09 | EXetoC | but I might as well automate as much as possible while I'm at it |
20:21:32 | Demos | oh! idea! make a wrapper that can generate all the functions at compile time and I can say like GenHeader(gl31core) and only get core functions |
20:21:43 | EXetoC | Demos: that's true. I'll prioritize buffers for now |
20:21:50 | Demos | how is that going to work? |
20:22:16 | EXetoC | Demos: I think so: <feature api="gl" name="GL_VERSION_1_0" number="1.0"> |
20:22:36 | Demos | I just think that a "type safe" opengl wrapper will be pointless and add more surface area for annoying bugs for little benifit |
20:22:59 | Demos | aw hell so you could pass in something that is almost an XPath and just have it work |
20:23:23 | Demos | check out https://bitbucket.org/alfonse/glloadgen/wiki/Home |
20:23:35 | Demos | I could not get c2nim to grok the output from that though |
20:24:03 | fowl | OrionPK, probably not, the normal opengl library should be fine |
20:24:10 | Demos | another thing you could do for safety is have a mode where each function was a wrapper that called the function in question and then checked for gl errors |
20:24:14 | OrionPK | mk |
20:24:25 | Demos | but basic first |
20:25:04 | Demos | what I want is to be able to have your library be just a bunch of macros for generateing functions, then when I use it I can get a openGL header tailored just for me |
20:25:09 | OrionPK | fowl what wrapper etc would you use right now if you wanted to play around with 2d & 3d graphics in nimrod |
20:25:21 | OrionPK | there seem to be so many half-finished and old ones out there |
20:25:27 | Demos | like maybe I want to leave out all the glUniform*s except for the glUniform*vs |
20:25:46 | Demos | opengl.nim is OK |
20:26:11 | Demos | a little wierd (sometimes you have to cast[var T](nil)) but OK |
20:27:08 | OrionPK | hmm ok |
20:27:15 | OrionPK | would be nice if there was something a bit higher level than that |
20:27:23 | EXetoC | I fixed that. It'll be merged once I remove 'deprecated' from my patch |
20:28:17 | EXetoC | Demos: I do have a template for error checking called `?`, which can be invoked with little effort, but other approaches are possible too |
20:28:48 | Demos | well you don't reall want to have error checking decided at the call site |
20:28:52 | Demos | for GL functions |
20:30:07 | EXetoC | that can be controlled with some module flag perhaps |
20:31:07 | Demos | yeah, my suggestion was for it to be a param on the macro that generates the prototypes |
20:31:51 | Demos | ugh I can not decide if I want to just say "fuck it" and bind all my light uniforms one by one or go and deal with UBOs |
20:32:18 | Skrylar | well vbos are important in 3.1+ |
20:35:20 | EXetoC | "Switching between uniform buffer bindings is typically faster than switching dozens of uniforms in a program" do it! |
20:36:28 | Demos | I use vbos, and it is just more mental energy to write the UBO stuff. It is nicer, since I would have to do all kinds of string manipulation to get the name of each array member |
20:39:48 | Skrylar | yeah.. GL coding isn't very fun |
20:41:38 | Skrylar | https://gist.github.com/Skrylar/9792937 whee |
20:41:58 | fowl | OrionPK, csfml, sdl2 or allegro |
20:42:14 | fowl | OrionPK, of those csfml is the most complete |
20:42:36 | OrionPK | ok, thanks |
20:44:06 | OrionPK | where is the csfml wrapper? in fowlmouth or nimlibs? |
20:44:21 | OrionPK | oh i see it |
20:44:30 | OrionPK | github.com/fowlmouth/nimrod-sfml ? |
20:44:41 | fowl | yea |
20:44:43 | fowl | its on babel |
20:45:57 | fowl | OrionPK, the others are complete too, they are mainly missing audio functions |
20:46:25 | OrionPK | mmk |
20:57:34 | * | Endy joined #nimrod |
20:58:21 | Araq | ah so I broke tests/macros/C/tmemit.nim |
20:59:30 | Araq | ah now I remember |
20:59:35 | fowl | nimrod doesnt compile anymore :? |
20:59:43 | fowl | compiler/extccomp.nim(60, 23) Error: invalid pragma: CompileTime |
21:00:05 | Araq | make it compileTime |
21:01:06 | fowl | er.. it is |
21:01:38 | Araq | damn. so .gensym vs gensym confuses the compiler when we substitute pragmas in templates |
21:01:39 | fowl | proc name: TInfoCC {.compileTime.} = settings |
21:02:04 | Araq | fowl: well it compiles for my and the testers agree with me |
21:02:08 | Araq | *for me |
21:06:44 | * | Trimsty quit (Remote host closed the connection) |
21:07:40 | fowl | compiles without -d:usegnureadline |
21:07:55 | fowl | nope nvm |
21:10:03 | Araq | fowl: however my recent fix broke something else |
21:11:21 | fowl | build.nimrod-lang.org last reports from Jan 13 and Dec 3 |
21:21:01 | * | XAMPP quit (Ping timeout: 245 seconds) |
21:24:48 | Skrylar | woot, macro works |
21:30:22 | * | Endy quit (Ping timeout: 268 seconds) |
21:44:07 | EXetoC | https://bitbucket.org/alfonse/opengl-enumerator-database it's outside the spec, but at least it exists |
21:47:51 | Skrylar | aren't there XMLs of those things? |
21:51:02 | EXetoC | Haven't found any yet |
21:53:07 | Skrylar | http://www.opengl.org/registry/ ? |
21:53:12 | Skrylar | "XML API Registry of Reserved Enumerants and Functions" |
21:54:15 | * | Mat3 joined #nimrod |
21:54:24 | Mat3 | Good Day |
21:54:29 | EXetoC | hi |
21:54:30 | Araq | servus |
21:55:18 | EXetoC | Skrylar: yes but without any enumerator/function mappings |
21:56:00 | EXetoC | should be the same xml files as on bitbucket |
21:56:18 | fowl | i confirmed that im not drunk or high but i still have this error |
21:56:25 | Mat3 | if someone is interested, Micorsoft have published the source code for MSDOS 2 and Word 1 for Windows |
21:56:26 | fowl | compiler/extccomp.nim(60, 23) Error: invalid pragma: CompileTime |
21:56:39 | fowl | Mat3, really? o-O |
21:56:59 | reactormonk | fowl, yup |
21:57:12 | NimBot | Araq/Nimrod devel 8227496 Araq [+0 ±2 -0]: fixes tmemit regression |
21:57:49 | Araq | fowl: maybe it's related, try again with this patch |
21:58:39 | fowl | Araq, yep, compiles again, ty! |
21:58:58 | Demos | how do slices work w.r.t. copies and reference semantics? |
21:59:29 | fowl | Demos, a slice creates a new string |
22:01:00 | Skrylar | fowl: i think pragmas are weirdly case sensitive |
22:01:28 | Araq | fowl: now I know why it failed for you |
22:01:58 | Araq | my config has --cs:partial, yours has not |
22:02:22 | Araq | and the regression only occurs when system.CompileTime and the compileTime pragma are confused |
22:07:16 | fowl | Araq, but cs was off for me, and the case was correct anyways |
22:12:24 | Araq | fowl: yes. I know |
22:12:37 | Araq | too difficult to explain |
22:16:58 | fowl | ok |
22:30:14 | Demos | is trying to call a first class function whos value is nil an error or a no-op? |
22:30:30 | Araq | a segfault |
22:31:38 | Demos | sweet |
22:34:15 | EXetoC | GL_DEBUGtyp_ERROR_ARB search/replace mistake I guess |
22:34:48 | Araq | lol yeah |
22:38:31 | Demos | is there a bit vector in the standard library? like c++'s vector<bool>? |
22:38:48 | reactormonk | Demos, sets |
22:38:55 | reactormonk | set, actually |
22:39:15 | Demos | but I need to index it? |
22:39:19 | Demos | oh wait never mind |
22:47:08 | fowl | is this correct? also is it useful enough for os.nim? https://gist.github.com/fowlmouth/9795378 |
22:48:51 | Araq | fowl: /Windows/Fonts ? looks wrong to me |
22:49:04 | Araq | what if my windows is not in "windows"? |
22:49:11 | Araq | or is that not possible anymore? |
22:49:48 | fowl | i dont remember ever being to specify that |
22:51:08 | Araq | good night |
22:51:13 | fowl | gn |
22:51:18 | EXetoC | Araq: so pushing 'closure' doesn't apply to proc types? |
22:51:24 | EXetoC | bye |
23:04:51 | * | DAddYE quit (Remote host closed the connection) |
23:05:27 | * | DAddYE joined #nimrod |
23:09:09 | * | DAddYE quit (Read error: Operation timed out) |
23:09:39 | Mat3 | fowl: If I remember correctly, you can not assume a constant directory path for system fonts in Windows |
23:09:43 | * | DAddYE_ joined #nimrod |
23:13:46 | fowl | Mat3, is there an environment var for it |
23:13:57 | * | DAddYE_ quit (Ping timeout: 240 seconds) |
23:20:09 | Mat3 | I assume so. Do you need the environment variable for the classical command-line interface or PowerShell ? |
23:22:21 | * | darkf joined #nimrod |
23:22:53 | * | DAddYE joined #nimrod |
23:23:36 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:24:23 | Mat3 | up Windows Vista? there exist a special cache for fonts from which some hard links are created at installation. You can try: Windows\WinSxS. For an environment variable try: %SYSTEMROOT%\Fonts |
23:25:14 | Mat3 | ... Good luck |
23:28:26 | fowl | arg |
23:28:32 | fowl | thx |
23:46:26 | * | runvnc joined #nimrod |
23:46:41 | runvnc | Hello |
23:47:03 | runvnc | so randomize() without a seed specified is using gettime which is the c time() function which only has seconds resolution |
23:47:16 | runvnc | would it be possible for math to import times and then use epochTime for the seed instead |
23:48:00 | runvnc | because if I run my program two times within the same second, calling randomize doesnt actually give me a new seed or set of random numbers, so the output is the same as the previous run |
23:48:23 | Mat3 | I have one possible problem: Nimrod allows only comparisions of pointers and NIL. Allocating a memory area with mmap however can theoretical return a non NIL pointer even if the allocation failed! How can I test such pointer against MAP_FAILED ? |
23:48:58 | dom96 | Mat3: Cast the pointer to whatever type MAP_FAILED is I guess. |
23:49:47 | dom96 | runvnc: Sure add it and make a PR. |
23:50:18 | runvnc | ok thanks dom. just wasnt sure if it was kosher for one core module to import another one |
23:50:19 | Mat3 | dom96: thanks. I try it |
23:51:13 | dom96 | runvnc: it is :) |
23:51:19 | dom96 | Good night. |
23:51:28 | * | DAddYE quit (Remote host closed the connection) |
23:51:36 | runvnc | ok night |
23:52:52 | Mat3 | good night |
23:53:14 | Mat3 | hmm, casting pointers is also not possible (at least not to cint) |
23:53:35 | * | DAddYE joined #nimrod |
23:54:13 | dom96 | Mat3: use cast[cint](val) |
23:54:17 | dom96 | bye |
23:54:27 | fowl | Mat3, cint is not correct, int is |
23:56:10 | fowl | Mat3, the manual says that int is guaranteed to be the size of a pointer |
23:56:38 | EXetoC | runvnc: It'd be ridiculous had you not been able to. most modules import something |
23:57:22 | Mat3 | dom96 and fowl: Thanks, an explicit cast work |
23:59:19 | * | Mat3 thinks about this as another example for the general unreasonableness of type systems |
23:59:39 | fowl | how is this unreasonable |