00:05:18 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
00:05:34 | * | synshroud joined #nim |
00:14:18 | * | bung joined #nim |
00:14:26 | * | vicfred joined #nim |
00:38:23 | * | bunbunbunbunny joined #nim |
00:40:19 | FromDiscord | <Clyybber> bung: I think theres also an --index option |
00:42:02 | bozaloshtsh | anyone have any examples of a karax app that generates SVGs inside the DOM? |
00:42:58 | bozaloshtsh | trying to add SVGs to mine but they just don't show up. I even hacked around karax's toDom() function to get it to set the namespace on SVG elements correctly. |
00:47:37 | FromDiscord | <Varriount> Is the SVG present in the HTML? |
00:47:46 | bozaloshtsh | yes. |
00:47:55 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
00:48:28 | bozaloshtsh | I'm playing around with the web inspector in chrome and all of the SVG elements are there, exactly as they should be. |
00:48:54 | bozaloshtsh | I even copied some SVGs from random websites and pasted thm into the DOM (via the inspector) and those worked too. |
00:49:09 | FromDiscord | <Varriount> Hm, then why wouldn't they be displaying? CSS? Invalid SVG? |
00:49:51 | bozaloshtsh | In my inspector, I just right clicked my SVG element (not showing up), copied its HTML, and pasted it into a nearby tag and it shows up fine. |
00:49:56 | bozaloshtsh | so I'm pretty sure it's valid SVG |
00:50:10 | FromDiscord | <Varriount> Hm, then is the parent hidden? |
00:50:14 | * | synshroud joined #nim |
00:50:15 | bozaloshtsh | and yeah, I checked CSS too everything is shown |
00:50:23 | FromDiscord | <Varriount> Z Index? |
00:50:28 | * | bung quit (Ping timeout: 258 seconds) |
00:50:28 | bozaloshtsh | yep yep, all that |
00:50:42 | bozaloshtsh | will check again for sanity though |
00:51:11 | FromDiscord | <Varriount> I'm not a web developer, so that's where my knowledge ends. |
00:51:33 | FromDiscord | <Varriount> What happens if you replace the SVG element with something else, like an input? |
00:51:36 | bozaloshtsh | yeah, I don't think anyone will really be able to help here unless they have a working SVG example |
00:51:39 | bozaloshtsh | then it shows up fine |
00:52:17 | FromDiscord | <Varriount> Is this something I could download and reproduce? |
00:52:36 | bozaloshtsh | I can try to make it so, give me 5 mins |
00:54:47 | bozaloshtsh | Varriount: https://hastebin.com/fevimoyoyo.nim <-- works with karun |
00:55:11 | bozaloshtsh | open up the HTML file, then in the inspector right click the SVG element, copy as HTML, then paste it into a different element and it will work fine |
00:55:23 | bozaloshtsh | I AM a web developer and this totally stumps me :p |
00:56:17 | bozaloshtsh | I suspect the solution is here, and I didn't implement it properly with my original hack http://xahlee.info/js/js_scritping_svg_basics.html |
00:57:24 | bozaloshtsh | the hack (patch) https://hastebin.com/buzabajawu.diff |
01:11:03 | * | bunbunbunbunny quit (Quit: Lost terminal) |
01:17:16 | * | bung joined #nim |
01:23:11 | * | arecacea1 quit (Remote host closed the connection) |
01:23:45 | * | arecacea1 joined #nim |
01:35:40 | * | jwm224 quit (Ping timeout: 246 seconds) |
01:37:55 | * | apahl quit (Ping timeout: 240 seconds) |
01:38:05 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
01:38:21 | * | synshroud joined #nim |
01:40:11 | * | apahl joined #nim |
01:42:58 | * | jwm224 joined #nim |
01:45:04 | * | bung quit (Ping timeout: 240 seconds) |
01:45:30 | * | Jesin quit (Quit: Leaving) |
01:51:27 | * | Jesin joined #nim |
01:59:08 | * | ptdel joined #nim |
01:59:56 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
02:00:10 | * | synshroud joined #nim |
02:07:30 | * | bung joined #nim |
02:11:25 | * | audiofile quit (Quit: Default Quit Message) |
02:21:42 | * | muffindrake quit (Ping timeout: 260 seconds) |
02:23:29 | * | muffindrake joined #nim |
02:31:29 | * | ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) |
02:38:42 | * | ForumUpdaterBot quit (Remote host closed the connection) |
02:38:49 | * | ForumUpdaterBot joined #nim |
02:45:49 | FromDiscord | <impbox> strictFuncs looks good! It's how I imagined they would work |
02:46:01 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
02:46:20 | * | synshroud joined #nim |
02:50:09 | FromDiscord | <Kaynato> If it's fine to ask, what would be a good recommended resource for writing a nim binding to a c interface to a relatively large c++ project, for a first-timer? I'm trying to get a grasp of how I should start but I'm completely lost already |
03:00:57 | FromDiscord | <impbox> @Kaynato Nim In Action has a section on it https://livebook.manning.com/book/nim-in-action/chapter-8/37 |
03:05:47 | * | Tanger quit (Ping timeout: 240 seconds) |
03:06:55 | * | bung quit (Ping timeout: 240 seconds) |
03:08:27 | * | sagax quit (Remote host closed the connection) |
03:10:04 | FromDiscord | <Kaynato> Mm, I've been looking at that but still pretty lost on what I'm supposed to do (wrapping the C interface of Diligent Engine) - as far as I follow, what it ultimately comes down to is importing the methods present in the relevant header files and binding them with compatible datatypes - but all I can see so far are layers of indirection with vtables everywhere and not an exposed function in sight |
03:11:35 | FromDiscord | <Kaynato> It looks like the build produces dlls for appropriate graphics engine backends, which I could dynamically link (on windows only) and *.a files (which, could I link statically via --passL?) |
03:28:11 | shashlick | @Kaynato do you know how to use the library |
03:28:24 | shashlick | Like the top level C headers |
03:28:50 | shashlick | I can give you some tips with wrapping then |
03:29:09 | FromDiscord | <Kaynato> Diligent itself? No, this is the first time I've really taken a look at it |
03:29:24 | FromDiscord | <Kaynato> I'm struggling to find where the entrypoint is in the C interface example |
03:33:48 | FromDiscord | <Kaynato> Looking at https://github.com/DiligentGraphics/DiligentSamples/blob/master/Tutorials/Tutorial03_Texturing-C/src/Tutorial03_Texturing.c |
03:34:04 | FromDiscord | <Kaynato> Headers accessible from C interface seem to be in two main groups: first https://github.com/DiligentGraphics/DiligentCore/tree/master/Primitives/interface |
03:34:27 | FromDiscord | <Kaynato> second https://github.com/DiligentGraphics/DiligentCore/tree/master/Graphics/GraphicsEngine/interface |
03:35:34 | shashlick | You need to know two things - which headers your care about for your code and what defines you need to set |
03:37:17 | FromDiscord | <Kaynato> I've been working backward from the example (tutorial3), seeing which heads it imports, defines in those headers and etc. I take it I should also look for defines specified by build script(s?) |
03:37:19 | FromDiscord | <Kaynato> (edit) 'script(s?)' => 'script(s)' |
03:37:21 | FromDiscord | <Kaynato> (edit) 'script(s)' => 'script(s)?' |
03:38:04 | shashlick | Not the build scripts but what they ask users to set |
03:38:19 | shashlick | Like if you want to pick opengl or stuff like that |
03:38:23 | shashlick | There might not be any |
03:38:38 | shashlick | Which os are you working on |
03:41:07 | FromDiscord | <Kaynato> seems the choice of backend is set in program via engine initialization choice, with some headers provided to automatically do all of it for the main backends |
03:43:53 | shashlick | Ok like one you tried toast |
03:44:06 | shashlick | What did you try and the output |
03:45:24 | FromDiscord | <Kaynato> I've tried all of the headers in primitive, and the output was empty |
03:48:29 | FromDiscord | <Kaynato> There's probably something wrong with my toast installation..? |
03:50:14 | FromDiscord | <Kaynato> Ok, you know what, it's probably not unreasonable to just go and try my hand at porting Diligent entirely to nim. Ok. Alright. |
03:52:47 | shashlick | What did you try, I can try locally |
03:53:01 | shashlick | Linux? |
03:55:39 | FromDiscord | <Kaynato> I am on windows using msys |
03:56:29 | shashlick | okay - i ran on linux with toast -pnkr and got some output |
03:56:52 | FromDiscord | <Kaynato> Ah, the flags are required? |
03:56:59 | shashlick | https://github.com/DiligentGraphics/DiligentCore#api-basics |
03:57:08 | shashlick | you got to tell it to do something |
04:01:11 | * | bung joined #nim |
04:01:42 | shashlick | what engine do you plan using on windows |
04:03:14 | FromDiscord | <Kaynato> Probably Vulkan? Wouldn't it not be too much a hassle to let it be configurable, since it can be done via dynamic linking? |
04:05:17 | shashlick | i don't think you'll have much luck with toast at least on the high-level headers |
04:05:35 | * | bung quit (Ping timeout: 258 seconds) |
04:05:43 | shashlick | ```"EngineFactoryD3D11.h" "EngineFactoryD3D12.h" "EngineFactoryOpenGL.h" "EngineFactoryVk.h"``` |
04:06:01 | * | supakeen quit (Quit: WeeChat 2.9) |
04:06:19 | shashlick | cause all the procs in them are #define macros which toast doesn't support yet |
04:06:33 | shashlick | if there's other stuff, it should work - like in primitives |
04:06:38 | * | supakeen joined #nim |
04:06:44 | shashlick | but again, it's important to know what you need to use before wrapping |
04:08:05 | FromDiscord | <Kaynato> More or less what I'm experiencing too - though even going through the files I noticed something really strange what with Object.h not even having `IReferenceCounters` defined in itself or its imports when DILIGENT_C_INTERFACE is defined |
04:08:15 | FromDiscord | <Kaynato> Which is just... particularly strange? |
04:43:49 | FromDiscord | <Kaynato> Ok, I seem to be making progress now, the ones that had issues were apparently just internal headers. |
04:46:24 | * | waleee-cl quit (Quit: Connection closed for inactivity) |
04:51:28 | shashlick | okay have fun |
04:57:57 | * | rayman22201 quit (Ping timeout: 240 seconds) |
04:59:14 | * | rayman22201 joined #nim |
05:01:32 | * | njoseph_ joined #nim |
05:01:34 | * | kwilczynski quit (Ping timeout: 240 seconds) |
05:01:34 | * | njoseph quit (Ping timeout: 240 seconds) |
05:03:56 | * | mal`` quit (Ping timeout: 240 seconds) |
05:04:25 | * | euantorano quit (Ping timeout: 264 seconds) |
05:04:26 | * | pangey quit (Ping timeout: 240 seconds) |
05:04:45 | * | kwilczynski joined #nim |
05:04:51 | * | pangey joined #nim |
05:06:25 | * | kitech1- quit (Ping timeout: 240 seconds) |
05:06:26 | * | zedeus quit (Ping timeout: 240 seconds) |
05:06:44 | * | euantorano joined #nim |
05:06:56 | * | rakgew[m] quit (Ping timeout: 240 seconds) |
05:07:02 | * | rakgew[m]1 joined #nim |
05:07:36 | * | kitech1 joined #nim |
05:09:04 | * | zedeus joined #nim |
05:09:28 | * | mal`` joined #nim |
05:11:23 | * | kwilczynski_ joined #nim |
05:11:46 | * | kwilczynski quit (Ping timeout: 240 seconds) |
05:11:48 | * | kwilczynski_ is now known as kwilczynski |
05:57:07 | * | solitudesf joined #nim |
05:57:17 | * | narimiran joined #nim |
06:43:18 | * | bung joined #nim |
06:48:52 | * | apahl quit (Ping timeout: 260 seconds) |
06:49:25 | * | apahl joined #nim |
07:11:31 | ForumUpdaterBot | New thread by ElAfalw: Observing value changes, see https://forum.nim-lang.org/t/6745 |
07:21:16 | bung | how `with` macro work with await ? it parsed as <first param, proc call> ,that's two params |
07:37:17 | * | superbia joined #nim |
08:03:42 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
08:03:59 | * | synshroud joined #nim |
08:32:46 | * | narimiran quit (Ping timeout: 258 seconds) |
08:36:38 | * | vicfred quit (Quit: Leaving) |
08:48:02 | FromDiscord | <vieru> sent a long message, see http://ix.io/2vyo |
08:48:06 | FromDiscord | <vieru> any idea on how to do it ? |
08:49:21 | FromDiscord | <vieru> the code for a.nim is ↵```nim↵writeFile("test.txt", "place holder")↵``` |
08:49:42 | FromDiscord | <Rika> what |
08:50:03 | FromDiscord | <impbox> vieru, it might work with a `cstring`, but a `string` includes the length |
08:50:13 | FromDiscord | <Rika> i dont get what you mean |
08:50:34 | * | schurig_ quit (Quit: Leaving) |
08:50:44 | FromDiscord | <vieru> @Rika i want to replace a string in a compiled exe |
08:50:46 | FromDiscord | <impbox> modifying a string in the binary output |
08:50:50 | FromDiscord | <vieru> yep |
08:51:09 | FromDiscord | <impbox> you'd need to also change the length |
08:51:20 | FromDiscord | <impbox> but if use a cstring it should be easier |
08:51:44 | FromDiscord | <vieru> @impbox any idea how to use cstring with writeFile? |
08:52:11 | FromDiscord | <vieru> or will passing writeFile a cstring will just work |
08:52:17 | FromDiscord | <impbox> you can convert a cstring to string with `$` |
08:52:44 | FromDiscord | <vieru> oh i forgot bout that ↵w8 a sec let me test this |
08:55:20 | FromDiscord | <vieru> nope doesn't work |
08:56:03 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vys |
08:56:04 | * | hnOsmium0001 quit (Quit: Connection closed for inactivity) |
08:56:28 | FromDiscord | <vieru> the code itself works but version where i replaced the string doesn't |
08:57:03 | FromDiscord | <vieru> (edit) 'the code itself works but ... version' => 'the code itself works butthe' |
08:57:03 | FromDiscord | <impbox> segfault? |
08:57:17 | FromDiscord | <vieru> no errors showing |
08:57:27 | FromDiscord | <impbox> what happens that's "no working"? |
08:57:29 | FromDiscord | <impbox> (edit) '"no' => '"not' |
08:57:47 | FromDiscord | <vieru> its not writing the file |
08:57:55 | FromDiscord | <vieru> test.txt |
08:58:26 | FromDiscord | <vieru> the exe just runs with no error and no file is written |
08:58:49 | FromDiscord | <impbox> try just echoing the string |
08:58:57 | FromDiscord | <vieru> ok 1sec |
08:59:22 | * | bung quit (Ping timeout: 256 seconds) |
09:00:21 | FromDiscord | <vieru> imma open discord on my pc |
09:00:25 | FromDiscord | <vieru> ill send ya the code |
09:02:44 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vyv |
09:02:52 | * | jklhyd[m] quit (Quit: Idle for 30+ days) |
09:02:54 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vyw |
09:03:05 | FromDiscord | <impbox> with just echoing it seems changing even a cstring length causes problems, i guess stuff is expected to be at certain locations in the file |
09:03:19 | FromDiscord | <vieru> here's how i replace the string |
09:03:36 | FromDiscord | <impbox> if you replace it with a shorter string and pad with nul it should be fine |
09:03:48 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vyx |
09:04:09 | FromDiscord | <vieru> ```↵$ ./a2.exe↵``` |
09:04:11 | FromDiscord | <vieru> and no output |
09:04:43 | FromDiscord | <vieru> > if you replace it with a shorter string and pad with nul it should be fine↵@impbox yeah but i actualy want to replace it with a bigger string like megabyte sizes |
09:05:14 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
09:05:33 | * | synshroud joined #nim |
09:05:35 | FromDiscord | <vieru> idk much about this stuff but isn't this the stuff hex editors do ? |
09:05:47 | FromDiscord | <impbox> hex editors are not magic |
09:05:52 | FromDiscord | <impbox> they're doing the same thing |
09:06:11 | FromDiscord | <vieru> i thought so↵but the difference is they work lol |
09:06:21 | FromDiscord | <impbox> did you try it with a hex editor? |
09:06:30 | FromDiscord | <vieru> idk how to use that stuff |
09:06:37 | FromDiscord | <impbox> same issue |
09:07:50 | FromDiscord | <impbox> but it makes sense that it doesn't work, since you're changing the code addresses when you move code around (as you're replacing the string with one of a different size) |
09:08:01 | FromDiscord | <impbox> if your string was stored at the end of the file it would be fine |
09:08:17 | FromDiscord | <vieru> is there a way i can generate a string of a fixed size in nim ? |
09:09:23 | FromDiscord | <vieru> allocate i mean |
09:09:35 | FromDiscord | <vieru> and still be able to asign it a new value |
09:09:40 | FromDiscord | <vieru> (edit) 'asign' => 'asing' |
09:09:47 | FromDiscord | <vieru> (edit) 'asing' => 'assign' |
09:10:06 | FromDiscord | <vieru> > but it makes sense that it doesn't work, since you're changing the code addresses when you move code around (as you're replacing the string with one of a different size)↵@impbox oh fuck |
09:10:36 | FromDiscord | <vieru> im just trying to make a recursive program |
09:10:47 | FromDiscord | <vieru> like |
09:10:55 | FromDiscord | <vieru> a.exe can write b.exe |
09:11:00 | FromDiscord | <vieru> and b.exe can write a.exe |
09:11:03 | FromDiscord | <vieru> and so on |
09:11:34 | * | synshroud_ joined #nim |
09:13:09 | FromDiscord | <impbox> if you append the payload to the end of the file `cat file >> myapp.exe` and then in myapp you'd need to seek to find the start of the data and read it, i'm pretty sure this is how things like self extracting zips work |
09:14:03 | FromDiscord | <vieru> ok that might just work |
09:14:11 | * | synshroud quit (Ping timeout: 240 seconds) |
09:15:47 | FromDiscord | <vieru> can I from myapp.exe readFile myapp.exe ? |
09:15:58 | FromDiscord | <vieru> (edit) 'can I from myapp.exe ... readFile' => 'can I from myapp.exeuse' |
09:16:35 | FromDiscord | <impbox> yep |
09:17:02 | FromDiscord | <impbox> sent a code paste, see https://play.nim-lang.org/#ix=2vyA |
09:17:54 | FromDiscord | <vieru> thanks i was searching os for getappfilename lol |
09:18:06 | FromDiscord | <impbox> i'm not sure of a good way to figure out where the end of the executable is |
09:18:35 | FromDiscord | <impbox> best way might be to read the PE/ELF header |
09:18:41 | FromDiscord | <vieru> i thought i could append the file something like <END> |
09:18:50 | FromDiscord | <vieru> and than split using <END> |
09:18:51 | FromDiscord | <impbox> yeah you could add your own separator |
09:19:02 | FromDiscord | <impbox> though your code will probably contain that separator =) |
09:19:16 | FromDiscord | <impbox> unless you don't store the separator in code |
09:19:28 | FromDiscord | <vieru> not a big deal |
09:19:42 | FromDiscord | <vieru> ill just access [2] istead of [1] |
09:19:49 | FromDiscord | <impbox> mmm or search backwards |
09:20:13 | FromDiscord | <vieru> that could also wrok |
09:20:15 | FromDiscord | <vieru> (edit) 'wrok' => 'work' |
09:24:54 | FromDiscord | <vieru> i did it |
09:25:07 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vyE |
09:25:24 | FromDiscord | <vieru> (edit) 'https://play.nim-lang.org/#ix=2vyE' => 'https://play.nim-lang.org/#ix=2vyF' |
09:25:40 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vyG |
09:25:52 | FromDiscord | <vieru> and abi22.exe will be created |
09:25:55 | ForumUpdaterBot | New thread by ElAfalw: Trouble using parallel, see https://forum.nim-lang.org/t/6746 |
09:26:09 | FromDiscord | <vieru> ```↵$ ./abi↵no data↵``` |
09:26:23 | FromDiscord | <vieru> sent a code paste, see https://play.nim-lang.org/#ix=2vyI |
09:27:14 | * | synshroud_ quit (Quit: ZNC 1.7.5 - https://znc.in) |
09:28:37 | FromDiscord | <vieru> but will adding a exe to the end of another will affect anything ? |
09:28:50 | FromDiscord | <impbox> shouldn't |
09:28:57 | FromDiscord | <impbox> except maybe virus detection |
09:29:21 | FromDiscord | <vieru> dumbass antiviruses |
09:29:32 | * | synshroud joined #nim |
09:29:45 | FromDiscord | <vieru> thanks again |
09:33:21 | * | waleee-cl joined #nim |
09:42:14 | FromDiscord | <Lod> Does anyone know of any nim buildpack for heroku? The one that shows up on my search is very old and always fails |
09:43:46 | * | bung joined #nim |
09:52:44 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
09:53:30 | * | synshroud joined #nim |
10:00:48 | * | PMunch joined #nim |
10:13:11 | Zevv | soo disruptek & clyybber, what happened? |
10:24:00 | ForumUpdaterBot | New thread by ElAfalw: NimDecRefIsLast and EXC_BAD_ACCESS:, see https://forum.nim-lang.org/t/6747 |
10:45:03 | PMunch | Zevv, I get this error: .nimble/pkgs/fixedpoint-0.1.0/fixedpoint.nim(52, 3) Error: unreachable statement after 'return' statement or '{.noReturn.}' proc |
10:53:40 | * | bouzu_ joined #nim |
10:58:04 | bung | how to use `with` macro work with await, it seems it only works with simple procs |
11:02:14 | * | NimBot joined #nim |
11:08:31 | * | bra-ket joined #nim |
11:08:44 | * | muffindrake quit (Quit: muffindrake) |
11:09:02 | * | zyklon quit (Ping timeout: 260 seconds) |
11:10:36 | * | krux02 joined #nim |
11:12:30 | * | muffindrake joined #nim |
11:14:56 | * | narimiran joined #nim |
11:41:28 | FromDiscord | <exelotl> That's by design unfortunately |
11:45:19 | bung | okay, thanks! |
11:45:42 | FromDiscord | <Clyybber> Zevv: disruptek is using my branch in which proc args are syms |
11:45:48 | FromDiscord | <Clyybber> PMunch: Thats not an error on devel |
11:46:30 | PMunch | Ah, I see. I fixed it for 1.2.6 anyways :) |
12:00:39 | * | audiofile joined #nim |
12:06:01 | * | supakeen quit (Quit: WeeChat 2.9) |
12:06:36 | * | synshroud quit (Quit: ZNC 1.7.5 - https://znc.in) |
12:06:44 | * | supakeen joined #nim |
12:08:53 | * | synshroud joined #nim |
12:15:53 | FromDiscord | <Varriount> @exelotl To be fair, I think `with` would have to special-case await in order to support it's use. |
12:18:17 | FromDiscord | <exelotl> Oh right, I meant more generally, its not intended to support control flow at all |
12:19:37 | FromDiscord | <Varriount> Yeah. I think that's mostly for simplicity of implementation |
12:22:58 | * | tane joined #nim |
12:32:54 | * | waleee-cl quit (Quit: Connection closed for inactivity) |
12:35:09 | Zevv | PMunch: good good |
12:36:02 | Zevv | clyybber: cool, you got that fixed! Is it really a bugfix, or putting new furniture in the empty room? |
12:36:40 | FromDiscord | <Clyybber> its a one line addition |
12:36:46 | FromDiscord | <Clyybber> so depends on your definition |
12:36:54 | FromDiscord | <Clyybber> that rhymes so it must be true |
12:50:05 | Zevv | sounds like a shiny new feature |
12:50:19 | Zevv | soo, up to the next bugs then, I guess! :) |
12:51:01 | * | krux02 quit (Remote host closed the connection) |
12:53:28 | * | bouzu_ quit (Quit: Leaving) |
12:53:44 | livcd | Random nim project: https://github.com/itsumura-h/nim-basolato |
13:14:09 | leorize[m]1 | What's everyone thought on this? https://forum.nim-lang.org/t/6740#41867 |
13:14:27 | leorize[m]1 | should the EEE branding of Nim be replaced with something else? |
13:15:43 | FromDiscord | <Clyybber> no |
13:16:54 | FromDiscord | <Clyybber> At least not the words themselves, maybe an explanation of what this means in practice |
13:17:30 | FromDiscord | <leorize> it's hard to get an explaination |
13:17:55 | FromDiscord | <leorize> the landing page couldn't do it, and I still haven't figured it out either |
13:18:17 | FromDiscord | <Clyybber> then just don't explain it /shrug |
13:18:41 | FromDiscord | <Clyybber> its catchy and it fits our ideals |
13:19:22 | FromDiscord | <leorize> do you have a better way to present nim then? if you do please comment on that thread |
13:19:45 | FromDiscord | <leorize> (I'm trying to get more community engagement in Nim branding because we sucks at it currently) |
13:19:49 | FromDiscord | <Clyybber> it looks fine to me so :P |
13:20:04 | FromDiscord | <Clyybber> in fact its one of the things I immediately liked when first looking at nim |
13:20:18 | FromDiscord | <Clyybber> but I notice that the "in this order" sentence is gone |
13:20:34 | FromDiscord | <leorize> well that thread is concerned about the entirety of the landing page 😛 |
13:21:01 | FromDiscord | <leorize> we can keep that wording but we need a better list to catch people attention |
13:21:10 | FromDiscord | <Clyybber> I think these subparagraphs can be simplified |
13:21:26 | FromDiscord | <leorize> as explained in the thread the way it's presented make Nim look like yet-another-language with nothing to go for it |
13:21:30 | FromDiscord | <Clyybber> for exmple instead of "Nim generates native dependency-free executables, not dependent on a virtual machine, which are small and allow easy redistribution." |
13:21:46 | FromDiscord | <Clyybber> we say "Nim generates native executables, which are small and allow easy redistribution. |
13:21:46 | FromDiscord | <leorize> I tried to simplify it as an example in the OP, couldn't get too far though |
13:21:51 | FromDiscord | <Clyybber> oh |
13:22:10 | FromDiscord | <leorize> but please chime in the thread, the more idea the better |
13:23:34 | FromDiscord | <Clyybber> I don't have that many ideas, since I don't think its that bad tbh |
13:23:49 | FromDiscord | <Clyybber> I don't think its bad at all, but of course it could be better |
13:24:19 | FromDiscord | <Clyybber> But I don't think it needs a complete redesign |
13:24:47 | FromDiscord | <leorize> I'm not aiming for a complete redesign, but rather shift our priorities in what should be presented in the landing page |
13:25:03 | FromDiscord | <Clyybber> What would be very cool though, is if we could embed the playground with the code snippets on the right |
13:25:29 | FromDiscord | <leorize> Nim has a lot more going for it, it doesn't make sense to just present generic ideas on the front page |
13:26:37 | FromDiscord | <Clyybber> yeah, thats fair |
13:26:45 | * | bouzu_ joined #nim |
13:27:40 | FromDiscord | <leorize> we don't need any fancy ideas, you can just chime in with what you think should have more exposure and what should be compressed down as "not that important" |
13:29:27 | FromDiscord | <Clyybber> I think we should still mention the things that every other lang has |
13:29:35 | FromDiscord | <Clyybber> but it just needs to be condensed down |
13:29:45 | FromDiscord | <Clyybber> Thats the only real problem IMO |
13:29:53 | FromDiscord | <Clyybber> since it doesn't fit on a 1080p screen |
13:30:39 | FromDiscord | <Clyybber> I'm not sure if we should mention those really cool advanced features like concepts, since they are not *that* mature yet |
13:31:06 | FromDiscord | <Clyybber> if we do, we should at least move them out of the experimental section again |
13:31:22 | FromDiscord | <leorize> I was just trying to make use of some good differentiators |
13:31:47 | livcd | You could include testimonials from people |
13:32:02 | FromDiscord | <Clyybber> lol |
13:32:07 | livcd | haha |
13:32:15 | FromDiscord | <haxscramper> sent a long message, see http://ix.io/2vzY |
13:32:25 | FromDiscord | <leorize> there are probably other things that we could use, but I'm not too aware of what could be "the thing that Nim has that's super cool" |
13:32:56 | livcd | why do things need to be super cool though? |
13:33:13 | FromDiscord | <leorize> @haxscramper have you messaged @dom96 f |
13:33:19 | FromDiscord | <leorize> (edit) 'f' => 'for an account?' |
13:33:30 | FromDiscord | <haxscramper> Not directly, no, but I pinged him in this channel. |
13:33:34 | FromDiscord | <leorize> but I'll forward your message to the forum |
13:33:52 | FromDiscord | <leorize> you can ping narimiran too, if he's available |
13:34:01 | livcd | If you want to start hype you need to be a bit ... controversial. |
13:34:03 | FromDiscord | <haxscramper> More on nimscript - when you start talking about 'statically typed, compiled language' you instantly trigger all rust/zig/c++/etc. people who start comparing fibonacchi benchmarks. But when you talk about 'statically typed language with strong DSL support, suitable for automation of anything etc' - that's much more interesting |
13:34:54 | FromDiscord | <Clyybber> livcd: Eh, hype doesn't make a good lang |
13:35:18 | FromDiscord | <haxscramper> I mean, this is the perfect replacement for YAML for example - instead of trying to squeeze things like looks etc in *markup* lanugage which was not made for it you can actually have full-blown language with DSL suited for your particular task. |
13:35:22 | FromDiscord | <leorize> I think what we lack is a reason to use Nim |
13:35:34 | FromDiscord | <leorize> like look, we are nim users and we know that nim is super cool |
13:35:37 | FromDiscord | <Clyybber> the code examples on the right should give reason |
13:35:56 | FromDiscord | <leorize> but a passer by wouldn't know that from a quick peek |
13:36:19 | FromDiscord | <leorize> it's our job to market ourselves so that we capture eyeballs before they dismiss Nim as "just another language" |
13:36:50 | FromDiscord | <haxscramper> Oh, and I think mentioning style-insensetivity anywhere is actually not that good of an idea. From my experience people just react to it so badly for some reason |
13:37:11 | FromDiscord | <leorize> yea |
13:37:45 | FromDiscord | <haxscramper> And on topic of rebranding - not main page but still: github still mentions it as 'system programming ... garbage collected language'. And there is no discord link in readme too |
13:37:47 | * | PMunch quit (Quit: leaving) |
13:38:07 | FromDiscord | <leorize> I hate to mention it, but V has shown that you can be full of hot air and still got a crowd going for you |
13:39:28 | FromDiscord | <Rika> Well it kinda backfired for the majority |
13:39:34 | FromDiscord | <haxscramper> This is just my opinion but there are several things - mainly (1) style-insensetivity, (2) writing 'js backend' and 'system programming' on one page, (3) mentioning 'system programming' and 'garbage collected' in one article - just make people *assume* things they don't really know anything about |
13:42:13 | FromDiscord | <leorize> @haxscramper https://github.com/nim-lang/website/issues/210 <- i have an issue opened for the github |
13:42:13 | disbot | ➥ Improve Nim's branding on Github |
13:44:30 | FromDiscord | <haxscramper> If I make my clang wrapper into something useful without dying in the process we can also add 'seamless integration with C++ libraries: qt, godot ... & more, C libraries: GTK ... and things like that. |
13:46:47 | FromDiscord | <ryanford> speaking of (and sorry for interrupting) but does nim handle c preprocessor statements well? like function-like macros? |
13:47:05 | FromDiscord | <ryanford> i noticed that's a choke point for a lot of languages that advertise c interop |
13:47:33 | FromDiscord | <haxscramper> It depends on what you want to do. `c2nim` can convert macros to defines/templates |
13:48:29 | FromDiscord | <haxscramper> And clang-based tools have no issues of *expanding* macros. But mapping *semantics* of C preprocessor macros completely is not yet supported |
13:48:40 | FromDiscord | <haxscramper> fully* |
14:00:43 | * | leorize[m]1 left #nim ("User left") |
14:05:18 | * | arecacea1 quit (Remote host closed the connection) |
14:05:24 | * | leorize[m] joined #nim |
14:05:38 | * | arecacea1 joined #nim |
14:12:38 | * | waleee-cl joined #nim |
14:15:27 | * | bra-ket quit (Ping timeout: 240 seconds) |
14:18:23 | * | zyklon joined #nim |
14:19:20 | FromGitter | <alehander92> https://www.youtube.com/watch?v=7vn6aGgLKfQ&feature=youtu.be |
14:19:22 | FromGitter | <alehander92> guys this is cool |
14:19:27 | * | neceve joined #nim |
14:20:40 | Zevv | dude i've been doing that since I was 12 |
14:22:01 | Zevv | Look at this one: https://www.youtube.com/watch?v=I9ZNzqqBUCk You're right, it would be much cooler with sound :) |
14:22:21 | Zevv | Oh this one has nicer colors: https://www.youtube.com/watch?v=11P8oUWH4Eo |
14:22:58 | Zevv | I should do that for Nim one day, would be very cool to see the difference between gc and arc for example |
14:25:55 | FromGitter | <alehander92> wow |
14:26:02 | FromGitter | <alehander92> why isn't this more popular |
14:26:08 | Zevv | I don't know |
14:26:11 | FromGitter | <alehander92> the thing about sound is that you can observe output |
14:26:18 | FromGitter | <alehander92> and use another sense in this time |
14:26:21 | Zevv | I never pushed it i's just something I made for myself for debugging memory usage |
14:26:24 | FromGitter | <alehander92> but yeah it depends |
14:26:52 | FromGitter | <alehander92> imagine sound effects while you code |
14:26:59 | FromGitter | <alehander92> hinting errors |
14:27:00 | Zevv | sooo friggin anoying! |
14:27:06 | FromGitter | <alehander92> haha |
14:27:11 | Zevv | talk to disruptek about that |
14:27:12 | Zevv | he has ideas |
14:29:18 | FromGitter | <deech> Are there any examples of passing a memory managed pointer to a struct from Nim to C++? The struct would be heap-allocated and initialized on the Nim side with a pointer passed to C++. |
14:29:42 | Zevv | depends on how long you want that memory to live |
14:29:52 | Zevv | should it survive *after* you pass it to c++? |
14:29:57 | FromGitter | <deech> yes |
14:30:05 | Zevv | You need to make sure to keep it alive then |
14:30:09 | Zevv | so keep it referenced in nim |
14:30:13 | Zevv | or explicitly GC_ref() it |
14:30:43 | Zevv | if you pass a seq or a string, also be sure to pas the address of elem[0], not of the thing itself |
14:31:39 | FromGitter | <deech> My issue is I can't figure out how to pass a `Blah = ref object ...` to a C++ function that takes `void f (Blah* b) { ... }`. |
14:35:28 | Zevv | if 'b' is your ref to the object in nim |
14:35:39 | Zevv | Use `b[].addr` to find it's address |
14:35:51 | Zevv | `[]` dereferences your nim ref, and `.addr` finds the address of the thing itself |
14:35:55 | Zevv | does that make sense? |
14:39:22 | FromGitter | <deech> Ah hah I was missing the `[]`! I thought dot operators would auto deference. |
14:39:45 | Zevv | well, the problem is that you're talking about the ref. Which is basically the "nim side" of the pointer |
14:39:51 | Zevv | which is not what you need |
14:40:13 | Zevv | if you come from C, do `thing[]` in nim where you would do '*thing' in C |
14:48:57 | FromGitter | <deech> The type of `b[].addr` is `ptr Blah:ObjectType`, is this expected? I haven't seen that `:ObjectType` thing before. |
14:50:56 | FromGitter | <deech> Passing that struct worked btw, making the FFI function `proc b(p:pointer) ...` somehow coerced the above type to a void pointer. It would be nice to have a more descriptive type in the FFI call but this solves my immediate problem. |
15:09:55 | * | Vladar joined #nim |
15:17:41 | disruptek | this is expected. |
15:22:42 | Zevv | disruptek: s whats the next bug then |
15:23:53 | disruptek | swapping symbols for env(cont).symbols blows the compiler's mind. |
15:24:02 | Zevv | ~https://www.youtube.com/watch?v=e4TFD2PfVPw todays soundtrack |
15:24:02 | disbot | no footnotes for `https://www.youtube.com/watch?v=e4TFD2PfVPw`. 🙁 |
15:24:29 | Zevv | well my mommy always said, dont swap symbols boy |
15:26:11 | disruptek | is that turtleneck and sportcoat for real? |
15:27:56 | Zevv | i think they got stuck with that after a gig |
15:28:10 | Zevv | but dang these kids play |
15:28:26 | disruptek | we used to give each other the same hideous sportcoat at christmas every year. |
15:33:06 | Zevv | i wear that stuff |
15:33:41 | Zevv | i used to get that for christmas every year |
15:33:43 | disruptek | what year is it where you live? |
15:33:45 | Zevv | still got tons left |
15:36:32 | disruptek | 5th saturday of a month with 31 days. time to brush my teeth. |
15:44:28 | Zevv | so, you put clyybber on it yet? |
15:44:46 | disruptek | clyybber is in his crate recovering from the last one. |
15:54:26 | * | pietroppeter joined #nim |
16:06:10 | disruptek | these kids are tight. |
16:08:23 | * | hnOsmium0001 joined #nim |
16:09:13 | * | endragor quit (Ping timeout: 264 seconds) |
16:11:25 | disruptek | okay. coffee on board. |
16:13:29 | disruptek | you might expect windows to work better considering the powers that He runs it as his primary os. |
16:14:11 | * | endragor joined #nim |
16:34:34 | Zevv | do you mingw? |
16:34:39 | Zevv | or do you really windows |
16:35:03 | * | def- joined #nim |
16:35:05 | disruptek | nah, i --os:windows if i need to repro the ci failure. |
16:45:57 | disruptek | i changed dust to let me test --os:windows before i realized that ICEs are fatal. 🙄 |
16:46:45 | disruptek | i probably need to pr some changes to make it easier to do this stuff, but i dunno how popular they'd be. |
16:47:06 | disruptek | no one seems to give a shit about dust, so... |
16:49:31 | * | audiofile quit (Quit: Default Quit Message) |
16:53:48 | disruptek | alehander92: dude, i got a question for you. |
16:58:18 | disruptek | what's the evolutionary purpose of beards? |
16:59:11 | * | superbia1 joined #nim |
17:01:04 | * | superbia quit (Ping timeout: 258 seconds) |
17:04:49 | Zevv | saving food for later |
17:05:12 | disruptek | just want to make sure i'm using it correctly. |
17:07:41 | Zevv | so, what's the ETA to have CPS in a working state again |
17:08:10 | disruptek | doesn't master work? |
17:08:32 | Zevv | I think 0.13 did |
17:08:41 | Zevv | but I ment typed, in this case |
17:09:45 | * | disruptek consults his magic 8-ball. |
17:09:52 | disruptek | future cloudy, ask again tomorrow. |
17:09:57 | Zevv | sure thing! |
17:10:03 | Zevv | "are we there yet!" |
17:10:29 | disruptek | well, i dunno if the current problem is our code or the compiler's. |
17:10:45 | disruptek | obviously, i'm inclined to think it's the compiler's fault. |
17:10:54 | Zevv | that's the fun thing with Nim |
17:11:02 | Zevv | with C I stopped blaming the compiler years ago, it was always me |
17:11:06 | Zevv | but with Nim, the fun is back |
17:11:07 | Zevv | the thrill |
17:11:11 | disruptek | lol right. |
17:11:42 | disruptek | i'd still rather read the nim compiler than gcc. |
17:12:02 | Zevv | sooo true |
17:12:15 | disruptek | at least with nim i can tell when the code is crap. |
17:13:50 | disruptek | actually, i've been impressed with a lot of modern c. |
17:14:55 | Zevv | which part, what you put in of what comes out? |
17:16:06 | disruptek | no, for me c is like my sex life. |
17:16:15 | disruptek | it'd be safest for everyone if i didn't put it in at all. |
17:16:42 | Zevv | but still its fun |
17:17:13 | disruptek | libgit2 is really nice to read. |
17:17:43 | disruptek | honestly, i just haven't read a lot of c in years, so maybe it's just an old man's perspective. |
17:20:54 | Zevv | I still read and write quite some C here and there. They try to make me do C++, but I just type C and hope no one notices at the reviews. Mostly works out fine. |
17:21:36 | Zevv | When they give me shit about passing "const std::string &s" I just tellem to go use a language that is smart enough to know how to handle that itself |
17:21:58 | * | RattleyCooper joined #nim |
17:22:02 | disruptek | maybe if you're writing c in this day and age you probably know what you're about. |
17:22:29 | Zevv | I do a lot of doublethink |
17:23:23 | RattleyCooper | Is anybody able to help with a winapi/winim question? |
17:24:07 | Zevv | Just ask your question, if it's the Nim side we might be good. If it's the windows side we might simply keep quiet and hope for someone else to help you |
17:24:48 | RattleyCooper | I can handle the winapi part, but I'm unsure how to represent the types I need or debug. |
17:25:08 | federico3 | https://github.com/hoffstadt/DearPyGui this is quite nice |
17:28:41 | RattleyCooper | I may have figured it out. If not I will come back with a good example. |
17:28:59 | disruptek | i'll wait here. |
17:34:30 | FromDiscord | <haxscramper> C++ backend does not use stdlib - if some library uses `std::string` I need to wrap it too and then import this string in my wrapper? |
17:34:56 | FromDiscord | <haxscramper> If I want to wrap things like `struct A { std::string b; }` |
17:36:10 | FromDiscord | <haxscramper> And make all public fields accessible as-is |
17:38:34 | FromDiscord | <haxscramper> And in general, if library API is split over multiple headers and I don't want to put everything in one module I need to build dependency graph for includes and import them |
17:38:45 | RattleyCooper | Ok, back with the winim question. Based on what I'm seeing the `GetMessage` function should look something like this: `var res = GetMessage(addr msg, GetActiveWindow(), WM_CLOSE, WM_CLOSE)`. `msg` is defined like this: `var msg: MSG`. My program hangs when I compile. It hangs at the `GetMessage` line and `GetActiveWindow()` isn't the issue. I |
17:38:45 | RattleyCooper | feel like I'm missing something |
17:39:32 | disruptek | it hangs during compilation? |
17:39:32 | Zevv | RattleyCooper: how do you mean "hangs when I compile" |
17:39:35 | Zevv | does the compiler hang? |
17:41:57 | RattleyCooper | https://imgur.com/a/YlWwdAi |
17:42:11 | RattleyCooper | ^ here is a gif |
17:42:35 | disruptek | runtime hang, then. |
17:43:35 | RattleyCooper | Yeah, I'm guessing I'm using it wrong, but the author shows this part of the API and it looks like that is how it's used: https://forum.nim-lang.org/t/5122 |
17:43:36 | disruptek | how do you know it isn't working correctly? |
17:45:16 | RattleyCooper | I honestly am not sure, but the windows api documentation doesn't mention that it should block |
17:47:58 | disruptek | what does it do? |
17:49:03 | RattleyCooper | Well I am trying to catch the `WM_CLOSE` event from windows so that I can use the `taskkill` command on my app to shut it down gracefully. `taskkill` lets me ask my program to shut down gracefully on windows |
17:49:39 | Zevv | It seems that GetMessage can block |
17:49:53 | Zevv | "It waits on an event object in kernel mode. When a thread is waiting on an event (or any other kernel-based synchronization object), it does not use any CPU time, because it is not scheduled to run until the wait is satisfied" |
17:50:00 | Zevv | says someone on the internet. so it must be right. |
17:50:35 | RattleyCooper | Gotcha. Do you know how to do something like a SIGINT on windows? |
17:51:01 | disruptek | you did it, buddy. |
17:51:04 | disruptek | ^C |
17:51:23 | RattleyCooper | Well I can't do that due to some constraints |
17:51:37 | disruptek | i saw you do it, liar. |
17:51:41 | RattleyCooper | Lol |
17:54:23 | RattleyCooper | I'm using a game engine that can create a process and run system commands but it can't send a SIGINT to the process. |
18:01:31 | RattleyCooper | So I can have the game engine send the `taskkill` because I have the PID. All I need to do is manage the ffmpeg process so I can finish this screen recording app :D |
18:02:19 | * | pietroppeter quit (Quit: Connection closed for inactivity) |
18:26:55 | * | bung quit (Ping timeout: 240 seconds) |
18:39:43 | * | Vladar quit (Quit: Leaving) |
18:48:07 | * | bung joined #nim |
18:52:25 | * | bung quit (Ping timeout: 240 seconds) |
18:57:59 | disruptek | does national residency follow your head or your body? |
18:58:53 | disruptek | or is it, like, the hand you use to swear allegiance? |
18:58:56 | Zevv | you don't feel like a proud citizen of the US of A? |
18:59:17 | Zevv | although your body just happens to reside there? |
18:59:20 | disruptek | just thinking about swapping heads with someone in canada. |
18:59:32 | Zevv | Ha good luck finding a volunteer for that |
18:59:48 | disruptek | who said anything about a volunteer? |
18:59:53 | Zevv | good point |
19:11:12 | * | bung joined #nim |
19:14:05 | * | synshroud quit (Ping timeout: 240 seconds) |
19:14:13 | * | synshroud joined #nim |
19:15:18 | FromDiscord | <Elegant Beef> Excuse me whilst i barricade my door |
19:15:25 | * | bung quit (Ping timeout: 240 seconds) |
19:22:20 | * | superbia1 quit (Quit: WeeChat 2.9) |
19:22:53 | FromDiscord | <Rika> why would he want to swap with you |
19:23:06 | disruptek | he? why would i want a `he`? |
19:24:21 | FromDiscord | <Elegant Beef> True, guess im safe. Or that's just what he wants me to think |
19:39:11 | FromGitter | <alehander92> disruptek how do you know i have a beard |
19:39:13 | FromGitter | <alehander92> most of the time |
19:39:55 | * | bung joined #nim |
19:39:59 | disruptek | most of the time it's because i'm watching you. |
19:40:09 | FromGitter | <alehander92> yeah wait |
19:40:11 | FromGitter | <alehander92> my photo has one |
19:40:21 | FromGitter | <alehander92> i am not sure in evolution man |
19:40:23 | disruptek | which one? |
19:40:33 | disruptek | i have so many photos of you... |
19:41:43 | FromGitter | <alehander92> oooh |
19:41:51 | FromGitter | <alehander92> we should talk on video |
19:41:53 | FromGitter | <alehander92> some time |
19:42:06 | FromGitter | <alehander92> well i don't believe beard is very important |
19:44:37 | * | bung quit (Ping timeout: 264 seconds) |
19:44:57 | Zevv | I'm a *very* lazy groomer. I don't have a beard, but I just shave only 5 or 6 times a year |
19:45:30 | disruptek | i'm talking to video of you right now. |
19:45:42 | Zevv | good for you |
19:45:53 | Zevv | did you see me wave? |
19:46:25 | disruptek | don't be silly. |
19:46:28 | disruptek | i'm talking to alehander92. |
19:46:36 | disruptek | i'm not allowed close enough to children to film you. |
19:47:19 | disruptek | the thing about pop secret is, everyone knows about it. |
19:47:31 | Zevv | sshht |
19:48:44 | FromGitter | <alehander92> i am young |
19:49:08 | FromDiscord | <Elegant Beef> but you have a 92 in your name which means you're 28 |
19:50:10 | FromGitter | <alehander92> <3 |
19:50:16 | FromGitter | <alehander92> it's ok :) |
19:50:51 | FromGitter | <alehander92> we are all adults here |
19:51:07 | FromDiscord | <Rika> 👀 |
19:51:13 | FromGitter | <alehander92> you need some older people |
19:51:21 | FromGitter | <alehander92> to give you advice and memories from 90s |
19:51:27 | Zevv | we have stadler & waldorf |
19:51:31 | FromGitter | <alehander92> i remember some potatoes and sea |
19:51:35 | disruptek | i lost my virginity in '92. |
19:51:43 | disruptek | i mean, my homicide virginity. |
19:52:06 | FromGitter | <alehander92> dude you're born in 1985 or something |
19:52:32 | disruptek | not yet. |
19:52:38 | Zevv | ha |
19:52:42 | disruptek | talk to me once i complete this swap. |
19:52:46 | FromGitter | <alehander92> this is not true |
19:53:05 | FromDiscord | <haxscramper> Sometimes I read this chat and think to myself just how good of a decision it was to start living in former soviet nuclear bunker |
19:53:11 | FromGitter | <alehander92> i am sure you would write php to save my life |
19:53:23 | Zevv | He could punch your cards |
19:53:36 | RattleyCooper | I figured out a solution. I can use wNim to create an app window and connect the `WM_CLOSE` event to a frame. This allows me to intercept the `taskkill` command and exit cleanly :D |
19:53:54 | FromGitter | <alehander92> haxscramper oh an eastern european? |
19:54:20 | FromGitter | <alehander92> zevv man what is endbr64 about |
19:54:33 | FromGitter | <alehander92> sounds like a dutch electro band |
19:54:36 | FromDiscord | <haxscramper> Yes |
19:54:40 | Zevv | sorry what endbr64? |
19:54:47 | FromGitter | <alehander92> but it's something that gcc insists on putting everywhere |
19:54:51 | FromGitter | <alehander92> and now i generate it as well |
19:54:54 | FromGitter | <alehander92> but i am not sure why |
19:55:13 | Zevv | well, just read the friggin docs man |
19:55:13 | FromGitter | <alehander92> haxscramper balkans? |
19:55:25 | FromGitter | <alehander92> zevv you can explain it with memes |
19:55:32 | FromGitter | <alehander92> the docs usually don't |
19:55:44 | FromGitter | <alehander92> hm, meme-docs overflow |
19:56:15 | Zevv | I always read it as a nop |
19:56:20 | Zevv | because I don't know what it does |
19:56:40 | FromGitter | <alehander92> computer says NOP |
19:56:50 | FromGitter | <alehander92> ok |
19:57:54 | * | bung joined #nim |
19:58:17 | Zevv | yeah and now you made me look that stuff up of course |
19:58:58 | Zevv | alehander92: https://www.linuxplumbersconf.org/event/2/contributions/147/attachments/72/83/CET-LPC-2018.pdf |
19:59:24 | FromGitter | <alehander92> thanks |
20:01:54 | Zevv | and https://software.intel.com/content/www/us/en/develop/articles/technical-look-control-flow-enforcement-technology.html |
20:02:39 | Zevv | it's a protection against COP attacks |
20:02:42 | FromDiscord | <haxscramper> I re-read nimerop readme, but just to be sure - it is made to work with single header files, not whole projects. Things like `getHeader` etc. |
20:02:49 | disruptek | we need more of those in the US. |
20:03:20 | FromDiscord | <haxscramper> Just trying to come with a way to handle things that depend on stdlib & other parts of the library |
20:03:54 | Zevv | if you want to inject malicious code but you have only a few bytes of buffer overflow, you can look around if there are parts in the binary that is already in memory you can abuse: find snippets that do want you want that end with at 'return'. Typically the tail part of functions. Then you make a chain of CALLs to these tails and stitch together your program |
20:04:14 | FromGitter | <alehander92> thanks |
20:04:21 | FromGitter | <alehander92> i just read about rop attacks |
20:04:38 | FromGitter | <alehander92> i didn't know about those huh |
20:06:22 | Zevv | yeah you might want to get used to that |
20:07:22 | * | bung quit (Ping timeout: 265 seconds) |
20:13:18 | * | synshroud_ joined #nim |
20:14:01 | * | synshroud quit (Ping timeout: 264 seconds) |
20:16:49 | * | narimiran quit (Quit: leaving) |
20:18:21 | Zevv | hm strictfuncts doesn't fly for me yet |
20:18:26 | Zevv | something in system.nim |
20:20:32 | * | bung joined #nim |
20:24:45 | * | bung quit (Ping timeout: 240 seconds) |
20:25:07 | Zevv | oh this makes me think hard. my seq add is not allowed but why oh why |
20:25:36 | * | RattleyCooper quit (Remote host closed the connection) |
20:25:37 | * | bung joined #nim |
20:29:50 | leorize[m] | Zevv: https://forum.nim-lang.org/t/6733#41875 |
20:30:01 | * | bung quit (Ping timeout: 246 seconds) |
20:30:05 | Zevv | yeah I just found that |
20:30:05 | * | arecacea1 quit (Remote host closed the connection) |
20:30:15 | Zevv | something makes sense, but I don't understand the implications yet |
20:30:30 | * | arecacea1 joined #nim |
20:34:46 | shashlick | @haxscramper nimterop fine with entire projects, what do you mean single file |
20:35:24 | shashlick | GetHeader is just to obtain the library source and build it |
20:35:41 | shashlick | cImport does the wrapping |
20:35:54 | shashlick | And you can use toast on the command line if you prefer |
20:36:39 | shashlick | You might want to read the api docs for more details |
20:42:12 | FromDiscord | <Varriount> Hrm, we need better SQL libraries |
20:42:42 | FromDiscord | <Varriount> (in the standard library) |
20:43:34 | FromDiscord | <Varriount> <3 Nimterop |
20:43:56 | shashlick | V still waiting for your feedback on nimterop |
20:43:56 | FromDiscord | <Varriount> ^ shashlick, can I get that on a mug? |
20:44:21 | * | bung joined #nim |
20:44:27 | FromDiscord | <Varriount> Oh yeah, sorry. Life's been hectic (family issues, job issues) |
20:44:32 | shashlick | I'm slowly hearing folks asking for C++ support, might get around to it later this year who knows |
20:48:46 | * | bung quit (Ping timeout: 258 seconds) |
20:53:34 | FromDiscord | <haxscramper> Libclang wrapper is like 98% done actually, I already started things related to dealing wrapping. |
20:54:16 | * | bung joined #nim |
20:58:44 | * | bung quit (Ping timeout: 258 seconds) |
21:00:41 | * | bung joined #nim |
21:02:32 | * | vicfred joined #nim |
21:04:59 | * | bung quit (Ping timeout: 240 seconds) |
21:11:46 | * | bung joined #nim |
21:13:35 | FromDiscord | <juan_carlos> is there a way to import something from Nim /tests/ folder?, `import ../tests/foo` wont work. |
21:15:18 | shashlick | you could add `--path:$nim` and then import tests |
21:15:59 | * | oddp joined #nim |
21:16:22 | * | bung quit (Ping timeout: 258 seconds) |
21:17:33 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
21:18:53 | * | pbb joined #nim |
21:34:16 | * | bung joined #nim |
21:38:59 | * | bung quit (Ping timeout: 258 seconds) |
21:43:44 | * | bung joined #nim |
22:05:16 | * | neceve quit (Remote host closed the connection) |
22:25:48 | shashlick | disruptek: the travis nim script has moved to a repo - https://github.com/genotrance/nim-travis |
22:26:04 | shashlick | the old gist will still work since it redirects to this but just fyi |
22:26:13 | disruptek | kk, thanks. |
22:26:32 | disruptek | i'm slowly moving to github ci; really liking it so far. |
22:27:01 | FromDiscord | <Hearthstone> GitHub CI? |
22:27:01 | shashlick | cool deal |
22:27:15 | shashlick | elijahr has added arm64 and ppc64 support so its getting better |
22:27:24 | disruptek | oh, neat. |
22:27:58 | disruptek | that makes it superior for some stuff. 😉 |
22:28:04 | FromDiscord | <Hearthstone> What's GitHub CI? :P |
22:28:08 | disruptek | hearthstone: github actions. |
22:28:08 | FromDiscord | <Hearthstone> GitHub Actions?- |
22:28:11 | disruptek | !repo testes |
22:28:12 | FromDiscord | <Hearthstone> Oh alright |
22:28:13 | disbot | https://github.com/disruptek/testes -- 9testes: 11a small unittest framework with decent support 🔴🟡🟢 15 8⭐ 0🍴 7& 29 more... |
22:28:24 | disruptek | my testes are in yer cloud now. |
22:29:43 | * | oddp quit (Quit: quit) |
22:36:49 | * | AndroUser joined #nim |
22:38:25 | * | solitudesf quit (Ping timeout: 240 seconds) |
22:47:33 | * | vicfred quit (Quit: Leaving) |
23:03:10 | * | Jesin quit (Quit: Leaving) |
23:03:46 | * | vicfred joined #nim |
23:06:53 | * | tane quit (Quit: Leaving) |
23:07:46 | * | Jesin joined #nim |
23:15:06 | FromDiscord | <Kaynato> Compiler is thinking I'm redefining `|` for typdesc when it should just be for a type which is a distinct uint8 - not sure if I might be doing something wrong - https://play.nim-lang.org/#ix=2vE3 |
23:16:17 | disruptek | well, you did define a proc named `|`. |
23:17:56 | disruptek | i mean, for both uint32 and uin8. |
23:18:00 | disruptek | uint8, too. |
23:18:06 | FromDiscord | <Kaynato> Shouldn't `|` be non-conflicting since the signatures are (a, b: CPU_ACCESS_FLAGS) and then (a, b: BIND_FLAGS) which are respectively distinct uint8 and sitinct uint32? |
23:18:09 | FromDiscord | <Kaynato> Distinct*. |
23:19:01 | disruptek | hmm. |
23:19:37 | disruptek | the body values /are/ your distinct type, no? |
23:19:58 | disruptek | dump this shit out in expandMacros and stop writing so much gibberish. |
23:20:31 | disruptek | i swear it's like you people are trying to nauseate me. |
23:22:01 | disruptek | just try to pretend that your grandmother has to read your code. |
23:22:10 | disruptek | ol' granny disruptek. |
23:22:53 | FromDiscord | <Kaynato> Signature from CPU_ACCESS_FLAGS is ```proc `|`(a`gensym3606099, b`gensym3606100: CPU_ACCESS_FLAGS): CPU_ACCESS_FLAGS``` |
23:23:43 | disruptek | exactly. so your | is operating on BIND_FLAGS just as it is supposed to. |
23:24:29 | FromDiscord | <Kaynato> And the BIND_FLAGS one is the same, but I can't have genFlag for more than one of them, despite the fact that both types are being defined correctly as distinct (source type) |
23:24:29 | disruptek | but, really, why are you even bothering? i just don't understand people. |
23:24:47 | FromDiscord | <Kaynato> Bothering with which part? |
23:25:01 | disruptek | you know you can use enums and sets as bitfields, right? |
23:25:17 | disruptek | and you can or integers with the `or` operator. |
23:25:18 | leorize[m] | @Kaynato my bets are on the converters |
23:25:19 | FromDiscord | <Kaynato> I have to match it to the original, since this is for wrapping a c interface |
23:25:39 | FromDiscord | <Kaynato> I'm as nauseated as you are |
23:25:39 | disruptek | so what? |
23:25:48 | disruptek | it's not like nim doesn't compile to c. |
23:25:57 | disruptek | do you really think you're the first person to do this? |
23:25:59 | FromDiscord | <Kaynato> Some of their enums are apparently too large for set |
23:26:04 | FromDiscord | <Kaynato> No? I'm not |
23:27:17 | leorize[m] | mratsim wrote a thing for his laser project iirc |
23:27:44 | disruptek | a thing? |
23:28:49 | leorize[m] | a C enum -> bitset mapping macro for interop |
23:30:54 | disruptek | pretty sure i've done it using stdlib. |
23:31:33 | disruptek | gittyup has a bunch of this crap. |
23:31:36 | disruptek | !repo gittyup |
23:31:37 | disbot | https://github.com/disruptek/gittyup -- 9gittyup: 11higher-level git bindings that build upon nimgit2 15 2⭐ 1🍴 |
23:32:44 | disruptek | type Goatse {.size: sizeof(cint).} = enum ... |
23:41:07 | FromDiscord | <Kaynato> Can't find the macro you're talking about, leorize, but I guess it shouldn't be much time to write bitsets up to 64 bits anyhow. Thanks regardless. |
23:59:41 | * | audiofile joined #nim |