<< 26-03-2014 >>

00:09:48*xenagi joined #nimrod
00:10:41*io2 quit ()
00:15:39BitPuffinhorrible
00:16:23xenagiterrible
00:16:46Araqterrific
00:18:05xenagiI'm starting an online Crypto course next week. I'm gonna do it with Nimrod!
00:18:32xenagiI'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:42NimBotAraq/Nimrod devel f191f36 Araq [+0 ±5 -0]: added #903 to the test suite
00:27:42NimBotAraq/Nimrod devel 205a76d Araq [+0 ±3 -0]: implemented 'borrow dot' feature for distinct types
00:29:46Araqdom96: I hardly tested it but it should work
00:29:59Araqgood night
00:30:22Araqsyntax is: Bar {.borrow: `.`.} = distinct Foo
00:35:56BitPuffinxenagi: yeah it's a lot of responsibility to have if someone uses your crypto lib
00:36:25BitPuffinxenagi: it's one of the reasons (othor than having better things to do) that scrypt.nim requires libtarsnap
00:37:02xenagiyeah 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:22BitPuffindom96: filwit is playing cs
01:39:31BitPuffinyou 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:17DemosI am getting a malformed AST error in os.nim
02:42:26Demoson a rethrow it looks like
02:46:37*BitPuffin quit (Ping timeout: 240 seconds)
03:12:04fowlDemos, ?
03:12:12Demoshm
03:13:14fowlhow to reproduce?
03:13:28Demostry and use the unittest module, that is what I was doing
03:13:58*psquid quit (Ping timeout: 240 seconds)
03:14:20DemosI was on RHEL 6.5
03:14:39*psquid joined #nimrod
03:14:47fowldamn im 11 cents short for cigarettes >:/
03:15:43Demoshm I can not build on windows either
03:19:26fowlwhats the define for os x
03:19:33fowlMacOSX?
03:19:40DemosI think so yeah
03:23:15Demosthe code that seemed to produce the malformed AST was in a linux only when section I think
03:23:24Demospissed 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:29fowlb
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:56Mat3hello
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:54Araqhi Mat3
08:51:43Mat3hi Araq
08:56:21Mat3ciao
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:59dom96hi
09:36:01io2hi dom96 :)
09:36:15dom96hey io2
09:36:33io2how is it going, still pissed over the oculus buyout?
09:37:12dom96wouldn't say pissed, more like disappointed.
09:38:33io2This 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:26io2The 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:05NimBotAraq/Nimrod devel e674d46 Jimmie Houchin [+0 ±1 -0]: fixed parens around getSysType arguments
09:40:05NimBotAraq/Nimrod devel 2b6ce5e zah [+0 ±1 -0]: Merge pull request #1036 from jlhouchin/devel... 2 more lines
09:54:24NimBotnimrod-code/nimbuild master 8c069d7 Dominik Picheta [+0 ±1 -0]: Website: fix now succeed/fail numbers.
09:56:28zahary_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:25NimBotAraq/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:40dom96Araq: Should I make it a convention to add an 'async' suffix to each async proc's name?
12:40:56Araqdunno
12:41:02Araqif it's not excessive
12:41:08dom96I'm thinking about how the interface will look for httpclient.
12:41:26dom96Actually. Just got a better idea.
12:41:40Araqmaybe async should be the default these days and we need a Sync suffix
12:41:46dom96I can create an HttpClient and AsyncHttpClient type
12:42:09zahary_you can use module qualifiers in the unlikely scenario that you use both sync and async
12:42:48dom96zahary_: That would require each module to be split into a sync and async version.
12:43:12zahary_ah, I thought this was the case already
12:43:38dom96It is. The question is should it be that way.
12:44:01dom96Nothing implements the new async stuff yet except the net/asyncnet modules.
12:44:30dom96well, the 'net' module is the sync version of asyncnet is what I mean.
12:45:21zahary_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:50dom96Yes, I think the effect system can help us with that.
12:45:50zahary_from this point of view it makes certain sense to me for them to be separated
12:46:37dom96I'm not sure if it would be a good idea to have an httpclient and asynchttpclient module though.
12:46:56zahary_async/httpclient (not that this is much different)
12:47:20Araquh oh, are we starting to use subdirs now?
12:49:21dom96Actually the basic sync and async split is currently done using both of the methods I mentioned:
12:49:30dom96It's split up into separate modules.
12:49:39dom96(Asyncnet/net)
12:49:46dom96and separate types (PAsyncSocket/PSocket)
12:51:01dom96Do we want a split like this for all modules which use sockets?
12:53:59zahary_my vote would go for split modules, but I don't have such a strong feelings about it
12:54:53zahary_in jester, do you support both modes already?
12:55:02dom96Perhaps we should not enforce this rule and do whatever feels right for each module.
12:55:03zahary_how does the code feel like?
12:55:15dom96Yes. But using the old asyncio
12:55:53dom96The code works well I think.
12:56:04dom96The new async may be harder to implement though.
12:57:18dom96Araq: Thoughts?
12:57:47zahary_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:17dom96zahary_: yeah.
12:58:55zahary_so go for it, overloading for the win
12:59:42dom96The 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:36dom96zahary_: According to skype it's your birthday. So happy birthday :)
13:03:25zahary_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:27SkrylarMeeeEeeEeeep.
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:26EXetoCapparently 'it' for mapIt cannot be used outside the module where mapIt is defined
14:43:58SkrylarEXetoC: did it accidentally get marked private?
14:50:22EXetoCSkrylar: 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:22SkrylarEXetoC: hrm.. i haven't seen a gensym in macros
15:35:55EXetoCoops, *inject
15:36:26Skrylar:P
15:36:48EXetoCbut that templates contains gensym too
15:36:53EXetoC-s
15:38:32SkrylarI have 90% of a macro now that deals with Wx-style event maps :>
15:41:35SkrylarI'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:14Demoswhy not just have a bunch-o-function pointers
15:46:32SkrylarDemos: function pointers are fungly
15:46:41Demosnot in nimrod
15:46:59Skrylaryou still have to differentiate between proc(self, data) and proc(data)
15:48:08Demosput self in a closure
15:48:24Skrylarmaybe
15:48:34Skrylarwhen i talked about a model like that araq said he hated callbacks though
15:49:09Demosgranted 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:22Skrylaryou mean runtime?
15:49:28Demossorry I do indeed
15:49:34Skrylarwell, i have 3 prototypes here
15:49:46Skrylari wanted to make sure i choose the best one since my gui stuff has to stick with whichever one i go with
15:50:40Demoswell I gotta go to class
15:50:43Skrylari have signals & slots, an event map, and a C-style event queue with some macro on top
15:50:46SkrylarDemos: be safe
15:51:34Demosthey 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:06EXetoCSkrylar: what particular aspect of it requires a macro?
15:54:43EXetoCassuming that it's exposed to users
15:55:58SkrylarEXetoC: it makes it look nicer mostly
15:57:31SkrylarEXetoC: 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:12Skrylarmainly to mimic the way event tables read in wxWidgets, which a lot of people seem comfortable with
16:02:49EXetoCI guess I'll see it in action soon
16:07:32*Demos joined #nimrod
16:07:44Skrylaryeah i could probably gist it later
16:13:30*DAddYE joined #nimrod
16:14:49Demosso 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:39SkrylarDemos: 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:20Skrylarthey use an array so you can attach listeners at runtime though, and afaict they're immediately run instead of queued
16:16:45Demosseems to me that there are some invertable code transforms between these things :D.
16:17:31*gverilla quit (Ping timeout: 252 seconds)
16:17:32Demosfwiw 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:09Skrylaryeah event code can be hard to keep clean :(
16:18:53Skrylari 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:47Demosone 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:07Demosbut then there are all kinds of dependencies you need to worry about
16:20:32DemosI am not a huge fan of having events bubble across trees but it seems to work OK for the DOM
16:23:31Skrylari will say that i don't know of too many times i actually needed dynamic mapping for events
16:25:58Demostrue. 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:09Demosand each core event loop will be different code
16:28:04*Trimsty joined #nimrod
16:31:40Skrylari wonder how some of the old amiga guis didit
16:31:41dom96Damn. So close. :(
16:31:49dom96Got async httpclient working
16:31:56dom96Tried multiple requests and the GC crashes D:
16:33:50Skrylardom96: you should track how many times the garbage collector has to get a new truck :D
16:34:16dom96a new truck? what?
16:34:21Skrylarits a pun
16:34:23Skrylargarbage collector
16:34:34Skrylargarbage men drive trucks. the garbage collector crashed
16:34:53dom96Oh... right... lol
16:35:23Skrylarhttp://wiki.amigaos.net/images/9/98/LibFig2-1.png what is it with the FOSS fonts and their ugligness in rendering :(
16:35:44Skrylarit looks like theres always this weird haze around the letters
16:35:54Demosubuntu does fonts really well
16:36:36Demoshonestly 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:44Demosor as dynamic as reasonable
16:39:41EXetoCno way. metaprogramming ftw :>
16:40:38*Endy quit (Ping timeout: 240 seconds)
16:41:48NimBotAraq/Nimrod devel 7e35518 Dominik Picheta [+0 ±4 -0]: Implemented async for httpclient.
16:42:23Skrylarhaving used a few WPF programs, that is abysmal
16:43:06Skrylari'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:08Demosyeah, gotta keep it reasonable. But overhead in dispatching events like click and /maybe/ mouse move is OK
16:43:17DemosVisualStudio is as well
16:43:38Skrylarnewer sharpdevelops are i think, i didn' have as much of a problem with those but they use unreasonable amounts of ram
16:43:45DemosWPF does this thing where it just doubles your timer frequency for no good reason
16:43:57DemosI thought sharpdev was like winforums
16:44:15Skrylari'm pretty sure they changed it in newer versions
16:44:18Demosmono will never get WPF because it is so complex that reimplementing it is totally impossible, probably even for microsoft
16:44:41Skrylarand the monodevelop derps decided to rewrite an old sharpdevelop to gtk# instead of making winforms work
16:45:09Skrylarnow the compatability is nigh non-existent *and* people still don't trust it \o/ yay for making mono worthless
16:45:46DemosI tried to use mono on OSX once... it went badly
16:46:06Demosalso their GC sucks, apperently it has gotten better but unity still uses the old one
16:46:21Skrylarunity does not impress me :/
16:46:33Demoscompared to others it is pretty good
16:46:36Skrylarit was neat at first, but in recent years its really only a set of bindings for commercial SDKs
16:46:46Demosyeah, that bothers me as well
16:46:59Skrylarand requires web activation to compile.. how about no
16:47:08Demosdid you watch that "technical" overview of watch_dog's engine?
16:47:40dom96ooh, link?
16:47:41Skrylari haven't heard of it
16:49:26Demosit 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:37Demoshttp://www.rockpapershotgun.com/2014/03/21/the-divisions-engine-trailer-snowdrop/
16:49:44Demossorry it is the engine for the division
16:49:54Skrylari actually like noodle/pin graphs for some things
16:50:24DemosI think you need to hugely limit them for em to be useful.
16:50:49Skrylarthat said, "oh yay yet another waste of effort engine"
16:51:10Skrylar"OUR copy and paste of siggraph whitepaper algorithms is better!"
16:51:25Demoshehe, so much truth there
16:51:41SkrylarI get really bored with a lot of engines because they don't do what I want
16:51:56Skrylarthey go on about "SOURCE IS BEST EVER" and then you throw a big level at it, it chokes and dies
16:52:15Demossource is pretty old, and HAMMER (not the filesystem) is pretty sad
16:52:21SkrylarElder Scrolls Construction Kit in the morrowind days is progress.
16:52:34SkrylarYet another Quake-BSP loader is not progress, even with ambient occlusion shading.
16:53:04Demosbethsofts 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:31Skrylarbethsoft really needs to just use a carmack engine and make tools for it
16:53:39DemosI hear Idtech5 is good but the mod tools take 3.5 hours to open
16:53:53DemosOK 2 hours, but still
16:54:19Skrylarthats why i get really stressful when people propose some highly inefficient solution and say it should be "fast enough"
16:54:42Demoswell idtech is really fast at runtime
16:54:42Skrylarlike in music daws, apparently Cubase is a dog
16:55:16Skrylara 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:21Demosbut id was like "why not buy 600 xenons and use em to compress 500000x500000 textures
16:56:04Skrylaroh, the megatextures thing
16:56:40Demosyeah
16:56:42Demosit actually works
16:56:47Skrylari like reading about how crysis or silent storm or soldner has these super advanced destructible terrain engines
16:56:59Skrylarbut if you ask someone why we can't have a proper xcom, they go "well its just impossible"
16:57:06Demoscrysis is just a bunch of walls hooked together with physx
16:57:26Skrylardestructible 3d isn't new
16:57:35Skrylarsilent storm is from like, '04 and runs on most computers
16:57:53Skrylarthey 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:01SkrylarSo basically, how X-Com ground combat worked
16:58:19SkrylarBut 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:27Skrylara.k.a. they have no real skill
17:00:25Skrylarwhere 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:38DemosSkrylar: so like defineing how to munge assets?
17:15:39Demosand the new X-COM does destruction pretty well
17:16:46Skrylareh, i liked parts of that but i tend not to like firaxis
17:16:54SkrylarIMO the only game they did a good job on was Alpha Centauri
17:17:47Skrylarthat had a massive amount of atmosphere and story to it, but anyway
17:18:43SkrylarDemos: 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:19Demosso like three uniform sampler2Ds and link samp1 + (samp2 * samp3)?
17:20:29Demoss/link/then/
17:21:33Skrylaryerp
17:23:38*nande joined #nimrod
17:27:25Demossee 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:02Skrylarsome of those graphs get complex and thats no fun to program :)
17:31:58Skrylari 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:43DemosI 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:16Araqhey zahary_ happy birthday! :-)
18:30:42dom96hey Araq
18:31:12dom96Araq: I think i'm hitting another corruption
18:31:14dom96:(
18:31:31Araqno worries
18:31:37dom96Async httpclient does work for 1 request though :)
18:32:07dom96Which is amazing in itself. This is one of those extreme tests.
18:32:14dom96Because I call like 5 levels of async procs.
18:36:11dom96We 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:33Araqlink?
18:36:36dom96http://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:35Araqmeh nothing special
18:39:36dom96Araq: Could you take a look at the crash in httpclient?
18:40:39dom96Although it doesn't crash in gc.nim anymore
18:40:40dom96argh
18:40:48dom96anyway brb
18:49:14*brson joined #nimrod
19:03:39dom96back
19:03:49dom96Araq: wrell?
19:03:55dom96*well
19:04:04AraqI'm busy
19:07:19*easy_muffin quit ()
19:23:16*Matthias247 joined #nimrod
19:26:13Skrylardom96: Gnome. :|
19:27:06AraqEXetoC: iirc it is an inherent problem with generics and their interaction with templates. not sure if we can do something here
19:27:57AraqmapIt should work if not used in a generic, the module boundaries have nothing to do with it
19:35:06NimBotAraq/Nimrod devel b53d5e9 Araq [+1 ±2 -0]: borrow dots for distinct types documented
19:35:06NimBotAraq/Nimrod devel e755602 Araq [+0 ±2 -0]: fixes #992
19:35:06NimBotAraq/Nimrod devel 9f60b25 Araq [+0 ±3 -0]: fixes #1025; don't know what this breaks
19:35:06NimBotAraq/Nimrod devel 59f89ac Araq [+0 ±6 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
19:39:57EXetoCAraq: I realized that. I don't think the bug report mentions modules
19:41:10EXetoCthat makes mapIt pretty limited then, but mapIt shouldn't really be needed once we get some syntactic sugar for lambdas
19:49:23EXetoC"<proto>void <name>glColor3ub</name></proto>"
19:51:16EXetoCfowl: C-XML ftw
19:52:12fowlEXetoC, yuck:/
19:52:17fowlEXetoC, did u see my comment
19:52:21EXetoCyes
19:52:23*Demos joined #nimrod
19:52:33EXetoCon IRC, yesterday?
19:52:44fowlno on the opengl issue
19:53:13fowlwhy not keep the var versions and the ptr versions
19:53:27EXetoCI'll just extract those, and then provide actual overloads as well. hopefully it won't be too difficult to parse
19:54:18EXetoCfowl: Araq told me to, and I'm just assuming that he's right all the time
19:56:18EXetoCfowl: we could, but it's a handful of procs out of a gazillion that uses pointers instead of vars
19:57:04EXetoCbut ok let's drop the deprecation for now
20:03:11*Varriount_ is now known as Varriount
20:12:47DemosEXetoC: you writing a new opengl wrapper?
20:13:36DemosI 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:45EXetoCDemos: yes. I'm particularly interested in automating generation of type-safe procs
20:17:00Demoswhat does "type safe" mean in this context
20:17:32EXetoCDemos: type-safe enums, buffers etc
20:17:57EXetoC<proto>void <name>glGetBufferSubData</name></proto>
20:17:59EXetoC 0 <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
20:18:16Demosnot 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:25EXetoCit's difficult in some cases as you can see
20:18:53EXetoCno sets of values are tied to buffertargetarb, so that can't be automated
20:19:04OrionPKfowl is sdl2 going to wrap SDL_opengl.h ?
20:19:56EXetoCDemos: type-safe as in the parameter doesn't accept bogus values
20:20:02Demosplease 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:40DemosEXetoC: I would not worry too much, nobody goes and says like glBindBuffer(0xDEADBEEF, -5)
20:20:52EXetoCDemos: I'll do that too, of course. we already have that though
20:21:09EXetoCbut I might as well automate as much as possible while I'm at it
20:21:32Demosoh! 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:43EXetoCDemos: that's true. I'll prioritize buffers for now
20:21:50Demoshow is that going to work?
20:22:16EXetoCDemos: I think so: <feature api="gl" name="GL_VERSION_1_0" number="1.0">
20:22:36DemosI just think that a "type safe" opengl wrapper will be pointless and add more surface area for annoying bugs for little benifit
20:22:59Demosaw hell so you could pass in something that is almost an XPath and just have it work
20:23:23Demoscheck out https://bitbucket.org/alfonse/glloadgen/wiki/Home
20:23:35DemosI could not get c2nim to grok the output from that though
20:24:03fowlOrionPK, probably not, the normal opengl library should be fine
20:24:10Demosanother 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:14OrionPKmk
20:24:25Demosbut basic first
20:25:04Demoswhat 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:09OrionPKfowl what wrapper etc would you use right now if you wanted to play around with 2d & 3d graphics in nimrod
20:25:21OrionPKthere seem to be so many half-finished and old ones out there
20:25:27Demoslike maybe I want to leave out all the glUniform*s except for the glUniform*vs
20:25:46Demosopengl.nim is OK
20:26:11Demosa little wierd (sometimes you have to cast[var T](nil)) but OK
20:27:08OrionPKhmm ok
20:27:15OrionPKwould be nice if there was something a bit higher level than that
20:27:23EXetoCI fixed that. It'll be merged once I remove 'deprecated' from my patch
20:28:17EXetoCDemos: I do have a template for error checking called `?`, which can be invoked with little effort, but other approaches are possible too
20:28:48Demoswell you don't reall want to have error checking decided at the call site
20:28:52Demosfor GL functions
20:30:07EXetoCthat can be controlled with some module flag perhaps
20:31:07Demosyeah, my suggestion was for it to be a param on the macro that generates the prototypes
20:31:51Demosugh 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:18Skrylarwell vbos are important in 3.1+
20:35:20EXetoC"Switching between uniform buffer bindings is typically faster than switching dozens of uniforms in a program" do it!
20:36:28DemosI 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:48Skrylaryeah.. GL coding isn't very fun
20:41:38Skrylarhttps://gist.github.com/Skrylar/9792937 whee
20:41:58fowlOrionPK, csfml, sdl2 or allegro
20:42:14fowlOrionPK, of those csfml is the most complete
20:42:36OrionPKok, thanks
20:44:06OrionPKwhere is the csfml wrapper? in fowlmouth or nimlibs?
20:44:21OrionPKoh i see it
20:44:30OrionPKgithub.com/fowlmouth/nimrod-sfml ?
20:44:41fowlyea
20:44:43fowlits on babel
20:45:57fowlOrionPK, the others are complete too, they are mainly missing audio functions
20:46:25OrionPKmmk
20:57:34*Endy joined #nimrod
20:58:21Araqah so I broke tests/macros/C/tmemit.nim
20:59:30Araqah now I remember
20:59:35fowlnimrod doesnt compile anymore :?
20:59:43fowlcompiler/extccomp.nim(60, 23) Error: invalid pragma: CompileTime
21:00:05Araqmake it compileTime
21:01:06fowler.. it is
21:01:38Araqdamn. so .gensym vs gensym confuses the compiler when we substitute pragmas in templates
21:01:39fowl proc name: TInfoCC {.compileTime.} = settings
21:02:04Araqfowl: well it compiles for my and the testers agree with me
21:02:08Araq*for me
21:06:44*Trimsty quit (Remote host closed the connection)
21:07:40fowlcompiles without -d:usegnureadline
21:07:55fowlnope nvm
21:10:03Araqfowl: however my recent fix broke something else
21:11:21fowlbuild.nimrod-lang.org last reports from Jan 13 and Dec 3
21:21:01*XAMPP quit (Ping timeout: 245 seconds)
21:24:48Skrylarwoot, macro works
21:30:22*Endy quit (Ping timeout: 268 seconds)
21:44:07EXetoChttps://bitbucket.org/alfonse/opengl-enumerator-database it's outside the spec, but at least it exists
21:47:51Skrylararen't there XMLs of those things?
21:51:02EXetoCHaven't found any yet
21:53:07Skrylarhttp://www.opengl.org/registry/ ?
21:53:12Skrylar"XML API Registry of Reserved Enumerants and Functions"
21:54:15*Mat3 joined #nimrod
21:54:24Mat3Good Day
21:54:29EXetoChi
21:54:30Araqservus
21:55:18EXetoCSkrylar: yes but without any enumerator/function mappings
21:56:00EXetoCshould be the same xml files as on bitbucket
21:56:18fowli confirmed that im not drunk or high but i still have this error
21:56:25Mat3if someone is interested, Micorsoft have published the source code for MSDOS 2 and Word 1 for Windows
21:56:26fowl compiler/extccomp.nim(60, 23) Error: invalid pragma: CompileTime
21:56:39fowlMat3, really? o-O
21:56:59reactormonkfowl, yup
21:57:12NimBotAraq/Nimrod devel 8227496 Araq [+0 ±2 -0]: fixes tmemit regression
21:57:49Araqfowl: maybe it's related, try again with this patch
21:58:39fowlAraq, yep, compiles again, ty!
21:58:58Demoshow do slices work w.r.t. copies and reference semantics?
21:59:29fowlDemos, a slice creates a new string
22:01:00Skrylarfowl: i think pragmas are weirdly case sensitive
22:01:28Araqfowl: now I know why it failed for you
22:01:58Araqmy config has --cs:partial, yours has not
22:02:22Araqand the regression only occurs when system.CompileTime and the compileTime pragma are confused
22:07:16fowlAraq, but cs was off for me, and the case was correct anyways
22:12:24Araqfowl: yes. I know
22:12:37Araqtoo difficult to explain
22:16:58fowlok
22:30:14Demosis trying to call a first class function whos value is nil an error or a no-op?
22:30:30Araqa segfault
22:31:38Demossweet
22:34:15EXetoCGL_DEBUGtyp_ERROR_ARB search/replace mistake I guess
22:34:48Araqlol yeah
22:38:31Demosis there a bit vector in the standard library? like c++'s vector<bool>?
22:38:48reactormonkDemos, sets
22:38:55reactormonkset, actually
22:39:15Demosbut I need to index it?
22:39:19Demosoh wait never mind
22:47:08fowlis this correct? also is it useful enough for os.nim? https://gist.github.com/fowlmouth/9795378
22:48:51Araqfowl: /Windows/Fonts ? looks wrong to me
22:49:04Araqwhat if my windows is not in "windows"?
22:49:11Araqor is that not possible anymore?
22:49:48fowli dont remember ever being to specify that
22:51:08Araqgood night
22:51:13fowlgn
22:51:18EXetoCAraq: so pushing 'closure' doesn't apply to proc types?
22:51:24EXetoCbye
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:39Mat3fowl: 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:46fowlMat3, is there an environment var for it
23:13:57*DAddYE_ quit (Ping timeout: 240 seconds)
23:20:09Mat3I 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:23Mat3up 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:14Mat3... Good luck
23:28:26fowlarg
23:28:32fowlthx
23:46:26*runvnc joined #nimrod
23:46:41runvncHello
23:47:03runvncso randomize() without a seed specified is using gettime which is the c time() function which only has seconds resolution
23:47:16runvncwould it be possible for math to import times and then use epochTime for the seed instead
23:48:00runvncbecause 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:23Mat3I 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:58dom96Mat3: Cast the pointer to whatever type MAP_FAILED is I guess.
23:49:47dom96runvnc: Sure add it and make a PR.
23:50:18runvncok thanks dom. just wasnt sure if it was kosher for one core module to import another one
23:50:19Mat3dom96: thanks. I try it
23:51:13dom96runvnc: it is :)
23:51:19dom96Good night.
23:51:28*DAddYE quit (Remote host closed the connection)
23:51:36runvncok night
23:52:52Mat3good night
23:53:14Mat3hmm, casting pointers is also not possible (at least not to cint)
23:53:35*DAddYE joined #nimrod
23:54:13dom96Mat3: use cast[cint](val)
23:54:17dom96bye
23:54:27fowlMat3, cint is not correct, int is
23:56:10fowlMat3, the manual says that int is guaranteed to be the size of a pointer
23:56:38EXetoCrunvnc: It'd be ridiculous had you not been able to. most modules import something
23:57:22Mat3dom96 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:39fowlhow is this unreasonable