<< 15-04-2014 >>

00:00:03dom96BitPuffin: huh?
00:00:10BitPuffindom96: way back in the day xD
00:00:20flaviuVarriount: Sure, it should be a piece of cake
00:00:20*DAddYE joined #nimrod
00:02:09flaviuOn the JVM boxing and the like made it impossible to get decent performance without hacks
00:02:17Demosbut how often do you go above 3D
00:02:27Demosstill faster but meh
00:04:46*DAddYE quit (Ping timeout: 258 seconds)
00:05:23*Jesin quit (Quit: Leaving)
00:06:47flaviuDemos: If you want seamless 2d noise, you need 4D base noise. If you want 3d seamless noise, I think you need (I think) 6d noise. 3d seamless noise isn't unlikely, the third dimension would typically be mapped to time
00:07:13Demosright, but that is for tileing correct?
00:07:59flaviuYes
00:09:46dom96good night
00:10:06flaviunight
00:26:36EXetoCthe VM fails way before this macro has processed this list of 2817 proc declarations :>
00:27:38*bjz joined #nimrod
00:27:48*bjz_ quit (Ping timeout: 245 seconds)
00:28:44*Demos quit (Read error: Connection reset by peer)
00:32:18*Demos joined #nimrod
00:35:16BitPuffindom96: we gotta play the hidden in the vnug or something with the folks
00:46:08flaviuI can't have a range of floats?
00:49:00EXetoCok it fails because of a proc named `end`
00:49:45EXetoCflaviu: no. I got it working by removing one of the branches from some if-statement
00:50:36EXetoCbut it might fail for complex code
00:51:06flaviuEXetoC: I'm not sure what you're replying to. I'm talking about my own attempts to do `type Foo = range[0.0..1.0]`
00:52:40EXetoCthe last question. I modified the compiler
00:52:48EXetoCbut I never tried defining a type aliases
00:54:36*q66 quit (Quit: Leaving)
00:55:14*Jesin joined #nimrod
01:00:59*DAddYE joined #nimrod
01:05:11*DAddYE quit (Ping timeout: 250 seconds)
01:16:20EXetoCAraq: It does indeed work, and 'immediate' is not needed
01:17:45fowlDemos, whats middlewar?
01:17:47EXetoCno wait
01:17:52fowlDemos, oh, duh, i see it now
01:18:23Demossorry :D
01:19:00fowlDemos, we have ODE for 3d physics btw
01:19:13fowland bullet, but the C API is limited
01:22:28flaviufowl: When you're making a game in a new language, it is best to re-implement everything so that you can brag about how productive the said language is.
01:22:33*DAddYE joined #nimrod
01:22:40flaviuor anything, not just a game
01:29:38EXetoCAraq: yes, that's correct.
01:30:47fowlphysics is like the least fun part of game development >_>
01:31:13Demoswell I have basic mesh rendering and lighting (point and directional) as well as a quick hacky way to render primitives (for editor handles and debugging). And some elementary GUI code
01:31:30flaviufowl: Really? I find it fun. Granted, my first time making physics was n^4.
01:32:38DemosI nearly failed my university physics class :D
01:43:42*nande joined #nimrod
01:53:15BitPuffinfowl: now that's where you are horribly incorrect
01:56:38*flaviu quit (Ping timeout: 246 seconds)
02:15:26fowlVarriount, do a pr for the windows changes plz and what nil were you hitting?
03:17:01Varriountfowl: You still there?
03:17:54fowlya
03:18:44fowlbrb in 15, going to the store
03:20:33Varriountfowl: To be blunt, I trust c2nim to get argument types right.
03:34:40*xenagi quit (Quit: Leaving)
03:38:46fowlthats painful. you hurt me Varriount
03:39:14Varriountfowl: Sorry, but you did ask.
03:39:50VarriountAnyway, I'll submit the PR in about 10 minutes. I accidentally deleted the new code.
03:40:14fowlVarriount, that you dont trust me to get types right makes me :(
03:40:34Varriountfowl: It's not *you* personally, its the human race.
03:40:39fowlVarriount, did yo have issue with something in particular?
03:41:02VarriountBesides the crash? Not really
03:41:09fowlwell i will say this: i used to think c's enums were always "int" but apparently according to the standard, they can be any size up to int
03:41:15fowlall of my wrappers which use
03:41:43fowl{.size:sizeof(cint).} for enum types need to be fixed, but we need a new pragma for it
03:42:12fowli tested GCC, an enum{A,B,C} is 4 bytes but that is probably not the case on other compilers
03:50:47Varriountfowl: PR sent.
03:53:23Varriountfowl: And when I try to run the test you gave, I get an error.
03:53:24VarriountTraceback (most recent call last)
03:53:24Varriountal.nim(1370) nello
03:53:24Varriountnello.nim(45) :anonymous
03:53:24Varriountnello.nim(31) reDraw
03:53:24VarriountSIGSEGV: Illegal storage access. (Attempt to read from nil?)
03:58:13*brson quit (Ping timeout: 245 seconds)
04:01:08fowlis that the one in examples/?
04:01:27fowlVarriount, ah i see that means the font didnt load
04:01:50*BitPuffin quit (Ping timeout: 276 seconds)
04:04:07Varriountfowl: You couldn't have used something a bit more ubiquitus? Like Times New Roman or Arial?
04:06:24Varriountfowl: Ok, it works.
04:07:41fowli dont have times new roman or arial
04:07:59fowlthose are monopoly fonts
04:08:53Varriount-_-
04:10:13fowlyep i dont even have comic sans ms
04:10:30fowli wonder if there a package for all these proprietary fonts
04:11:01Varriountfowl: How complete is the allegro wrapper?
04:12:15fowlVarriount, id say 92%, missing some audio functions and all of allegros thread management stuff, i probably wont wrap that though unless its requested
04:17:07Varriountfowl: Your missing create_path
04:22:00fowloh yeah
04:22:08fowl# path.h
04:22:08fowl## TODO this is an ugly module
04:22:16VarriountAnd the al_store_state
04:22:39fowlthats thread stuff
04:24:37Varriountfowl: And the file management stuff?
04:25:39fowlalright jeez
04:25:43fowlwe'll call it 85%
04:25:58VarriountI'll stop nitpicking now.
04:28:09Varriountfowl: You know, one of the things that would put nimrod on the map is easy iOS/Android integration.
04:28:21VarriountThat's what all the cool kids are doing these days.
04:28:42*darkf_ joined #nimrod
04:29:28VarriountHey darkf, long time no see
04:29:58fowlVarriount, yea but wiht android dev you still have to write most of your app in java
04:30:23fowlios is probably better but i dont own an apple computer so i cant
04:30:37Varriountfowl: Not true. The NDK has an interface to the base application hooks
04:31:23Varriountfowl: The main problem is documentation. The NDK's documentation is.. insubstantial.
04:32:07*darkf quit (Ping timeout: 265 seconds)
04:33:52*darkf_ is now known as darkf
04:42:17*renesac quit (Ping timeout: 250 seconds)
04:45:41*Jesin quit (Quit: Leaving)
04:45:48fowlVarriount, are you on windows?
04:48:12Varriountfowl: Yes.
04:48:52fowlcan you run this through msvc and see what it says
04:49:05*darkf_ joined #nimrod
04:49:09Varriount"This" being...?
04:50:21fowl#include<stdio.h>
04:50:21fowlenum{A,B,C} foo;
04:50:21fowlint main(void){ printf("%d\n", sizeof(A)); return 0; }
04:52:25*darkf quit (Ping timeout: 265 seconds)
04:53:31Varriountfowl: 4
04:53:57*darkf_ is now known as darkf
04:54:05VarriountAlso, that's with the 64 bit compiler
04:54:13fowlcool thank you
04:54:45VarriountI get the same with the 32 bit compiler
04:55:51*renesac joined #nimrod
04:57:55Varriountfowl: And both 64 and 32 bit gcc report 4
04:58:15fowlyea
04:58:30fowli just tried it with clang and tcc they said 4 also
04:58:45Varriountfowl: Have you tried pelles c compiler?
04:59:11VarriountAnd I think Demos has a copy of the icc (Intel Compiler)
04:59:57fowli dont see pelles or icc in my packages
05:00:06DemosI dont think pelles works at all
05:00:23Demosicc is not in a package manager (the comercial version costs a whole lot of cash)
05:00:54VarriountDemos: It's surprising Intel makes any money off of it, being so expensive and all.
05:01:06fowlDemos, can you try the code i pasted above
05:01:17Demosnot now, in a bit
05:03:33fowlsure
05:04:01*isenmann joined #nimrod
05:04:35Varriountfowl: My guess is that 4 is the "unofficial standard" of enum size.
05:08:27VarriountA great way to fall asleep: Read through the entire list of optimizations that GCC can use.
05:16:41*Mordecai joined #nimrod
05:16:59*Mordecai is now known as Guest6461
05:17:23*psquid quit (Ping timeout: 245 seconds)
05:27:17Demosfowl: I do not have icc installed any more
05:27:36DemosI can perhaps do it tomorrow(ish) when I am on a university workstation
05:27:40VarriountDemos: ?!
05:28:05DemosI nuked my windows partition to get rid of adobe products
05:28:21Varriount:/
05:28:22fowlDemos, no rush, i bet the only platform enums are < 4 bytes is embedded stuff
05:28:53*bjz quit (Ping timeout: 240 seconds)
05:28:56*bjz_ joined #nimrod
05:29:01VarriountDemos: Perhaps you didn't know this, but Windows has this great feature called "Uninstalling Programs"
05:29:31fowlVarriount, it also has a critical mass at which point you have to nuke it or it will nuke you
05:30:09fowlopen IE, see 15 toolbars, you have two options: run away and never look back or kill it
05:30:47*DAddYE_ joined #nimrod
05:33:51*DAddYE quit (Ping timeout: 250 seconds)
05:44:04Varriountfowl: Whereas some *cough* *cough* may use explosives, I go in for delicate surgery.
06:19:56*vendethiel quit (Read error: Connection reset by peer)
06:27:19*gXen joined #nimrod
06:27:46*darkf_ joined #nimrod
06:30:57*darkf quit (Ping timeout: 252 seconds)
06:32:50*darkf_ is now known as darkf
06:35:18*vendethiel joined #nimrod
06:42:57*Demos quit (Read error: Connection reset by peer)
06:49:50*Simplygood joined #nimrod
06:51:24Simplygoodhow can I join lines in nimrod like python does with the \ ?
06:55:26fowlSimplygood, you can put the operator before the newline
06:55:37fowlSimplygood, cant use \ though, its available to use as an operator
06:59:14SimplygoodThanks
07:12:20*Simplygood quit (Ping timeout: 276 seconds)
07:21:05*Simplygood joined #nimrod
07:22:50Simplygoodcalculation() proc calculation() = compiler output: undeclared identifier: 'calculation' Is there a way for the nimrod compiler automatically add the declarations from the definitions so they don't have to be manually at at the top of each module?
07:24:46Simplygoodauto declarations from the function definitions
07:26:32fowlSimplygood, i think there is an option to turn it off but it is beta
07:27:02fowlSimplygood, heres some info on whats happening http://build.nimrod-lang.org/docs/tut1.html#forward-declarations
07:30:29fowlim not finding the option, it might have been removed
07:31:12SimplygoodI'm guessing that in future releases of nimrod the need to declare forward declarations may not be required, from the tutorial 1, "Later versions of the language may get rid of the need for forward declarations.
07:32:10fowlyea
07:32:16fowlwelcome to #nimrod btw
07:37:49SimplygoodThanks
07:39:49Araqhi Simplygood welcome. check out our roadmap
07:40:42Araqwhich says "we have 2 ways to deal with the problem, 1 conservative and thus will work plus 1 hexperimental idea"
07:40:54Araq*experimental
07:43:50Araqunfortunately the experimental way has been implemented :P causes crashes and thus was disabled again
07:47:10*nande quit (Remote host closed the connection)
08:12:53*zahary_ quit (Read error: Connection reset by peer)
08:16:32Simplygoodcan this c++ function example be implemented in nimrod? drawbox(box<int>(10,10,10,10), true, true, 1);
08:18:24Simplygoodparticularly the box<int>(10,10,10,10)
08:24:18fowlnimrod has generics
08:29:18Simplygoodhow would drawbox(box<int>(10,10,10,10), true, true, 1); be written in nimrod?
08:29:50fowldrawBox box[int](10,10,10,10),true,true,1
08:33:27SimplygoodThanks!
08:41:18fowlyou likely wouldn't need the [box] as int would be inferred
08:55:40Araqfowl: since you're patching 'add' already, can add the check for the shallowBit as well please?
08:55:58Araqand perhaps we should rename 'shallow' to 'freeze'
08:56:12Araqeven though it only freezes the length of a seq/string
08:56:16fowli ran into problems with newstringofcap
09:01:18*runvnc joined #nimrod
09:01:32runvncdom96: thanks for look at the redis pull again
09:01:52runvncgoing to do those fixes tomorrow. bedtime now
09:02:01*runvnc left #nimrod (#nimrod)
09:02:53fowlAraq, some of the functions in system.nim can be shortened like the string functions which use the same magic func adding string/char can now take string|char
09:03:03fowlshallow() can take string|seq
09:03:46Araqsure
09:30:47fowlAraq, i think we need a new pragma for enums
09:31:05dom96'morning
09:31:24fowlgood morning
09:32:40Simplygoodgood morning
09:36:54fowlwow.. in c11 "void f(double x[const], const double y[const]);" is the same as "void f(double * const x, const double * const y);"
10:03:29Araqfowl: yeah I got the memo
10:14:58Simplygoodvar x = 1 case x of 1: echo "1 is an integer" In this example if else is not included "Error: not all cases are covered", but here: var text1="hi" case text1 of "hi": echo "hello" else is not needed. Any particular reason?
10:15:21Araqargh not again
10:15:35Araqok ok we'll change the spec
10:16:42fowlSimplygood, the reason is there is a finite number of integers but potentially infinite combinations of characters for strings, so it wouldnt be possible to cover every case with strings
10:22:28Simplygoodif nothing is going to be placed in else is it recommended to write: else dispose?
10:22:58Araqelse: discard, yes
11:02:24SimplygoodI know seqvar.add(1) adds a sequence value, but don't know how to remove it. Is a function available to remove a value from any position in a sequence?
11:09:34fowlSimplygood, del and delete
11:10:17fowlone of them is O(1) the other is O(n)
11:10:22fowlboth are in the system module
11:14:09SimplygoodThanks
11:15:02fowlnp
11:25:10*Simplygood says goodbye to C++.
11:25:42fowl(:
12:25:36*BitPuffin joined #nimrod
12:30:00fowlcan this be improved? https://github.com/fowlmouth/allegro5/blob/master/src/al.nim#L1374
12:38:40Araqfowl: "block:" should not be necessary
12:39:44Araqand you should file a bug report about the necessity to wrap main for allegro.
12:39:58Araqthat pisses me off like nothing else really
12:40:14Araqit's like the devs have never written a wrapper in their entire lifetime
12:40:33fowli didnt want to pollute with TBlah and hax
12:40:46Araqtemplates are hygienic now
12:40:54Araqthey don't pollute
12:41:18fowlAraq, its not like sdl where it tries to hijack main
12:43:01Araqyeah file a bug report for SDL too
12:43:17AraqI'm tired that we're the only ones who get bug reports for broken designs
12:51:12NimBotAraq/Nimrod devel 21d0cc8 Dominik Picheta [+0 ±7 -0]: Add checks for invalid socket when creating sockets.
12:51:12NimBotAraq/Nimrod devel 9e7c0fd Dominik Picheta [+0 ±2 -0]: Fixes #1005
12:52:19fowlah
12:53:44fowljust like SDL, allegro's run_main is only needed for OSX
12:57:21*Simplygood quit (Remote host closed the connection)
13:00:34EXetoCglEnable(37824732) -> no error :E
13:00:38EXetoCgotta be a driver issue or something
13:01:07BitPuffinEXetoC: 38924732 is GL_DEPTH_TEST didn't you know?
13:02:16EXetoClul sure
13:08:48*[1]Endy joined #nimrod
13:28:25*[2]Endy joined #nimrod
13:32:04*[1]Endy quit (Ping timeout: 258 seconds)
13:37:41EXetoCso, I can remove gl.nim, right?
13:43:22Araqright
13:43:23fowli dont think it should be deleted
13:43:27fowlit has a lot of history
13:43:36EXetoCeh ok
13:44:32fowlnvm i just realized i dont care about history
13:45:37fowlgood nigh
13:48:17EXetoCok.. :p
13:48:20EXetoCbye
13:48:55*[1]Endy joined #nimrod
13:49:37*darkf quit (Quit: Leaving)
13:51:40*[2]Endy quit (Ping timeout: 240 seconds)
14:09:25*[2]Endy joined #nimrod
14:12:07*[1]Endy quit (Ping timeout: 250 seconds)
14:22:45EXetoCI have been highly productive this week: +8,088, -11,269
14:25:24*gXen quit ()
14:29:56*[1]Endy joined #nimrod
14:32:48*[2]Endy quit (Ping timeout: 245 seconds)
14:39:19BitPuffinokay so apparently replacing TMat4 with TMatrix[float32, 4, 4] din't help with my problem
14:39:22BitPuffingod cuk
14:40:38BitPuffinAraq, zahary: Do you guys know of a possible workaround for https://github.com/Araq/Nimrod/issues/1082 ?
14:44:24BitPuffindamn showstoppers
14:44:49BitPuffinmeh, who needs matrix multiplication for rendering anyway :P
14:50:26*[2]Endy joined #nimrod
14:52:37*nande joined #nimrod
14:52:52*[1]Endy quit (Ping timeout: 240 seconds)
14:57:18BitPuffinAraq: it's not Allegro or SDLs fault, it is operating systems such as Mac OS X
15:05:38BitPuffinno google I don't want to show results for naked nimrod rather than nake nimrod thank you very much
15:06:07BitPuffindid you mean naked? NO
15:10:57*[1]Endy joined #nimrod
15:13:38*[2]Endy quit (Ping timeout: 245 seconds)
15:25:47EXetoCfowl: so, what should be used for rendering?
15:30:26*[2]Endy joined #nimrod
15:31:12EXetoCdom96: you fixeded a compiler bug? awesome
15:33:09*[1]Endy quit (Ping timeout: 252 seconds)
15:35:47*[1]Endy joined #nimrod
15:36:02dom96yeah, it was a pretty simple bug though.
15:39:07*[2]Endy quit (Ping timeout: 265 seconds)
15:46:52BitPuffindom96: ermagerd grats :D
15:56:18reactormonkdom96, now keep going ;-)
15:56:19*[2]Endy joined #nimrod
16:00:01*[1]Endy quit (Ping timeout: 250 seconds)
16:06:39BitPuffindom96: could you fix my bugs now? :)
16:06:54*Demos joined #nimrod
16:09:15EXetoChe does indeed not have enough things to do I think :> so yeah that'd be great
16:10:05BitPuffinexactly
16:10:15BitPuffindom96: no time to waste!
16:10:26dom96yeah, it's not like I have exams in a couple of weeks...
16:11:08DemosEver have one of those weeks where git says you changed like 300,000 lines.... dem line endings
16:14:02EXetoCdom96: is that important?
16:14:31dom96oh not at all. They only determine whether I will get into Uni or not.
16:14:58EXetoCthat's pretty important
16:15:53EXetoCDemos: in the log or when viewing the diff?
16:16:15Demosdun know, just when pulling down on another computer
16:16:54*[1]Endy joined #nimrod
16:17:51EXetoCyou should set up git so that any different newlines are converted when committing
16:18:20DemosI have it set to keep whatever I have on my local repo and commit unix
16:18:31dom96yeah bbl
16:19:43EXetoCDemos: core.autocrlf=input?
16:19:50Demosyeah I think so
16:20:28*[2]Endy quit (Ping timeout: 240 seconds)
16:22:26BitPuffindom96: pff, not important
16:29:56*DAddYE_ quit (Remote host closed the connection)
16:30:22*DAddYE joined #nimrod
16:34:55*DAddYE quit (Ping timeout: 258 seconds)
16:37:31*[2]Endy joined #nimrod
16:37:40*Matthias247 joined #nimrod
16:40:52*[1]Endy quit (Ping timeout: 240 seconds)
16:41:56*q66 joined #nimrod
16:41:56*q66 quit (Changing host)
16:41:56*q66 joined #nimrod
16:48:03*Demos quit (Quit: Textual IRC Client: www.textualapp.com)
16:50:14*q66 quit (Ping timeout: 252 seconds)
16:52:12*q66 joined #nimrod
16:52:12*q66 quit (Changing host)
16:52:12*q66 joined #nimrod
16:57:56*[1]Endy joined #nimrod
17:01:11*[2]Endy quit (Ping timeout: 276 seconds)
17:01:56*brson joined #nimrod
17:05:12*io2 joined #nimrod
17:13:07*DAddYE joined #nimrod
17:18:29*[2]Endy joined #nimrod
17:21:03*[1]Endy quit (Ping timeout: 250 seconds)
17:28:43*Jesin joined #nimrod
17:30:11*shodan45 joined #nimrod
17:32:18BitPuffindom96: err, is #1096 really a "showstopper"?
17:33:07BitPuffinconsidering you can just ack for those
17:33:10BitPuffinright EXetoC?
17:34:05EXetoCack, grep, FINDSTR
17:35:28OrionPKfowl you around?
17:35:37OrionPKthe sdl2 babel package has a dependency on include fowltek/sdl2/private/keycodes ?
17:38:23*vendethiel quit (Ping timeout: 250 seconds)
17:38:53*vendethiel joined #nimrod
17:38:57*[1]Endy joined #nimrod
17:41:40*[2]Endy quit (Ping timeout: 240 seconds)
17:46:47BitPuffinal.nim(503, 15) Error: undeclared identifier: 'dllMain'
17:46:49BitPuffinhm
17:47:04BitPuffinah
17:50:57BitPuffindamn it fowl, why are you linking to such specific versions of allegro
17:51:31BitPuffinit is 5.1 you should be wrapping anyway
17:55:27BitPuffinin fact the version of the babel package is 5.1 but the library you are linking against is 5.0
17:59:28*[2]Endy joined #nimrod
18:01:58*[1]Endy quit (Ping timeout: 245 seconds)
18:06:20BitPuffinfowl: you have a PR, however for some reason al.init() fails for me with nimrudd, maybe it's because I need to use the main thing perhaps
18:07:45BitPuffinhmm, tried to use the al_runmain template but didn't wurk
18:07:48BitPuffinI'll check later
18:07:50BitPuffinbrb
18:17:06*bjz_ quit (Read error: Connection reset by peer)
18:17:59*bjz joined #nimrod
18:20:01*[1]Endy joined #nimrod
18:22:58*[2]Endy quit (Ping timeout: 265 seconds)
18:40:29*[2]Endy joined #nimrod
18:43:16*[1]Endy quit (Ping timeout: 240 seconds)
18:58:55reactormonkany `Option` or `Maybe` implemented yet?
19:01:00*[1]Endy joined #nimrod
19:04:03*[2]Endy quit (Ping timeout: 265 seconds)
19:04:03reactormonkhow would you cache values?
19:06:53reactormonkI'm basically looking for a lazy val from scala.
19:21:30*[2]Endy joined #nimrod
19:24:03*[1]Endy quit (Ping timeout: 245 seconds)
19:39:53*[2]Endy quit (Ping timeout: 245 seconds)
19:41:44reactormonkAraq, IIRC you wouldn't like a `msg` that outputs to stderr, similar to echo?
19:42:02Araqyeah, stderr sucks
19:42:33reactormonkI treat it as message stream.
19:42:48AraqI pretend it doesn't exit
19:42:51Araq*exist
19:42:54reactormonkstdout is data stream.
19:43:05Araqbli bla blub
19:43:09reactormonkaka stdout -> programs, stderr -> humans
19:43:17reactormonkAraq, ok, so I'll define msg :-P
19:43:23AraqI've heard that before
19:43:37reactormonkyou still don't like it.
19:45:17reactormonkbtw, better way to write: http://lpaste.net/102743
19:48:30NimBotAraq/Nimrod devel 6baedfe Grzegorz Adam Hankiewicz [+0 ±1 -0]: Fixes typo to be able to use debugger.
19:48:30NimBotAraq/Nimrod devel 3670fe2 Simon Hafner [+0 ±1 -0]: Merge pull request #1098 from gradha/pr_fixes_debugger_typo... 2 more lines
19:57:01Araqreactormonk: dunno. it's fine
20:03:05*nande quit (Remote host closed the connection)
20:03:14*DAddYE_ joined #nimrod
20:03:57reactormonkAraq, ok
20:04:34*DAddYE_ quit (Remote host closed the connection)
20:06:55reactormonkecho("$1% done\r" % [current/total]) # gives me (string, Array constructor[0..0, float]), but expected strutils.%(formatstr: string, a: openarray[string])
20:07:05*DAddYE quit (Ping timeout: 276 seconds)
20:08:28Araqwell yes
20:08:38reactormonkoh, it wants strings.
20:08:42Araquse strutils.format for a varargs[`$`] version
20:13:13reactormonkis cs partial or cs none default?
20:13:37reactormonkI got a type Model and a var model, and it complained about redef
20:14:08*DAddYE joined #nimrod
20:14:15Araqnone is still the default
20:14:33reactormonk:-(
20:14:55reactormonkdoes the compiler compiled with cs:partial?
20:15:48Araqyou need to change your config to enable it
20:16:13reactormonkthere's a few libs that don't
20:17:50reactormonkAraq, the idea is to make the compiler compile with cs:partial, as well as the libs?
20:18:40Araqthe compiler bootstraps with cs:partial since months already
20:18:58Araqvarious libs work with it, various do not
20:19:12Araqfix them with "nimrod pretty"
20:20:03BitPuffinhowever with some flags it doesn't do it with partial
20:20:16BitPuffinas we discovered when trying to fix the template issue thing
20:22:06Araq?
20:22:14Araqno idea what you mean
20:23:08BitPuffinAraq: well when you were playing starcraft with dom and I was poking around with stuff that you told me there was some case stuff that I had to change in order to get the compiler to build when you told me to use certain flags
20:23:27Araqah now I remember
20:23:48Araqthat's gone though
20:58:55Araqping zahary
21:04:24*Jesin quit (Remote host closed the connection)
21:06:27*flaviu joined #nimrod
21:06:54NimBotAraq/Nimrod devel 941cc93 Dominik Picheta [+0 ±3 -0]: Fixes docgen.
21:07:02Araq:O
21:07:13flaviuIs that the when false bug?
21:07:15Araqdid you fix the missing index entries?
21:07:48dom96no
21:07:59Araqaww
21:08:04dom96lol
21:08:29dom96Araq: You agree with me that that is a showstopper?
21:08:57Araqno.
21:09:13dom96aww
21:09:14Araqflaviu: what's the "when false" bug?
21:10:18flaviuThe missing index entries. I think its because the docgen isn't being run with the correct flags for the `when`s to be true, so constant folding removes them from the docs
21:10:26flaviuor not index entries
21:10:30flaviusorry, doc entries
21:10:48Araqflaviu: yeah that's what I thought too
21:15:04dom96but they are only missing from the index not from the actual module docs
21:15:49flaviudom96: <C-f> atomic in http://build.nimrod-lang.org/docs/system.html
21:15:49flaviuThere should be a lot more than 4 entries
21:15:52EXetoCshowstopper? hm
21:16:03dom96flaviu: That's a different issue
21:16:23dom96osError is missing from the index
21:16:29dom96and yet it exists in os.html
21:16:51flaviuOk, so different bugs
21:17:05Araqhttp://nimrod-lang.org/theindex.html has both osError and shallow
21:17:19Araqso it seems to be a regression
21:17:25dom96indeed.
21:17:37dom96Could have been caused by gradha's patch
21:17:44Araqyeah
21:18:20dom96how should the when doc gen issues be handled?
21:18:27flaviuabout the json pr: IMO, the ideal solution is to have a pragma that requires checking for nil, sort of like the exception pragma.
21:19:20dom96Ideally the docgen should show the whens.
21:20:13flaviuDoes constant folding have its own compiler pass?
21:20:21*brson quit (Ping timeout: 265 seconds)
21:20:34dom96unless it can prove that the other branches of the when export the same symbols
21:21:00dom96Then it should check which branch has the most docs and use it :P
21:21:05flaviuWhat if the docs on the other branches are diffrent?
21:21:40dom96Current convention is to document only one branch.
21:21:47flaviuI think that the whens should be reflected in the structure of the docs, literally spelling out the condition and giving the user the choice on what to use
21:23:08dom96In most cases the when is used when writing code for different OS'.
21:23:35dom96The docs contain information about the different OS' supported in the one branch.
21:24:02flaviuThe user should know from the docs that certain code is only available on certain OSes, and what those OSes are
21:25:10dom96Oh well. That can be implemented in the next release.
21:26:01flaviudom96: Check out the scala docs: http://www.scala-lang.org/api/current/#scala.Array
21:26:01flaviuOther than the loading performance, they are perfect in terms of layout
21:27:42dom96How do Scala docs handle OS differences?
21:30:25flaviuIt doesn't really, the JVM does that for it. But when it does, it just throws a runtime exception if the method isn't supported
21:44:31*brson joined #nimrod
21:54:19EXetoCthere are aliases both with and without the T prefix in opengl.nim. kinda ugly
21:59:28EXetoCI'll deprecate those that has it assuming that the plan still is to get rid of them
22:06:51Skrylarmeep
22:07:45EXetoCboink
22:07:57dom96glipglop
22:17:56flaviuOk, http://i.imgur.com/ZFsGOcB.png
22:19:31fowlBitPuffin, 5.1 will not be binary compatible
22:20:12BitPuffinfowl: yeah but I'm the only one who uses allegro here and I use allegro 5.1 xD, plus you don't wanna have to spend a bunch of time updating for 5.1 right?
22:21:19fowlBitPuffin, you wont have to, it will be source compatible meaning they'll replace some functions with macros
22:22:28SkrylarAllegro :3
22:22:39BitPuffinfowl: it is currently source compatible but they state that everything is subject of change
22:22:56SkrylarSadly I opted for SDL when I started moduling, mostly because if you're doing 3D then there isn't much allegro does for you :(
22:23:04EXetoCcan I have write access to the OpenGL repository? I'll wait for a review either way
22:23:08flaviuThat's the layout I would find ideal for the docs, it would allow for the user to decide what when statements should be enabled and it looks a bit nicer.
22:23:24fowlSkrylar, al5 uses opengl
22:23:38Skrylarfowl: I'm aware, however AL is primarily a 2d game library
22:23:51fowlSkrylar, you can say the same about sdl
22:24:09Skrylarmeh.
22:24:22BitPuffinSkrylar: allegro does do 3d
22:24:32Skrylaras I said, I liked allegro; i've just been using SDL because half the serious people i talk to outside of IRC wretch when you go "hey its allegro" o_O
22:24:35BitPuffinSkrylar: it's basically equivalent to SDL except it isn't as shitty
22:24:43Skrylarhow is sdl2 shitty
22:24:47BitPuffinSkrylar: yeah that's true
22:24:52fowlSkrylar, thats because they remember AL3/4
22:24:57EXetoCBitPuffin: more than allowing you to create a window and call OpenGL functions?
22:25:12SkrylarAL4 was also GL-based, but yeah.. earlier ones were really bad in some ways
22:25:12EXetoCthat's the first thing that came up before when I googled "allegro 3d"
22:25:45BitPuffinEXetoC: stopid fucken api
22:25:54BitPuffinI mean Skrylar
22:26:10BitPuffinEXetoC: loading textures playing sounds etc
22:26:26fowlEXetoC, well it does some functions for transformations too
22:26:36EXetoCright
22:26:45BitPuffinEXetoC: now be quiet and let the men talk
22:26:47BitPuffinjust kidding
22:26:49BitPuffinhugs?
22:26:51BitPuffinhugs.
22:26:57fowllol
22:27:03fowlEXetoC, ill get you permissions in a sec
22:27:12BitPuffinSDL:
22:27:14BitPuffinwindow = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
22:27:15Skrylarnow that sdl2 is bsd'd .. well, thats neat.
22:27:28BitPuffinAllegro: al_create_window(800, 600)
22:27:32BitPuffin;
22:27:49fowlBitPuffin, you should include the calls to set_new_window for the same options that sdl_createwindow has
22:27:58Skrylardon't forget to bind the window's event handler to an event sink :P
22:28:13BitPuffinfowl: yeah true, I really didn't even read how to do it because it's so fucking stupid xD
22:28:37BitPuffinSkrylar: you do that in allegro as well, well you don't have to
22:28:39Skrylar( though i'm not sure why there is fighting over libs; allegro is great if you want loads of 2D stuff, sdl is great when all you want is a GL window )
22:29:03BitPuffinSkrylar: no, GLFW is great when all you want is a GL window
22:29:21Skrylari seem to recall SDL was used on game consoles
22:29:35Skrylaranyhow
22:29:57BitPuffinAllegro is nice when you either wanna do 2d, or have a GL or D3D window and also have support for loading images, audio files etc and sound playback
22:30:09BitPuffinSDL is nice when you want Allegro but also enjoy paper cutting your peehole
22:30:38Skrylardisregarding the massive number of games that use neither and have fmod bolted on for sound :P
22:30:48fowlEXetoC, opengl could use some examples (:
22:31:11BitPuffinfowl, EXetoC: Yup, especially since I do my opengl stuff BEHIND CLOSED DOORS
22:31:17BitPuffinI build in NSA backdoors and shit
22:31:58BitPuffinwell I failed with my allegro example
22:32:07BitPuffinit is actually window = al_create_display(800, 600);
22:32:10BitPuffinbut whatever
22:32:39BitPuffinfowl: al.init fails in nimrod, waii
22:32:42BitPuffinkawaiii
22:33:33EXetoCfowl: with GLFW?
22:33:35fowlBitPuffin, u mean the original al_init or the wrapped function
22:33:40EXetoCI could also patch something together with wgl and glx
22:34:07BitPuffinfowl: there is a wrapped one?
22:34:23EXetoCassuming that those modules work. I guess so. I don't have any of that in the newly generated opengl.nim
22:34:34SkrylarI have had a bad taste in my mouth from GLFW
22:34:42SkrylarConceptually its great, I've had too many inexplicable bugs
22:34:45fowlEXetoC, yea use something that lets you skip the window management part, glfw is fine
22:34:46BitPuffinah there is an example
22:34:51BitPuffinEXetoC: I basically do what you do
22:36:12fowlEXetoC, i made you a contributor btw
22:36:47fowlEXetoC, why did you change src to lib
22:37:00BitPuffinal_main:
22:37:02BitPuffin echo al.init()
22:37:05BitPuffinfalse
22:37:25*BitPuffin glances over to C
22:38:06fowlBitPuffin, i know what the problem is
22:38:11BitPuffinfowl: macosx?
22:38:19fowlversion_int referes to 5.0.10
22:38:29BitPuffinseeeeeeeeee
22:38:44BitPuffinit should be 5.1
22:38:52BitPuffin5.1 has android support
22:38:55fowl5.1 isnt stable, why wrap it
22:38:56BitPuffinor was it ios
22:39:01BitPuffinfowl: stable enuf
22:39:03fowlit will be out in a couple weeks
22:39:23BitPuffinwoa what an overreaction
22:39:48BitPuffinfowl: exactly, so why not just wrap it instead of going and changing it then?
22:39:53BitPuffinI prefer to use it now
22:40:01BitPuffinthey need all the testing they can get anyway
22:40:03EXetoCfowl: dunno. OCD?
22:40:23fowlBitPuffin, because i'll have a complete changelog i can look at and only have to do it once
22:40:51fowlBitPuffin, plus i havent decided if i should use tags for versions or -d:define
22:41:31BitPuffinthat did fix it
22:41:35fowlEXetoC, all the other official packages are in src/ examples/ >_>
22:41:49BitPuffinfowl: branches
22:42:21BitPuffinwell
22:42:26BitPuffintags might be fine actually
22:42:31BitPuffinI dunno
22:42:44BitPuffinI wouldn't do -d:define
22:42:50BitPuffinbecause that makes the code a mess
22:42:53BitPuffinuse the source
22:42:55BitPuffin(control)
22:43:19Araquh oh mingw now has a pckage manager ...
22:43:28BitPuffinAraq: nice
22:43:33EXetoCfowl: >.<
22:43:46EXetoCfowl: didn't babel hardcode it before?
22:43:49EXetoCI'll revert
22:45:31BitPuffinfowl: well looks like al_main works at least
22:46:36EXetoC*hardcoded
22:47:15BitPuffinfowl: good work fine sir
22:48:57BitPuffinnot even sure why I'm working on my game when I won't be able to do math lol
22:49:04fowlnow plz just get the binaries for 5.0.10 from #allegro
22:49:18fowli think its pretty hilarious they dont compile for os x
22:49:30fowlsuck it, apple
22:50:06BitPuffinfowl: do you only have vector math in fowltek?
22:50:30BitPuffinfowl: lol, I compiled 5.1 from source anyway
22:50:46BitPuffinand having my own local version of your allegro thing isn't that painful
22:50:46*Matthias247 quit (Read error: Connection reset by peer)
22:51:11BitPuffinfowl: I'll change my pull request for ya
22:51:38BitPuffinfowl: at least link to 5.0 instead of 5.0.10
22:51:56BitPuffinotherwise you will break if you use tags and they release 5.0.11
22:53:09fowlok
22:54:10BitPuffinfowl: I'll do it for you
22:54:32fowlty
22:56:33BitPuffinalso making it easier to change
22:57:36fowli didnt know what the dlls would be called on the other platforms so i just went with what mine were
22:57:43fowlbut i see now i do have 5.0 links
22:57:47fowl:x
22:58:04fowlbrb taco bell
22:58:24BitPuffinyep
22:58:26BitPuffin:)
22:58:34fowli added you as collab
23:01:36BitPuffinfowl: okay ready to mergo
23:01:38BitPuffinoh
23:01:40BitPuffinI see
23:01:47BitPuffinwell I still want you to review it and test it before merging
23:02:04BitPuffinsince I don't have 5.0 :P
23:02:38BitPuffinenjoy the taco bell !
23:03:44reactormonkAraq, when will cs:partial go default?
23:05:04BitPuffinreactormonk: in compiler builds or everywhere?
23:05:16BitPuffinbecause I don't think it will ever be default everywhere, but I believe it already is in the compiler
23:06:05Skrylar:\
23:06:13BitPuffin?
23:06:15Skrylarhe already said there won't be any massive syntax changes any time soon
23:06:22Skrylarwaiting one week and asking again won't change that
23:09:39EXetoCGLhandle is an alias for GLuint is an alias for uint32, but it's still not possible to implicitly convert from GLhandle to GLuint
23:11:05reactormonkBitPuffin, nimrod c default
23:12:12Skrylari kind of wonder sometimes who is really wanting oO = o_o(Oo) to be compilable
23:12:24EXetoCand this is not an actual OpenGL type I think, so I think it should be removed. some high level module can deal with this sort of stuff
23:14:38EXetoCok some other parameter is causing a problem. it might be a regression
23:16:28*Guest6461 quit (Ping timeout: 240 seconds)
23:16:31*darkf joined #nimrod
23:16:36EXetoCnevermind
23:16:39*Guest6461 joined #nimrod
23:16:46EXetoCI should get myself a rubber duck
23:18:14*Rubber_Duck joined #nimrod
23:18:18*Rubber_Duck quit (Client Quit)
23:18:43*Rubber5Duck joined #nimrod
23:19:33EXetoCthe problem is that the current opengl.nim uses cstring for these parameters. so many corner cases..
23:19:42Rubber5DuckQuack
23:19:59EXetoC:p
23:21:55dom96'night
23:25:27*Rubber5Duck left #nimrod (#nimrod)
23:25:44BitPuffinnight dom96
23:25:54BitPuffinreactormonk: I don't think that will or should happen
23:31:41reactormonkBitPuffin, how so?
23:31:45reactormonkI think it's a good idea
23:32:06reactormonkhmm, just wanted to ask dom96 how to dump my TTable[string, TTable[string, float]] into json
23:32:21flaviuI'm also in favor of it, as well as of spaces
23:32:37flaviureactormonk: Have you tried marshal?
23:32:39BitPuffinreactormonk: why?
23:33:26reactormonkflaviu, ah cool
23:34:22*darkf_ joined #nimrod
23:36:12*darkf quit (Ping timeout: 258 seconds)
23:36:15*darkf_ is now known as darkf
23:41:08Skrylarbitpuffin's argument earlier about createwindow reminded me
23:41:24Skrylari once spoke to a dev for an indie mmo, who complained he had login issues from poorly using gdbm
23:41:36Skrylarpeople logging in and out was bottlenecking in it
23:42:15Skrylarso we suggested he use tokyocabinet, showed him how it had compatability interfaces for these different things so it would literally be a one line swapout and recompile.. get 10x the performance
23:42:52Skrylarhe complained that when he ran `strings x | wc` the tokyocabinet file had "more symbols" than gdbm and thus was "worse", despite the symbols being the aforementioned compatability interface for one-line speedups
23:43:57Skrylarmakes me think of how some progreammers have very strange metrics for deciding when something is too unsuitable
23:46:28reactormonkflaviu, hm, marshal fails with OOM
23:48:22flaviureactormonk: I'm not sure of the specifics of marshel, but do you have loops in your structure?
23:48:37EXetoCfowl: I'll wait for a review. No hurry
23:49:36reactormonkflaviu, nope, it's TTable[string, TTable[string, float]]
23:50:39reactormonkjust quite big.
23:51:45flaviuWhat is the typical table size? Try choosing an initial capacity that is reasonable for your application.
23:52:10reactormonkflaviu, it's ~ 1GB
23:52:24reactormonkflaviu, but the table creation is fine, the marshalling is what goes OOM
23:52:39reactormonkhmmm, maybe I shouldn't echo but got the pstream route
23:52:52flaviuI mean the subtables, are they smaller than 32 elements?
23:53:05reactormonkI have no idea, some are
23:53:13*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
23:53:46flaviuMy reasoning is that the empty spaces might be part of the problem
23:58:09reactormonkas mentioned, it's the marshalling. not the table creation.
23:58:33flaviuhttps://gist.github.com/flaviut/52144045c45b3a4834ef is a marshaled empty table
23:58:45flaviuof string to string
23:59:42reactormonkuh
23:59:44reactormonkok