<< 27-03-2014 >>

00:00:03fowlits just slightly more verbose than c
00:00:42runvncYou don't normally need to cast things anyway
00:00:44runvncat least I dont
00:01:00runvncand that syntax is easier to understand than traditional cast syntax I think
00:01:13Mat3yes I know. My point is that type systems are generally unreasonable because there tag variable data, not there storage location
00:02:44Mat3so most of the time types only complicate programming without solving the storage problematic
00:04:28runvncwell, I think that is true to some degree
00:04:29fowlstorage..?
00:04:41runvncI have been avoiding types by using coffeescript/typescript which are variants of javascript
00:04:50*io2 quit ()
00:05:07runvncone thing I have found though is that a lot of my simple errors are caught by the compiler now while before I didnt catch them until testing
00:05:44runvncI would prefer if nimrod or whatever language could infer/read my mind/whatever about all of the types and I could leave them out wherever they were obvious from the names
00:05:58runvncbut I think nimrod does a great job of compromising
00:07:53Mat3fowl: A type do not tag the location (address) of its content, it is only a formal identification of the data format
00:07:53*DAddYE quit (Read error: Connection reset by peer)
00:08:16*DAddYE joined #nimrod
00:09:45Mat3get some sleep,. ciao
00:09:58*Mat3 quit (Quit: Verlassend)
00:10:19*q66 quit (Quit: Leaving)
00:11:13EXetoCI don't get it
00:12:01*Demos_ joined #nimrod
00:12:11EXetoCyou want an address, you use addr. is there much else to it?
00:16:46fowli dont get it either
00:18:58EXetoChe might think that getting the actual integer value is overly complex, but it's not a common operation
00:52:05*psquid joined #nimrod
00:52:52*Zuu joined #nimrod
00:53:26*Zuu left #nimrod (#nimrod)
00:55:06*Demos_ quit (Ping timeout: 268 seconds)
01:07:42*boydgreenfield joined #nimrod
01:10:04*Demos_ joined #nimrod
01:10:50Demos_I like to think about types in terms of the size of things. You need them unless you force everything to be the same size
01:12:53*cark quit (*.net *.split)
01:12:55*DAddYE quit (*.net *.split)
01:12:55*darkf quit (*.net *.split)
01:12:56*Demos quit (*.net *.split)
01:12:56*nande quit (*.net *.split)
01:12:58*runvnc quit (*.net *.split)
01:25:07*brson quit (Ping timeout: 264 seconds)
01:26:07*brson joined #nimrod
01:49:22*DAddYE joined #nimrod
01:49:22*runvnc joined #nimrod
01:49:22*darkf joined #nimrod
01:49:22*Demos joined #nimrod
01:49:22*nande joined #nimrod
01:57:10*DAddYE quit (Remote host closed the connection)
01:57:27*DAddYE joined #nimrod
01:59:21*Demos_ quit (Ping timeout: 245 seconds)
02:09:04*Demos quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
02:09:19*Demos joined #nimrod
02:19:35*boydgreenfield quit (Quit: boydgreenfield)
02:33:32Demosproject idea: Pure software implementation of openGL written in nimrod, maybe lacking the ability to actually draw stuff.
02:33:58runvncdemos: would that actually talk to the hardware
02:34:04Demosno
02:34:06runvncor is it using some driver library
02:34:15runvncwhat layer does opengl use below it
02:34:15Demosit is not even a driver at all
02:34:27Demoslike it jut provides the relevant functions
02:34:39runvncok now I get it, doesnt use the hardware
02:34:41Demosso you could do stuff like shader introspection at compile time
02:35:04runvncwell just wondering, do you have any idea where to get programming manuals for programming nvidia or ati gpus directly
02:35:08Demosit you include rendering and debug info it becomes like Microsoft's Direct3D reference device
02:35:23Demoserm you don't program them directly
02:35:48runvncI know
02:35:51DemosI am not sure if detailed specs are availbe to the average joe
02:36:03runvncbut in order to build a driver you need that programming manual
02:36:07runvncso thouse manuals must exist somewhere
02:36:12runvncotherwise we wouldnt have drivers
02:36:29runvncI dont like opengl as an abstraction
02:36:34runvncor direct3d that much
02:36:43runvncI just want to be able to send shader code to the gpu directly
02:36:58runvncanyway the reference renderer thing is an interesting idea
02:37:24Demosyou are kinda SOL I think then
02:37:31runvncor reference device that doesnt render
02:37:45DemosI mean you can use mantle, but afaik that is also not avalible to the average joe
02:38:31Demosd3d also has something called WARP which is a fast software rasterizer that can be nice
02:38:48runvncd3d has a lot of things that are nice
02:38:52runvncbut its ms
02:38:58runvncI disagree with fascism
02:39:12DemosI actually have a nimrod wrapper that I started working on for D3D, but wrapping that is a shit-ton of work
02:39:41*boydgreenfield joined #nimrod
02:39:53runvncI would like to ok.. this is just a fantasy but I would like to build a new operating system that is sort of based on an exokernel type thing but at a higher level, with incremental compiliation and completely open source evertyhing, and
02:39:58runvncit needs to talk to hardware directly
02:40:23Demosincremental compilation of what?
02:40:30runvnceverything
02:40:37runvncthe entire system is statically compiled
02:40:54DemosI mean so are all operateing systems
02:40:57Demosyou have to be
02:41:08runvncsort of with an abstraction that is like an exokernel, but a fast implementation generated like a monolithic kernel
02:41:41runvncnot just the operating system is statically compiled, everything is compiled together into a monolithic kernel-like thing for performance
02:41:53Demosoh I think I see
02:41:58runvncbut the abstraction is vey high level, like description logics
02:42:14Demosthe abstraction of what? the things you are running?
02:42:15runvnchowever allowing for low-level abstractions or interfaces with hardware when necessary
02:42:58runvnceverything on the computer, from files, file implementation, file systems, gpus, graphics libraries, user applications
02:43:05runvncnevermind
02:43:14runvncI need to just do some work instead of rambling
02:43:16runvncheh
02:49:37*boydgreenfield quit (Quit: boydgreenfield)
03:26:23*DAddYE quit (Remote host closed the connection)
03:32:22*ruzu joined #nimrod
03:32:26*ruzu quit (Read error: Connection reset by peer)
03:32:42*ruzu joined #nimrod
03:33:13*ruzu quit (Changing host)
03:33:13*ruzu joined #nimrod
03:49:05Demosoh my god whoever decided to make this online homework tool use exact floating point comparisions needs to be shot
03:56:31*boydgreenfield joined #nimrod
03:58:15reactormonkDemos, send a mail somewhere ;-)
03:58:25Demoshehe
03:58:50Demoslike I am off from the right answer by 2E-14 and it is marking me wrong :D
03:59:30Demosheh I got a 90% on the assignment so fuckit
04:01:27*DAddYE joined #nimrod
04:01:55Demosactually you can enter equations in as input and it will evaluate them, so I may just be able to just inject some code in there next time
04:13:35Demosit would be need to have some kind of shallow slice
04:13:57Demosso I could say like sort(arr[3..10]) and just have a portion of my array sorted
04:17:31*boydgreenfield quit (Quit: boydgreenfield)
04:25:49fowlhow often do you want to sort a portion of a list
04:27:42*boydgreenfield joined #nimrod
04:29:39Demosnot that often, but it is useful in other contexts
04:29:56DemosI wanted to do a linear searh on a porition of a list earlier today
04:38:08*boydgreenfield quit (Quit: boydgreenfield)
04:49:54*brson quit (Ping timeout: 252 seconds)
04:51:38*Demos_ joined #nimrod
05:17:03*Demos_ quit (Ping timeout: 265 seconds)
05:44:10*BitPuffin quit (Ping timeout: 252 seconds)
05:44:18*Demos quit (Remote host closed the connection)
06:10:33runvnchello
06:10:44runvncso some exception can return a string with additional information
06:10:51runvncbesides just the name of the exception
06:10:53runvncis that correct
06:11:02runvnchow can I access that information in the except: block
06:11:07runvncto echo it
06:11:37fowlgetcurrentexceptionmsg()
06:13:01runvncthanks fowl you are a big help :)
07:18:40*skyfex quit (Quit: Computer has gone to sleep.)
07:27:33*Ransel joined #nimrod
07:44:03*DAddYE quit (Remote host closed the connection)
07:55:35*zahary quit (Quit: Leaving.)
08:03:53*gXen joined #nimrod
08:15:05*DAddYE joined #nimrod
08:16:51*DAddYE_ joined #nimrod
08:19:39Araqhi gXen welcome
08:19:45*DAddYE quit (Ping timeout: 265 seconds)
08:20:35gXenHi Araq
08:21:25EXetoCrunvnc: the name would be the actual exception class, along with its msg field. you can look through system.nim too see how it works
08:21:41*DAddYE_ quit (Ping timeout: 265 seconds)
08:24:36*cark joined #nimrod
08:53:50*BitPuffin joined #nimrod
08:57:57*BitPuffin quit (Ping timeout: 240 seconds)
08:59:06*nande quit (Read error: Connection reset by peer)
09:17:43*DAddYE joined #nimrod
09:22:35*DAddYE quit (Ping timeout: 265 seconds)
10:18:28*DAddYE joined #nimrod
10:21:19*faassen joined #nimrod
10:23:01*DAddYE quit (Ping timeout: 265 seconds)
10:36:19*BitPuffin joined #nimrod
10:44:34BitPuffino/
10:44:37*XAMPP joined #nimrod
10:44:41*XAMPP quit (Changing host)
10:44:41*XAMPP joined #nimrod
10:46:34*Mat3 joined #nimrod
10:46:37Mat3hello
11:12:07Mat3after reading the logs, useful documentation for GPU programming is summarized here: http://renderingpipeline.com/graphics-literature/low-level-gpu-documentation/
11:19:04*DAddYE joined #nimrod
11:23:20*psquid quit (Ping timeout: 252 seconds)
11:23:39*psquid joined #nimrod
11:23:55*DAddYE quit (Ping timeout: 265 seconds)
11:50:47*easy_muffin joined #nimrod
11:51:11Skrylaroh. that's why workbench was blue and orange. it showed up on crappy televisions
11:51:57*psquid quit (Ping timeout: 240 seconds)
11:55:57*vendethiel quit (Ping timeout: 240 seconds)
11:59:20*psquid joined #nimrod
12:17:43*io2 joined #nimrod
12:19:39*lanior joined #nimrod
12:19:54*DAddYE joined #nimrod
12:24:12*DAddYE quit (Ping timeout: 255 seconds)
12:27:26*lanior quit (Quit: Page closed)
12:39:01*vendethiel joined #nimrod
13:20:44*DAddYE joined #nimrod
13:23:16*[1]Endy joined #nimrod
13:24:57*DAddYE quit (Ping timeout: 240 seconds)
13:39:28*easy_muffin quit ()
13:56:40*Mat3 quit (Quit: Verlassend)
14:01:17*darkf quit (Quit: Leaving)
14:10:52Araqzahary_: I think we should deprecate anything random related in math.nim
14:11:07Araqthese things should be in separate modules
14:11:59*nande joined #nimrod
14:15:25EXetoCwho put it in math? that seems a little random
14:21:22*DAddYE joined #nimrod
14:26:08*DAddYE quit (Ping timeout: 265 seconds)
14:28:33SkrylarEXetoC: isn't that where rand() is in C?
14:30:58*Guest73710 joined #nimrod
14:33:37*psquid quit (Ping timeout: 252 seconds)
14:40:29renesacI agree we should have a dedicated random module
14:41:04renesacbecause there are many more things one could have related to it, let alone many different type of generators
14:42:28renesacfor example: http://docs.python.org/2/library/random.html
14:53:43*nolan_d left #nimrod (#nimrod)
14:57:00*easy_muffin joined #nimrod
14:57:54Skrylari thought about porting mersenne twister over
15:05:04AraqSkrylar: I think that already exists on babel
15:05:21Araq(yeah it's in math.nim because of C's math.h)
15:07:42zahary_Araq, sure, maybe, dunno, I was mostly acting as a discussion moderator :) random almost sounds like a system.nim material to me
15:08:05renesacthere is rand() on system.nim
15:08:11renesac:P
15:08:28zahary_ah, is randomize affecting it?
15:08:36renesacI don't know
15:09:21renesacproc rand*(max: int): int {.magic: "Rand", sideEffect.}
15:09:21renesac ## compile-time `random` function. Useful for debugging.
15:10:01renesacit looks like a bit out of place to be honest...
15:10:24zahary_compile-time rand() :P; lisp, take that!
15:10:57zahary_http://xkcd.com/221/
15:11:01*Skrylar glares at cast[].
15:11:16SkrylarManual says bit pattern. Actual compiler says "i don't feel like casting that" :|
15:17:07*nolan_d joined #nimrod
15:22:22*DAddYE joined #nimrod
15:27:02*DAddYE quit (Ping timeout: 265 seconds)
15:34:51SkrylarAraq: so i found out that apparently the Amiga originally used an interesting GUI model where the actual controls were kept separate from the rest of the program
15:35:03Skrylarinteresting to know that this has actually been used in the past
15:40:37*[2]Endy joined #nimrod
15:43:43*[1]Endy quit (Ping timeout: 264 seconds)
15:56:30*Ransel quit (Quit: Connection closed for inactivity)
16:08:33*easy_muffin quit ()
16:11:08*easy_muffin joined #nimrod
16:12:42*DAddYE joined #nimrod
16:15:07*easy_muffin quit (Client Quit)
16:17:10*gXen quit ()
16:18:17*DAddYE quit (Ping timeout: 255 seconds)
16:33:07*noam quit (Ping timeout: 252 seconds)
16:36:06BitPuffinEXetoC: so punny
16:50:29fowldoes using apply to proc definitions
16:50:57fowlprobably not
16:55:22Skrylarugh.. this guy talking about doing smartphone apps and being surprised at how rare it is when CPU/RAM optimization is "necessary"...
16:55:32SkrylarI bet he's one of those people who writes simple smartphone apps that drain your battery :
16:56:19Trixar_zaala whatsapp
16:57:12*DAddYE joined #nimrod
16:59:16Skrylarits just me but i really cringe when i see people throw inefficiency to the wind and i wonder what exactly an A500 does differently than a smartphone that excuses a 30sec-2min startup time
17:01:35fowlmy phone takes like 4 minutes to boot up
17:02:49Skrylarlast time i touched a physical A500, it took 20-40 seconds to boot because it had to load from a really slow floppy
17:03:33Skrylari put an SSD in a computer, and windows still takes around 20-40 seconds to boot. What exactly is a modern computer doing that makes the boot time the same speed as a 1990's box?
17:05:02Skrylari'm not a super optimizer, but something feels *very* wrong
17:06:48Skrylari like that a simple nimrod program is still very small in binary, which is refreshing from all the new langs that bolt on mandatory megabyte runtimes :|
17:07:37fowlnimrod was made for floppy-disk distribution
17:09:02Skrylarso what you're saying is we should port nimrod to AROS xD
17:09:52fowlyea
17:09:54fowlthat sounds fun
17:10:37Skrylarbuying the rights to amos is on my pipedream list
17:10:55Skrylarthey had to split the OS because there's a patent troll just camping on the amiga rights, so nobody can really do much
17:11:40SkrylarIt's really eye opening when you're used to people finding excuses for slow-loading programs, and then you see that someone fit a modern operating system in 20mb of kernel memory
17:16:12*BitPuffin quit (Ping timeout: 268 seconds)
17:16:27VarriountMeep
17:28:50*Guest73710 quit (Ping timeout: 265 seconds)
17:33:31*tumak quit (Ping timeout: 245 seconds)
17:37:47*easy_muffin joined #nimrod
17:37:48*easy_muffin quit (Client Quit)
17:37:49*tumak_ joined #nimrod
17:37:51*Guest73710 joined #nimrod
17:43:48*easy_muffin joined #nimrod
17:54:06*q66 joined #nimrod
18:02:15*easy_muffin quit ()
18:17:40*noam joined #nimrod
18:21:59*Demos joined #nimrod
18:34:01DemosSkrylar: the stopwatch app I downloaded on my smartphone reduced battery life from 12h to 1.5h and increased the temprature of the phone by like 20C
18:37:44EXetoC:E
18:40:28SkrylarDemos: yep, i bet the developer was one of those "see it works that means its good"
18:40:41Demoshehe
18:40:44Skrylari know a guy who was like that when he was in comp-sci and it was really aggravating to talk to him
18:40:50EXetoCthe battery life is already short as it is
18:41:10Skrylar"no, you need to do it like this because then the type system will prevent screwups" and he decided to use void* because casting was faster
18:41:13Skrylarthan learning actual C++
18:41:35*q66 quit (Ping timeout: 252 seconds)
18:42:59Skrylaradmittedly i have some of that in this event code :( to my credit, its handled through a generic so the typecasting is hidden behind an assert to ensure the data fits and comes back out via macro that verifies the types are correct
18:43:36*q66 joined #nimrod
18:43:36*q66 quit (Changing host)
18:43:36*q66 joined #nimrod
18:43:47*brson joined #nimrod
18:44:10Demoshonestly sometimes the unsafe solution is actually OK. But dear god use static and dynamic analysis tools
18:45:11Skrylari still feel ick about the typecast and macro
18:45:38Skrylarits a sensible way of doing it; there's a buffer object of ints and it basically acts as though the input belongs to a union
18:46:15Demosyeah void*s are for when you want to implement type erasure yourself, you need to keep track of the types seperately someplace else
18:46:28Skrylarin this case, there's a UID
18:47:04Skrylarthe actual generated code is "if E.uid == 3: let data = <converts from the data>; <do user code here>" where a separate macro has issued 3 to an event type
18:47:20SkrylarInterestingly it also means that event data types are completely unrelated via heirarchy o.O
18:48:25Skrylari've been wondering about how to expose it to C
18:48:27EXetoCvariants \o/
18:49:16SkrylarI think I can just use exportc to make the queue code available to C/C++, then just call it like it was a C method
18:51:40EXetoCwhat requires exporting?
18:53:02Skrylara method to put events in a queue
18:53:16Skrylarin case one was hypothetically using a FLTK frontend to a nimrod program and wanted to shove button notifications over
18:54:16*gXen joined #nimrod
18:54:42gXensyntax highligting for nimrod in sublime text?
18:55:23Skrylari'm pretty sure theres a plugin entitled "nimlime" that provides that
18:55:55gXenyes. didnt work at first install, but now works
18:56:28DemosgXen: yeah https://github.com/Varriount/NimLime
18:56:42Demosthere is an old plugin in package control but it is old
18:57:03gXenyeah, didnt work at first install, came here, reinstalled, now works
18:57:04gXenthx
18:57:05Demosand welcome to nimrod!
18:57:23gXenty
18:57:41VarriountUnfortunately our plugin is probably going to have to be moved again, into the nimrod-code user's repos, so that I can submit it to package control
18:58:03fowlEXetoC, is opengl #2 good to go
18:58:07fowllooks good
18:58:37VarriountSee: https://github.com/wbond/package_control_channel/pull/2884
18:59:55Demoshey Varriount: I added an example to my lower bound PR
19:00:32EXetoCfowl: I think so
19:01:26VarriountDemos: Hm. Has Araq voiced any other suggestions for your PR on irc?
19:04:38fowlwrapping physfs, because i read something about it and it sounded useful
19:05:11*Demos_ joined #nimrod
19:05:24VarriountDemos: Hm. Has Araq voiced any other suggestions for your PR on irc?
19:05:37*Demos quit (Ping timeout: 240 seconds)
19:05:59*Varriount has his hand hovering on the "Merge PR" button
19:06:34Demos_well I asked if the function was already in the stdlib and he said no and that I should write it and submit a pr. The function is pretty much a clone of std::lower_bound
19:08:20dom96Demos_: You should put any inline code in `` ``
19:08:21NimBotAraq/Nimrod devel 0eb2b93 Charlie Barto [+0 ±2 -0]: added lowerBound function to algorithm library
19:08:21NimBotAraq/Nimrod devel 3384537 Charlie Barto [+0 ±1 -0]: made the default comparator for lowerBound unqualified, so the user can customize via two phase lookup
19:08:21NimBotAraq/Nimrod devel 7166683 Charlie Barto [+0 ±1 -0]: added usage example for lower bound
19:08:21NimBotAraq/Nimrod devel 1983904 Varriount [+0 ±2 -0]: Merge pull request #1032 from barcharcraz/lowerBound... 2 more lines
19:08:29dom96..
19:08:35Demos_a little too late :D
19:08:51dom96...and the standalone code in a ```nimrod ```
19:08:56Demos_is ``` for multi-line inline code, or do I still use ``?
19:09:03dom96or better lookup the rst way
19:09:11dom96which is like .. code-block::nimrod or something like that.
19:09:16VarriountDemos_: Submit another PR! Quick! Before the higher powers notice.
19:09:25Demos_I am in class!
19:09:36Demos_time to ninja edit
19:09:52VarriountYou can use the github webediteor
19:10:16VarriountAlthough, I don't think you can create a new branch online..
19:11:09Demos_yeah I am
19:13:42Demos_OK I think I fixed it
19:13:57renesacan alternative name for "lowerBond" could be "insertPosition"
19:14:28*xtagon joined #nimrod
19:15:02renesacis there a upperBound equivalent?
19:15:39*DAddYE quit (Ping timeout: 265 seconds)
19:16:11Demos_no. although mucking about with the comparator could work. C++ has upper_bound but I have never used it.
19:23:48Demos_sorry about that. Still getting used to rst I guess
19:27:55gXenis runtime for Case linear with amount of case statements, or constant?
19:33:46reactormonkgXen, depends on your expressions and if the compiler can convert it to a lookup table.
19:34:06reactormonkgXen, most likely O(n) in the javascript.
19:34:28gXenreactormonk: you mean if the values are hashable?
19:34:50reactormonkgXen, nah, the C compiler. Not sure if nimrod does optimizations there
19:35:05gXenreactormonk, ok
19:35:38reactormonkgXen, it's going to be the fastest way, unless you go crazy and have 100 case statements
19:36:55gXenreactormonk: just wondering if nested if else statements work faster
19:37:15reactormonkgXen, if they are, that's a bug imo.
19:40:25*Varriount wonders what makes programmers using statically compiled languages prone to pre-optimization
19:46:10NimBotnimrod-code/packages master 518f738 Billingsly Wetherfordshire [+0 ±1 -0]: added physfs
19:46:39renesacgXen, reactormonk : if else statments can be faster if the CPU branch predictor works right
19:47:58renesacif you have a performance critical branch, you should bench it
19:48:02renesacif not, use what fells right
19:48:52Demos_also, if you have a critical path use VTune or perf or whatever to get real data from the hardware on this stuff
19:49:13Varriountrenesac: I always use what looks pretty.
19:49:26*Varriount goes and powders his code
19:49:52renesacVarriount, heh, nothing wrong with that
19:49:55Araqstring cases are optimized into a hash table
19:50:14Araqdoesn't get much faster than that
19:50:20gXenAraq: what types are ahshable?
19:50:43AraqgXen: 'case' only supports ordinals and strings and perhaps floats
19:50:55reactormonkAraq, doesn't use `hash`?
19:50:58*Araq wonders if he ever implemented 'case' for float
19:51:15Araqreactormonk: nope it uses its own super optimized hash
19:51:26gXenAraq: so if case is applicable, case is always faster
19:51:26renesacyou need some kind of rounded comparison in case of float...
19:51:44reactormonkyou don't want == for floats anyway
19:51:44Araqrenesac: no it is translated into a bunch of == and <=
19:51:50*Mat3 joined #nimrod
19:51:58Araqoften you do want == for floats
19:52:03Mat3good afternoon
19:52:07reactormonkhow come?
19:52:17Araqwhen you know you're performing integer ops with floats
19:52:22EXetoCrenesac: what about the claim that "branching is really slow"? does that apply mostly to mispredictions?
19:52:30EXetoCnot that I think it's that simple
19:52:31renesacright
19:52:37renesacunpredictable branches are slow
19:52:56AraqgXen: no, 'case' is O(1), but not always faster
19:53:00Demos_don't worry about branches until you have actual misperdiction data
19:53:14renesachttp://igoro.com/archive/fast-and-slow-if-statements-branch-prediction-in-modern-processors/
19:53:36AraqgXen: you can infuence code generation with .computedGoto and .linearScanEnd pragmas
19:53:44gXenAraq: if you use super optimized hash function, may I assume its not advised to use for large sets due to hash collisions? (I guess <=32bit hash values)
19:54:11Demos_at that point you may as well just asm the whole thing :D
19:54:28AraqgXen: large sets don't make sense to embed into a case statement anyway
19:54:31Mat3EXetoC: False predicted branches cost many clock cycles on out-or-order CPU's with large pipelines
19:55:07EXetoCright
19:55:28Mat3However, common used predictive algorithms are efficient except indirect branches which are poorly predicted (if at all)
19:55:32gXencase of <1mil of >1mil,<5mil of >5mil? sensible?
19:55:42Mat3^except for
19:55:47EXetoCI wonder if the mill architecture will ever catch on
19:55:51*Varriount remembers that GameMaker scripting can only use floats.
19:56:29VarriountWhich makes it very easy to use CheatEngine on GameMaker games. You only have to search for floats and doubles :3
19:56:33Mat3EXetoC: hmm, it's mainly a proof of concept
19:58:52EXetoCI didn't know that. Maybe some refined alternative then
19:59:36VarriountI read a bit on the Mills architecture. It's quite interesting.
19:59:57fowlVarriount, gamemaker is disgusting, discussion of it should be bannable
20:00:05AraqVarriount: yeah watched the latest talk about it
20:00:22Araqthe Mill rules but doesn't exist yet :-)
20:00:41Varriountfowl: I know. I haven't touched the actual program myself in /years/, and have never used the script.
20:01:05Araqfowl: bug #1022 (push pragma) is a feature, not a bug
20:01:21VarriountI just.. hear things. Horrible, dreadful things that no sentient being should ever have to hear.
20:01:25Araqbecause 'push' is so ambiguous the compiler tells you when it can't apply it
20:01:34renesacAraq, I'm not finding it now, but there was some bugreport about telling what 'if' branch was the most likely for the compiler
20:01:46Araqwe really need pushProc, pushProcType etc.
20:01:49renesacand the response was that it was already a function, not a pragma
20:01:57Araqyes
20:02:04fowlAraq, you said it was a bug
20:02:04renesacwhy a function not a pragma?
20:02:31Araqfowl: checked the compiler's source and thus the spec in my head
20:03:14AraqMat3: branch misprediction seems to be much less severe than a cache miss
20:03:19*Demos_ quit (Ping timeout: 268 seconds)
20:03:52AraqVarriount: I like renesac's name susggestion. "insertPosition" is MUCH better than lowerBound, IMO
20:04:04fowlAraq, well at least importc should not apply to f
20:04:44Araqfowl: it applies to f's pragma
20:04:59AraqI can special case this but I don't know whether it's a good idea
20:05:37Araq(rule of thumb: don't use any name from C++'s STL...)
20:05:37renesacAraq, the question would be what higherBound should be named, if ever added
20:05:40EXetoCinsertPositionOf?
20:05:57VarriountAraq: Well, that'll teach me to accept PR's without your explicit presence. :/
20:06:14Araqno worries
20:06:42VarriountwhatWouldSortedPositionBe()
20:06:48Araqrenesac: why would it? you can simply flip the comparator, right?
20:07:19Araqhmm 'sorted' should be in its name
20:07:23renesacsortedPosition()
20:07:24renesac?
20:08:52*Araq wonders what he had in mind when he added system.rand
20:09:08Araqhow does a compile time rand help with debugging?
20:09:43*Araq opens a bottle of beer and tries to remember
20:09:45renesacfixed seed for all runs... but there are other ways to do that
20:10:09renesacI can't use the normal random() at compile time?
20:10:35renesacto pre-generate arrays, that sort of thing?
20:10:40gXenI am sure he opened a Maibock
20:10:51Varriountrenesac: Try compiling your nimrod compile with -useCffi
20:11:15VarriountOtherwise the VM can only access a limited number of foreign functions at runtime.
20:11:18renesacso, was rand() before that -useCffi got implemented?
20:11:19Mat3Araq: that depends. For interpreters reducing them is more important for the runtime performance than the general dispatch overhead
20:12:45renesacanyway, it is an obvious candidate to be taken of system.nim, to make it more lean...
20:13:09renesacand in the process rename it to static_rand() or something like that
20:13:44AraqgXen: Tannen-Zäpfle, in fact
20:13:58VarriountMaibock?
20:14:25VarriountOh, beer.
20:14:51Araqrenesac: I'm pretty use rand predates useFFI
20:14:57VarriountHave I mentioned that, to me, anything with alchohol in it tastes of denatured rubbing alchohol?
20:15:06Araq(which is currently broken btw and should stay that way)
20:16:28fowlVarriount, that sucks
20:16:58AraqVarriount: so drink cocktails, most of those are sweet and don't taste like alcohol
20:16:58OrionPKcmp(TTime, TTime) seems to be not working
20:17:11Mat3Varriount: Just do not consume alcohol
20:17:21OrionPKwell i guess it's just generic
20:17:27OrionPKproc cmp*[T](x, y: T): int for TTime
20:17:44AraqTTime doesn't have == and <= ?
20:18:57Araqdom96: now where is that test with gensym and iterators?
20:19:05*gXen left #nimrod (#nimrod)
20:19:16Mat3hmm, why the heck are comments intentation sensitive ?
20:19:41VarriountMat3: They are part of the AST
20:19:43AraqMat3: looked like a good idea back in the days
20:19:55Araqyou can do
20:20:07Araq foo #\
20:20:13Araq# real comment here
20:20:51VarriountAraq: How are doc-comments for type fields supposed to be formatted? I can only seem to place them on the same line as the actual field, which is a bit.. ugly for long doc-comments.
20:21:08Araqread what I just wrote
20:21:12VarriountOh.
20:21:24VarriountThat's still ugly, just less-so
20:21:52Araqchanging the comment is handling is planned but more work than it looks like
20:22:03Araq*comment handling
20:22:13dom96Araq: In my local git repo.
20:22:21VarriountGotta go, Calculus class calls.
20:22:22dom96i.e. not online yet
20:22:38Mat3ciao
20:22:40Araqwell you made me work on less important bugs
20:22:47Mat3Varriount
20:23:35*Demos joined #nimrod
20:23:56AraqsortedPosition is good I think, renesac
20:25:09NimBotAraq/Nimrod devel b41c7f1 Araq [+1 ±2 -0]: fixes #1009
20:25:09NimBotAraq/Nimrod devel ec57a66 Araq [+0 ±3 -1]: made some tests green
20:25:09NimBotAraq/Nimrod devel 5f6aa76 Araq [+0 ±1 -0]: ENDB: got rid of deprecated 'nil' stmt
20:25:09NimBotAraq/Nimrod devel 62d1e58 Araq [+0 ±2 -0]: fixes a typo
20:25:09NimBot1 more commits.
20:25:54Demosis lowerBound really that bad?
20:26:58AraqI think it's confusing
20:27:02renesacthe name isn't intuitive
20:27:18renesacat least for the proposed use
20:28:15DemossortedPosition has problems if there are a bunch of elements that compre equal
20:28:59Araqno. why? it's not called stableSortedPosition
20:32:12Demosbecause it could be the upper end of the range of equal elements, I dont really care that much about the name though
20:33:44Araqyou can easily make it stable
20:35:11renesaclowerSortedPosition, if we can't emulate the upperSortedPosition using a different cmp()
20:35:51renesacotherwise, just document that by default it returns the lowest possible insertion position...
20:37:42*Matthias247 joined #nimrod
20:39:51VarriountMat3: Yes?
20:41:55Mat3 sorry, thought you got to an caculus class
20:42:05Mat3^calculus
20:42:14Mat3(whatever this means)
20:42:54*Mat3 probably have an english misinterpretating day
20:47:38VarriountMat3: I am. However at the moment, I'm blocking out my teacher, who is currently going over the test we just took.
20:48:48*Varriount doesn't want to know how badly he did on the test.
20:50:11Araqdom96: well please upload the test. It's hard to fix the bug otherwise and I don't feel like debugging your GC corruption
20:52:57*Demos quit (Ping timeout: 240 seconds)
20:53:23Mat3lunch time, ciao
20:53:28*Mat3 quit (Quit: Verlassend)
21:11:02*DAddYE joined #nimrod
21:15:12*[2]Endy quit (Ping timeout: 255 seconds)
21:22:20*xtagon quit (Quit: Leaving)
21:23:56fowlam i winning the number of babel packages
21:24:01fowlits a contest right?
21:24:31dom96Hell yeah.
21:24:52dom96Araq: alright
21:24:59fowli have two more that just dont work for some reason :/
21:25:03fowllibjit and mruby
21:25:06Araqdialogs.nim depends on gtk2 so it makes no sense to have it in the stdlib
21:25:25Araqfowl: you know we now have .union, right?
21:25:37Araqsomehow I missed your love letter
21:25:44fowlyes
21:25:48fowl?
21:26:15Araq"omg I love nimrod, it supports unions now"
21:26:50fowloh
21:27:01fowlwell i could always emit a union then importc it :p
21:27:22Araqhmm true
21:27:38Araq.emit is evil though :P
21:33:23EXetoCno, use it everywhere
21:51:11NimBotAraq/Nimrod devel 2d37030 Dominik Picheta [+1 ±0 -0]: Added test for issue #911.
21:51:23dom96Araq: there you go
21:51:28Araqyay
21:53:22fowladding seq initialization is hard
21:54:32fowlcan i just make the functions private and wrap them in nimrod checks
21:55:35*BitPuffin joined #nimrod
21:56:55BitPuffinoi dom96 you are now officially famous
21:57:17dom96BitPuffin: Give me the time :P
21:57:23BitPuffindom96: http://youtu.be/ecJhHqWcZw0 and Araq I suppose, this episode is funner
21:57:41dom96I don't want to watch it all because I don't want spoilers.
21:58:29Araqdom96: a wise decision
21:59:00AraqBitPuffin: no mods? lol
21:59:08BitPuffin4:49 is pretty funsies
21:59:11fowlBitPuffin, wheres your avatar from
21:59:17BitPuffinfowl: I made it
21:59:21*faassen quit (Remote host closed the connection)
21:59:21fowloh
21:59:22BitPuffinit's a puffin
21:59:24fowlprogrammer art :>
21:59:24dom96BitPuffin: At what time do I message you?
21:59:25BitPuffinmade of bits
21:59:38BitPuffinfowl: well I could only use black or white because it's bits
21:59:39EXetoCit's kinda pixelated
21:59:44BitPuffineither on or off
21:59:47BitPuffinEXetoC: on purpose yeah
21:59:49fowlBitPuffin, btw i took care of al_main, but could you see if we need to do any of the thread stuff that the d wrapper does
22:00:09BitPuffinfowl: I will but not now :(
22:00:15fowlsure
22:00:20BitPuffingreat though
22:00:24BitPuffinfucken sweet :D
22:00:27EXetoCand a binary color space
22:00:29BitPuffinis everything wrapped?
22:00:46fowleverything except threads and memfiles
22:00:51BitPuffindom96: there is magic monkeys in the game *spoiler alert*
22:01:06BitPuffinfowl: ah, well those shouldn't be too much work to bind
22:01:15fowlyea
22:01:28fowlthey are low priority honestly
22:01:29AraqBitPuffin: how do you run the game? some emulator? wine?
22:01:35EXetoCwindows?
22:01:37BitPuffinAraq: Windows
22:01:54Araqyou need to attach it to a single cpu core
22:01:55BitPuffinfun fact though, the Mac version just runs it in wine
22:02:00BitPuffinwhy?
22:02:05Araqotherwise it's buggy like hell
22:02:18Araqthey got the threading all wrong, I think
22:02:24EXetoC:o
22:02:34BitPuffinAraq: interesting, well I haven't noticed any big bugs
22:02:41BitPuffinexcept for a disappearing monkey
22:02:47fowlhow old is this game/
22:02:59BitPuffinpretty old
22:03:08dom96why would it use other cores?
22:03:08BitPuffinlate 90s maybe? early 2000s?
22:03:19dom96in those days all CPUs were single core, no?
22:03:38Araqdom96: yeah but threads existed before
22:03:49BitPuffindom96: 14:30 is where you message me
22:03:50Araqand can be convenient for programming
22:04:01BitPuffinyou sabotaging cunt :P
22:04:07dom96:D
22:04:09Araqespecially if you don't know about their dangers ;-)
22:05:01dom96LOL
22:05:19BitPuffindisappearing monkey at15:50
22:05:24EXetoCyeah slightly more convenient than manual interleaving :>
22:05:31dom96"Yes Dom, you're fucking famous"
22:05:45BitPuffindom96: you should at least like the video you bitch :(
22:06:02dom96I'll do more. I'll put it in my favourites!
22:06:12BitPuffinwaoaoaoa
22:06:14BitPuffinthank yaaa
22:06:17BitPuffinand sub? lol
22:06:19BitPuffin;D;D;D;
22:06:23*BitPuffin is a whore
22:06:29dom96Hell yeah, why not.
22:07:01BitPuffinbecause all you want to do is to destroy xD
22:07:17BitPuffinAraq: them monkeys though
22:07:21BitPuffinsomewhat hilarious
22:07:45EXetoCWhy aren't you begging for likes and subscribes? You don't know how to youtube
22:08:01fowlthis game looks creepy
22:08:27BitPuffinEXetoC: I don't like to do it
22:08:36BitPuffinbecause I think it's annoying when people do it
22:09:01dom96You should put some subliminal messages into your videos. Like a single frame with a big "SUBSCRIBE NOWWWWW" every 5 minutes :P
22:09:03BitPuffinI guess I'm fine with more like like if you liked and subscribe if you wont more if not then that's aight
22:09:09BitPuffinhaha
22:09:13BitPuffinlike subtle whispers
22:09:24BitPuffin*subscribe, ibe, ibe, ibe*
22:09:29fowlill subscribe just for your avatar
22:09:37BitPuffin"like, ike, ike"
22:09:41BitPuffinfowl: you like it?
22:09:55BitPuffinIt's based off my old one
22:10:01BitPuffinwhich was just a photo from google
22:10:13BitPuffinnow I made it more matching to the name with bits, and also it's my creation
22:11:07fowlwhat license is it
22:11:15BitPuffinmy avatar?
22:11:18fowlyea
22:11:25*DAddYE_ joined #nimrod
22:11:37BitPuffincopyright? lol
22:11:41Araqdude, press U to hear the audio log immediately
22:11:51BitPuffinAraq: jeez, thanks
22:11:55BitPuffinseriously thanks XD
22:12:10BitPuffinI didn't look for it in the menu, but I thought there gotta be one
22:12:57Araqyou can jump and smash the camera
22:13:17Araqor use the gun
22:13:35*DAddYE quit (Read error: Connection reset by peer)
22:14:55fowlgah these controls are crazy
22:15:07fowlqwes for movement and a/d for leaning?
22:15:38BitPuffinAraq: yeah but it doesn't always die in one hit does it?
22:15:42Araqyou can modify every key binding, fowl
22:15:43BitPuffinand the gun is good to save
22:15:46BitPuffinfor the shotgun guys
22:15:51BitPuffinfowl: yeah I modified that
22:16:34EXetoCBitPuffin: even when headshotting?
22:16:43EXetoCthat should be a one-shot kill always
22:16:51*DAddYE joined #nimrod
22:16:52BitPuffinEXetoC: it's an RPG
22:16:59BitPuffinbut yeah it might do more dmg
22:17:08BitPuffinplus, we are not facing like regular humans
22:17:17BitPuffinthese are aliens taking over humans
22:17:20EXetoCstill
22:17:24BitPuffinit's a nice detail that they still are somewhat human
22:17:28BitPuffinthey say kill me and stuff
22:17:32BitPuffinand run
22:17:41*Demos joined #nimrod
22:18:38*DAddYE_ quit (Ping timeout: 240 seconds)
22:20:13*DAddYE_ joined #nimrod
22:22:14*DAddYE quit (Ping timeout: 265 seconds)
22:22:20*Demos quit (Ping timeout: 255 seconds)
22:22:57*Skrylar quit (Ping timeout: 240 seconds)
22:25:30EXetoCTurning OpenGL constants into enumerators is fun, isn't it? it's like a puzzle when you have about 40 of them that need to be ordered
22:26:26BitPuffinXD
22:26:33BitPuffinthen why do it
22:26:35BitPuffinthere is no gain
22:27:32fowlBitPuffin, which branch is the most awesome
22:27:51fowlEXetoC, thats probably why they were constants
22:28:31BitPuffinfowl: depends on what project
22:32:46fowlBitPuffin, system shock 2, idk what u mean project
22:33:02fowlill just go navy, they are one of the intelligent branches
22:35:32EXetoCfowl: that's just the way it's officially structured, and I guess not many people bother to do that manually
22:35:37EXetoCand this just adds to the pain
22:36:25BitPuffinfowl: that's the one I wanted to pick
22:36:29BitPuffinbut I accidentally picked marine lol
22:36:48EXetoCBitPuffin: there might be if enough people use it
22:36:59EXetoCA small gain, but a gain nevertheless :>
22:51:16*Demos joined #nimrod
22:54:00EXetoCBitPuffin: Have a taste of the awesomeness "proc setTexParamSwizzleRGBA*(target: TTexParamTarget, param: var array[4, TSwizzleColor])"
22:55:42BitPuffinEXetoC: regarding what?
22:55:47BitPuffinoh right
22:55:50BitPuffinthe enums
22:56:06EXetoChm, but does that apply to every TTexParamTarget enumerator? that is the question :-)
23:07:18Araqgood night
23:08:15Demosis there a way to export a whole module, or should I use the include statement
23:09:32fowlexport modulename
23:10:07Demosoh, if I import folder/modulename I have to export just modulename
23:10:08Demosk
23:10:46fowlyea beacuse the module's name is modulename
23:11:18*Matthias247 quit (Quit: Matthias247)
23:11:42EXetoCis that the same thing? I did try that, but ended up exporting symbols explicitly
23:11:51EXetoCso it must've not worked somehow
23:20:42EXetoCDemos: it works for you?
23:20:48Demoskyeah
23:24:19EXetoCI think it was that I wanted "export opengl except TRect"
23:25:25EXetoCapparently there's some windows type in there called TRect, and you currently can't selectively exclude when exporting
23:25:31EXetoCcya
23:25:32*EXetoC quit (Quit: WeeChat 0.4.3)
23:27:38BitPuffinDemos: I was gonna point something out about eigen earlier but now I forgot because you weren't here
23:39:01*darkf joined #nimrod
23:53:33*flyx quit (Ping timeout: 252 seconds)
23:54:42*flyx joined #nimrod
23:58:24*reloc0 quit (Ping timeout: 252 seconds)
23:58:41*reloc0 joined #nimrod