<< 21-07-2013 >>

01:18:31DAddYE_http://forum.nimrod-code.org/t/182
01:41:30*q66 quit (Quit: Leaving)
02:59:22*XAMPP joined #nimrod
03:32:29*DAddYE_ quit (Remote host closed the connection)
03:47:40*DAddYE joined #nimrod
03:48:44*DAddYE quit (Remote host closed the connection)
03:49:18*DAddYE joined #nimrod
03:53:48*DAddYE quit (Ping timeout: 260 seconds)
04:39:11*DAddYE joined #nimrod
04:41:49*DAddYE quit (Remote host closed the connection)
05:02:10*DAddYE joined #nimrod
05:18:23DAddYEAraq: how hard will be if I use from foo import nil be able to use foo.Type.proc_that_match_it()
05:18:38DAddYEaka preserve chain-ability
05:29:44DAddYEalso what is the nim way to map hashes/tables https://github.com/joyent/node/blob/master/lib/_http_server.js#L40-L59 ?
05:30:00DAddYEI know there are table but I don't know if there is a better way
05:40:42DAddYEhaaaa here we are http://build.nimrod-code.org/docs/manual.html#table-constructor
05:40:45DAddYEnvm
07:55:48AraqDAddYE: I don't know how hard it'll be and frankly I don't care, you want explicit 'module.' prefixes everywhere except that you don't
07:57:03DAddYEtwo reasons
07:57:09DAddYEin the module where I'm working
07:57:19DAddYEI will not need to prefix with module name
07:57:54DAddYEin the module that import it I'll need and it's idiomatic since I don't need to know where a thing come frome
07:57:57DAddYE*from
07:58:10DAddYEand I also don't have (not sure if allowed by compiler)
07:58:28DAddYEredefinition of types/enum/procs
07:59:14Araq'from module import nil' is not idiomatic, it's very new and nobody uses it
08:00:26DAddYEyea in nimrod and usually before meet other languages also in ruby
08:00:44DAddYEis the same (except you have more fine grain control)
08:01:23DAddYEbtw the big thing is enclose in a namespace
08:01:33Araquse .pure enums then
08:01:55DAddYEI had to
08:02:04AraqI don't like if x.callingConvention in {CallingConvention.Cdecl, CallingConvention.Stdcall}
08:02:36Araqit's verbose and only helps people who wouldn't understand the compiler's source code anyway
08:03:08DAddYEyea so you have the option to do: use my_module
08:03:41DAddYEyea so you have the option to do: use CallingConventions
08:03:47DAddYEhaha
08:04:03Araqyeah but with my way I dont need it
08:04:26Araqlook
08:04:41Araqwhat you perceive as asthetic is well known to me
08:04:52AraqI called the 'dot' disease
08:04:55Araq*call it
08:05:02AraqGC_disable() # bad, ugly
08:05:08AraqGC.disable() # nice and clean
08:05:14DAddYEexactly
08:05:15AraqccDefault # bad, ugly
08:05:24AraqCallingConvention.Defautl # nice and clean
08:05:34DAddYEyou know why?
08:05:48DAddYEyou put here your code
08:05:58DAddYEbut here I (will) be able to say
08:06:04DAddYEthat disable is in gc.nim
08:06:12DAddYEDefault is in cc.nim
08:06:20Araqbut you can't and it's not important anyway
08:06:38Araq*why* do you read code?
08:06:58DAddYEusually I don't use anything where I'm not able to read the code
08:07:02Araqyou seem to imply it's always about reading *unknown new code*
08:07:04DAddYE(now you know)
08:07:11DAddYEbut also for me
08:07:21DAddYEI'd like to have every thing separated
08:07:22DAddYEin files
08:07:23Araqwhereas in practice it's always *known* and old code
08:07:38DAddYEsmall portion of code
08:07:41DAddYEin many files
08:07:42Araqit's always "lets add a feature"
08:07:47Araqor "fix the bug"
08:07:59Araq"where does this symbol come from?" is not an important question
08:08:14DAddYEfor me that I'm reading your code YES
08:08:19DAddYEwhat it does?
08:08:25DAddYEwhere is the proc?
08:08:40DAddYEand so on
08:08:46Araqand btw the navigability you seek DOESN'T exist in Ruby at all
08:08:52Araqand yet you don't mind
08:09:05Araqbecause Ruby's very *semantics* prevent it
08:09:43DAddYEmmm /dir/lib/module_name/foo.rb => Module::Foo
08:10:18DAddYEmmm /dir/lib/module_name/foo.rb => ModuleName::Foo
08:10:23DAddYEis pretty standard
08:11:17DAddYEalso I can write modules named with the same name of nimrod/lib ?
08:11:58DAddYEand btw I prefer much more Python module system
08:12:07DAddYEor clojure
08:12:31DAddYEthan ruby
08:13:53Araqobj.method() # which 'method' is it?
08:13:56Araqyou don't know
08:14:07Araqand it's a feature in these languages
08:14:30Araqit depends on 'obj's *runtime* type
08:19:27Araqand fyi I wasn't desperate to write my own RST parser, I looked at the Python implementation and wanted to re-use it or re-code it in Nimrod. It was faster to start from scratch because as soon as something gets more complicated Python and other scripting languages break very quickly.
08:19:44AraqIt doesn't scale at all.
08:19:56Araqymmv of course
08:20:40DAddYEyea
08:20:48DAddYEI know a bit better clojure
08:21:03DAddYEand recently they got some problems with the module system
08:21:16DAddYEfor the reloader
08:21:27DAddYEhard to track changes
08:21:49DAddYEand in jvm you know that respawn a jvm is slow like compile 40K lines of nimcode
08:36:03DAddYEis a thing var buf = "".setLen(suggested_size)
08:36:05DAddYEvalid?
08:36:17Araqit was invalid yesterday
08:36:31Araqwhat makes you think it's valid now?
08:38:23DAddYE????????
08:38:40Araqin other words: no it's not valid
08:38:53DAddYEin term of syntax or
08:39:00DAddYEcode?
08:39:21DAddYE*terms
08:39:22Araqsyntax is fine bug setLen returns void
08:40:13DAddYEhaaaaa
08:40:44DAddYEsorry I mean "".setLen(xx) => (char*) malloc(size)
09:14:40reactormonkAraq, remember the times when I trolled around?
09:34:20*DAddYE quit (Remote host closed the connection)
09:34:47*DAddYE joined #nimrod
09:39:22dom96hello
09:39:31*DAddYE quit (Ping timeout: 276 seconds)
09:39:36dom96ping Araq
09:53:49*EXetoC joined #nimrod
09:54:00dom96yo EXetoC
09:55:11EXetoCohai
10:08:25NimBotAraq/Nimrod master 838c35e Dominik Picheta [+0 ±1 -0]: Fixes OSError deprecation warning.
10:09:01NimBotAraq/Nimrod asyncmacro 838c35e Dominik Picheta [+0 ±1 -0]: Fixes OSError deprecation warning.
10:09:01NimBotAraq/Nimrod asyncmacro 406edb0 Dominik Picheta [+0 ±1 -0]: Merge branch 'master' into asyncmacro
10:13:00*BitPuffin joined #nimrod
10:17:32EXetoCdaddye really does whatever he can to avoid those prefixes :>
10:20:10EXetoCBitPuffin: lo
10:20:18BitPuffinEXetoC: howdy!
10:20:31BitPuffinEXetoC: considering using Nimrod to do some magic
10:21:23EXetoCok
10:21:53BitPuffinEXetoC: what are you up to?
10:22:44dom96hey BitPuffin
10:22:50BitPuffinhey dom96!
10:23:03EXetoCwriting some UI code
10:23:29BitPuffincoolio
10:26:28EXetoCc(:)-<
10:38:12BitPuffinEXetoC: shouldn't you bump the revision number of glfw3 to 1?
10:41:16*q66 joined #nimrod
10:41:18EXetoCno one other than me has even tested it I think. it's not exactly a complicated API though, so I guess I'll bump it in a couple of days
10:42:26BitPuffinI will use it
10:42:40*DAddYE joined #nimrod
10:43:56BitPuffinI thought of another project though that might have the possibility to become quite popular, not the kind of game I thought I'd be making but I kind of like the genre, so I might use Allegro to get desktop, android and iOS support and then compile to js for webgl support
10:44:38BitPuffinHowever I might just write my own Nimrod library that does this for easier portability to additional platforms (like Sailfish, Ubuntu Phone etc)
10:46:06BitPuffinBut I guess it would also work to contribute additional platforms to allegro, but then I have to write C
10:49:07*DAddYE quit (Ping timeout: 260 seconds)
10:55:36BitPuffinEXetoC: did you use c2nim to generate the glfw bindings?
11:00:47EXetoCI probably did. takes so much time otherwise
11:08:41EXetoCthere are about 3-4 things I want to change, and then I should add documentation for at least newWindow and a couple of other things
11:44:06BitPuffinEXetoC: did you use the --header option?
11:44:13BitPuffinapparently that's discouraged
11:45:55*DAddYE joined #nimrod
11:48:50EXetoCBitPuffin: nah
11:49:01BitPuffinEXetoC: but you ran it on the header?
11:51:38EXetoCBitPuffin: yes
11:51:43BitPuffinI see
11:52:29*DAddYE quit (Ping timeout: 245 seconds)
12:00:17EXetoCshouldn't be too hard in general, assuming that said header doesn't resemble, say... FreeImage.h in any way :>
12:04:57*Araq0 joined #nimrod
12:05:18Araq0Hey dom96
12:05:30dom96oh no it's Araq's evil twin!
12:06:23Araq0Wup?
12:06:48dom96When are you going to be back at your desktop?
12:07:13Araq0Tonight
12:07:51dom96I'm having a barbecue at 5pm my time.
12:08:16Araq0I dont
12:08:22dom96Not sure how long it will take.
12:08:35EXetoCoh, I thought it was an invitation
12:08:54dom96EXetoC: sure, if you can get to Northern Ireland in 4 hours.
12:09:12EXetoC:>
12:10:35Araq0Well you said yoi need me...
12:10:49dom96I did?
12:10:53dom96I pinged you.
12:10:58Araq0Yeah
12:11:04dom96I wish you would read the logs...
12:11:15dom96<dom96> [23:49:20] Araq: This is how I do the arg passing: https://github.com/Araq/Nimrod/blob/9f297120d1622dd9f6b08ec7cab582419bb811d2/tests/compile/tasynciterraw.nim#L35
12:11:15dom96<dom96> [23:49:23] Thoughts?
12:11:47Araq0I did read the logs
12:14:10dom96well, what are your thoughts?
12:15:37Araq0Dunno why you need the cast
12:15:50dom96maybe it's a bug?
12:16:15dom96I'm not sure how the safe casting is done at runtime.
12:16:21Araq0Ordinary conversion shoild be fine
12:16:50Araq0But you need to declare ptest once
12:17:15Araq0Not twice for it to work
12:17:32dom96yes, but how does processServer know the type then?
12:19:39Araq0Processserver knows the type already
12:19:57Araq0No idea what you mean
12:20:40dom96it only knows it because I define it there
12:20:44Araq0How does redeclaring the type avoid knowimg it?
12:21:13dom96how else am I suppose to cast it if I don't have the concrete type?
12:21:24dom96the PTest below is inaccessible
12:22:32dom96hrm, unless I generate the PTest above the proc definition.
12:27:34EXetoCthe order of declaration is important, by default anyway, if that's what you mean
12:33:01Araq0Bbl
12:43:02dom96yay an infinite loop...
12:43:18*zahary__ quit (Ping timeout: 240 seconds)
12:47:03dom96yay, it works
12:49:01*DAddYE joined #nimrod
12:55:24*DAddYE quit (Ping timeout: 245 seconds)
13:16:49BitPuffinEXetoC: so you basically just did c2nim glfw.h ?
13:26:17EXetoCBitPuffin: I might've had to add one or more #def. chances are you need to if an error message says something about a missing ';'
13:26:43BitPuffinEXetoC: it says expected ')' where there is one :s
13:26:56BitPuffinlocal/include/allegro5/allegro_color.h(6, 29) Error: ')' expected
13:28:13NimBotAraq/Nimrod asyncmacro 426fbdb Dominik Picheta [+0 ±2 -0]: Better param passing. Implemented send, readLine and support for... 1 more lines
13:28:13NimBotAraq/Nimrod asyncmacro b3673c2 Dominik Picheta [+1 ±2 -0]: Calling an async proc with invalid arguments will now fail at compile-time.
13:30:06BitPuffinEXetoC: man I'm not sure if this will work as expected, it's adding a bunch of when not defined stuff etc
13:31:11EXetoCyou can always remove the conditionals if you think they aren't needed
13:31:28EXetoCand replace them with c2nim-specific stuff of course, if necessary
13:31:55BitPuffinEXetoC: I suppose, but I'm not sure what I'm gonna do with this error I got where it expects a ) where there is a ) :(
13:33:37BitPuffinEXetoC: I get it in almost every file
13:34:09BitPuffinAraq0: is this a known issue?
13:36:51EXetoCAraq0: http://subversion.assembla.com/svn/procedural-tree-generation/trunk/project/ProceduralTreeGenerator/ProceduralTreeGenerator/lib/allegro-5.0.5/allegro/include/allegro5/allegro_color.h
13:37:30EXetoCgotta love this stuff. too bad they aren't using begin/end headers
13:37:58EXetoCanyway, it's not present in that many headers, is it?
13:41:33BitPuffinEXetoC: I don't see what's wrong with it
13:45:57EXetoCc2nim might not be able to handle it for whatever reason. I removed most such conditionals, but I don't know if that's necessary
13:46:18BitPuffinEXetoC: so you think I should ditch the importing stuff?
13:47:52BitPuffinor the conditionals, guess I can't skip importing
13:48:33BitPuffinEXetoC: if allegro.nim imports a bunch of other stuff like allegro.h does, is this stuff available to me if I only import allegro.nim?
13:50:30BitPuffinEXetoC: doesn't seem like there is a flag to skip the conditionals :(
13:50:35BitPuffinonly includes
13:51:23NimBotAraq/Nimrod asyncmacro 2e3ef1f Dominik Picheta [+0 ±1 -0]: Fixes problems with async docs.
13:52:31BitPuffinis it Araq0 or Araq or Araq__ one should ping
13:53:48dom96Araq0 I think
13:53:52EXetoCI haven't dealt with this crap much at all unfortunately, but I'm pretty sure that much of it can just be removed :>
13:54:29BitPuffinEXetoC: well that doesn't really help when the conversion fails because of it
13:54:38BitPuffinEXetoC: it doesn't keep going or anything
13:59:42BitPuffinEXetoC: maybe I need to do: import allegro_blabla \n export allegro_blabla
14:44:02BitPuffinEXetoC: guess I'm gonna have to write the binding manually huh
14:44:22fowlI thought someone else did allegro already
14:44:55fowlI tried once, it was too much work
14:45:19fowlIt was gradha IIRC
14:45:56BitPuffinfowl: really? latest allegro?
14:46:04BitPuffinI searched for it on google and nothing showed up
14:46:40EXetoCwere you thinking of this https://github.com/nimrod-code/packages/blob/master/packages.json#L38 ?
14:47:03EXetoCI couldn't find anything more relevant when googling
14:48:41fowlAllegro sux compared to sdl2
14:48:53BitPuffinnope
14:49:02fowlThey require hijacking main() iirc
14:49:04BitPuffinwhy?
14:49:32BitPuffinmmmmmm nah only on OSX I think, and that's not their fault, it's OSX's iirc
14:50:57fowlAny lib with convoluted headers sucks IMO.. ncurses may be useful but it still sux
14:52:40*DAddYE joined #nimrod
14:57:05BitPuffinfowl: convoluted?
14:57:41dom96maybe try grabbing a pascal wrapper and using pas2nim :P
14:59:10fowlBitPuffin the c is ugly and hard for c2nim to get through
14:59:13*DAddYE quit (Ping timeout: 246 seconds)
14:59:23fowlParsing c is not trivial
14:59:25BitPuffinfowl: I think it looks alright
15:00:28BitPuffindom96: no pascal bindings for allegro either haha
15:00:39BitPuffinonly for allegro4
15:00:51*Araq__ quit (Read error: Connection timed out)
15:00:59BitPuffinfowl: more trivial than C++ :P
15:01:27BitPuffinare there bindings to SDL2 available though?
15:01:36EXetoCyup
15:01:52EXetoChttps://github.com/fowlmouth/nimlibs/tree/master/fowltek
15:01:55*Araq_ joined #nimrod
15:02:11BitPuffinof course he did D:<!
15:02:13BitPuffinhaha
15:02:25BitPuffinWell
15:02:39BitPuffinthe only reason I'd consider it would be to not have to mess around with writing bindings
15:02:45BitPuffintime is precious
15:02:46BitPuffinhrm
15:03:21dom96why not sfml?
15:03:56BitPuffinWell
15:03:58BitPuffinwhy sfml?
15:04:04fowlSdl2 is niiice compared to sdl1
15:04:18BitPuffinOh, I guess it's worth mentioning I'm not even making anything 2d here
15:04:41dom96oh, well then sdl2 is fine I guess.
15:05:40BitPuffinI'm just looking to write OpenGL ES 2 code and have touch and audio API stuff cross platform and have desktop version with audio
15:05:44Araq0Bitpuffin the header looks trivial to me
15:05:45fowlBitPuffin I have horde3d wrapped and assimp
15:05:57BitPuffinAraq0: yeah same
15:06:08BitPuffinAraq0: but c2nim can't handle the truth
15:06:16Araq0For c2nim to handle
15:06:35fowlAh also I started on window management for a 3d engine, that's in fowltek too
15:06:58Araq0Just make the define a def
15:07:28BitPuffinAraq0: Well, I wasn't lying when it was expecting a ) where there was a ) and for some reason that's an error
15:07:50BitPuffinfowl: window management?
15:08:39Araq0Well i am not lying when i say i can easily get it to work
15:08:57fowlBitPuffin well i was going to do more there's a scene graph and WM just the basics
15:09:22BitPuffinAraq0: well then go for it :P
15:09:48Araq0Whats the error msg
15:09:56BitPuffinfowl: well what kind of window management are we talking
15:10:23BitPuffinAraq0: local/include/allegro5/allegro_color.h(6, 29) Error: ')' expected
15:10:33EXetoCcreating, destroying, handling events?
15:10:46fowl^
15:12:07BitPuffinyeah that's what I was thinking
15:12:22BitPuffinI was thinking maybe he ment OpenGL windows (GUI stuff)
15:13:11fowlU could use it as a starting point or something, I likely won't work on it further
15:13:14Araq0Make it defined(x) instead of (defined x) then
15:14:06fowlBitPuffin the window stuff is xorg, gl context is created though
15:14:22BitPuffinAraq0: so you mean I need to go in to every header and change it manually?
15:14:44Araq0God is there a single header out there without arcane bs...
15:14:45BitPuffinfowl: well if I needed that I'd use glfw
15:15:01BitPuffinfowl: but since I also want touch I'll use either allegro or sdl2
15:15:20Araq0Bitpuffin yes
15:15:40BitPuffinWell then no thanks, I think c2nim should be able to understand it as it is
15:15:41Araq0Headers always need tweaking for c2nim
15:16:15fowlBitPuffin sure use whatever, I thought u were talking about writing ur own tho
15:16:43BitPuffinfowl: hmm maybe I mentioned that earlier, but even then I was thinking putting libs in the background
15:17:05Araq0Bitpuffin its not c2nims fault c is bs
15:17:45BitPuffinWell
15:17:46Araq0And hostile to interop
15:17:47BitPuffinyes
15:17:50BitPuffinC is total bs
15:18:06BitPuffinBut c2nim is trying to handle C, so it is c2nims fault
15:18:06BitPuffinor rather both
15:19:02*Araq_ quit (Read error: Connection timed out)
15:19:33Araq0C2nim is still more useful than wrapping by hand
15:19:55*Araq_ joined #nimrod
15:21:00BitPuffinYeah it is
15:21:19BitPuffinBut it needs more work
15:22:22BitPuffinfowl: I guess I'll go with SDL2 then, I don't really love how blitting and all that stuff is in the same header as window creating and all that jazz
15:22:44EXetoCwhat doesn't?
15:23:19fowlYou don't blit in sdl2 unless u work with software renderer
15:24:16fowlAlso if ur doing 3d all u use from sdl is event handling right
15:25:27BitPuffinfowl: exactly so why would I want it to clutter my namespace
15:25:38BitPuffinI guess I'm gonna have to from bla import bla
15:26:01fowlWhat lol clutter ur namespace
15:27:57fowlI don't understand
15:27:59EXetoCvery few things are going to collide, if any
15:28:48BitPuffinWell, I know
15:28:59BitPuffinbut still! :P
15:29:08BitPuffinthey shouldn't keep them in the same header
15:29:13BitPuffinImo
15:29:51dom96BitPuffin: fix c2nim then
15:29:51BitPuffinfowl: sdl2 runs on android and ios right?
15:30:36fowlThat's what I hear
15:30:49BitPuffindom96: well I'm no expert at parsing C and don't have time to become one :P
15:43:01EXetoCwell, there's this time thing that you mentioned earlier :>
15:44:31BitPuffinEXetoC: the lack of? :D
15:53:00fowlI'll wrap a library if u need me to and I can have it done in a day, probably, price based on complexity
15:55:46*DAddYE joined #nimrod
15:59:59*DAddYE quit (Ping timeout: 245 seconds)
16:00:26BitPuffinfowl: ah, sorry, can't afford to pay anything right now :)
16:02:34BitPuffinfowl: but I'll keep that in mind :D
16:02:58fowlOk
16:09:10dom96see you later guys
16:14:44BitPuffindom96: don't leave us!
16:14:47BitPuffinthe world needs you
16:16:34BitPuffinOkay so help me out
16:16:56BitPuffinWhen I install a package with babel
16:17:10BitPuffinhow do I import it in my project later
16:17:25BitPuffinlike with fowl's fowltek binding to sdl2
16:17:27fowlImport modulename
16:17:28BitPuffinhow do I import it
16:17:52fowlThe compiler knows about babel
16:18:31fowlImport fowltek/sdl2
16:19:07fowlThat's just because all modules in fowltek are in that folder, I want my name in ur source
16:19:52Araqcredit where credit is due, fowl ;-)
16:21:50fowlMy commercial stuff will be import com/fowl/is/awesome/libraryname lol
16:23:12*BitPuffin_ joined #nimrod
16:23:44*BitPuffin quit (Ping timeout: 245 seconds)
16:24:22BitPuffin_kinda strange syntax to have / in the import statement
16:24:27BitPuffin_most languages use .
16:25:35Araqyeah I'll support '.' too I think
16:25:44*BitPuffin_ is now known as BitPuffin
16:25:47Araqimport fowltek.sdl2
16:26:03Araqthat import fowltek doesn't work doesn't matter, does it?
16:26:21BitPuffinAraq: but it's not supported currently then?
16:26:26fowlFowltek isn't a module it's a directory
16:26:48BitPuffinWould be pretty rocking if we could import fowltek.*
16:27:05BitPuffin(says the guy who was earlier bitching about cluttered namespace :$)
16:27:21Araqfowl: people decided '.' is good enough for everything and I feel like supporting it
16:27:43Araqif only to tell them later "wie man sich bettet so ruht man"
16:28:00BitPuffinenguarish prease
16:28:32fowl4 years of German in hs and I learned nothing
16:28:57BitPuffinsame here with spanish
16:29:26EXetoCme too, but I passed anyway!
16:29:40fowlOh I know: du bits ein verdammter idiot
16:29:49fowlDu bist*
16:29:50BitPuffinEXetoC: Yeah I got a VG :s
16:30:00EXetoC:>
16:30:35BitPuffinIs there any OpenGL ES wrappers for nimrod?
16:30:43BitPuffinjust use the regular openGL stuff or what
16:31:19fowlBp u should try to work.it into the.opengl module
16:32:13Araq"As one makes his bed, so he must lie."
16:32:30Araqnot sure if it conveys the same meaning ...
16:32:48BitPuffinfowl: huh? Does that mean I should use what's in the opengl module or contribute it? :s
16:34:10BitPuffinAraq: how far back does the opengl stuff go in terms of compability, I know it stops at 4.2, but does it support everything back to OpenGL 1.0?
16:34:32AraqI think so
16:34:37BitPuffinI see
16:34:42BitPuffinwell then it probably already works
16:34:48Araqbut I'm not sure nor do I see why it is important
16:34:48EXetoCit has glBegin. does that answer your question? :p
16:34:49fowlUse what u can, contribute if u can
16:35:15BitPuffinSince OpenGL ES 2 is OpenGL 2(.1?) without the fixed function bs
16:53:19EXetoC~2.0
16:56:54*DAddYE joined #nimrod
16:57:24*DAddYE quit (Remote host closed the connection)
16:57:31*DAddYE joined #nimrod
16:58:38*xilo joined #nimrod
16:59:16*Mat2 joined #nimrod
16:59:20Mat2hi @ all
16:59:43EXetoChi @ you
17:00:16Mat2how's work going ?
17:00:55BitPuffinhi Mat2!
17:01:16Mat2hi BitPuffin
17:01:37*DAddYE quit (Remote host closed the connection)
17:04:14EXetoCwork? well, I'm not getting paid for this :( but it's going well
17:04:33Mat2Araq; It was needed to mark the reserved memory-areas for machine-code as executable for calling without generating an exception but otherwise it worked as you suggested
17:06:01Araqwhat? I did suggest something?
17:07:03Mat2EXetoC: Well, I assumed the word 'work' includes unpaid programming
17:07:43Mat2Araq: Sorry, wrong translation :(
17:08:06Araqsay it in german then
17:08:53Mat2ansonsten funktionierte alles so wie Du beschrieben hattest
17:12:09Araqwell I don't remember describing anything but alright
17:16:25Mat2anyhow, I can now compile vm-code sequences at run-time. Now I'm exploring the thread and process interfaces Nimrod offer
17:16:54Araqer ... does that mean your VM is now in Nimrod?
17:17:18Mat2yes
17:17:30Araqo.o wow aweseom
17:17:51Araqhow come I hear no complaints from you?
17:18:46Mat2because it works at this point
17:19:46EXetoCoperations on two float32's gives me a float. is that intended?
17:21:28Araqno
17:21:33EXetoCok
17:49:56AraqMat2: one more thing
17:51:06Araqif you need to put your VM object types on the heap a register based VM has another advantage
17:51:40Araqpython for instance caches the integer objects < 255 or something to avoid excessive allocations
17:52:06Araqbut with a register based VM you always have a destination slot that's likely to already point to appropriate memory
17:53:04Araqbecause you can easily assign a fixed type to a temporary slot
17:53:18Araqin a register based vm
17:54:26Mat2Araq: That's a problem by design - the language design. You think in terms of languages which compile static code sequences (even if this may happen embedded in a dynamic context)
17:55:53Araqwell I surely don't think in Forth :-)
17:57:10Mat2yes. Look how expensive the Java VM for example handles dynamic code-generation
17:59:56Mat2I would say, if a VM need to cache object references for performance, this is led by result of flawed language-design decisions
18:00:17Araqmaybe but I dunno
18:00:30Araqit's very common for smalltalk like object systems
18:01:39BitPuffinAraq: can I load a dynamic library at runtime manually with some proc?
18:02:00AraqBitPuffin: yeah but I forgot the name
18:02:33Araqdynlib.nim
18:02:50*DAddYE joined #nimrod
18:02:56Mat2I think the IO language is a nice example how to avoid such problems by design
18:03:00BitPuffinAraq: do you think that will work on platforms like android (with NDK) and iOS?
18:03:35Araqwhenever you ask me "will it work on iOS" my default answer is "No"
18:03:50AraqiOS is the new unoperating system
18:03:55BitPuffinlol
18:03:58BitPuffinBut it can run C!
18:04:05Araqit should work in theory
18:04:12Araqit's been ported to mac os x
18:04:26Mat2have here some one experiences with iOS ?
18:04:44AraqMat2: ask gradha when he's around
18:05:05Mat2thanks
18:05:17Mat2brb
18:05:28BitPuffinit appears that it works with the operating system
18:05:34BitPuffinbut is not permitted on the appstore..
18:05:46BitPuffinhrm
18:05:52BitPuffinI hate apple
18:06:04BitPuffinHow am I supposed to make this then
18:08:28BitPuffinI was hoping to package the worlds in to packages with assets and a dynamic library for the compiled nimrod "scripts"
18:09:11*DAddYE quit (Ping timeout: 260 seconds)
18:09:40BitPuffinI guess I could make some workaround for iOS so that it comes with all the worlds by default, and if you log in or buy or whatever it unlocks the other content somehow
18:26:24Araqwhy does a "world" reside in a dll anyway, BitPuffin? (I use DLL for shared object because it makes more sense)
18:27:03BitPuffinAraq: well if you think of a game like Diablo or Torchlight 2 which has Acts
18:27:34AraqDiablo, Torchlight 2? never heard of them
18:27:38BitPuffinAraq: Each act has special scripts for each acts that has nothing to do with the other acts, and each act can be compiled to a library
18:28:25BitPuffinAraq: well okay then think of acts as worlds then, but basically each act has it's own environment and its own objectives and events in those objectives, so why not package it all in a neat little package and load it at runtime
18:28:36AraqBitPuffin: I'm kidding
18:28:56BitPuffinAraq: lol, I was like, are you serious :P
18:29:45BitPuffinAraq: I kind of want to make it so that you only have to buy the game once via the website, so you download a free client that contains the demo data and then when you've bought it you download the other acts
18:29:55BitPuffinand I can't think of any other way to achieve this
18:30:03Araqwell most games include a scripting engine for these things
18:30:17Araqand most of the game is then "scripted"
18:30:32BitPuffinAraq: yeah but I plan to write the scripts in nimrod that way
18:31:20Araqwell I'm working on a nimrod VM but it'll run nimrod slower of course
18:31:44BitPuffinAraq: hmm, but I'm not even sure iOS let's you use scripting engines even lol
18:32:01Araqit can't prevent it properly
18:32:16BitPuffinAraq: either way, I was thinking this would be nice, because it gives full performance
18:32:37EXetoCcan't you just load everything and make it accessible based on some flag? or is cracking common on mobile platforms?
18:32:54BitPuffinEXetoC: well with jailbroken devices they sure could crack away
18:33:13BitPuffinEXetoC: but I might have to do that exclusively for iOS :(
18:33:34AraqBitPuffin: well you have "pure data" like maps that is not code anyway
18:33:43Araqit suffices to exclude those
18:34:30BitPuffinAraq: hm? Yeah
18:34:34Araqyou can keep the logic monolithic and it'll crash when it can't load level 10
18:34:46BitPuffinBut I probably can't download those either
18:34:54Araqs/level/map
18:35:19Araqwhy not? it's just some binary blob or even a simple text file
18:35:33BitPuffinAraq: well it's obviously technically possible
18:35:40BitPuffinbut I'm wondering about app store terms
18:35:49BitPuffinbut actually
18:35:57BitPuffinI think there is a game that does that (pocket legends)
18:36:09AraqI can't follow
18:36:16BitPuffinon iOS
18:36:20Araqeither downloading files is problematic or it's not
18:36:31BitPuffinthere is a game that I think even updates itself inside the client
18:36:36Araqif it is downloading code is as problematic as downloading data
18:36:40BitPuffincalled pocket legends
18:48:47*NimBot joined #nimrod
18:49:33BitPuffinAraq: well it's not like it's shipping today lol
18:49:52*dom96 joined #nimrod
18:49:58BitPuffinAraq: okay so dylib is not allowed, but scripting engines totally fine, what bullshit
18:50:16Araqwell that's what I'm saying, create the game and then worry about iOS
18:51:05BitPuffinAraq: well I don't want to reach a point where I suddenly have to redo all the scripts in order to comply with some stupid shit
18:51:17Araqwell I would buy it for PC
18:52:01*mario-goulart quit (Ping timeout: 273 seconds)
18:52:01BitPuffinAraq: I intend to Run it on Phones and Desktop and Web :) ES 2 will give me all of that with no pain
18:52:12BitPuffin"no pain"
18:52:14BitPuffinsome pain
18:52:26BitPuffinbut not a whole lot
18:52:46Araqwe'll see about that
18:52:51BitPuffinI guess
18:52:57Araqthe controls are vastly different for a start
18:53:05Araqand can't be abstracted over
18:53:09BitPuffinFor sure
18:53:13Araqwell I don't believe they can
18:53:30BitPuffinWell I was thinking on desktop and web use traditional diablo style control scheme
18:54:12BitPuffinand on handhelds, if touch only use an on screen joystick with buttons for attack and special attacks etc and some targeting assistance
18:54:48AraqI always thought Diablo would be much more fun with keyboard input
18:55:05BitPuffinAraq: How do you mean?
18:55:16Araqpressing the arrow keys for walking is much more natural than clicking a single unit around
18:55:21BitPuffinHmm
18:55:23BitPuffinWell
18:55:33BitPuffinif I do that then it's closer to the touch counterpart
18:58:49BitPuffinAraq: then add gamepad support, and I've got myself a console version :P
18:58:55Mat2hmm, that depends on habituation I think. People which grows with smartphones and tablets may tend to touch on everything, so clicking a single unit would be more natural for them
18:59:41Mat2(or there try to touch on there displays in use of some mouse emulation)
18:59:45BitPuffinMat2: I did consider that
19:00:10BitPuffinMat2: But I always feel it's a shame when the fingers get in the way of the graphics
19:00:14AraqMat2: Diablo predates smartphones by decades
19:01:01Mat2how old is this game ?
19:01:05BitPuffinDiablo?
19:01:10Mat2yes
19:01:17BitPuffin1996
19:01:48BitPuffin17 years then?
19:02:14Mat2ok, I think there play it inside an emulator :D
19:02:46BitPuffinMat2?
19:03:50BitPuffinAraq: I don't think it seems like too much work to support the various control schemes
19:05:20*mario-goulart joined #nimrod
19:05:46Mat2as historical remark, the virtual-device-interface (VDI) of GEM was specially designed for abstracting all kinds of input *and* output devices (ther is always a way)
19:05:49*DAddYE joined #nimrod
19:07:03Mat2(GEM was also unfortunately notorious for its performance)
19:08:27BitPuffinhaha :)
19:08:29Araqdunno abstracting away all kinds of input looks like abstracting away the user experience to me
19:08:46BitPuffinnot really looking to abstract it so it's fine
19:08:53BitPuffinI'm looking to provide options
19:08:59BitPuffinthey differ from each other
19:09:04Araqsure
19:09:21BitPuffinif you use a mouse to click on things you don't need help targeting mobs
19:09:30BitPuffinbut if you are using a gamepad it could be useful
19:09:41BitPuffin(or on screen joystick)
19:12:45*DAddYE quit (Ping timeout: 264 seconds)
19:13:04BitPuffinSo I wouldn't call it abstraction
19:13:15BitPuffinI think torchlight has an xbox version actually
19:14:05BitPuffinhttp://youtu.be/4fIjmKFCTpQ
19:14:55*apotheon_ joined #nimrod
19:17:51EXetoCI played an FPS once on a console once. that was rubbish
19:18:17BitPuffinwell
19:18:30BitPuffinsome people swear by using a game pad for fps games
19:18:31BitPuffinI don't but
19:18:33BitPuffinyeah
19:19:39*Raynes_ joined #nimrod
19:20:08*xilo quit (*.net *.split)
19:20:10*apotheon quit (*.net *.split)
19:20:10*Raynes quit (*.net *.split)
19:20:15EXetoCthose people can sod off :p
19:21:00BitPuffinEXetoC: they'll play the game they want and you won't care since you only have to write a few lines of code for those additional customers
19:21:31*Raynes_ is now known as Raynes
19:22:01*Raynes quit (Changing host)
19:22:01*Raynes joined #nimrod
19:22:20*xilo joined #nimrod
19:22:59EXetoCsure $$
19:23:15BitPuffinEXetoC: and hapiness all over the place
19:23:38BitPuffinLike prince Daniel's feelings
19:25:56EXetoCål åver!
19:27:03BitPuffinål åver de plejs
19:28:31*NimBot joined #nimrod
19:29:59BitPuffinMat2: Förhoppningsvis lättare att läsa än att prata
19:32:17*NimBot joined #nimrod
19:32:31BitPuffinMat2: säkert? Isf är det kanske bara jag hahaha
19:33:07*DAddYE joined #nimrod
19:33:23EXetoCEnglish or German! Don't upset the general!
19:33:46DAddYEhello world
19:34:15EXetoChello.. human?
19:34:23BitPuffinEXetoC: I don't see why they get to speak German if we don't get to speak Swedish :(
19:34:27Mat2BitPuffin: ;)
19:35:51Mat2how much swedish speakers are around here ?
19:35:54AraqBitPuffin: quod licet iovi non licet bovi ;-)
19:36:13BitPuffinMat2: from what I know me, you and EXetoC
19:37:03BitPuffinAraq: now I don't even know what that is
19:37:14AraqLatin
19:38:15EXetoCit means, stop watching those cat videos
19:38:36BitPuffin"allowed Jupiter not allowed"
19:38:51Araqjust start a #nimrod-swedish channel or whatever
19:39:04Araqin fact German is not really fine here either
19:39:07BitPuffinFactus a universus sors of sensu
19:39:25BitPuffinAraq: well then stop speaking it :)
19:39:34AraqI always provide a translation afterwards
19:39:48Araqoften it's hard to translate :P
19:39:48BitPuffinAraq: what if we do the same?
19:40:03Araqthen you're allowed single swedish sentences
19:40:17Araqlike I'm allowed single German sentences
19:41:10BitPuffindealio
19:41:24BitPuffinnow help me find the definition of PWindow in fowl's lib
19:41:32BitPuffinfor SDL2
19:42:09Mat2BitPuffin: I'm a german speaker (that mean I can read and understand swedish and better danish to some extend but you would likely not understand me if I try to speak it)
19:42:29BitPuffinMat2: but then why doesn't Araq understand swedish
19:42:37*DAddYE_ joined #nimrod
19:44:08AraqBitPuffin: maybe I should try
19:45:12BitPuffinIf you can, doesn't that mean we can speak more swedish than you can speak german? :P
19:45:43*apotheon_ is now known as apotheon
19:45:43*apotheon quit (Changing host)
19:45:43*apotheon joined #nimrod
19:46:04BitPuffinSeriously where the heck did he get PWindow from :s
19:46:24EXetoCdoes it compile?
19:47:10BitPuffinyeah
19:47:19EXetoCI see some header imports, but that's only evaluated when SDL_Static is defined
19:47:43BitPuffinEXetoC: are you looking at this? https://github.com/fowlmouth/nimlibs/blob/2511e6fa0f965669d26f815f78167603003446ae/fowltek/sdl2.nim
19:47:49*XAMPP quit (Read error: Connection reset by peer)
19:48:27BitPuffinEXetoC: and in those headers it's not even called PWindow most likely
19:49:13EXetoC"t_type.add parseExpr("type P$1* = ptr T$1" % structName_s)[0]" ?
19:49:33*Araq__ joined #nimrod
19:49:35EXetoCin the sdl_struct macro, which is used a couple of times
19:51:15BitPuffinEXetoC: what does it do?
19:51:37BitPuffinI haven't learned nimrod100%, I thought I'd learn by doing from now on
19:52:03EXetoCI don't know exactly, but that must be the relevant part. I guess it generates type declarations automatically
19:52:49*DAddYE quit (Ping timeout: 264 seconds)
19:52:57BitPuffinEXetoC: you might be right
19:52:59BitPuffinoh well
19:53:12*Araq_ quit (*.net *.split)
19:53:39EXetoCmaybe it shows up in the generated documentation
19:54:21BitPuffinwoop there is generated documentation?
19:55:25BitPuffinokay so since nimrod "hates" oop, is it better to just have procs for creating and destroying and manipulating windows rather than an object?
19:56:14EXetoCoo is such a broad time
19:56:27BitPuffinterm*?
19:56:33EXetoCoops
19:56:49EXetoCand I don't even use auto-correction
19:56:56EXetoCand yes, you'd use regular functions for ctors, and there's a destructor pragma
19:57:15BitPuffinhmm
19:57:39EXetoCproc newFoo*(x: int): TFoo = result.x = x
19:58:45EXetoCproc destruct(o: var TFoo) {.destructor.}
19:58:54BitPuffinaha
19:59:10*q66 quit (Excess Flood)
19:59:19*q66 joined #nimrod
19:59:56BitPuffinEXetoC: does it have to be called newFoo?
20:00:02EXetoCno
20:00:56Araqin fact the convention is initFoo for TFoo, newFoo for PFoo
20:02:03BitPuffinaha
20:02:05BitPuffinI see
20:02:13BitPuffinwell, I decided to not do a new type
20:02:30BitPuffinjust createContext and destroyContext, and have the module manage a window variable
20:06:10Mat2that's the classical handler approach
20:06:43BitPuffinyep, seemed appropriate
20:10:36*gradha joined #nimrod
20:11:53*Araq__ quit (Read error: Connection timed out)
20:12:50*Araq_ joined #nimrod
20:14:02BitPuffinso in nimrod, where you'd traditionally do FLAG | FLAG2 etc how does that work out in nimrod? FLAG xor FLAG2?
20:14:13BitPuffinor is it just or
20:14:30BitPuffinah no it's not xor
20:14:32BitPuffinis it or?
20:14:43EXetoCI think so
20:15:57EXetoCpretty much all of that is in system.nim
20:16:32Araqit's 'or' but the idiomatic way is to use a bitset
20:16:52Araqthankfully C doesn't know about bit sets or type safety
20:17:06Araqso you often have no choice when you're wrapping
20:18:20BitPuffinAraq: but then what is logical or instead of bitwise?
20:18:33BitPuffinalso or?
20:18:36EXetoC"/ proc `or` n n..." :-)
20:19:12*XAMPP joined #nimrod
20:19:12*XAMPP quit (Changing host)
20:19:12*XAMPP joined #nimrod
20:20:27dom96hello
20:20:42Mat2hi dom96
20:20:52AraqBitPuffin: it's 'or' indeed
20:20:54EXetoCso it's logical for bools only as is indicated by the argument passed to the 'magic' pragma. '.magic: "Or"' for the bool variant, '.magic: "BitorI"' for all the int types (except int64, where it is "BitorI64")
20:20:58BitPuffinAraq: neato
20:21:16AraqEXetoC: the 'magic' is an implementation detail
20:21:19EXetoCI might've misinterpreted what you say, but whatever
20:21:31EXetoCAraq: right
20:22:51EXetoCbut the arguments give you a clue. it's all documented though
20:24:45dom96Araq: I generate a proc blah() = nil and call it, does the compiler simply get rid of the proc definition and call?
20:24:50dom96*if I
20:25:11Araqnot yet
20:25:18Araqit does it for a template though
20:27:46dom96what if I make the proc {.inline.}
20:27:48dom96?
20:29:58Araqthen the C compiler will do that for you, but not Nimrod
20:30:04Araqbut sure, that's fine too
20:30:57dom96cool
20:31:44dom96Not curious as to why i'm asking? :P
20:32:06Araqnot really ...
20:32:27*Araq_ quit (Read error: Connection timed out)
20:34:51*Araq_ joined #nimrod
20:36:33dom96pity
20:36:43dom96It's pretty clever.
20:37:22BitPuffindom96: tell uss!!
20:38:12dom96It's how I get the compiler to make sure that when the user calls an async proc they pass it the correct params.
20:39:24dom96I do it by generating a dummy proc which does nothing when an async proc is defined (remember that the async proc is actually converted into an iterator which has very different params)
20:40:06dom96Then when the user calls the async proc I just generate a dummy call to it so that the compiler can check the params.
20:41:12*dom96 wonders if his explanation is clear
20:41:13Araqthat works with clean templates too, no need for inline procs
20:41:25dom96but then the error message isn't as nice :P
20:41:32Mat2I am right to interpret this as some kind of dynamic type-checking ?
20:41:33Araqhow so?
20:41:48Araqerror: got (int, char) but expected one of:
20:41:58Araqtemplate typecheck(x: int, b: bool)
20:42:01Araqvs.
20:42:02dom96yeah, expected one of 'template ...' instead of 'proc ...'
20:42:05Araqproc typecheck ...
20:42:08Araqlol
20:44:51dom96I'm pretty proud of that though :P
20:45:30AraqC++ does the same for type checking in its generics
20:45:51dom96cool
20:46:03Araqwell it's considered to be good style by Stroustrup
20:46:15Mat2ehm, ok
20:48:38dom96Araq: btw I noticed that with the old doc gen I can get nice docs for my {.async.} procs generated, but not with the new one.
20:48:57dom96but i'm sure we can figure something out
20:49:23Araqwell the new one expands macros ...
20:49:28dom96indeed
20:50:11Araqdoc generation is hard with meta programming
20:50:25Araqsometimes you want to expand what's generated, sometimes you don't
20:50:52AraqI'm afraid you need to live with doc1 for now
20:50:56dom96I managed to change what is generated if 'nimdoc' is defined though IIRC
20:51:24dom96This was only for documenting the built in async functions.
20:51:36dom96Haven't tried the actual custom ones yet.
20:55:06Mat2ciao
20:55:22*Mat2 quit (Quit: Verlassend)
20:56:45Araqhmm
20:56:53Araqcool that can work
20:56:59Araqnice work, dom96
20:57:31dom96thanks :D
21:08:10*DAddYE_ quit (Remote host closed the connection)
21:52:26*gradha quit (Quit: bbl, need to watch https://www.youtube.com/watch?v=1ZZC82dgJr8 again)
21:54:53*DAddYE joined #nimrod
22:25:21dom96noooo, did github get rid of the pink unicorn for their 500 page? :(
22:25:56EXetoCI've never encountered that
22:26:35dom96Never saw this? https://github.com/images/error/angry_unicorn.png
22:26:51EXetoCok maybe
22:27:36EXetoCmaybe my brain is better at dealing with images
22:27:45EXetoCI should make a programming language with that in mind
22:27:56dom96try scratch :P
22:34:34EXetoC:>
23:01:42NimBotAraq/Nimrod asyncmacro 95dcabc Dominik Picheta [+0 ±1 -0]: Another docs fix for asyncio.
23:02:19*Araq__ joined #nimrod
23:03:01*Araq_ quit (Ping timeout: 248 seconds)
23:03:09BitPuffindom96: I've seen it :) It was epic, I think they had it because they're using the Unicorn web server
23:03:20dom96indeed
23:07:37BitPuffinokay
23:07:42BitPuffintime to work on linagl
23:13:22BitPuffincan parameterized types have more than one parameter?
23:14:27dom96yes
23:21:25BitPuffingood
23:21:34BitPuffinotherwise this vector would kind of suck :)
23:25:01EXetoCtype parameters can't yet hold values though
23:25:14BitPuffinEXetoC: hmm?
23:25:32BitPuffinEXetoC: So I can't have a dimension parameter?
23:26:01BitPuffinWhat do you guys think, should elements of a vector start being counted from 0 or 1
23:26:39BitPuffinso the first element is 1 or 0
23:28:37dom96good night
23:28:42EXetoCcya
23:28:52EXetoCI prefer 0. are you also going with arrays?
23:29:02BitPuffintype
23:29:02BitPuffin TVector[T,D]* = object of TObject
23:29:02BitPuffin elements: array[1..D, T]
23:29:09BitPuffinnighty night dom96
23:29:16BitPuffinEXetoC: hmm yeah perhaps 0
23:29:18BitPuffinI dunno
23:29:30EXetoCthat implies inheritance
23:29:31BitPuffinpeople who like math will probably prefer 1..D
23:29:33EXetoC" of..."
23:29:38BitPuffinEXetoC: sure
23:29:55BitPuffinEXetoC: I was thinking why not give the option :P
23:30:05BitPuffinbut maybe that's ridiculous
23:30:38*Araq__ quit (Read error: Connection timed out)
23:31:14BitPuffinEXetoC: but will the D parameter not work now or is that what you are saying?
23:32:54*Araq_ joined #nimrod
23:34:03EXetoCit won't. you can use type classes though, but it's a little buggy for me
23:34:30BitPuffinEXetoC: how would I do it with type classes?
23:34:32EXetoCunless you want to allow arbitrary dimensions of course, because then you can't have a fixed set of types
23:35:22EXetoCTVT*[T:TReal] = TV2|TV3|TV4
23:35:53BitPuffinEXetoC: I want arbitrary dimensions
23:36:20BitPuffinSo now the final workaround I can think of is using sequences..
23:36:22BitPuffinbut that sucks
23:36:31BitPuffinbecause this should really work
23:39:45*DAddYE quit (Remote host closed the connection)
23:40:15*DAddYE joined #nimrod
23:40:43BitPuffinAraq, Araq_ or Araq0 Is this true?
23:41:48EXetoCthey haven't gotten around to it yet
23:42:18EXetoC"But then the compiler doesn't support values as generic parameters for now ... It's better to wait until the compiler is ready for it."
23:42:45BitPuffin:(
23:42:46BitPuffinwhen is that
23:42:52BitPuffinbecause I need it like, now lol
23:44:17BitPuffindoes this mean that I'm gonna have to go in to the compiler? because I don't really know how to code a compiler :'(
23:44:37*DAddYE quit (Ping timeout: 248 seconds)
23:44:51BitPuffinEXetoC: wait a sec, what does it mean when the compiler whines about implementation of blah expected
23:46:37EXetoCexactly that. if you forget = and the stuff after, then all you have is a forward declaration
23:46:45*DAddYE joined #nimrod
23:47:09EXetoCis that the issue? I got it just now, for that very reason
23:47:22EXetoCtype Ohai
23:47:55BitPuffinEXetoC: I was doing this
23:48:09BitPuffintype Vector = object (and stuff)
23:48:14BitPuffinwith params
23:48:20BitPuffinso Vector[T, D]
23:48:24BitPuffinand then:
23:48:44BitPuffinVec3 = Vector[float, 3] for example
23:49:56BitPuffinEXetoC: is it because I haven't yet created a constructor for TVector?
23:50:28EXetoCconstructors aren't required. let me try that
23:51:17EXetoCthat literal can't be there. I just get "type expected"
23:51:50EXetoCand your error if I do "Vector[T, D]" without specifying an impl
23:52:42BitPuffinEXetoC: literal?
23:52:47BitPuffinwhat literal?
23:53:31EXetoCor value (the number)
23:54:44BitPuffinEXetoC: I'm not sure I get it, you mean the dimension?
23:56:20EXetoCyes, it simply doesn't work
23:56:36EXetoCI'm sure it's possible with some macro magic
23:56:47*DAddYE quit (Remote host closed the connection)
23:57:03*Araq_ quit (Read error: Connection timed out)
23:57:20*DAddYE joined #nimrod
23:57:27BitPuffinEXetoC: But is it valid if the dimension wasn't there?
23:58:39EXetoCnot without an implementation, unless it's found at a later stage
23:58:53*Araq_ joined #nimrod
23:59:15BitPuffinEXetoC: well but what is implementation?