00:00:40 | * | yglukhov joined #nim |
00:24:42 | zachcarter | finally got multiple meshes / renderables working - http://imgur.com/a/ANTNf |
00:24:57 | zachcarter | not sure the drawing is quite optimized fully yet but it’s better than not working |
00:27:01 | zachcarter | and of course no dinosaur is complete without a rider : http://imgur.com/a/23lnF |
00:34:05 | * | yglukhov quit (Ping timeout: 240 seconds) |
00:54:45 | * | def-pri-pub joined #nim |
01:17:48 | FromGitter | <Varriount> zachcarter: Wow! That was quick. |
01:18:11 | FromGitter | <Varriount> zachcarter: Is the choppiness from the GIF, or some rendering artifact? |
01:28:09 | * | PMunch quit (Quit: leaving) |
01:31:26 | * | yglukhov joined #nim |
01:36:01 | * | chemist69 quit (Ping timeout: 256 seconds) |
01:36:42 | krux02 | zachcarter, great to see the technology working |
01:37:04 | krux02 | can I have an idea, of what your game goal is? |
01:38:09 | krux02 | You are putting a lot of technology together and I do really like it, but I have no idea where the trip is going to |
01:50:16 | * | chemist69 joined #nim |
01:50:19 | * | krux02 quit (Quit: Leaving) |
01:51:49 | * | krux02 joined #nim |
01:55:45 | FromGitter | <Varriount> krux02: A game engien |
01:55:48 | FromGitter | <Varriount> *engine |
01:56:35 | krux02 | yea a game engine alone is good and need, but without a game it is not that useful |
01:56:52 | krux02 | also a game engine needs to be proven to be a game engine |
01:57:59 | krux02 | what I mean is, for a game engine to be successful, there is need that it actually has at least one game in it, otherwise conservative people would avoid it all otgether |
01:59:00 | krux02 | I just realized, conservative people would not use Nim in the first place, so my point is not really valid |
01:59:06 | krux02 | I am tired I should go sleep |
02:04:34 | * | yglukhov quit (Ping timeout: 246 seconds) |
02:12:16 | zachcarter | Varriount: from the gif |
02:12:20 | zachcarter | krux02 thank you |
02:13:00 | zachcarter | krux02: we’ll be building some sample games for frag I don’t know what kind of game I”m goign to build iwth it yet |
02:21:36 | zachcarter | krux02: the spine integration was mostly for @rauss the other guy working on frag with me |
02:21:44 | zachcarter | he wanted 2d skeletal animation so I added it :P |
02:21:52 | zachcarter | plus I think it’s a nice feature to have |
02:22:13 | zachcarter | I’m not sure if I”ll use it in any projects - I’m not that artistic |
02:22:40 | FromGitter | <raydf> @zachcarter, nice to see your framework working, can i see the repositoryy, or it will be closed source? |
02:23:15 | zachcarter | raydf: sure https://github.com/fragworks/frag |
02:23:44 | zachcarter | it’s rough around the edges atm to say the least |
02:24:03 | zachcarter | but it’ll be stabilizing for an alpha release later this spring / early summer |
02:24:17 | zachcarter | and should be usable for the adventerous in a couple of weeks |
02:24:37 | FromGitter | <raydf> are you working in an ios version? |
02:24:47 | FromGitter | <raydf> ios deployment feature? |
02:25:16 | FromGitter | <raydf> I can't see the spine example |
02:25:19 | zachcarter | iOS support is planned, as to when it will actually come to fruition I’m not sure |
02:25:23 | krux02 | I personally have little artistic skills so for me an animation system causes more "now I also need to do animations.." than "yay I can do animations" |
02:25:40 | zachcarter | I need to put up a roadmap - but my plan is basically to work more on the core of the framework |
02:26:02 | zachcarter | add things like collision detection, tiled map support, more sprite atlas formats, things like that |
02:26:18 | krux02 | I would also like to work more on my opengl-sandbox |
02:26:19 | zachcarter | and then once I have some people building games with it I’ll focus more on the various targets |
02:26:33 | zachcarter | as people require support for them |
02:26:55 | zachcarter | krux02: you should |
02:26:56 | krux02 | One thing that is really a hard nut to crack is transform feedback |
02:27:05 | zachcarter | ah yeah i tis |
02:27:20 | krux02 | there are so many different ways to do it, and the documenation is sparse at best |
02:27:34 | zachcarter | raydf: the spine example is not posted yet it will be up later this week |
02:27:42 | zachcarter | I’m cleaning it up still |
02:27:44 | krux02 | and then I want it to be very simple and natural to use, almost like a seq type |
02:28:00 | zachcarter | :P |
02:28:07 | FromGitter | <Varriount> Transform feedback? |
02:28:26 | krux02 | zachcarter: I also have an animation example for 3D meshes, I never did anything with it, I just wanted proof that it works |
02:28:52 | zachcarter | I have one very close to working with opengl / assimp but not with my current renderer |
02:29:01 | zachcarter | Varriount: https://www.khronos.org/opengl/wiki/Transform_Feedback |
02:29:20 | krux02 | Varriount: Transform feedback is basically rendering into a vertex buffer |
02:29:48 | krux02 | normally without a fragment shader |
02:29:54 | krux02 | but there can be a fragment shader |
02:29:55 | FromGitter | <Varriount> What's the 'feedback' portion of it? |
02:30:21 | krux02 | Warriount: don't ask such useful questions it's opengl naming |
02:30:27 | FromGitter | <Varriount> :3 |
02:30:54 | zachcarter | yeah this is true |
02:30:55 | krux02 | well you can read those buffers back into main memory |
02:31:02 | krux02 | so that would be your feedback I guess |
02:31:04 | zachcarter | I guess you’re feeding back the data multiple times |
02:31:05 | zachcarter | haha |
02:31:14 | zachcarter | it makes zero sense honestly |
02:31:23 | zachcarter | makes me think if an n64 rumble pack when I hear the word |
02:31:52 | zachcarter | krux02 I’m glad bgfx abstracts this kind of stuff away |
02:33:02 | krux02 | zachcarter maybe I should take a look at bgfx how it does the same thing |
02:33:36 | krux02 | you should know my goal is maybe the same as bgfx, but mostly it is to make features of the GPU more natural to use |
02:33:48 | zachcarter | tbh I doubt he’s doing any transform feedback |
02:34:15 | krux02 | the same way the c programming language made programming easier I want to make interfacing gpu and cpu easier |
02:34:20 | zachcarter | his renderer is submission based so he’s doing a lot of things differently |
02:35:12 | zachcarter | well your macros definitely do that |
02:35:34 | krux02 | opengl is the api that named the pixel shader "fragment shader" and has "vertex arrays" and "vertex buffers" |
02:36:04 | zachcarter | http://c0de517e.blogspot.com/2014/04/how-to-make-rendering-engine.html |
02:38:24 | zachcarter | krux02 someone is working on a forward plus example for bgfx right now |
02:38:33 | krux02 | I skimmed it I have no idea if i got the important part |
02:38:36 | zachcarter | http://i.imgur.com/Ch6QWvx.png |
02:38:42 | zachcarter | https://github.com/PyryM/bgfx/tree/example/fplus/examples/33-fplus |
02:39:38 | krux02 | is that deferred rendering? |
02:39:40 | FromGitter | <Varriount> forward plus? Is that another wierd opengl name? |
02:39:45 | FromGitter | <Varriount> *weird |
02:39:52 | krux02 | no it's not |
02:40:04 | zachcarter | https://www.3dgep.com/forward-plus/ |
02:40:27 | zachcarter | different from deferred |
02:40:36 | zachcarter | I think forward plus is more direct x terminology than opengl |
02:40:42 | zachcarter | but it’s just antoher rendering method |
02:41:13 | FromGitter | <Varriount> I really need to learn actual opengl at some point. |
02:41:38 | zachcarter | graphics programming is bear but fun |
02:41:55 | zachcarter | direct correllation with the challenge and how much reward you get out of accomplishing something |
02:42:00 | zachcarter | a bear* |
02:42:26 | krux02 | Varriount: that is really a lot of pain |
02:42:38 | krux02 | I did it, and I know what I am talking about |
02:42:48 | krux02 | there are though very good books about that topic |
02:43:15 | zachcarter | screw books |
02:43:34 | krux02 | my recommendation Opengl 4.0 Shading Languge Cookbook |
02:43:34 | zachcarter | https://learnopengl.com/ |
02:43:42 | zachcarter | ^ website rocks |
02:43:54 | krux02 | well I have the book as a pdf |
02:44:07 | zachcarter | ah nice |
02:44:08 | krux02 | maybe it's free maybe it was free becaues I was in my university network |
02:45:29 | krux02 | very important get a debug context, and get an opengl debugger |
02:45:36 | krux02 | nvidia nsight is pretty good |
02:45:44 | krux02 | and apitrace is good, too |
02:45:50 | krux02 | it's worth a lot |
02:46:15 | * | peted is now known as peted___ |
02:46:35 | zachcarter | mmhmm |
02:46:46 | krux02 | but writing glsl code itself is actually pretty nice |
02:46:51 | zachcarter | expect to be staring at a lot of black screens |
02:46:52 | * | peted joined #nim |
02:47:22 | zachcarter | also my recommendation is always start with a triangle |
02:47:28 | krux02 | the glsl "standard librar" of functions is pretty nice and things just work smoothly |
02:47:29 | zachcarter | and build on whatever you’re doing from there |
02:47:43 | krux02 | that is why I never bothered writing a nim to glsl compiler |
02:47:58 | krux02 | for me it was always the interafe, the glue code, that sucked |
02:48:01 | zachcarter | don’t try to for instance, start with trying to render a complex 3d mesh with texure data and indexed drawing |
02:48:04 | krux02 | and I wrote a generator for that |
02:48:52 | krux02 | zachcarter: I think we reached the critical amount of information Varriount can process |
02:49:05 | zachcarter | I think so too :P |
02:49:44 | krux02 | random fact, I just installed an irc client to my editor (emacs) |
02:49:50 | krux02 | I am not chatting from emacs |
02:50:01 | * | Nobabs27 quit (Quit: Leaving) |
02:50:12 | krux02 | not sure if that is an improvement to anything |
02:50:42 | krux02 | sorry type I mean "I am *now" chatting from emacs" |
02:50:48 | zachcarter | lol |
02:51:11 | krux02 | my typing skills are a bit funky at the moment |
02:51:13 | zachcarter | do you play your MP3s through emacs too? |
02:51:18 | krux02 | haha |
02:51:19 | zachcarter | :P |
02:51:27 | def-pri-pub | Does nim have a ternary operator? i can't remember |
02:51:32 | zachcarter | don’t believe so |
02:51:44 | krux02 | I I just have a browser open with a one houre youtube video playig 80 syth music |
02:52:22 | krux02 | def-pri-pub: you can use if as an expression |
02:52:41 | krux02 | let x = if a>b: "a" else: "b" |
02:52:48 | * | peted___ quit (Quit: WeeChat 1.4) |
02:53:22 | krux02 | so whatever it is you needed ?: in c++ for, you can just use if else in nim |
02:54:19 | krux02 | zachcarter: well honestly I am not an emacs fan I just started using emacs when I started with nim, because I thought it was the most developed development environment for nim |
02:54:29 | krux02 | not sure if that is still true |
02:54:54 | krux02 | I changed editors a lot in the past, and I was never really happy with any editor |
02:54:58 | zachcarter | I’m finding VS code to be pretty nice |
02:55:08 | zachcarter | a bit slow / leaky but better than anything else I’ve used for nim atm |
02:55:12 | krux02 | I used a lot of editors that were cool in fancy in the beginning but in the long run I just hated them |
02:55:19 | krux02 | now I use emacs |
02:55:29 | krux02 | it's bascially a very horrible experience |
02:55:35 | zachcarter | hahaha |
02:55:37 | krux02 | I had to relearn so much |
02:55:40 | zachcarter | emacs is like a lifestyle |
02:55:53 | krux02 | a lot of stuff isn't even better |
02:56:00 | FromGitter | <Varriount> krux02: I've been listening to this: https://virt.bandcamp.com/album/cat-girl-without-salad-amuse-bouche-extra-crispy-or-original-soundtrack |
02:56:01 | krux02 | to save C-x C-s |
02:56:09 | krux02 | how is that better than just C-s |
02:56:17 | krux02 | C is ctrl by the way |
02:57:21 | * | shashlick quit (Ping timeout: 264 seconds) |
02:58:12 | krux02 | Varriount: along with other stuff I like this: https://www.youtube.com/watch?v=BcDES8Fjr-w |
02:58:34 | * | shashlick joined #nim |
02:59:15 | krux02 | zachcarter: I used even some vim in the past, but I don't even understand the syntax tree of my config file |
02:59:31 | krux02 | and this config file mess is really horrible |
02:59:39 | zachcarter | yeah vim is a nightmare |
02:59:48 | krux02 | without a 100 work hour tuned config file the editor is just not good |
02:59:49 | zachcarter | someone told me about a really nice editor the other day that I promplty forgot the name of |
02:59:50 | zachcarter | let me try to find it |
02:59:52 | krux02 | both emacs and vim |
03:00:11 | krux02 | no I don't want to switch at the moment |
03:00:20 | krux02 | I invested quite a lot in my config |
03:00:41 | krux02 | and to be honest there is not that much an editor really needs to do |
03:00:43 | zachcarter | :P haha I’m not sugesting you do |
03:00:48 | zachcarter | I just wanted to try to remember it’s going to haunt me now |
03:01:28 | krux02 | I just know the two new stars at the sky of editors, atom and vs-code |
03:01:36 | zachcarter | http://kakoune.org/why-kakoune/why-kakoune.html |
03:01:40 | zachcarter | threre it is |
03:01:40 | zachcarter | kak |
03:01:47 | krux02 | but people seem to prover vs-code over atom from the opinions I read online |
03:01:53 | zachcarter | http://kakoune.org/ |
03:01:55 | krux02 | people are not happy with atom |
03:02:44 | krux02 | yea I actually read about that editor |
03:03:05 | zachcarter | I don’t get this: |
03:03:31 | zachcarter | zachcarter: What’s wrong with Nim? |
03:03:32 | zachcarter | [10:49pm] Elronnd: everything's an object |
03:03:34 | zachcarter | [10:49pm] zachcarter: Nim objects are like C structs |
03:03:35 | zachcarter | [10:49pm] zachcarter: ref objects are GC traced pointers |
03:03:36 | zachcarter | [10:50pm] zachcarter: nim does have tuples, named tuples too |
03:03:37 | zachcarter | [10:51pm] Elronnd: I like the way d does it better |
03:03:38 | zachcarter | [10:51pm] Elronnd: with ufcs |
03:03:40 | krux02 | but I don't think that a new way to edit text justifies a completely new text editor that needs its freshly written plugins for programming language support |
03:04:08 | zachcarter | wtf are D ufcs? |
03:04:14 | zachcarter | I figured he meant uniform function calls |
03:04:21 | krux02 | I don't know |
03:04:22 | zachcarter | Nim has those... |
03:04:24 | zachcarter | me either |
03:04:29 | * | yglukhov joined #nim |
03:04:40 | krux02 | but D has the classical single inheritance model and it has garbage collection, too |
03:04:56 | zachcarter | yeah, nothing wrong with D I just don’t get his point about Nim |
03:05:02 | zachcarter | and why he doesn’t like it |
03:05:08 | krux02 | I am not sure, but it can be that D has the same struct/class distinction as C# has |
03:05:10 | zachcarter | he made an angry face when he found out I was using Nim |
03:05:13 | krux02 | but that would just be a guess |
03:05:17 | zachcarter | ah probably |
03:05:54 | krux02 | maybe because he is invested in D and wants people to be on his side |
03:06:03 | zachcarter | maybe |
03:06:28 | krux02 | But I am very careful converting people to Nim, even though I like the language, I don't think everything is nice and happy here in Nim world |
03:07:17 | zachcarter | you know more about the state of things than I do but I’m pretty happy with the language so far |
03:07:22 | krux02 | most recent example, again for my transform feedback example, I needed an offsetof evaluated at compile time, could not get it |
03:07:34 | zachcarter | ah yeah the offset of thing is a pain |
03:07:48 | zachcarter | we need a propper solution in the sdtlib for that |
03:07:57 | krux02 | I reimplemented sizeof and alignof as a macro and then I got it, but my implemenation is wrong, because it cannot the the pragma packed. |
03:08:36 | krux02 | it cannot see the pragma |
03:09:14 | krux02 | I got the recommendation from Araq that I should submit a submit for the compiler |
03:09:43 | krux02 | And to be honest I don't really like to work in the compiler |
03:09:55 | krux02 | I don't think it's a super nice codebase to work in |
03:10:08 | krux02 | it has to many if branches to my personal taste |
03:10:25 | krux02 | and to may layers of indirection that make navigation very hard |
03:10:41 | krux02 | to name one, I hate the magics |
03:11:07 | def-pri-pub | Hey, I just got done adding some experimental mobile controls to "Pucker Up." Can some people test it out for me? https://16bpp.net/games/pucker-up-lgj-2017 |
03:11:09 | zachcarter | yeah I haven’t even delved there yet |
03:11:19 | def-pri-pub | There's a toggle at the top to turn them on. |
03:11:33 | def-pri-pub | I don't really have any good mobile devices or tablets. |
03:13:31 | zachcarter | I’ll try it out |
03:13:36 | zachcarter | I can try on my android phone |
03:13:44 | def-pri-pub | thanks! |
03:13:56 | krux02 | def-pri-pub: all I see is a notification to turn off my adblocker |
03:15:25 | def-pri-pub | crap |
03:15:46 | def-pri-pub | do you have a mobile adblock enabled? |
03:16:44 | zachcarter | they’re working fo rme |
03:16:54 | def-pri-pub | does it feel odd to use them? |
03:17:15 | zachcarter | mm they’re not the mos intuitive things int he world because they’r ebelow the game window |
03:17:20 | zachcarter | at first I didn’t know what they were |
03:17:24 | zachcarter | but I figured it out pretty quickly |
03:17:29 | FromGitter | <Varriount> def-pri-pub: The game stutters each time I press a control. |
03:19:43 | krux02 | zachcarter: well magics are when you dig into tha standard library and then you want to find out how it is implemented, but you hat a wall with a magic pragma |
03:20:08 | krux02 | then exploration basically just stops unless you know how to continue exploring from there |
03:20:09 | def-pri-pub | Varriount: i was trying to figure out why that was happening on my end. I chopped it up to the low end Androids that I have. |
03:20:29 | def-pri-pub | zachcarter: Yeah, those buttons are kind of a hack. |
03:21:04 | * | libman quit (Quit: Connection closed for inactivity) |
03:21:10 | def-pri-pub | Instead of checking the location of a possible button on a <Canvas>, I instead opted to make a few divs and attach touch events to them, then have them dispatch those events to the game update loop |
03:21:50 | krux02 | well as I said, I can't see the game, because it doesn't appear, and no I am not disabling my ad blocker. ad blocking is an essential part of surfing the internet |
03:21:57 | FromGitter | <Varriount> def-pri-pub: Hm. I have a Samsung Galaxy S5. It's a little outdated, but I don't know if it's that out-dated. |
03:22:38 | FromGitter | <Varriount> krux02: For me, the compiler is hard to work with because of all the includes and lack of documentation. |
03:22:53 | krux02 | also if the website would respect my rights of privacy, it could not even detect if I was using an ad blocker or not |
03:23:40 | FromGitter | <Varriount> Even with documentation, large programs tend to be hard to understand. Lack of documentation makes it worse. |
03:23:57 | krux02 | Varriount: most I know from Nim it my pure trying it out |
03:24:39 | zachcarter | hrm |
03:24:45 | zachcarter | this guy si really confusing me |
03:24:46 | krux02 | but that is a very dangerous thing to do, because you never know if the behaviour you are observing is intended behaviour or a bug |
03:25:02 | zachcarter | Elronnd: zachcarter: int isn't an object. But you can still do int foo = 5; foo.whatever("fork); because there was a void whatever(int, string); declared |
03:25:02 | zachcarter | [11:08pm] Elronnd: there's a string.split() even though a string is just an immutable(char[]), and an array is just a pointer and a length |
03:25:04 | zachcarter | [11:08pm] zachcarter: ah I see |
03:25:05 | zachcarter | [11:13pm] zachcarter: Elronnd: you could do something like this with Nim but yeah, your point is well taken : https://glot.io/snippets/eohnrmmgkh |
03:25:07 | zachcarter | [11:19pm] Elronnd: zachcarter: if you could do something like that in nim then why aren't there things that aren't objects? |
03:25:08 | zachcarter | [11:21pm] zachcarter: apparently I didn’t fully comprehend your previous statement |
03:25:10 | zachcarter | [11:21pm] zachcarter: this part eluded me : because there was a void whatever(int, string); declared |
03:25:11 | zachcarter | [11:21pm] zachcarter: so my example doesn’t satisfy your scenario |
03:25:12 | zachcarter | [11:22pm] Elronnd: your example does satisfy my scenario |
03:25:13 | zachcarter | [11:22pm] Elronnd: my question is why the rest of nim doesn't |
03:25:41 | FromGitter | <Varriount> ? |
03:25:44 | zachcarter | he keeps saying everything in Nim is an object |
03:26:03 | FromGitter | <Varriount> What is this communication from? |
03:26:09 | zachcarter | #rgrd on quakenet.org |
03:26:25 | FromGitter | <Varriount> Uh. No. He's thinking Python, or Ruby. |
03:26:33 | FromGitter | <Varriount> I mean, he must be confused. |
03:26:39 | krux02 | now I am confused, too many layers: <zachcarter> [11:19pm] Elronnd: zachcarter: |
03:26:48 | krux02 | who is talking? |
03:27:02 | zachcarter | haha I think he was mentioning me there |
03:27:06 | FromGitter | <Varriount> zachcarter: It would probably be better for you to gist the chat, rather than paste it in here. |
03:27:19 | zachcarter | ah yeah sorry about that I”ll do that next time |
03:27:39 | krux02 | the problem you have is probably because of terminology |
03:27:44 | FromGitter | <Varriount> zachcarter: He's confused about unified function call syntax |
03:27:58 | krux02 | objects are to many people this heap allocated thing that starts with a vtable pointer |
03:28:03 | FromGitter | <Varriount> Which is easy to do, I was confused about that when I first read about Nim |
03:28:20 | zachcarter | yeah I thought I gave him an example of it |
03:28:41 | * | def-pri-pub quit (Quit: leaving) |
03:28:54 | FromGitter | <Varriount> zachcarter: Tell him/her that in Nim, there are no methods: `a.foo(b)` is rewritten by the compiler as `foo(a, b)` |
03:29:16 | krux02 | well unified function call syntax is wanted by bjarne stroustrup for c++ |
03:29:18 | zachcarter | thank you |
03:29:26 | krux02 | no idea if I got that name right (probably not) |
03:29:43 | krux02 | so you could reference that c++ specification |
03:29:50 | krux02 | or better said proposal |
03:30:10 | krux02 | it is probably better explained than anything in Nim |
03:30:14 | FromGitter | <Varriount> zachcarter: I believe that saying 'x is rewritten to be y' will help. (although, technically it's not true) |
03:31:15 | krux02 | I think the unified function call syntax is one of the biggest strengths of Nim |
03:31:33 | FromGitter | <Varriount> krux02: And templates. I really like templates. |
03:31:38 | krux02 | I never thought that such a simple and small feature could teach me on how much I actually need real methods |
03:31:42 | krux02 | (not at all) |
03:32:10 | zachcarter | ecraven joined the chat room. |
03:32:10 | zachcarter | [11:30pm] Elronnd: that's all a class ever is |
03:32:11 | zachcarter | [11:30pm] Elronnd: in pretty much any language |
03:32:18 | zachcarter | whoops didn’t mean to copy that other line haha |
03:32:20 | krux02 | it is only about syntax and syntax matters a lot |
03:32:47 | zachcarter | I don’t get his point anymore, but I’m also done trying to understand |
03:32:54 | zachcarter | I need to start working on docu for frag |
03:33:00 | krux02 | well in nim it's not a class like in any language |
03:33:15 | FromGitter | <Varriount> In Nim it's just a way of calling a function. |
03:33:24 | zachcarter | right |
03:33:49 | krux02 | it is basically what mixins in c# and implicits class in scala try to solve |
03:34:02 | krux02 | just without this overhead and much simpler |
03:34:58 | * | yglukhov quit (Ping timeout: 258 seconds) |
03:34:59 | krux02 | the true pover is that you can add "methods" to a "class" from anywhere |
03:35:02 | FromGitter | <Varriount> zachcarter: Should I join you? |
03:35:12 | zachcarter | not worth it |
03:35:28 | zachcarter | it’s just a roguelike development chatroom |
03:35:35 | zachcarter | it’s dead 90% of the time |
03:35:35 | FromGitter | <Varriount> :( |
03:35:39 | krux02 | and that without the concept thas python does where you actually modify the class |
03:35:54 | zachcarter | but if you want! #rgrd on quakenet.org |
03:36:00 | zachcarter | I think they even have webchat.quakenet.org |
03:37:07 | krux02 | There are a few things that I think are still missing for Nim so that I can recommend it to other people who do c++ otherwise |
03:37:26 | krux02 | but for rouguelits that issue probably just doesn't matter at all |
03:38:00 | zachcarter | yeah |
03:38:15 | krux02 | I kind of think it's funny that roguelikes are written most of the time in these very low level languages despite the fact that they are the type of games that need the least amount of performance |
03:38:30 | krux02 | (dwarf fortress is an RTS) |
03:39:37 | krux02 | people could use for roguelikes the most fancy programming language, and yet they stickk to C and C++ |
03:40:10 | krux02 | rogueliks show one thing though |
03:40:24 | krux02 | today I watched a talk from the GDC vault |
03:40:30 | krux02 | and it was about expertise |
03:40:44 | krux02 | the guy wanted a digging animation and the guy asked was an expert |
03:41:09 | krux02 | the result was a super detailed digging animation with arm movement and weating |
03:41:37 | krux02 | but that was completely worthless, because all that was needed was "a dig" and done |
03:41:49 | krux02 | something more abstract and nod so specialized |
03:41:53 | zachcarter | right |
03:41:57 | krux02 | I would call it an abstract digging animation |
03:42:05 | krux02 | something that can be used in more situations |
03:42:20 | krux02 | same goes for roguelike graphics |
03:42:30 | zachcarter | yeah |
03:42:35 | zachcarter | one of my buddies works on a roguelike framework in Java and it’s quite powerful : https://github.com/SquidPony/SquidLib |
03:42:46 | krux02 | even though they might be totally differnt games, they can still worth with the same graphcis/tileset and it just works |
03:43:40 | krux02 | zachcarter: I worked a lot in Scala, I realy loved that language, by I try to avoid the JVM. I hate it, and the platform independence is a lie. |
03:43:46 | zachcarter | me too |
03:43:50 | zachcarter | I work on it every day |
03:44:03 | krux02 | ok I don't hate the jvm, but I don't recommend it for games |
03:44:07 | zachcarter | I hate it |
03:44:14 | zachcarter | I’d rather do all my work in golang |
03:44:22 | zachcarter | or Nim |
03:44:32 | zachcarter | although golang for the distribution and concurrency is nic |
03:44:33 | zachcarter | e |
03:44:35 | krux02 | yes I think too, that go is the better alternative to java |
03:45:20 | zachcarter | I’ve been trying to push Go hard at work since 1.0 |
03:45:24 | krux02 | it tries to be the language that java is used for, a server side language |
03:45:31 | zachcarter | only now are people starting to finally listen |
03:45:35 | zachcarter | exactly |
03:45:44 | krux02 | actually I know the guy who wrote the go to javascript compiler |
03:45:55 | krux02 | but anyway I like the simplicity of go |
03:46:03 | krux02 | it just has a few features and that's it |
03:46:06 | krux02 | no surprises |
03:46:06 | zachcarter | yup |
03:46:32 | zachcarter | just again don’t write games with it |
03:46:46 | zachcarter | I guess you could, I just don’t know how the GC behaves |
03:46:53 | zachcarter | it’d be great for a game server |
03:47:02 | krux02 | and I really think that this is good for bigger teams because individuals can't go crazy with their knowlede and use super fancy programming language features that nobody else in the team understands |
03:47:25 | krux02 | actually I did write a game engine in go |
03:47:30 | krux02 | it kind of works |
03:47:33 | zachcarter | how’d it go? |
03:47:34 | zachcarter | hahaha |
03:47:36 | zachcarter | get it? |
03:47:51 | zachcarter | do you have it on github? |
03:48:02 | krux02 | https://github.com/krux02/turnt-octo-wallhack |
03:48:13 | zachcarter | btw Varriount is killing it in #rgrd right now :P |
03:48:22 | krux02 | well I was missing metaprogramming |
03:48:40 | krux02 | the vector math turned out to be quite good |
03:48:54 | zachcarter | neat |
03:48:56 | krux02 | even though I did not have swizzling, multiple return values made up for it |
03:49:35 | krux02 | but it got very redundant when I wrote all those different renderers for the different things in my scene |
03:49:42 | krux02 | a lot of duplicated code |
03:49:55 | zachcarter | right |
03:50:02 | zachcarter | yeah that’s one problem with go |
03:50:30 | krux02 | that is also the reasone I started to look for an alternative that would allow me to solve this problem |
03:50:39 | krux02 | and the Nim macros actually could do that |
03:50:43 | * | sz0 joined #nim |
03:51:27 | krux02 | and code generation really doesn't solve it |
03:51:51 | krux02 | because I need information from the context where I generate code, to know what I need to generate |
03:52:03 | zachcarter | right |
03:52:09 | krux02 | so the classicaly code generator was just not a solution |
03:52:39 | krux02 | onld the nim macros where I could inspect types at compile time and do things based on that were able to generate the exact code I wanted to generate |
03:52:55 | krux02 | but it turns out that also the nim code at compile time has it's limitations |
03:53:06 | krux02 | for example I can't call into c at compile time |
03:53:33 | krux02 | the interpreter has a very different memory layout therefore adresses don't work |
03:53:50 | krux02 | and basically everything that is based on memory layout just doesn't work at compile time |
03:53:54 | zachcarter | right |
03:54:06 | zachcarter | not sure how you solve that one |
03:54:31 | krux02 | well I simply don't do smart things at compile time |
03:54:44 | krux02 | I try to be as straight forward as possible |
03:54:49 | krux02 | and it works |
03:55:15 | zachcarter | what’s an example of something you were trying to call into at ocmpile time? |
03:55:20 | zachcarter | compile* |
03:55:20 | krux02 | but I did a lot of tricks in my opengl-sandbox |
03:55:46 | krux02 | for example my untyped macro that just generates a call to a typed macro |
03:56:09 | zachcarter | ah |
03:56:42 | FromGitter | <Varriount> zachcarter: So how am I doing? |
03:56:59 | zachcarter | zachcarter: btw Varriount is killing it in #rgrd right now |
03:57:04 | zachcarter | hahaha |
03:57:08 | krux02 | one funny thig is thogh, when I pass a constant to a shader, I know the value at compile time, so I can generate the value of that constant into the shader code itself |
03:57:09 | zachcarter | good man extremely well |
03:57:10 | zachcarter | I’m learning things |
03:57:53 | krux02 | well I am not joining there today |
03:57:55 | zachcarter | krux02: that is pretty neat |
03:58:46 | krux02 | it was actually necessary, so that I could use those values in the shader as an array length |
03:59:32 | zachcarter | yeah that is awesome actually thinking more about it |
03:59:44 | zachcarter | I’d have a hard time doing that with my framework considering my shaders are precompiled |
04:00:35 | krux02 | I can just put a constant in the uniforms section, and the uniform is optimized out, but the identifier is generated as a constand in the code |
04:01:18 | krux02 | it doesn't work for all types thogh, but for the int type I am 100% sure |
04:01:34 | krux02 | I don't know anymore why I couldn't just do it for all types |
04:03:17 | krux02 | well I need to say good night |
04:03:24 | krux02 | I hear the birds tweet outside |
04:03:26 | krux02 | it's time |
04:03:31 | krux02 | good night |
04:03:32 | * | krux02 quit (Remote host closed the connection) |
04:05:05 | zachcarter | gn |
04:06:15 | * | rauss joined #nim |
04:14:03 | FromGitter | <Varriount> zachcarter: My hands are getting tired. :/ |
04:14:43 | zachcarter | hahaha |
04:14:46 | zachcarter | he’s asking a lot of questions |
04:18:42 | zachcarter | now he’s getting philisophical |
04:18:47 | zachcarter | hahaha |
04:30:05 | FromGitter | <Varriount> What do people have against indentation? |
04:30:18 | zachcarter | I don’t know |
04:30:21 | zachcarter | I like significant whitespace |
04:32:19 | * | yglukhov joined #nim |
04:37:12 | FromGitter | <Varriount> zachcarter: By the way, have you used Nim's built-in templating mode? |
04:37:29 | zachcarter | not sure |
04:37:39 | zachcarter | can you point me to the docu on it? |
04:38:20 | FromGitter | <Varriount> zachcarter: https://nim-lang.org/docs/filters.html |
04:38:27 | zachcarter | thank you |
04:38:47 | FromGitter | <Varriount> If you've ever thought "Boy, I wish I could put some Nim in this text file", there's your answer |
04:39:03 | zachcarter | oh wow that is nice |
04:39:09 | zachcarter | thank you for showing me that |
04:41:04 | FromGitter | <Varriount> zachcarter: It occurred to me that such a utility might be useful for dealing with the shaders and such that game programming requires. |
04:41:25 | zachcarter | it definitely could be I can think of a lot of uses for it |
04:43:08 | zachcarter | I need to play with this |
04:44:57 | FromGitter | <Varriount> zachcarter: A little help? I'm not an expert on C macros. |
04:45:29 | zachcarter | let me see |
04:51:09 | FromGitter | <Varriount> Uh... C macros are better than Lisp macros...? |
04:51:22 | zachcarter | I don’t get that |
04:54:27 | FromGitter | <Varriount> I mean, C macros are flexible, certainly. However, they are quite unsafe and are very separate from C/C++ |
04:56:43 | zachcarter | right |
04:58:01 | * | Jesin quit (Remote host closed the connection) |
05:02:45 | * | Jesin joined #nim |
05:04:33 | * | yglukhov quit (Ping timeout: 256 seconds) |
05:05:08 | FromGitter | <Varriount> Ok, I think I know what 'smh' means, but what about 'fam'? |
05:05:34 | zachcarter | lol |
05:05:38 | zachcarter | I have no clue I guess family |
05:05:52 | zachcarter | http://knowyourmeme.com/memes/fam |
05:06:55 | * | bungoman quit (Ping timeout: 246 seconds) |
05:08:14 | * | bungoman joined #nim |
05:11:29 | zachcarter | oooo Ragath is here now |
05:11:31 | zachcarter | this is going to get good |
05:11:55 | zachcarter | :popcorn: |
05:12:00 | FromGitter | <Varriount> Why is that? |
05:12:39 | zachcarter | Ragath loves C# and is pretty smart |
05:13:16 | zachcarter | good in language debates |
05:13:40 | FromGitter | <Varriount> I don't mind C# much either. |
05:13:44 | FromGitter | <Varriount> Certainly better than Java. |
05:13:48 | zachcarter | agreed |
05:53:42 | ldlework | I love C# |
05:53:47 | ldlework | great generics, modern features |
06:09:01 | * | nsf joined #nim |
06:21:31 | * | rauss quit (Quit: WeeChat 1.7) |
06:37:21 | Araq | ha, I don't like its generics too much, but it's a nice language. I wished they wouldn't have started with Java as a blueprint though. |
06:37:32 | Araq | all its bad parts stem from Java. |
06:40:18 | * | filcuc joined #nim |
06:42:22 | FromGitter | <Varriount> Araq: But surely using objects everywhere has no downside! |
06:42:34 | Araq | :P |
06:43:21 | Araq | everything is a pointer to something else. sucks whenever you seek to get performance out of a system |
06:43:57 | Araq | it's also bad semantics (aliasing everywhere) |
06:44:30 | * | Vladar joined #nim |
06:45:00 | * | yglukhov joined #nim |
06:47:16 | * | yglukhov_ joined #nim |
06:47:17 | * | yglukhov quit (Remote host closed the connection) |
06:56:08 | * | chemist69 quit (Ping timeout: 240 seconds) |
06:57:06 | * | yglukhov_ quit () |
06:58:46 | * | yglukhov joined #nim |
07:02:57 | * | chemist69 joined #nim |
07:07:28 | * | rokups joined #nim |
07:24:25 | * | sz0 quit (Quit: Connection closed for inactivity) |
07:44:44 | * | sz0 joined #nim |
08:31:42 | * | Andris_zbx joined #nim |
08:48:29 | * | vendethiel joined #nim |
09:04:51 | * | bjz joined #nim |
09:05:27 | * | arnetheduck joined #nim |
09:14:42 | FromGitter | <dom96> federico3: https://www.reddit.com/r/nim/comments/62k2rs/nimism_is_a_lightweight_extremely_simple_nim/dfn6ad4/ |
09:19:31 | chemist69 | can someone explain to me, why I can use a custom operator without backticks in the infix notation, but need to backtick it when I want use it in the prefix notation with parentheses? https://glot.io/snippets/eohxm2xbq4 |
09:30:25 | * | arnetheduck quit (Ping timeout: 260 seconds) |
09:33:22 | Araq | chemist69: because prefix notation is for *unary* operators |
09:33:31 | Araq | not for *binary* operators |
09:37:43 | euantor | dom96: Cool to see somebody else working on solving that problem |
09:39:15 | chemist69 | Araq: ok, thanks. |
09:54:57 | federico3 | dom96: thanks! (Inactive? it's up and running...) |
09:57:06 | FromGitter | <andreaferretti> running where? it is not linked from github |
10:00:21 | * | PMunch joined #nim |
10:01:40 | federico3 | andreaferretti: https://nimble.directory/ - I'll add a link |
10:09:42 | FromGitter | <vegansk> ``boost.typeutils`` now can work with json :-) ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=58de2ae6b402a53211cf11eb] |
10:10:45 | FromGitter | <andreaferretti> @federico https://css-tricks.com/couple-takes-sticky-footer/ may be useful :-) |
10:13:32 | federico3 | thanks |
10:18:03 | * | vlad1777d joined #nim |
10:33:56 | FromGitter | <dom96> federico3: I replied. Would you be interested in collaborating? |
10:34:05 | FromGitter | <dom96> I think it would be a win for us all |
10:35:39 | federico3 | sure! |
10:52:20 | * | yeeve quit (Read error: Connection reset by peer) |
10:53:34 | * | yeeve joined #nim |
10:56:09 | * | bjz_ joined #nim |
10:58:29 | * | bjz quit (Ping timeout: 258 seconds) |
11:00:17 | FromGitter | <vegansk> today it's windy in Novosibirsk https://youtu.be/eEwKE5-efR4 |
11:02:04 | * | Vladar quit (Remote host closed the connection) |
11:04:10 | Araq | wtf ... XD |
11:04:25 | * | sz0 quit (Quit: Connection closed for inactivity) |
11:11:44 | FromGitter | <timeyyy> :araq i'm looking for a full time programming job, junior position or something similiar. Do you know of anything or is there a page for nim jobs floating around? |
11:19:26 | Araq | I'll ask around |
11:20:40 | FromGitter | <timeyyy> Sweet, based in cologne (will travel) |
11:21:55 | * | Vladar joined #nim |
11:39:16 | * | bjz_ quit (Ping timeout: 246 seconds) |
11:39:46 | * | bjz joined #nim |
11:40:37 | * | federico3 quit (Quit: WeeChat 1.5) |
11:40:38 | * | federico2 joined #nim |
11:42:49 | * | federico2 is now known as federico3 |
12:00:13 | * | PMunch quit (Quit: leaving) |
12:05:20 | * | yglukhov quit (Remote host closed the connection) |
12:12:01 | * | yglukhov joined #nim |
12:22:49 | * | yglukhov quit (Remote host closed the connection) |
12:23:29 | * | yglukhov joined #nim |
12:29:52 | ftsf | o/ |
12:29:56 | ftsf | evening! |
12:38:24 | * | yglukhov quit (Remote host closed the connection) |
12:38:37 | * | yglukhov joined #nim |
12:49:58 | * | yglukhov quit (Remote host closed the connection) |
12:50:30 | * | yglukhov joined #nim |
12:55:00 | * | yglukhov quit (Ping timeout: 260 seconds) |
12:59:34 | * | yglukhov joined #nim |
13:00:44 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
13:04:24 | * | arnetheduck joined #nim |
13:06:29 | * | Tiberium joined #nim |
13:08:39 | * | Vladar quit (Quit: Leaving) |
13:08:48 | zachcarter | Araq: I’m also looking for a new gig, if anything in Nim world is avaialble I’d jump at it |
13:09:11 | zachcarter | get me out of the Java / Groovy hell hole I’m in |
13:09:33 | * | ngc quit (Quit: Leaving) |
13:09:44 | zachcarter | I’m based wherever the job is :P |
13:10:04 | zachcarter | having said that I only speak English and a tiny bit of Spanish |
13:10:15 | zachcarter | typical American pig |
13:11:22 | zachcarter | vegansk: now I’m stuck watching Russsian youtube vids |
13:11:30 | * | bjz joined #nim |
13:12:24 | * | Matthias247 joined #nim |
13:27:33 | * | Ven joined #nim |
13:27:57 | * | Ven is now known as Guest87256 |
13:33:28 | * | Guest87256 quit (Read error: Connection reset by peer) |
13:33:43 | * | Ven_ joined #nim |
13:35:00 | * | Ven_ quit (Client Quit) |
13:40:54 | * | nsf quit (Quit: WeeChat 1.7) |
13:47:48 | * | chemist69 quit (Ping timeout: 240 seconds) |
13:50:41 | * | vlad1777d quit (Remote host closed the connection) |
13:54:47 | * | yglukhov quit (Remote host closed the connection) |
13:56:58 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
13:58:48 | * | yglukhov joined #nim |
14:02:38 | Tiberium | hmm, just fondering - https://pastebin.com/p4BVnz9t can I optimize this somehow? |
14:02:49 | Tiberium | just want to contribute microbenchmark |
14:03:28 | * | yglukhov quit (Ping timeout: 256 seconds) |
14:04:41 | Tiberium | zachcarter, lol, what Russian vids? |
14:04:47 | Tiberium | I can translate them xD |
14:04:52 | zachcarter | ahahha |
14:04:53 | zachcarter | sec |
14:05:03 | zachcarter | this is the one he shared that got me going |
14:05:04 | zachcarter | https://youtu.be/eEwKE5-efR4 |
14:05:15 | zachcarter | not much to translate there besides BEEP |
14:05:32 | Tiberium | zachcarter, you know what BEEP means :) |
14:05:40 | zachcarter | this is true |
14:06:00 | Tiberium | zachcarter, and in the start of the video he says "ok, let's go, gusts, go, go" |
14:06:05 | Araq | Tiberium: use int32 on 64bit arch to speed it up |
14:06:18 | zachcarter | oh so he’s rooting for the roof to fly off, nice |
14:06:24 | zachcarter | I would be too |
14:07:22 | Tiberium | Araq, replace all int's with int32's ? like in proc definition, seq[int32] too ? |
14:08:29 | * | chemist69 joined #nim |
14:09:03 | Araq | only for the div operations |
14:11:24 | zachcarter | btw Timberium - that does not compile fo rme |
14:11:39 | zachcarter | actually nevermind it does |
14:11:40 | zachcarter | runtime exception |
14:12:03 | zachcarter | ah that would be why : let period_time = getEnv("RUN_TIME").parseInt() |
14:12:07 | Tiberium | zachcarter, you need to set up RUN_TIME variable |
14:12:14 | zachcarter | just saw that |
14:12:15 | Tiberium | It's https://blog.famzah.net/2016/09/10/cpp-vs-python-vs-php-vs-java-vs-others-performance-benchmark-2016-q3/ |
14:12:38 | zachcarter | cool |
14:12:44 | zachcarter | good idea :D |
14:13:36 | Tiberium | I just translated python version |
14:14:16 | zachcarter | you can also set some optimization flags on the compiler and of course build for release but I’m guessing you know those things already |
14:14:35 | Tiberium | zachcarter, I know that I can |
14:14:42 | zachcarter | good deal |
14:14:52 | Tiberium | But I want to test it without passC options for example |
14:14:55 | Tiberium | just with -d:release |
14:15:04 | zachcarter | right |
14:15:18 | Tiberium | Araq, I'm getting the roughly the same results, hmm |
14:15:57 | Araq | if you don't get the same speed as C++, you're doing it wrong |
14:16:08 | Tiberium | Araq, yeah, it seems I'm doing it wrong |
14:16:17 | Tiberium | I just translated python version |
14:16:22 | def- | Tiberium: i don't understand how to interpret the result of running it |
14:16:32 | Tiberium | def-, count of lines :) |
14:16:54 | def- | that varies between 1 and 10 on my system with each run |
14:16:57 | Tiberium | maybe we can contribute here https://github.com/famzah/langs-performance |
14:18:18 | Tiberium | ah, rust uses "u32" which I think is uint32 ? |
14:19:43 | def- | Tiberium: i think your getTime is too inaccurate |
14:20:52 | * | Matthias247 quit (Read error: Connection reset by peer) |
14:22:14 | def- | well, same thing happens with the c++ implementation, weird benchmark |
14:23:18 | euantor | ANother optimisation might be to give the seq an explicit starting size with newSeqOfCap: https://nim-lang.org/docs/system.html#newSeqOfCap,Natural |
14:24:00 | * | rauss joined #nim |
14:31:25 | Tiberium | btw, are tuples faster than objects? |
14:32:00 | def- | Tiberium: this looks a bit faster to me: https://gist.github.com/def-/fd6f528e51683f7b1baa60518b426d74 |
14:33:33 | Tiberium | def-, thanks! |
14:33:47 | def- | tuples should be same speed as objects |
14:35:06 | Tiberium | def-, wow, your version is much faster |
14:35:07 | euantor | Also regarding that blog post, .NET Core beats Go... just goes to show how good the CLR (even in .net core) is at what it does |
14:35:10 | Tiberium | it's the speed of C++ |
14:35:48 | def- | Tiberium: int32, and don't allocate a new seq at the end |
14:37:24 | Tiberium | def-, thanks! |
14:37:30 | FromGitter | <brechtm> Is there anything like Python's list.index()? |
14:37:34 | FromGitter | <brechtm> for seq |
14:38:35 | Tiberium | aand question about meta-programming: can I something like this (https://gist.github.com/TiberiumN/95b144ea467687f9f6a7891a3b258fb3) with macros or templates? It's not a critical part for me, it will just look better :) |
14:41:30 | Araq | brechtm: system.find? not sure what index() does |
14:41:45 | Tiberium | Araq, index finds index of value in list |
14:42:01 | Tiberium | *first index |
14:42:02 | FromGitter | <brechtm> @Araq: seems right, thanks |
14:47:10 | * | Jesin quit (Quit: Leaving) |
14:48:58 | FromGitter | <Natsirtt> Hello! |
14:50:23 | * | Jesin joined #nim |
14:51:38 | FromGitter | <Araq> welcome |
14:51:49 | Tiberium | How hard it is to do something like jester's DSL? only DSL part |
14:51:53 | Tiberium | without html and stuff |
14:51:56 | FromGitter | <Natsirtt> Thanks :) |
14:53:30 | * | PMunch joined #nim |
14:54:50 | FromGitter | <Natsirtt> I am completely new with Nim here :) ⏎ I am trying to write a small utility library, compiling it to a .dll. I got that far without much trouble, but now the thing is that I want to use the returned int value of the procedure as an error code for the external app calling ; but I also need to return an int which is the result of the call (when exit code is 0 for success) |
14:55:13 | FromGitter | <Natsirtt> Is there any way to have the application provide a variable by reference? Or is that a stretch :) |
14:55:29 | FromGitter | <Natsirtt> (I saw mention of a byref pragma but didn't really get that working) |
14:56:15 | Araq | addr myvar |
15:04:20 | * | yglukhov joined #nim |
15:05:36 | FromGitter | <Araq> @Natsirtt you can make the proc return a tuple or write an Either type in 4 lines. however it also depends on what your DLL client is written in |
15:07:26 | PMunch | Hmm, the error message when creating statements like "result.direction = if check: 5 else: 10" which spans over multiple lines but lacks a return value could be greatly improved |
15:07:56 | PMunch | http://ix.io/pso |
15:08:04 | PMunch | That's an example of such a statement |
15:08:19 | PMunch | If you remove any of the elses it will complain about invalid indentation |
15:08:49 | * | yglukhov quit (Ping timeout: 258 seconds) |
15:14:04 | * | gour joined #nim |
15:14:10 | * | yglukhov joined #nim |
15:14:28 | FromGitter | <Natsirtt> @Araq the idea is that I don't know who will use the DLL :) I want to write a lib that can be used by different systems in the company ; I would say the 3 possible clients at the moment would be a C# application, a python script or a C++ program |
15:15:41 | * | gour left #nim ("Leaving") |
15:19:01 | FromGitter | <Araq> @Natsirtt then have the return type an int with the error code and return the real result via ``ptr int`` or similar |
15:19:18 | FromGitter | <Araq> this will cause the least amount of trouble then for other languages to cope with |
15:21:01 | FromGitter | <Natsirtt> Yeah I am going to go that route. Thanks! I should use `ptr cint` though, right? |
15:21:42 | Araq | DLLs are better served with 'ptr int32' |
15:22:03 | Araq | so that it's not ambiguous, it's about being binary compatible |
15:22:10 | Araq | 'cint' conveys the wrong idea. |
15:22:23 | FromGitter | <Natsirtt> Got it. Thanks a lot! |
15:27:24 | * | nsf joined #nim |
15:27:51 | PMunch | Hmm, is there a way to do something like this: macro makeCircle(center: Point, radius: int, segments: int): array[0..segments, point] |
15:28:24 | PMunch | Take in a parameter to a macro (which runs on compile time) and have that parameter define the output |
15:28:55 | FromGitter | <Varriount> PMunch: Use `typed` as the output type |
15:29:10 | FromGitter | <Varriount> Anyway, doesn't a macro normally output AST? |
15:29:12 | PMunch | Ah, of course :P |
15:29:25 | * | Andris_zbx quit (Remote host closed the connection) |
15:29:30 | PMunch | Yeah, I originally thought of writing it as a proc. But that obviously wouldn't work |
15:29:36 | FromGitter | <Varriount> Or do you mean a template. |
15:30:26 | PMunch | Well, I want the thing to generate an array of coordinates to draw a circle |
15:30:34 | PMunch | In n-segments |
15:32:16 | FromGitter | <Varriount> PMunch: You can use a template for that. |
15:32:43 | PMunch | Hmm, I could? |
15:32:54 | Araq | Tiberium: https://github.com/nim-lang/Nim/blob/devel/compiler/prefixmatches.nim#L73 |
15:32:56 | PMunch | And have it do all the calculations on compiletime? |
15:33:28 | Araq | PMunch: no, use a macro, template cannot produce an AST of variable shape |
15:33:52 | Tiberium | Araq, thanks :) but I will do something like jester's macro to have "plugin <name>: command <plugin command>: actions" |
15:34:08 | Araq | Tiberium: study my code. |
15:34:15 | PMunch | Araq, yeah that's what I thought |
15:34:26 | Tiberium | Araq, ah, understand |
15:36:01 | * | vlad1777d joined #nim |
15:37:30 | * | nhywyll joined #nim |
15:39:02 | PMunch | macro makeCircle(center: Point, radius, segments: int): typed = let degreeStep = degToRad(360) / segments |
15:41:08 | PMunch | Why is segments here considered to be a NimNode? |
15:42:46 | Tiberium | Araq, wow, thanks! |
15:42:50 | Tiberium | it was simpler than I expected |
15:44:59 | Araq | PMunch: because it's not static[int] |
15:45:24 | PMunch | Ah |
15:45:39 | FromGitter | <Varriount> Araq: Hm, then why doesn't this work: https://glot.io/snippets/eoi8ieayh7 |
15:46:25 | FromGitter | <Varriount> Woops, I mean this: https://glot.io/snippets/eoi8jdznq5 |
15:47:23 | * | Trustable joined #nim |
15:56:35 | Araq | varriount: wrong order in array? |
15:56:51 | Araq | it's array[Index, BaseType] |
15:57:42 | PMunch | circle = makeCircle(point(0,0), 100, 15) # Error: value of type array[0..15,Point] has to be discarded |
15:57:49 | PMunch | I'm doing something wrong.. |
15:58:22 | Araq | use 'untyped' |
15:58:40 | Araq | as a return type, 'typed' as return type has known problems |
15:58:42 | PMunch | Ah, what was the difference between those two again? |
15:58:54 | Araq | there is none in theory for return types. |
15:59:02 | Araq | in practice only 'untyped' works reliably :P |
15:59:07 | PMunch | Haha, okay :P |
16:05:20 | * | filcuc quit (Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/) |
16:08:10 | * | dexterk_ joined #nim |
16:08:30 | * | dexterk quit (Ping timeout: 268 seconds) |
16:12:45 | FromGitter | <barcharcraz> can I just say how much nicer untyped/typed is than that old {.immediate.} syntax |
16:13:44 | * | yglukhov quit (Remote host closed the connection) |
16:14:42 | * | PMunch quit (Quit: leaving) |
16:20:09 | FromGitter | <Varriount> Araq: Hm. But it compiled. |
16:22:56 | * | brson joined #nim |
16:29:33 | * | _yeeve joined #nim |
16:33:05 | * | yeeve quit (Ping timeout: 240 seconds) |
16:37:28 | * | chemist69 quit (Ping timeout: 240 seconds) |
16:38:25 | * | nsf quit (Quit: WeeChat 1.7) |
16:39:39 | FromGitter | <Natsirtt> Does anyone know why this would crash when I compile and run test.nim? https://gist.github.com/Natsirtt/c3efe02511675f43511b2b4ee2a040d3 |
16:40:35 | FromGitter | <Natsirtt> I tried to use another standard library module (time) and didn't get any issue ; but all of osproc's functions I tried to call would give me this error |
16:42:05 | * | chemist69 joined #nim |
16:48:14 | * | krux02 joined #nim |
17:16:24 | * | nhywyll quit (Quit: nhywyll) |
17:18:32 | * | Tiberium quit (Remote host closed the connection) |
17:22:16 | * | rokups quit (Quit: Connection closed for inactivity) |
17:24:22 | * | couven92 joined #nim |
17:24:38 | FromGitter | <brechtm> How would I indicate private attribute (prefixed with an underscore in Python)? |
17:25:17 | FromGitter | <brechtm> Say I want to have property position, and by default it should return the private "_position" attribute value. |
17:25:53 | * | Trustable quit (Remote host closed the connection) |
17:26:19 | euantor | Just don't export the object property and add a proc to expose it |
17:27:28 | FromGitter | <brechtm> euantor: yes, but how should I name the attribute? Is there a recommened way? |
17:27:41 | FromGitter | <brechtm> Since an underscore prefix is not allowed in Nim |
17:28:18 | dom96 | brechtm: just name it normally |
17:28:37 | euantor | Yeah, Either name it properly or add some prefix/suffix that makes sense to you |
17:28:50 | FromGitter | <brechtm> @dom96 then I would name it "position", but that collides with the property name |
17:29:03 | euantor | You could always use a prefix like "privatePosition" |
17:29:09 | euantor | or "internalPosition" |
17:29:24 | dom96 | why are you creating a property name for it? |
17:29:35 | euantor | It won't matter if the public API doesn't expose it (e.g.: you provide a `newFoo` or `initFoo` method to initialise the type) |
17:29:44 | FromGitter | <brechtm> @dom96 because I want to override the property for a subclass |
17:30:36 | dom96 | then maybe you should call the property "getProperty"? |
17:31:02 | FromGitter | <brechtm> @dom96 What is this, Java? ;-) |
17:31:43 | dom96 | Nope, but since you're subclassing anyway... :P |
17:32:17 | demi- | dom96: last night i rebooted my instance of jester because it reached ~1GB of memory used |
17:32:25 | FromGitter | <brechtm> @dom96 I don't have to like Java just because I think OOP is useful. |
17:32:34 | dom96 | demi-: Try --gc:boehm or --gc:markandsweep |
17:32:39 | demi- | I think this is on ~2 weeks of running a 100% static content site |
17:33:04 | Xe | demi-: wat, link to your code? |
17:33:33 | demi- | Xe https://github.com/samdmarshall/pewpewthespells-com/blob/master/ritual.nim |
17:34:20 | demi- | I haven't written anything other than the static content portion yet, haven't had the time to do things i would like to use jester for beyond support the site i was hosting originally |
17:34:31 | Xe | demi-: you know about the public/ folder in jester, right? |
17:34:37 | demi- | nope |
17:34:54 | Xe | https://github.com/dom96/jester#static-files |
17:35:26 | Xe | also |
17:35:30 | demi- | ugh, that is what i am doing? |
17:35:37 | Xe | pretty much |
17:35:52 | demi- | yeah, and? |
17:36:10 | Xe | do you get a leak with that? |
17:36:20 | Xe | actually |
17:36:22 | Xe | sec |
17:36:29 | demi- | do you want to re-read what i said |
17:37:00 | demi- | i'm literally using the thing you just suggested i use, and i'm talking about the overall memory usage after 2 weeks of it running |
17:38:43 | Xe | ah |
17:38:45 | Xe | yeah |
17:38:48 | Xe | hmm |
17:38:53 | Xe | how many hits are you getting? |
17:40:23 | dom96 | I don't think that matters really. There must be a leak somewhere in the async implementation. |
17:40:43 | Xe | i'm hammering a jester sample app serving a static file under valgrind |
17:40:49 | dom96 | or a problem with the default GC |
17:42:42 | demi- | dom96's right, the # of hits should be completely irrelevant here; i can try building it with another GC algo and see how it fairs after another week or two, is there a particular one of the two you suggested that i should try first? |
17:43:02 | dom96 | boehm I guess |
17:44:21 | demi- | ok |
17:44:53 | Xe | boehm is at least making jester reply faster |
17:45:16 | * | shashlick quit (Ping timeout: 260 seconds) |
17:45:49 | * | shashlick joined #nim |
17:47:23 | demi- | is there a way to pass that flag to the compiler from `nimble build`? |
17:51:14 | demi- | nvm, just added my own nim.cfg locally to do it |
17:54:22 | * | couven92 quit (Quit: Disconnecting) |
17:59:19 | * | brson quit (Quit: leaving) |
18:02:35 | * | dddddd joined #nim |
18:05:37 | * | Nobabs27 joined #nim |
18:39:46 | * | Vladar joined #nim |
18:40:11 | * | BitPuffin|osx quit (Remote host closed the connection) |
18:42:20 | * | rauss quit (Quit: WeeChat 1.7) |
18:42:42 | * | rauss joined #nim |
18:58:43 | ldlework | hi ftsf |
19:07:09 | * | Matthias247 joined #nim |
19:37:49 | FromGitter | <pabclsn> hi guys |
19:38:01 | rauss | Hi |
19:40:19 | zachcarter | Hello |
19:40:34 | dom96 | hi |
19:41:37 | FromGitter | <pabclsn> Little question for you, do you use nim on atom ? |
19:42:34 | zachcarter | I use VS Code |
19:42:38 | zachcarter | works well |
19:42:45 | FromGitter | <pabclsn> on Mac ? |
19:42:55 | zachcarter | yup |
19:43:07 | zachcarter | https://github.com/fragworks/frag |
19:43:13 | zachcarter | I have some gifs there at the bottom of the readme |
19:43:19 | zachcarter | and you can see VS code in the background |
19:43:20 | FromGitter | <pabclsn> ok thanks :) |
19:43:26 | zachcarter | np! |
19:48:24 | FromGitter | <TiberiumPY> I use Vscode too |
19:51:21 | zachcarter | man running Java applications in intellij makes my laptop run pretty much as hot as when I’m running an application that is GPU intensive |
19:54:47 | Araq | Natssirt: proc countProcessors*(): int {.rtl, extern: "ncpi$1".} = |
19:54:47 | Araq | when defined(windows): |
19:54:47 | Araq | var x = getEnv("NUMBER_OF_PROCESSORS") |
19:54:47 | Araq | if x.len > 0: result = parseInt(x.string) |
19:55:09 | Araq | and the DLL has perhaps no access to environment variables |
20:01:01 | * | yglukhov joined #nim |
20:10:28 | * | nsf joined #nim |
20:13:18 | * | yglukhov quit (Remote host closed the connection) |
20:17:25 | * | Tiberium joined #nim |
20:19:57 | Tiberium | zachcarter, but honestly I like PyCharm (python ide based on intellij platform).. But with nimsuggest it's actually possible to build something like PyCharm, but in VSCode, for example, I can't have intellisense-like feature |
20:20:14 | Tiberium | for example if you know proc name, but you forgot where it's from |
20:20:26 | krux02 | I know intellij for scala programs |
20:20:29 | krux02 | it was nice |
20:20:42 | zachcarter | I think Java probably has the best IDE tooling |
20:20:47 | zachcarter | but it still makes my laptop run extremely hot :P |
20:20:54 | krux02 | but I only had 4GB of ram |
20:21:05 | krux02 | one GB minimum for intellij |
20:21:16 | krux02 | one GB minimum for sbt (scala build tool) |
20:21:23 | zachcarter | lol |
20:21:24 | krux02 | one GB for the browser |
20:21:27 | zachcarter | cutting it close there |
20:21:46 | krux02 | my program was not allowed to use a lot of resources |
20:21:51 | FromGitter | <Varriount> I love PyCharm/IntelliJ for their refactoring capabilities, but their memory footprint is horrible. |
20:22:01 | krux02 | and considering the fact that my program was a scala program it was memory hungry, too |
20:22:05 | zachcarter | agreed Varriount |
20:22:45 | Tiberium | yeah, they're great for PC's |
20:23:07 | Tiberium | for example I have i5 4460 and 8 gigabytes of ram, it's enough to run pycharm without lags :) |
20:23:14 | Tiberium | but yeah, on laptops this IS a problem |
20:23:20 | krux02 | I like this concept from the company https://www.jetbrains.com/mps/ |
20:23:22 | zachcarter | this is a beefy laptop too |
20:23:29 | zachcarter | it’s what develop frag on |
20:23:50 | krux02 | it's a parser free programming language development tool |
20:23:55 | zachcarter | pretty neat |
20:24:02 | krux02 | those languages are the future |
20:24:20 | krux02 | get rid of the parser,get rid of parser errors and invalid syntax trees |
20:25:37 | krux02 | I think that as soon as we have one language established that works this way, we won't ever go back to text based programming languages |
20:25:52 | krux02 | it's like point and click adventures, they also got rid of th parser |
20:26:47 | demi- | look at what unreal development tools do, their visual programming language stuff is really awesome |
20:26:48 | krux02 | by the way, I develop my opengl-sandbox mostly on my laptop, too |
20:27:09 | zachcarter | and not as efficient as writing your own native code |
20:27:14 | * | yglukhov joined #nim |
20:27:15 | krux02 | software rendering because the gpu doesn't do opengl 3.3 |
20:27:32 | zachcarter | you pay for performance with the abstraction |
20:28:02 | Araq | as long as new programmers are indoctrinated to think Unix comes with a "philosophy", it's just not gonna happen |
20:28:17 | krux02 | there are a lot of talks in c++ conferences with zero cost abstractions |
20:28:23 | krux02 | in rust, too I think |
20:28:26 | krux02 | but that is a lie |
20:28:37 | krux02 | there is a cost to it, it is just a pure compile time cost |
20:28:54 | FromGitter | <Varriount> Araq: I see Unix as a collection of tools that just happen to work together. |
20:28:59 | zachcarter | well I meant in the case of UE4’s visual scripting stuff |
20:29:44 | Araq | varriount: I think it's a bad system that is unfixable because it turned into a religion |
20:29:44 | krux02 | zachcarter, I never worked with UE4, but I do know the node editor from blender |
20:30:12 | zachcarter | similar concept except you’re writing gameplay code with nodes |
20:30:16 | Araq | and no amount of evidence is gonna convince these zealots. |
20:30:19 | krux02 | Araq, I think the system on windows is broken |
20:30:37 | krux02 | but there is little benefit in arguing about it |
20:31:03 | krux02 | it is just annoying when you need to support both platforms equally at the same time |
20:31:21 | Araq | krux02: Windows is not copied over and over again, because we all know about its many weaknesses. |
20:31:36 | Araq | Rust people write a new OS, guess what it is ... it's a Unix. That's the problem. |
20:33:02 | krux02 | well, I don't have a problem with the way unix works, and I also think it is not really worth getting gray hair about why it is this way, it just is and it works somehow for a lot of people. |
20:33:14 | krux02 | That doesn't mean it can't be better |
20:33:15 | FromGitter | <Varriount> Araq: I've had an eye on Minoca |
20:33:41 | * | yglukhov quit (Remote host closed the connection) |
20:34:38 | Araq | it can be much better and people lose millions of dollars with this crap. Sure, riding a horse works ... if you have never used a car. |
20:35:17 | * | yglukhov joined #nim |
20:36:14 | ehmry[m] | I heard horses are self-driving |
20:36:38 | krux02 | yea no druk driving with horses |
20:36:55 | FromGitter | <Varriount> ehmry[m]: To a certain extent. It takes some doing to crash a horse into another horse. |
20:36:56 | krux02 | you can get completely wasted and the horse get's you home whele you sleep on it |
20:37:08 | FromGitter | <Varriount> Araq: But it's hard to envision a car if you've never seen one before. |
20:37:09 | ehmry[m] | they use renewable energy too |
20:37:21 | krux02 | and poop on the street |
20:37:25 | zachcarter | https://www.youtube.com/watch?v=yAt6rtX0TI8 |
20:37:30 | Araq | you get my point and it's pointless to argue about it since we all know you don't ride on a horse to work. |
20:37:47 | krux02 | well I ride on a bike to work |
20:37:52 | krux02 | a horse is too expensive |
20:38:22 | Araq | horses smell, are slow and cannot carry much. |
20:38:48 | krux02 | humans smell, too |
20:39:18 | ehmry[m] | I'd feel bad making a horse carry me around yet have to wait outside |
20:39:19 | * | SusWombat quit (Read error: Connection reset by peer) |
20:39:28 | krux02 | I think the biggest disadvantage to horses are, that they need a lot of space and time |
20:40:42 | krux02 | but anyway I think I have too much fun arguing about the advantages of horses |
20:40:56 | ehmry[m] | unix takes too much time |
20:41:08 | * | SusWombat joined #nim |
20:41:26 | krux02 | ehmry[m], windows is not better |
20:43:10 | * | yglukhov quit (Remote host closed the connection) |
20:43:31 | ehmry[m] | more time than I want, but not enough to regress to windows |
20:43:44 | krux02 | windows is horrible because it's locks you in. Once you rely on the fact that you have windows, microsoft can do anythig with you, you can't replace windows with another operating system |
20:43:55 | * | SusWombat quit (Remote host closed the connection) |
20:44:06 | Nobabs27 | agree with ehmry and krux |
20:44:19 | * | SusWombat joined #nim |
20:44:55 | federico3 | [insert comment about plan9] |
20:45:01 | Nobabs27 | LOL |
20:45:06 | krux02 | In the linux world, I had the experience that Ubuntu was doing shit I never asked for and I never wanted. Then I did distro hoppig |
20:45:06 | Nobabs27 | are they still even active? |
20:45:13 | krux02 | try to do that in the windows world |
20:45:13 | FromGitter | <Varriount> krux02: But that's just an artifact of proprietary software. Not the architecture of Windows itself. |
20:45:21 | demi- | indeed |
20:45:24 | krux02 | go from windows 7 to windows 10? |
20:45:31 | krux02 | not that many options |
20:46:15 | krux02 | Varriount: I disagree, the problem is that in windows platform, the API and all that stuff is proprietary tied to the platform, too |
20:46:18 | Tiberium | I have a dual-boot of Manjaro and Windows 10, and mostly reboot to Win 10 because of... games |
20:46:37 | Tiberium | and most of the time I use manjaro |
20:46:48 | Nobabs27 | Windows is a product of not caring imo, that's without mentioning the other smaller issues |
20:46:58 | krux02 | windows should be like OpenGl, once you have the software, you can replace the proprietary implementation, and things for the most part still work |
20:47:13 | krux02 | there should be an alternative windows |
20:47:24 | krux02 | I don't care if it is open soruce or not |
20:47:30 | Tiberium | krux02, it would be too hard to do in modern days |
20:47:34 | FromGitter | <Varriount> Uh.. |
20:47:40 | demi- | varriount, do you use irc->gitter for anything else? that doesn't seem to be working for me correctly |
20:47:55 | ehmry[m] | there is ReactOS, but last I checked I wasn't sure if it did USB |
20:48:09 | krux02 | I agree that it might be impractical to implement, but my answer to that is, then it is impractical for me to use windows |
20:48:14 | Tiberium | ehmry[m], well, we have a russian community of reactos |
20:48:25 | Tiberium | since there are many reactos devs from russia |
20:48:28 | Nobabs27 | lol I tried reactos the other day |
20:48:35 | krux02 | never put yourself is a 100% dependency of a single company |
20:48:41 | Nobabs27 | I don't think you can install it, it's just a live cd |
20:48:43 | krux02 | it makes you dependent of that company |
20:48:48 | Tiberium | Nobabs27, you can actually |
20:48:48 | Nobabs27 | agreed |
20:48:58 | Tiberium | but you can't use almost everything |
20:49:02 | ehmry[m] | lol, a least microsoft makes money, that kind of novel |
20:49:04 | demi- | krux02: if only we could all be as good as you about that :) |
20:49:04 | Tiberium | there's even no PPPoE |
20:49:05 | FromGitter | <Varriount> https://en.wikipedia.org/wiki/ReactOS |
20:49:10 | Nobabs27 | hm well from the googling I did they didnt seem to encourage that |
20:49:21 | Tiberium | yeah |
20:49:30 | FromGitter | <Varriount> demi-: What do you mean? |
20:49:40 | krux02 | ReactOS is very new |
20:49:42 | dom96 | hehe, nothing like an operating system discussion to make the channel active. |
20:49:51 | Nobabs27 | yes yes |
20:49:52 | krux02 | I am even impressed that it has a graphcial desktop |
20:49:57 | Tiberium | https://www.reactos.org/gallery but it can run some programs already |
20:50:00 | Tiberium | krux02, it's not new btw :) |
20:50:10 | Tiberium | roughly |
20:50:20 | Tiberium | Initial release 1998; 19 years ago |
20:50:23 | demi- | varriount, i'm signed into gitter using the irc bridge and i'm not getting any new messages via my IRC client but I keep getting notified about it via email, sign in through the web interface and there is a bunch of stuff i haven't seen. |
20:50:48 | Tiberium | demi-, you just get notified because of new messages in gitter |
20:50:51 | Tiberium | you can unsubscribe |
20:50:52 | ehmry[m] | I've saw a ReactOS obligatory DOOM demo at FOSDEM once |
20:50:59 | demi- | Tiberium: that isn't the problem |
20:51:10 | demi- | the problem is that i'm not seeing those messages in my IRC client |
20:51:44 | Tiberium | demi-, well, how? |
20:51:46 | krux02 | oh I was confusing reactos with redox-os |
20:51:54 | Tiberium | krux02, what is it? |
20:52:03 | Tiberium | ah I see |
20:52:04 | * | dexterk_ quit (Read error: Connection reset by peer) |
20:52:28 | Nobabs27 | first time ive ever heard redox mentioned since I found it |
20:52:28 | * | dexterk_ joined #nim |
20:52:29 | * | dexterk_ quit (Read error: Connection reset by peer) |
20:52:37 | Araq | and after the distro hopping you go back to Windows and enjoy the fact your printer works again, your soundcard doesn't break randomly after an OS update and you can play all the nice games |
20:52:49 | ehmry[m] | quick, someone execute Nim on reactos |
20:52:49 | demi- | Araq: heheh |
20:53:05 | Nobabs27 | actually the printer works for me, and my soundcard is find :\ |
20:53:10 | Araq | and you can do GPU programming without going nuts about driver problems |
20:53:35 | krux02 | Araq, well no I don't I don't have windows and just accepted I can't play some games |
20:53:43 | Tiberium | Araq, yeah, I have a problem like this - I can't use two monitors (one plugged into dedicated gpu, second plugged in integrated gpu) without problems |
20:53:57 | Tiberium | So I use an adapter, so in linux I have two monitors plugged in dedicated gpu |
20:53:58 | krux02 | I mean I also can't play games that are exclusive to consoles I don't own, and I also don't whine about that |
20:54:05 | Tiberium | while in windows I can separate them |
20:54:21 | Nobabs27 | games that only work for Windows means the devs chose Windows specific software, if you write it on something else then it's open source and cross platform :) |
20:54:42 | Tiberium | Nobabs27, there are lazy devs |
20:54:44 | Tiberium | for example |
20:54:51 | Nobabs27 | yeah |
20:54:57 | Araq | it's also a strength you don't waste your time anymore on all these different window managers and UI toolkits :P |
20:54:59 | Tiberium | they do game in "unity 3d", but they're too lazy to compile it for linux |
20:55:15 | Araq | yeah, that's what you think. "too lazy" |
20:55:16 | ehmry[m] | binary releases for linux stop working after a while, if you can get them to run at all |
20:55:17 | krux02 | cross platform for games is not that hard, just do the rendering in OpenGL and the other stuff in SDL |
20:55:19 | krux02 | done |
20:55:26 | Nobabs27 | but a window is a window regardless of your DE/WM tho? |
20:55:31 | Tiberium | Araq, unity3d is cross-platform |
20:55:36 | Araq | here in the real world, you have to *support* this shit. |
20:55:39 | krux02 | tha will not gave you mac support, because mac drivers for opengl suck |
20:55:44 | ehmry[m] | or atleast all the Loli games are probably incompatible now |
20:55:45 | ehmry[m] | *Loki |
20:55:55 | Araq | compiling is easy enough |
20:56:01 | Araq | but support will kill you. |
20:56:14 | krux02 | I doubt it |
20:56:37 | krux02 | sdl2 works really well on linux |
20:56:47 | Araq | "Oh I'm using bazooka Linux with Muslim C library and cannot run your game" |
20:56:56 | Tiberium | LMAO |
20:56:57 | krux02 | the only thing some developers just screw up is that they don't provide a 64bit binary |
20:56:59 | demi- | krux02: you keep saying this, but i think what you mean is that the openGL drivers on mac are stable |
20:57:01 | ehmry[m] | yea, I've been there |
20:57:05 | Tiberium | krux02, but not unity3d |
20:57:13 | Tiberium | it's proprietary and contains custom mono fork |
20:57:32 | Tiberium | mono fork is open-source, yeah |
20:57:46 | Nobabs27 | ...couldnt you just install the right c library for the dependency ? |
20:58:17 | Tiberium | btw, how to silence "Hint: Processing startBot as an async proc." hint? |
20:58:35 | krux02 | demi-, https://www.g-truc.net/doc/OpenGL%204%20Hardware%20Matrix.pdf |
20:58:46 | Tiberium | ah, nvm |
20:58:50 | Tiberium | --hint[User]:off |
20:58:51 | krux02 | demi-, the newest opengl version for mac is 7 years old |
20:59:03 | Nobabs27 | LOL |
20:59:09 | Nobabs27 | I didnt know that but xD |
20:59:11 | demi- | krux02: and i don't see the opengl org actively producing and selling hardware? |
20:59:54 | krux02 | demi-, the "opengl org"? |
21:00:20 | krux02 | I don't know what you mean |
21:00:53 | Tiberium | wait |
21:00:56 | Tiberium | is this really try? |
21:01:00 | Tiberium | *true |
21:01:04 | Tiberium | OpenGL 4.5 MacOS X 0% |
21:01:13 | demi- | khronos |
21:01:14 | krux02 | Tiberium, yes |
21:01:23 | Tiberium | krux02, how to install latest opengl then? |
21:01:40 | Tiberium | (just asking, I don't own any apple products) |
21:01:45 | krux02 | demi-, khronos group is not a manufacturer |
21:02:03 | krux02 | even if they were I don't get the argument |
21:02:44 | demi- | apple creates their own hardware, so i don't understand your fabricated point about lacking support for something when they are the experts on the hardware they are running it on |
21:03:04 | krux02 | Tiberium, even 4.1 isn't reliable |
21:03:19 | * | bjz joined #nim |
21:03:25 | krux02 | using any hardware feauters of the last 7 years on apple? forget it |
21:03:31 | Tiberium | demi-, but if some game depends on opengl 4.5, and developer want to port it to MacOS? |
21:03:57 | krux02 | even if the hardwar provides the features, the drivers don't expose them, because they are shit |
21:04:35 | demi- | then they go to one of the porting houses and they work with the constraints of the system? i don't know why your primary argument here revolves around games when that is trivial to running an OS |
21:05:40 | demi- | if you want to just bicker about supported version then sure, go right ahead. i was merely making the point that they own the entire stack and might have a better clue as to what is stable than you do :) |
21:06:07 | krux02 | demi-, well apple buys hardware from manufactures, they have nvidia GPU's (I think), therefore they could just ask "hey nvidia, give us a driver" and they would probably say "yea here it is, it's free" |
21:06:25 | * | Vladar quit (Quit: Leaving) |
21:06:40 | krux02 | demi-, I know the motivation of apple |
21:06:52 | krux02 | apple is not interested in cross platform ports to apple systems |
21:07:26 | krux02 | they want people to develop on apple be involed in apple and therefore care more about apple products when they develop for them |
21:07:40 | krux02 | that's why they came up with metal API |
21:07:46 | krux02 | an API nobody needs |
21:07:58 | Tiberium | it sounds like a windows os |
21:08:08 | demi- | krux02: ok, i'm done discussing this since you seem pretty set on what you know and understand and not willing to listen to me on it |
21:08:19 | Nobabs27 | aka the apple ecosystem |
21:09:08 | krux02 | demi-, I did not get whet you meant with "when that is trivial to running an OS" |
21:09:21 | krux02 | my knowledge is about GPU programming |
21:09:35 | krux02 | primarily about OpenGL programming |
21:09:58 | demi- | ok, my knowledge is about GPU programming, OpenGL, and the entirity of the OS X operating system and hardware |
21:11:21 | krux02 | The argument is that since 2010 a lot of bugs got fixed that help to improve the speed to develop 3D content in OpenGl, but as soon as you go on apple, you have to reintroduce all those workarounds that you thought you would never need anymore, just because it's apple. That is my frustration about it. |
21:11:47 | demi- | ok, and that is perfectly valid |
21:13:19 | demi- | but apple doesn't care about your stuff, they care about their stuff and whatever benefits their ecosystem; which isn't upgrading what version of OpenGL they ship because they don't want to invest in validating the stability of any new version of OpenGL against all of their hardware (on mac, iOS, and their TV and watch products) |
21:13:44 | Nobabs27 | ^^^^^^^ the first part |
21:13:57 | demi- | unless it impacts their bottom line, which it wont. |
21:14:08 | Nobabs27 | ^ |
21:14:16 | demi- | games are such a tiny market compared to the amount of money they make from selling hardware |
21:14:26 | Nobabs27 | ^ |
21:14:27 | ldlework | I just realized you wrote frag |
21:14:30 | ldlework | oops |
21:14:33 | ldlework | was scrolled up |
21:14:43 | demi- | so making games run fast with newer versions of OpenGL is absolutely bottom of their list of priorities |
21:15:10 | Nobabs27 | ^ |
21:15:33 | dom96 | Why do you consider games to be such a tiny market? |
21:15:37 | demi- | this is what i was talking about when i was saying it is trivial to the task of supporting an OS, which they have at least 4 variants of darwin that run a version of opengl |
21:15:57 | demi- | dom96: i said it was tiny compared to their hardware sales, not that on its own it is tiny |
21:16:21 | krux02 | apple doesn't do games, but that doesn't mean they shouldn't care |
21:16:24 | ldlework | I thought that the games industry is bigger than movies and television now |
21:16:30 | ldlework | combined |
21:16:51 | Nobabs27 | not big for apple tho? |
21:17:04 | ldlework | Oh sorry, I'm out of my element |
21:17:22 | krux02 | apple is really not the compure for people who care about playing games |
21:17:29 | dom96 | In any case, I've used all 3 OS' for extended periods of time. |
21:17:46 | Nobabs27 | same actually |
21:17:46 | zachcarter | I’ve used all three as well |
21:17:49 | dom96 | I've spent far too much time dealing with issues on Linux. |
21:17:54 | Nobabs27 | my first computer was a Mac |
21:17:56 | zachcarter | I like developing on OSX the best |
21:18:04 | zachcarter | then windows |
21:18:05 | zachcarter | then linux |
21:18:07 | Nobabs27 | ironically all I did was play games on it tho xD |
21:18:15 | krux02 | I think I remember once that steve jobs announced that apple had a play station emulator and their mac could therefore play all play station games |
21:18:33 | Araq | lol what? |
21:18:36 | * | gangstacat quit (Quit: Ĝis!) |
21:18:58 | ehmry[m] | I only use linux but I hate it, linux needs a more critical community, or something |
21:19:27 | dom96 | Windows is okay, but the command line is still a pain to use. |
21:19:28 | Nobabs27 | I could partially agree with that |
21:19:37 | dom96 | So yeah, I think OS X is also my favourite. |
21:19:37 | Nobabs27 | The theme of "RTM" is very strong with Linux |
21:19:40 | krux02 | I think the community of Linux users is big enough, it is just very fractured |
21:19:51 | * | Jesin quit (Quit: Leaving) |
21:20:33 | ehmry[m] | meh, its a 40 year old OS with an unimaginable amount of crap bolted on |
21:20:35 | Nobabs27 | just wondering, what distros have you tried that you hates? |
21:20:58 | zachcarter | Ubuntu has major linking problems |
21:21:02 | zachcarter | Arch is better |
21:21:08 | Nobabs27 | what about Nix? |
21:21:15 | Araq | all Oses are shit but there simply is no software that I need that would be only for Linux or only for Mac, so I use Windows. ;-) |
21:21:26 | Nobabs27 | havent tried it but it's supposed to be god in terms of installing everything of every version |
21:21:29 | ehmry[m] | nixos is my favorite, but I need /usr for work :( |
21:21:36 | zachcarter | haven’t tried it |
21:21:53 | Araq | can't think of any application that is OSX specific and after my taste |
21:22:02 | * | vlad1777d quit (Remote host closed the connection) |
21:22:05 | Nobabs27 | I wonder could you keep /usr and still have all the "stores" ? |
21:22:23 | ehmry[m] | I use arch but with nix packages, it works well |
21:22:26 | zachcarter | does NixOS have a GUI? |
21:22:36 | Nobabs27 | just install a gui |
21:22:42 | zachcarter | okay |
21:22:44 | ehmry[m] | except that stupid arch part takes so much time |
21:22:45 | krux02 | Araq: with that argument Linux is probably always the looser |
21:22:54 | Nobabs27 | i think its like arch - they have what you need in the repos |
21:23:02 | zachcarter | gotcha |
21:23:09 | zachcarter | I’ll have to try frag out with nixos |
21:23:27 | ehmry[m] | zachcarter: try it, its worth it |
21:23:37 | krux02 | is nixos this config file os? |
21:23:44 | ehmry[m] | yep |
21:23:45 | zachcarter | will do so thank you for the suggestion |
21:24:06 | ehmry[m] | the problem is crap like npm isn't going to work without a monstrous amount of effort |
21:24:18 | Araq | krux02: I would consider to run it as a server, but I don't run servers |
21:25:04 | krux02 | I would never run windows as a desktop anymore |
21:25:05 | * | Jesin joined #nim |
21:25:19 | Nobabs27 | I wouldnt run it as a main OS |
21:26:02 | Nobabs27 | I would run something slightly obscure, preferable that no one or very few people have has heard of |
21:26:23 | Araq | Oberon? |
21:26:28 | Nobabs27 | tLOL |
21:26:41 | krux02 | I heared microsoft is not only autoinstalling bloatware such as candy crush it also puts adds in the file browser |
21:27:14 | Nobabs27 | hm I havent seen ads on the file browser |
21:27:20 | Nobabs27 | and I used Windows 10 yesterday |
21:27:44 | krux02 | Nobabs27, yea it's very hidden you don't recognize it as advertizement |
21:27:58 | krux02 | I already saw minecraft advertisement in the start menu |
21:27:58 | Nobabs27 | ...then who would pay for it? |
21:28:30 | krux02 | https://cdn0.vox-cdn.com/thumbor/d0qHomN5a2tBgrhHmzcCx9NLBM8=/1000x0/filters:no_upscale()/cdn0.vox-cdn.com/uploads/chorus_asset/file/8174157/file_explorer_ads.png |
21:28:56 | ehmry[m] | Nobabs27: cough genode cough |
21:29:07 | * | rauss quit (Quit: WeeChat 1.7) |
21:29:15 | Nobabs27 | ah i get it |
21:29:59 | krux02 | https://cdn0.vox-cdn.com/thumbor/2d5VpT8-dB83ju0HlkToGU_ZD6I=/0x332:4032x3020/1120x747/filters:focal(0x332:4032x3020):format(webp)/cdn0.vox-cdn.com/uploads/chorus_image/image/50286553/chromenotification.0.0.jpg |
21:30:02 | Nobabs27 | I actually have that I think in my list of all know OS's |
21:31:08 | Tiberium | hmm, why it's throwing an error? |
21:31:08 | Tiberium | https://glot.io/snippets/eoii1gbsul |
21:31:28 | Tiberium | while compiling locally it gives "lib/pure/asyncmacro.nim(19, 10) Error: index out of bounds" |
21:31:40 | ehmry[m] | there is a PR for Nim support |
21:32:16 | Tiberium | some bug in compiler or I've done something wrong? |
21:33:26 | Tiberium | fixed imports: https://glot.io/snippets/eoii3v96vs |
21:34:57 | Tiberium | errors is going away, if I remove try: except: and just return value from try block |
21:44:26 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:49:52 | dom96 | Tiberium: Small request: please use gist. Glot.io's code window is too small. |
21:49:58 | Tiberium | dom96, ah, ok |
21:50:18 | Tiberium | https://gist.github.com/TiberiumN/a9fabd247197f378616564a78e496615 |
21:50:33 | * | chemist69 quit (Ping timeout: 258 seconds) |
21:50:39 | ldlework | What does * after a method or type name mean? |
21:51:13 | ehmry[m] | ldlework: export outside the module |
21:54:36 | dom96 | Tiberium: The 'async' macro tries to transform try statements with 'await' in them, I guess it's failing in this case, please report it. |
21:55:00 | Tiberium | dom96, but in my example there's no await in try statement |
21:55:07 | dom96 | I know |
21:55:22 | ldlework | ah |
21:55:30 | dom96 | The detection must be messed up too |
21:56:20 | * | SusWombat quit (Remote host closed the connection) |
21:57:46 | * | SusWombat joined #nim |
21:58:09 | * | SusWombat quit (Client Quit) |
22:05:06 | Tiberium | dom96, I'll report it, ok. question about yield: if I do "let quality = await something(); yield quality;" how can I get result of something() call? |
22:05:11 | Tiberium | I use yield for error check |
22:09:14 | Tiberium | ah, complete? |
22:10:42 | Tiberium | ah, read :D |
22:11:11 | * | PMunch joined #nim |
22:13:24 | dom96 | read indeed |
22:13:40 | dom96 | and yeah, you should be using it instead of wrapping the 'await' inside a 'try' |
22:14:27 | * | SusWombat joined #nim |
22:17:23 | * | chemist69 joined #nim |
22:18:41 | FromGitter | <TiberiumPY> @Varriount I've checked - yes, downloading file to memory and then sending it to another URL via formdata WORKS |
22:24:01 | * | SusWombat quit (Remote host closed the connection) |
22:33:17 | Tiberium | can I check what causes the reason of blocking my app for some seconds? my app is async; it's happening in a module which gets an url from web api (using await), then downloads it, and uploads it to another URL (using asynchttpclient) |
22:36:22 | * | rauss joined #nim |
22:37:04 | Tiberium | I'm awaiting proc, so I suppose execution of main branch must continue, but it doesn't |
22:39:55 | * | SusWombat joined #nim |
22:40:14 | * | nsf quit (Quit: WeeChat 1.7) |
22:44:46 | * | bjz joined #nim |
22:45:10 | * | fastrom quit (Quit: Leaving.) |
22:45:18 | * | SusWombat quit (Remote host closed the connection) |
22:46:43 | * | SusWombat joined #nim |
22:48:14 | * | rokups joined #nim |
22:48:33 | * | SusWombat quit (Client Quit) |
22:53:23 | * | SusWombat joined #nim |
22:54:46 | Tiberium | how to make my app really unblocking? |
22:55:22 | Tiberium | so if I execute some plugin (which maybe does some http request, json parsing), I could pull other events? |
22:55:35 | * | Tiberium quit (Remote host closed the connection) |
23:00:39 | * | SusWombat quit (Remote host closed the connection) |
23:05:25 | * | SusWombat joined #nim |
23:55:19 | * | chemist69 quit (Ping timeout: 246 seconds) |
23:58:46 | * | chemist69 joined #nim |