00:08:12*couven92 quit (Quit: Client Disconnecting)
00:09:49*chemist69 joined #nim
00:10:57*WhiskyRyan joined #nim
00:11:17*WhiskyRyan quit (Client Quit)
00:39:27*Jesin quit (Ping timeout: 240 seconds)
00:48:09*Jesin joined #nim
01:04:53*WhiskyRyan joined #nim
01:17:14*Trioxin2 quit ()
01:19:37*WhiskyRyan quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:20:15*WhiskyRyan joined #nim
01:23:15*chemist69 quit (Ping timeout: 258 seconds)
01:35:34*chemist69 joined #nim
01:51:30*WhiskyRyan quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
01:53:22*byte512 joined #nim
01:54:35*byte512_ quit (Ping timeout: 240 seconds)
02:13:06*pilne quit (Quit: Quitting!)
02:25:53*evizaer quit (Quit: Leaving)
02:33:01*girvo joined #nim
02:34:46*cjh` joined #nim
02:36:58*Neomex joined #nim
02:42:05*Neomex quit (Quit: Leaving)
02:54:41*vlad1777d joined #nim
03:04:03*skrylar joined #nim
03:05:31*bahtiyar joined #nim
03:25:57*vlad1777d quit (Ping timeout: 260 seconds)
03:32:48*skrylar quit (Ping timeout: 240 seconds)
03:33:26*dddddd quit (Remote host closed the connection)
03:51:56*girvo quit (Quit: leaving)
04:00:03*Snircle joined #nim
04:55:04*vivus quit (Quit: Leaving)
05:03:30*chrisheller quit (Remote host closed the connection)
05:16:55*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
05:35:28*irrequietus joined #nim
05:39:02*pleiosau1 quit (Remote host closed the connection)
05:41:51*chrisheller joined #nim
06:11:02*Vladar joined #nim
06:12:16*xet7 quit (Remote host closed the connection)
06:24:52*pleiosaur joined #nim
06:26:26*xet7 joined #nim
06:37:08*nsf joined #nim
07:02:43*Snircle joined #nim
07:06:57*irrequietus quit ()
07:10:34*aerx joined #nim
07:15:44*nimmerino joined #nim
07:19:56*rokups joined #nim
07:22:56*nimmerino quit (Quit: Konversation terminated!)
07:23:19*nimmerino joined #nim
07:25:03*nimmerino is now known as nimmerino_
07:25:05*nimmerino_ is now known as nimmerino
07:27:42*yglukhov joined #nim
07:31:57*yglukhov quit (Ping timeout: 240 seconds)
07:36:06*aerx quit (Quit: WeeChat 1.8)
07:38:59*yglukhov joined #nim
07:40:40*aerx joined #nim
07:43:19*nimmerino quit (Quit: Konversation terminated!)
07:59:08*aerx quit (Quit: WeeChat 1.8)
08:00:44*skrylar joined #nim
08:08:09*Arrrr joined #nim
08:08:10*Arrrr quit (Changing host)
08:08:10*Arrrr joined #nim
08:10:18*Andris_zbx joined #nim
08:11:48*bahtiyar quit (Ping timeout: 240 seconds)
08:32:22*PMunch joined #nim
09:00:43*couven92 joined #nim
09:52:04*Andris_zbx quit (Remote host closed the connection)
09:52:22*Andris_zbx joined #nim
10:02:20*skrylar_ joined #nim
10:06:57skrylar_wonder what kind of politicking it would take to get the arch package up to date
10:15:43*smt joined #nim
10:16:55FromGitter<BontaVlad> Made a simple neural network in Nim: https://forum.nim-lang.org/t/3007, feedback highly encouraged!
10:17:30skrylar_I read that book recently
10:18:54FromGitter<BontaVlad> Nice book, I have learned a lot
10:19:19skrylar_@BontaVlad eh just keep in mind that you don't want everything to be hardcoded like you have it
10:19:55skrylar_the "big" frameworks like torch and tensorflow have everything set up in "layer" objects that you can stack
10:20:34FromGitter<BontaVlad> This was just a learning project, I need to learn a lot more math to start working on something serious
10:20:40skrylar_your next step is probably to do something similar, so you can change the types of neurons or add more/less layers as-needed without too much fuss. its pretty easy since in nim all you have to do is chuck them in a seq
10:20:52skrylar_not as much as you think
10:22:09FromGitter<BontaVlad> It was a great small project, and nim was a pleasure to use.
10:27:11FromGitter<BontaVlad> @skrylar_, once I learn more about this subject I will change some parts of the code :). Thx for the info!
10:27:32skrylar_i highly recommend installing sage or at least sympy
10:28:09skrylar_it will calculate the derivatives for you once you start getting in to backpropagation and weird neuron types 8)
10:30:33FromGitter<BontaVlad> Sounds interesting, I started to watch some ML courses on youtube, and by implementing some algorithms in nim it forces me to learn nim as well as the math.
10:41:10skrylar_nim is pretty obedient
11:21:39koppehMhh.. how would you define a default value for a tuple type in a proc?
11:21:57koppehtype WindowSize = tuple[width: int32, height: int32]
11:22:23koppehproc init*(size: WindowSize = (400, 300)) results in this error:
11:22:32koppehtype mismatch: got ((int, int)) but expected 'WindowSize = tuple[width: int32, height: int32]'
11:22:59couven92koppeh, try (400'i32, 300'i32) instead
11:23:17koppehHmm, yes that works.
11:23:20skrylar_fun with pedantry
11:24:22koppehThen the calling end needs it to, hmm.. I'll to with just int and cast later, then.
11:24:31couven92koppeh, 400 is a literal for the `int` type. The `'i32` suffix specifies the literal explicitly as an int32 literal
11:25:17koppehBut this works: let i: int32 = 400
11:26:15koppehI would've figured the tuple equivalent would work too.
11:26:19couven92Hmm... I guess thats because the let statement includes a type specification
11:26:37skrylar_bother Araq about it
11:26:50skrylar_it *shouldn't* be ambiguous given you only have ints of a set type
11:27:07skrylar_where the problems begin is if you DO have a tuple for "int" and "int32"
11:27:15skrylar_but since that's not the case you shouldn't need the 'i32 silliness
11:27:36couven92koppeh, what about this: `let siz: WindowSize = (400, 300)` and then `init(siz)`?
11:28:06skrylar_it might also be allowable to have a const for your default value
11:28:22skrylar_const defaultfoo = (...) [..] proc stuff(foo: Foo = DefaultFoo)
11:28:42koppehConst doesn't work, same error.
11:28:51skrylar_you'd still have to do the 'i32 silliness in the const
11:28:52koppehAnd same with let.
11:29:05skrylar_it just hides it from the proc definition and keeps the consts separated (code hygiene)
11:29:16*koppeh nods.
11:37:31Araqone day I'll reimplement how Nim treats array and tuple literals
11:37:37Araqbut today is not this day
11:37:55couven92Araq, that bad, huh?
11:38:24Araqactually it works as designed but now I know the design people want :P
11:39:13koppeh(I've had a few thoughts about my own language..)
11:40:00koppehMy friend doesn't really like some of those though.. heh.
11:40:44koppehOne of the things it tries to accomplish is making each of the bracket types clearly represent one concept and not have them change depending on context.
11:41:00couven92Araq, that reminds about this one: http://www.epcreation-services.com//scripts/thumb/phpThumb.php?src=http://www.epcreation-services.com//images/howthecustomerexplainedit1.jpg&w=680 (Software Engineering Explained)
11:41:59couven92(concerning the difference between what is designed vs. what people actually want)
11:48:25skrylar_koppeh then you have rust
11:48:36skrylar_or at least early versions of rust that used every possible sigil for something
11:48:48koppehNot even.
11:49:29koppehI use () instead of {} for blocks.
11:49:40koppehAnd [] instead of () for function calling.
11:50:01skrylar_i like what smalltalk did where they just sorta said here is a micro-syntax and then you just do whatever with it. although i think the vector syntax was nonstandard in squeak
11:50:46koppeh() is block / grouping syntax. Since blocks can have an implicit return value, (4) == (2 + 2) == (DoNothing[]; 4)
11:51:13koppehAnd [] would be object syntax.
11:51:49Arrrrmy eyes!
11:51:56koppehAnd function calling is not much different than passing an object to it that represents the arguments..
11:52:05koppeh"Arrrr my eyes!" ... pfft
11:54:54koppeh(Never have I seen a more fitting nick ^^)
12:01:47PMunchHmm, what is the deal with "Error: inheritance only works with non-final objects"?
12:02:14skrylar_you need to put {.inheritable.} on the object being inherited from
12:02:26ftsfPMunch, means your object must be inherited from RootObj or an inheritable type
12:03:16PMunchAh, this code was made from c2nim
12:03:22ftsf"Objects that have no ancestor are implicitly final and thus have no hidden type field. One can use the inheritable pragma to introduce new object roots apart from system.RootObj."
12:03:39PMunchThe objects in question
12:36:03*arnetheduck joined #nim
12:47:41FromGitter<dandevelop> What is the backquote: ` used for in nim?
12:47:55skrylar_escaping identifiers
12:48:03skrylar_proc `foo=`()
12:48:13FromGitter<dandevelop> So those identifiers won't be mangled by the compiler?
12:48:35skrylar_its so the parser doesn't become confused
12:49:11FromGitter<dandevelop> Is there any example of how this works somewhere online?
12:49:19skrylar_i just gave you one ._.
12:49:37skrylar_its used so the lexer/paser doesn't get confused when you are doing operator overloading and such
12:49:45FromGitter<dandevelop> Oh, I think gitter displayed it differntly
12:49:52skrylar_it does
12:50:02skrylar_gitter eats it as markdown
12:50:12*vlad1777d joined #nim
12:50:39FromGitter<dandevelop> I saw only a proc foo= () and I was not sure what you meant
12:52:56FromGitter<dandevelop> Trying to understand when this would be useful
12:53:14skrylar_i just told you
12:53:44skrylar_setters have equals in their names. the parser doesn't always know if foo= means "set foo equal to" or "the identifier named foo="
12:55:15FromGitter<dandevelop> I got the setters part, thanks @skrylar_ I also saw this used with .emit and I was trying to understand the .emit use case
12:59:48Araqin emit it's used so that the compiler knows it's Nim code inside the string literal
13:02:00FromGitter<dandevelop> Thank you @Araq
13:24:17*skrylar quit (Remote host closed the connection)
13:24:31*skrylar joined #nim
13:25:58*rokups quit (Quit: Connection closed for inactivity)
13:39:31FromGitter<gogolxdong> @BontaVlad how long did your epoch=3 take for training and based on what equipment?
13:50:56*Arrrr quit (Read error: Connection reset by peer)
14:06:59*rauss joined #nim
14:16:22*rauss quit (Quit: WeeChat 1.8)
14:16:40*rauss joined #nim
14:18:29*rauss quit (Client Quit)
14:32:52*skrylar quit (Quit: Leaving)
14:39:34*rauss joined #nim
14:40:04*rauss quit (Client Quit)
14:51:30FromGitter<BontaVlad> By using Neo matrix lib using a epoch 10 training took @30 min with a dataset of 60000 entries
14:52:18FromGitter<BontaVlad> PC config is 6GB of ddr3 RAM, Intel(R) Xeon(R) X5460 @ 3.16GHz 4 cores
14:53:26FromGitter<BontaVlad> I think the code could be optimized a lot(my code). You can also push matrix operation on the GPU, check Neo's api for doing that
15:04:54*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
15:08:01*yglukhov quit (Remote host closed the connection)
15:13:07*Arrrr joined #nim
15:14:36*yglukhov joined #nim
15:18:48*yglukhov quit (Ping timeout: 240 seconds)
15:19:31*ofelas joined #nim
15:21:30*sadun joined #nim
15:25:27*couven92 quit (Ping timeout: 268 seconds)
15:27:07*Trustable joined #nim
15:28:14*Andris_zbx quit (Remote host closed the connection)
15:32:11FromGitter<andreaferretti> I didn't check your example, but it seems a lot
15:32:23FromGitter<andreaferretti> https://github.com/unicredit/neurotic takes a few seconds on the CPU
15:32:40FromGitter<andreaferretti> unfortunately, I have to finish porting it to neo
15:33:58*rauss joined #nim
15:39:05*arnetheduck quit (Ping timeout: 240 seconds)
15:40:23*smt quit (Read error: Connection reset by peer)
15:40:39*smt joined #nim
15:46:48FromGitter<TiberiumN> Also you can try with a Intel compiler, maybe it will give you some speed
15:47:08FromGitter<TiberiumN> but it's not free, only trial, or education version for students (you can't sell software compiled with intel compiler)
15:51:58*couven92 joined #nim
15:59:10*sadun quit (Ping timeout: 258 seconds)
16:08:13*aerx joined #nim
16:09:10*yglukhov joined #nim
16:14:10*yglukhov quit (Ping timeout: 268 seconds)
16:19:57*gangstacat quit (Ping timeout: 240 seconds)
16:20:24*gangstacat joined #nim
16:21:08*arnetheduck joined #nim
16:43:06*yglukhov joined #nim
16:47:28*pilne joined #nim
16:48:05chrisheller@Araq here is the pull request for passing in stdin, stdout, and/or stderr handles for startProcess. https://github.com/nim-lang/Nim/pull/6002
16:48:18chrishellerIncludes test cases as requested :)
17:07:29*yglukhov quit (Remote host closed the connection)
17:13:17*smt quit (Read error: Connection reset by peer)
17:13:30*smt joined #nim
17:13:34*yglukhov joined #nim
17:13:36*Arrrr quit (Read error: Connection reset by peer)
17:14:00*smt quit (Read error: Connection reset by peer)
17:14:10*smt joined #nim
17:23:17*yglukhov quit (Remote host closed the connection)
17:26:09*Trustable quit (Remote host closed the connection)
17:43:12Araqchrisheller: love it, thanks :-)
17:44:22chrishellerI was thinking of adding something to hide the need for callers to use get_osfhandle
17:45:39chrishellerSo that f.getFileHandle() would work cross platform when supplying handles for startProcess
17:47:04chrishellerSomething like getOSHandle(handle: cint) that would call get_osfhandle when windows is defined, but otherwise just return the cint handle.
17:50:03chrishellerLooks like os.nim sort of does that already in the getFileInfo proc.
17:52:21chrishellerI guess startProcess could be updated to take FileHandle instead of Handle so that the need for get_osfhandle could be hidden from callers that way.
17:56:26koppehIf you get a ptr+size to a string (from in this case OpenGL), what's the suggested way to get a string from that?
17:57:04*Matthias247 joined #nim
17:57:42dom96koppeh: You can't. Strings are managed by Nim's GC.
17:59:35koppehCopy the contents into a new Nim string, then?
17:59:44koppehShould I look into strutils, maybe?
18:05:15dom96yeah, you can do that. I think copymem is what you'd use https://nim-lang.org/docs/system.html#copyMem,pointer,pointer,Natural
18:06:28koppehHmm.. there's no standard way of doing this?
18:08:55FromGitter<TiberiumN> can I use "||" openmp proc with this kind of "for"? ⏎ "for index, item in someStringSequence:"
18:10:25*smt_ joined #nim
18:15:17*rosshadden joined #nim
18:16:39dom96koppeh: Not as far as I know. It would make a good standard library addition though (if you want to create a PR).
18:16:43*WhiskyRyan joined #nim
18:18:18*nsf quit (Quit: WeeChat 1.7.1)
18:19:39*smt quit (*.net *.split)
18:19:39*gangstacat quit (*.net *.split)
18:19:39*rauss quit (*.net *.split)
18:19:40*Jesin quit (*.net *.split)
18:19:41*huonw quit (*.net *.split)
18:19:41*vopi181[m] quit (*.net *.split)
18:20:35*huonw joined #nim
18:23:57*vopi181[m] joined #nim
18:24:32*gangstacat joined #nim
18:25:11*Jesin joined #nim
18:27:48*vqrs quit (Ping timeout: 260 seconds)
18:31:14*vqrs joined #nim
18:34:15*yoConQuimio joined #nim
18:37:38*ipjk joined #nim
18:37:53*WhiskyRyan quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:40:57*Snircle joined #nim
18:44:30*yoConQuimio quit (Remote host closed the connection)
18:44:47Araqchrisheller: such an abstraction needs to be well thought-out and this Windows gotcha needs to be documented.
18:45:35Araqin fact, maybe we need to change the type to 'File' or Stream hmmm
18:47:46chrishellerI can try to add some additional documentation that explains it.
18:48:49koppehOh and.. is there just a general way of creating a string from a buffer and length?
18:48:57koppehKind of trying to find some options here.
18:49:17koppehAt the moment we're thinking of casting the GLchar pointer to cstring and using $ on that..?
18:49:24chrishellerAt least a quick comment in the doc for startProcess that says that on Windows, you need to provide "Windows handle" and not a C file handle.
18:50:41chrishellerBut that does not seem like a good long term answer though. It would be better to make it work cross-platform by default, and then if someone needs something platform specific, let them choose to do so.
18:51:23*WhiskyRyan joined #nim
18:52:42*yglukhov joined #nim
18:54:53*WhiskyRyan quit (Client Quit)
18:58:19*WhiskyRyan joined #nim
18:59:21*yglukhov quit (Remote host closed the connection)
19:37:13chrishellerI just added a getRealHandle proc that is exported from osproc.nim and contains the documentation for why it is needed. The doc for startProcess now references this.
19:38:52*yglukhov joined #nim
19:39:40chrishellerThat doesn't completely hide the cross platform differences, but does at least make it much easier for someone. The tests look much cleaner with this change
19:43:46subsetparkCan someone correct my use of the do notation here?
19:44:23subsetpark scoreStates.sort do (x, y: ScoreState) -> int:
19:44:23subsetpark cmp(x.score, y.score)
19:44:29subsetparkWhere ScoreState is a tuple
19:44:40subsetparkError: 'do (x, y: ScoreState)-> int:
19:44:40subsetpark cmp(x.score, y.score)' doesn't have a concrete type, due to unspecified generic parameters.
19:45:20subsetparkOh, I understand. It's a generic in that case and needs to be parameterized there too. Got it!
19:45:58Araqchrisheller: it's not a "real handle" though, in fact, it's the opposite afaik
19:46:40chrishellerHah. I just added a comment in https://github.com/nim-lang/Nim/issues/6001 wondering about the name :)
19:46:58AraqgetFileHandle returns the file handle but to create a 0,1,2 "standard" handle you need this other call
19:47:03*WhiskyRyan quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:47:11Araqor maybe I misremember
19:48:10chrishellergetOSHandle() might be slightly better
19:49:01chrishellerNo, the get_osfhandle call is Windows specific to go from 0,1,2 file handles to a pointer to a "Windows handle"
19:50:47chrishellerstartProcess could be changed to take FileHandle instead of Handle, but then you can't pass in a pipe or other non-file Handles on Windows.
19:53:35chrishellerThe python code that I am porting is only using file handles, so I don't have any good test cases that use pipes on Windows.
19:54:34chrishellerI guess I could look at the unit tests for subprocess.py for some ideas
19:57:48*Vi- joined #nim
19:59:26koppehHi, this is the friend I was talking about earlier.
19:59:46*Vi- waves
19:59:47koppehMaybe now she can explain some of her issues more directly.
19:59:54*Trustable joined #nim
20:01:42Vi-Okay, the following... Using the opengl wrapper there doesn't seem to be a way to have a soft dependency on an extension
20:02:15Vi-Since it tries to load every single function in use when calling loadExtensions
20:03:31Vi-In this case I want to use glDebugMessageCallback on a 3.3 context, but its from 4.3 so I can't expect it to be available
20:08:32*ipjk quit (Read error: Connection reset by peer)
20:11:47*aerx_ joined #nim
20:13:14*aerx quit (Ping timeout: 246 seconds)
20:17:03*yglukhov quit (Remote host closed the connection)
20:19:00FromGitter<zacharycarter> @Araq for karax: https://github.com/marko-js/isomorphic-ui-benchmarks
20:23:51dom96hello Vi-! I wish I could help you out but OpenGL is the one area I haven't had a chance to play with yet in Nim, hopefully if you stick around somebody else might be able to help you out though :)
20:24:17FromGitter<zacharycarter> I don't think there's much help that can be offered with that problem Vi- without changing the opengl wrapper itself
20:25:16FromGitter<zacharycarter> I don't really understand your question either though - if an extension is only available to a certain OpenGL version, wouldn't loading it with a lower version fail?
20:26:11AraqVi-: the extension loader is indeed non-optional but the way it does it under the hood shows how to accomplish such a thing
20:27:20*nsf joined #nim
20:28:00FromGitter<zacharycarter> Marko seems to be kicking ass in all the benchmarks
20:28:26Vi-Id use glGetProc and related but they arent exported
20:28:59Araqzacharycarter: thanks but karax is not yet optimized well (we're working on it though)
20:29:21Vi-But... there seems to be a way to make it use glew instead, would it still try to load everything in use then?
20:29:23FromGitter<zacharycarter> sure thing - I'm looking forward to being able to use Karax at work
20:29:36FromGitter<zacharycarter> using Vue at the moment which is a step up from react
20:30:12AraqI used Vue 1.2.
20:30:25FromGitter<zacharycarter> should give it another spin, Vue is pretty nice
20:30:36FromGitter<zacharycarter> also - https://nuxtjs.org/
20:30:54AraqI'd rather program with my own blood on a whiteboard
20:30:57FromGitter<zacharycarter> is really what I'm using
20:31:03FromGitter<zacharycarter> lol
20:31:11FromGitter<zacharycarter> You better not try react then
20:32:09Elronndis it possible to control the generated c code in nim?
20:32:21Elronndlike, to embed c code, in the same way you can embed assembly in some other languages?
20:32:51AraqVi-: I don't know about Glew, I'd add an export marker to glGetProc and submit a PR
20:33:44Araqzacharycarter: you can't patch JS with libraries and frameworks.
20:34:02Araqthe language sucks, you need to replace it.
20:35:31koppehWebAssembly? \o/
20:35:54Vi-hm, something else then
20:36:13Vi-I'll try useGlew, can I add -d flags to nimble somehow?
20:36:27*Jesin quit (Quit: Leaving)
20:36:30dom96Elronnd: {.emit: "c code".}
20:37:04demi-Vi-: you can specify them as part of your nim.cfg file
20:37:13Vi-Also, I kinda wonder why there isn't a pragma to define these flags
20:37:36dom96yeah, you put all flags in a .nim.cfg (or config.nims file)
20:43:02*rosshadden quit (Quit: WeeChat 1.8)
20:50:51*Trustable quit (Remote host closed the connection)
20:54:46*ofelas quit (Quit: shutdown -h now)
20:57:41*Calinou quit (Ping timeout: 246 seconds)
21:03:27*Calinou joined #nim
21:21:41*Elronnd quit (*.net *.split)
21:21:43*Ieuan quit (*.net *.split)
21:21:43*Amrykid quit (*.net *.split)
21:21:43*SianaGea1z quit (*.net *.split)
21:21:43*ldlework quit (*.net *.split)
21:21:45*SianaGearz joined #nim
21:21:46*SianaGearz quit (Changing host)
21:21:46*SianaGearz joined #nim
21:21:48*ldleworker joined #nim
21:21:52*Amrykid joined #nim
21:23:18*yaiyan joined #nim
21:24:32*Vi- quit (Ping timeout: 240 seconds)
21:26:48*Elronnd joined #nim
21:30:15*Vladar quit (Remote host closed the connection)
21:30:17*Vi- joined #nim
21:33:41*Jesin joined #nim
21:34:42*Jesin quit (Max SendQ exceeded)
21:35:07*Jesin joined #nim
21:43:06*Elronnd quit (*.net *.split)
21:47:03*Elronnd joined #nim
21:48:12*Elronnd_ joined #nim
21:48:21*Nobabs27 joined #nim
21:48:47*Elronnd_ quit (Client Quit)
21:50:56*def-pri-pub joined #nim
21:53:25*PMunch quit (Quit: leaving)
21:55:05*nsf quit (Quit: WeeChat 1.7.1)
22:17:37*yglukhov joined #nim
22:21:29*libman joined #nim
22:21:57*yglukhov quit (Ping timeout: 240 seconds)
22:26:21*Matthias247 quit (Read error: Connection reset by peer)
22:38:19*Jesin quit (Quit: Leaving)
22:45:32*Vi- quit (Ping timeout: 240 seconds)
22:46:21skrylar_i've done a tiny bit of opengl stuff but not in nim
22:48:03skrylar_there seem to be two schools of thought with GL handling: either have all your calls be function pointers assigned through dlopen (or windows equivalent) or there's a special tag where you can get GCC to do it for you
22:50:20*couven92 quit (Quit: Client Disconnecting)
22:52:49AraqNim uses the "let the compiler do it" solution
22:55:20*vlad1777d quit (Quit: Leaving)
22:55:40*rauss joined #nim
23:33:20*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
23:33:51*Snircle joined #nim