<< 01-10-2021 >>

00:00:30*rockcavera quit (Remote host closed the connection)
00:00:55*rockcavera joined #nim
00:00:55*rockcavera quit (Changing host)
00:00:55*rockcavera joined #nim
00:03:32PyautoguiQuestion: The playground is not working for me. Did I miss something? It's showing a "Cloudflare Always Online snapshot", while saying it's offline.
00:03:51FromDiscord<Elegantbeef> Seems it's having troubles atm
00:03:56FromDiscord<Elegantbeef> Pmunch you around?!
00:05:13FromDiscord<Elegantbeef> Anyone have something they want to submit to TMWN? Last call!
00:05:24FromDiscord<Elegantbeef> (TMWN = This Month With Nim)
00:53:20FromDiscord<Jakes1403> What's that?
00:53:49PyautoguiA blog series, I think: https://nim-lang.org/blog.html.
00:56:56FromDiscord<Jakes1403> Oh cool
00:57:33FromDiscord<Jakes1403> If I had something finished I would put it out. Does a closed source steam game count?
00:58:45Pyautoguihttps://www.goodboygalaxy.com/ is closed source, and I think it got a place in August.
00:59:33kinkinkijkinif i had anything nearing production-readiness i would submit it
01:00:33FromDiscord<Elegantbeef> Yea closed source doesnt really matter it's just to showcase libraries,blogs, projects that use nim due to a forum post sometime last year
01:02:24FromDiscord<Jakes1403> Maybe next month I will try lol. My game is called Indirection, it has a store page on Steam. Still in the process of rewriting it in Nim
01:02:43FromDiscord<impbox [ftsf]> yay more nim games
01:02:59FromDiscord<Elegantbeef> Yay more nim users i've evangelized 😛
01:03:15PyautoguiAgreed! I loved the demo for GoodBoy Galazy.
01:03:15FromDiscord<Jakes1403> ElegantBeef actually got me into Nim
01:03:48kinkinkijkinim writing a nim game engine, occasionally
01:03:59FromDiscord<Elegantbeef> arent we all
01:04:34FromDiscord<Jakes1403> I'm using Godot atm.↵Used to make my own engines but wanted to focus more on actually having something to release
01:04:50FromDiscord<Jakes1403> With C++ of all things
01:05:07kinkinkijkinim also currently involved in a project making a demotool
01:05:21kinkinkijkinas in im heading the project and should have my ide open but im playing minecraft instead
01:05:45PyautoguiThat should be a meme. 100%.
01:06:19FromDiscord<Jakes1403> Nim has definitely helped me increase the speed that my low level stuff gets made
01:07:31kinkinkijkinthis is really funny because it's designed firstly as a tooling and systems language, and most of what i do with it is tooling
01:07:35kinkinkijkinafair
01:08:58FromDiscord<treeform> @juan_carlos Hey I am trying to run your benchmarks vs puppy, but I am getting this error: `undeclared identifier: 'SslError'`. We have done a ton of changes to puppy and I want to see if it will pass your tests now.
01:11:36FromDiscord<juan_carlos> What, which benchmark
01:12:20FromDiscord<treeform> harpoon's ones
01:14:18FromDiscord<treeform> Its defined here 2 years ago: https://github.com/nim-lang/Nim/blame/0d3af5454b66dfe4a8a7017030708a890207c658/lib/pure/net.nim#L110
01:14:24FromDiscord<juan_carlos> Are they annoying?, I can delete it, I did not remember I pushed that.
01:14:25FromDiscord<treeform> I don't get how its not working
01:14:58FromDiscord<treeform> you have import std/net which should give SslError
01:15:05FromDiscord<treeform> but some how nim just forgets about it?
01:15:08FromDiscord<juan_carlos> That was done during early dev as tinkering with code.
01:16:30FromDiscord<treeform> do the benchmarks run for you?
01:17:04FromDiscord<juan_carlos> I see it in devel https://github.com/nim-lang/Nim/blob/devel/lib/pure/net.nim#L110
01:17:23FromDiscord<treeform> oh I think I just needed to add --d:ssl sorry
01:17:40FromDiscord<juan_carlos> No idea, have you `-d:ssl` ?.
01:19:06FromDiscord<juan_carlos> Send PR deleting the bench if you want, I do not care, I just made to tinker and to learn benchy.
01:21:44FromDiscord<treeform> I just noticed you used puppy and it gave you errors.
01:21:51FromDiscord<treeform> We have fixed puppy so your benchmarks now run fine.
01:22:05FromDiscord<treeform> puppy is the slowest though 😦
01:25:48FromDiscord<juan_carlos> Good that is not a bug in Nim. puppy is better.
01:31:53*neurocyte01328 joined #nim
01:31:53*neurocyte01328 quit (Changing host)
01:31:53*neurocyte01328 joined #nim
01:33:47*neurocyte0132 quit (Ping timeout: 240 seconds)
01:33:47*neurocyte01328 is now known as neurocyte0132
01:37:34FromDiscord<statvoltron> sent a long message, see http://ix.io/3AsV
01:40:52FromDiscord<Elegantbeef> Why does it matter that treesitter doesnt run on JS? Arent you just going to be outputting JS, or do you want to embed the compiler into browser?
01:44:17FromDiscord<statvoltron> I'm writing an interpreter and I'd like the interpreter to run in the browser so I need the parser to run in the browser as well.
01:44:51FromDiscord<statvoltron> Its just a simple sort of calculator language
01:46:41FromDiscord<Elegantbeef> `std/jsffi` and `std/asyncjs` will help you there, though i'd probably say the easiest thing is to build it for wasm and write some JS interop
01:46:41*Pyautogui quit (Ping timeout: 252 seconds)
01:48:52FromDiscord<acek7> how is everyone?
01:50:14FromDiscord<statvoltron> I'm a bit confused. Right now I am building the tree-sitter grammar for wasm. The trick now is figuring out to use that wasm grammar from nim. I was trying to write some js interop and then call that js from nim using `{.importc.}` but I'm tripped up by the libraries use of async. Is there a better way to call wasm from nim?
01:51:19FromDiscord<Elegantbeef> I've never build for wasm but if you build the nim binary and the treesitter library for wasm(assumiiing it can) it should work without any changing afaik
01:51:30FromDiscord<Elegantbeef> I could be wrong in this assumption
01:59:48FromDiscord<Elegantbeef> Looking into it more idk if what i said is possible with treesitter, so i'll just go into the shush corner
02:03:28FromDiscord<statvoltron> I appreciate the help anyway. I have very little idea what I'm doing here. Perhaps to clarify a bit, tree-sitter compiles a grammar to c which can either then be used in c or compiled to wasm. I'm trying to implement the interpreter for the language in nim. Right now in nim I can use `nimtreesitter` (https://github.com/genotrance/nimtreesitter) to use the c version of my grammar in nim. But if I js compile the resulting nim libr
02:05:17FromDiscord<Elegantbeef> Yea i dont know much about wasm, so my idea would be to compiler the nim code as wasm aswell, but dont know if that'd make it usable
02:06:06FromDiscord<Elegantbeef> Given that you can use sdl2/opengl with wasm i figure it's possible
02:12:16FromDiscord<statvoltron> I'll give it a shot, compiling `nlvm` now. I guess to generalize the question a bit, let's say you were building some library in nim that uses some external c library. How would you go about compiling that thing for the web?
02:14:45FromDiscord<Elegantbeef> I guess this would be how https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#implement-a-c-api-in-javascript
02:14:59FromDiscord<Elegantbeef> Like i said i havent done WASM so hopefully someone with a brain comes into answer this
02:26:30FromDiscord<Jakes1403> In speaking of that, is Nim appropriate for programming language development?
02:27:01FromDiscord<Jakes1403> I haven't heard of many projects that use Nim for that, so not sure
02:34:30*Guest6586 joined #nim
02:34:40*arkurious quit (Quit: Leaving)
02:35:15*Guest6586 quit (Client Quit)
02:44:09FromDiscord<Elegantbeef> I'd say so https://gist.github.com/haxscramper/3562fa8fee4726d7a30a013a37977df6
02:44:39FromDiscord<Elegantbeef> It's self hosted on top of it so \:P
03:22:07*Pyautogui joined #nim
03:31:35FromDiscord<Gumber> In reply to @Jakes1403 "In speaking of that,": there's a #langdev community channel
03:53:07*rockcavera quit (Remote host closed the connection)
04:06:01*supakeen quit (Quit: WeeChat 3.3)
04:06:31*supakeen joined #nim
04:13:50FromDiscord<NullCode> is it possible to create nested `proc`s
04:14:02FromDiscord<NullCode> like nested `def func()` in python
04:14:17FromDiscord<NullCode> just to have a local func
04:14:22FromDiscord<NullCode> (edit) "func" => "proc"
04:14:25FromDiscord<NullCode> or is that useless
04:16:32FromDiscord<Elegantbeef> You can
04:19:37*Pyautogui quit (Ping timeout: 250 seconds)
06:04:29*Onionhammer1 joined #nim
06:05:21*dom96_ joined #nim
06:05:22*flynn joined #nim
06:05:42*lucerne9 joined #nim
06:05:51*Mister_Magister_ joined #nim
06:06:14*koltrast_ joined #nim
06:09:08*mst_ joined #nim
06:11:24*Zevv_ joined #nim
06:11:44*def-- joined #nim
06:13:10*redj_ joined #nim
06:14:18*def- quit (*.net *.split)
06:14:18*dom96 quit (*.net *.split)
06:14:18*Zevv quit (*.net *.split)
06:14:18*Mister_Magister quit (*.net *.split)
06:14:18*Onionhammer quit (*.net *.split)
06:14:18*flynn1 quit (*.net *.split)
06:14:18*lucerne quit (*.net *.split)
06:14:18*koltrast quit (*.net *.split)
06:14:18*redj quit (*.net *.split)
06:14:18*mst quit (*.net *.split)
06:14:18*cornfeedhobo quit (*.net *.split)
06:14:19*def-- is now known as def-
06:14:19*Mister_Magister_ is now known as Mister_Magister
06:14:19*Onionhammer1 is now known as Onionhammer
06:14:19*lucerne9 is now known as lucerne
06:21:39*cornfeedhobo joined #nim
06:26:06*Gustavo6046 quit (Quit: ZNC 1.8.2 - https://znc.in)
06:26:21*Gustavo6046 joined #nim
06:31:53FromDiscord<impbox [ftsf]> and it's not useless
06:37:04FromDiscord<Rika> its somewhat useful
06:45:26*PMunch joined #nim
07:16:40*Vladar joined #nim
07:22:15*NimBot joined #nim
07:23:45*Vladar_ joined #nim
07:25:39*Vladar_ quit (Client Quit)
07:26:19*nixfreak_nim[m]1 joined #nim
07:27:02*Vladar quit (Ping timeout: 252 seconds)
07:27:02*nixfreak_nim[m] quit (Ping timeout: 252 seconds)
07:30:17*neurocyte0132 quit (Ping timeout: 250 seconds)
07:34:06*jjido joined #nim
07:34:42*mal``` quit (Ping timeout: 252 seconds)
07:35:10*mal`` joined #nim
07:45:20*redj_ quit (Ping timeout: 250 seconds)
07:45:43*redj joined #nim
08:17:12*max22- joined #nim
08:23:35*jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
08:25:52*pch_ joined #nim
08:26:30*kinkinkijkin quit (Remote host closed the connection)
08:42:29*lain quit (Ping timeout: 252 seconds)
08:42:29*jfinkhaeuser quit (Ping timeout: 252 seconds)
08:42:40*jfinkhaeuser joined #nim
08:43:17*lain joined #nim
08:43:28*GreaseMonkey quit (Read error: Connection reset by peer)
08:44:35*greaser|q joined #nim
09:05:54*pch__ joined #nim
09:07:40*redj quit (Ping timeout: 252 seconds)
09:10:04*redj joined #nim
09:14:39*pch_ quit (Ping timeout: 252 seconds)
09:15:51*neurocyte0132 joined #nim
09:15:51*neurocyte0132 quit (Changing host)
09:15:51*neurocyte0132 joined #nim
09:26:29FromDiscord<dom96> Hey PMunch, is there anything we can do to make the playground more reliable? It feels like it's down quite often :/
09:26:42PMunchIs it down again?
09:27:47FromDiscord<dom96> yes
09:28:06FromDiscord<dom96> Pyautogui reported it above
09:28:51PMunchAh, I wasn't on when they did
09:28:59FromDiscord<whisperdev> Is there any way how to ship a single exe with the libcrypto/libssl libs and cacert.pem?
09:29:23PMunchPart of it is that the server keeps running out of storage
09:29:29PMunchBut that's not what happened this time
09:30:19FromDiscord<dom96> can we clear the storage periodically?
09:34:51FromDiscord<arnetheduck> In reply to @whisperdev "Is there any way": we use bearssl for our needs, which allows us to create fully standalone binaries that don't depend on libcrypto/libssl - see https://github.com/status-im/nim-chronos/blob/master/chronos/streams/tlsstream.nim
09:35:31FromDiscord<arnetheduck> bearssl gets compiled as part of "normal" compilation, so there are no issues with cross-platform support either
09:42:59FromDiscord<whisperdev> Thanks.I assume it's not as simple as just importing your bearssl package right?
09:48:59FromDiscord<arnetheduck> it should be that simple, though ymmv may vary if you use nimble (we don't)
09:54:58*neurocyte0132 quit (Ping timeout: 252 seconds)
10:03:00NimEventerNew thread by Rforcen: Complex lib inline, see https://forum.nim-lang.org/t/8471
10:07:14*neurocyte0132 joined #nim
10:07:14*neurocyte0132 quit (Changing host)
10:07:14*neurocyte0132 joined #nim
10:09:10PMunch@dom96, I've tried my best to automate the process
10:09:31PMunchBut it's a bit of a whack-a-mole situation
10:09:50PMunchBut it wasn't full this time
10:10:00PMunchActually not quite sure what caused it to stop working
10:10:12PMunchApplied some updates and rebooted it and it seems to be back now
10:10:43PMunchIt could do with some more RAM as well..
10:10:49PMunchThat's harder to overcome
10:42:37FromDiscord<Rika> In reply to @arnetheduck "we use bearssl for": I’d say only do this if you have to ship OpenSSL anyway
10:43:00FromDiscord<Rika> Anyway? I mean otherwise
11:09:09NimEventerNew thread by Miran: This Month with Nim: September 2021, see https://forum.nim-lang.org/t/8472
11:24:54*neurocyte0132 quit (Quit: The Lounge - https://thelounge.chat)
11:25:04*neurocyte0132 joined #nim
11:25:04*neurocyte0132 quit (Changing host)
11:25:04*neurocyte0132 joined #nim
11:34:01FromDiscord<geeksforgeeksnitrr> sent a long message, see http://ix.io/3AuN
11:35:28FromDiscord<cabboose> What is algorithm
11:35:34FromDiscord<cabboose> I think you are in the wrong place
11:42:58*naquad joined #nim
12:00:24*max22- quit (Ping timeout: 265 seconds)
12:06:02*supakeen quit (Quit: WeeChat 3.3)
12:06:31*supakeen joined #nim
12:10:14*PMunch quit (Quit: leaving)
12:49:57*arkurious joined #nim
13:09:10*neurocyte0132 quit (Ping timeout: 252 seconds)
13:19:36*Pyautogui joined #nim
13:28:13*rockcavera joined #nim
13:28:13*rockcavera quit (Changing host)
13:28:13*rockcavera joined #nim
13:43:00*max22- joined #nim
13:45:38*neurocyte0132 joined #nim
13:45:38*neurocyte0132 quit (Changing host)
13:45:38*neurocyte0132 joined #nim
13:47:14*smvg joined #nim
13:50:25*Pyautogui quit (Ping timeout: 252 seconds)
13:56:08*Pyautogui joined #nim
13:57:44*smvg quit (Remote host closed the connection)
14:05:12*neurocyte0132 quit (Read error: Connection reset by peer)
14:05:48*neurocyte0132 joined #nim
14:09:41*neurocyte01325 joined #nim
14:09:41*neurocyte01325 quit (Changing host)
14:09:41*neurocyte01325 joined #nim
14:11:16*neurocyte0132 quit (Ping timeout: 252 seconds)
14:11:16*neurocyte01325 is now known as neurocyte0132
14:11:42FromDiscord<arnetheduck> for anyone interested in the coordination of upgrading a large Nim codebase, here's how we plan on approaching it: https://discuss.status.im/t/the-road-to-nim-1-6/2305
14:19:56FromDiscord<reilly> I'm trying to assign to some anonymous procs, but it looks like it's complaining because the proc I'm assigning has side effects... Can I do anything about this?
14:20:24FromDiscord<reilly> To be more specific, `type mismatch: got <proc (s: ptr Stack): uint16{.gcsafe, locks: 0.}> but expected 'proc (s: ptr Stack): uint16{.noSideEffect, gcsafe, locks: 0.}'`.
14:22:28FromDiscord<cabboose> Thanks for sharing! 👏↵(@arnetheduck)
14:24:44FromDiscord<haxscramper> If procvar requires no side effect it means your callback also needs to have no side effects↵(@reilly)
14:25:15FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3Avz
14:25:16FromDiscord<haxscramper> But this is not recommended
14:25:28FromDiscord<ceramicskate0> First time using nim, I've been looking around google to see if I can find my answer but no luck for me. My question is can I set a process mitigation policy in nim. Ive tried using `emit{}` with the cpp from msdn but I keep getting `SetProcessMitigationPolicy()` not found. Does anyone have any assistance?
14:28:01FromDiscord<reilly> sent a code paste, see https://play.nim-lang.org/#ix=3AvA
14:28:49FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3AvB
14:28:51FromDiscord<haxscramper> maybe there is a windows wrapper for this already
14:29:03*Pyautogui quit (Quit: Connection closed)
14:29:29FromDiscord<haxscramper> yes there is https://github.com/khchen/winim/blob/b7b32603f4ef672bc34405bc6200e8aab2c366b1/winim/inc/winbase.nim#L1977
14:29:29FromDiscord<Rika> In reply to @reilly "But my procvar type": you have to add nosideeffects to it
14:29:54FromDiscord<Marvel> Hi all, I'm new to nim and was wonder is there a way to import other files like you can in python?
14:30:05FromDiscord<Rika> yes? just import them
14:30:23FromDiscord<Rika> `import file_name` it checks the same directory as where the file is located
14:30:46FromDiscord<Marvel> oh ok thanks
14:32:22FromDiscord<Marvel> also
14:32:36FromDiscord<Marvel> whats the best way to read from a yaml file
14:32:43FromDiscord<Marvel> is there some sorta library for that
14:33:01FromDiscord<haxscramper> nimyaml
14:33:27*jjido joined #nim
14:36:51FromDiscord<reilly> sent a code paste, see https://play.nim-lang.org/#ix=3AvC
14:37:36FromDiscord<reilly> (edit) "https://play.nim-lang.org/#ix=3AvC" => "https://play.nim-lang.org/#ix=3AvD"
14:39:05*jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
14:39:28FromDiscord<haxscramper> you can do just
14:39:43FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3AvE
14:39:58FromDiscord<haxscramper> you can define inner procs, it is not mandatory to declare `let x = proc() ....`
14:40:52FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3AvF
14:40:56FromDiscord<haxscramper> you can't use `func` in procvar
14:41:03FromDiscord<haxscramper> still don't know why it is not allowed
14:41:09FromDiscord<haxscramper> but it is explicitly disallowed IIRC
14:41:14FromDiscord<haxscramper> don't ask me why
14:41:29FromDiscord<haxscramper> in procvar or for inline proc definitions
14:42:26FromDiscord<reilly> But my procs do have side effects. I've just been using `discard` in my examples since nobody wants to have to read all that.
14:42:45FromDiscord<haxscramper> ah, well
14:42:50FromDiscord<haxscramper> now we get to important parts
14:43:07FromDiscord<haxscramper> I thought you were getting some weird effect tracking bug
14:43:21FromDiscord<reilly> Yeah, give me a second to actually better describe what's going on here.
14:43:22FromDiscord<haxscramper> back to the first reply
14:47:32FromDiscord<reilly> sent a code paste, see https://play.nim-lang.org/#ix=3AvJ
14:48:53FromDiscord<reilly> > If procvar requires no side effect it means your callback also needs to have no side effects↵So, by "procvar" do you mean procvars in general, or the specific typing of these particular procvars? Because I don't specify `noSideEffect` in any of these types.
14:54:41FromDiscord<haxscramper> you can run this on latest devel, it shows exact reasons for side effects
14:54:51FromDiscord<haxscramper> like X calls Y calls Z so you got side effected
14:55:05FromDiscord<haxscramper> at least it might tell you why it thinks so
14:55:24FromDiscord<haxscramper> other than that, I don't think there is any clear way to fix it unless I just take the whole code and check it
15:01:21FromDiscord<reilly> But are all procvars required to have no side effects?
15:03:28FromDiscord<haxscramper> no
15:03:49FromDiscord<haxscramper> procvars are not required to have noSideEffect
15:03:57FromDiscord<reilly> Then why is it forcing me to have no side effects even though I never asked for that?
15:04:11FromDiscord<haxscramper> I don't know
15:04:20FromDiscord<reilly> That's wack.
15:06:55FromDiscord<reilly> http://ix.io/3Aw0
15:07:25FromDiscord<reilly> CTRL+F "#! How can I get this to stop complaining?"
15:07:30FromDiscord<reilly> (edit) ""#!" => "`#!" | "complaining?"" => "complaining?`"
15:09:04FromDiscord<haxscramper> nim error message at it's finest
15:09:07FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3Aw2
15:09:14FromDiscord<haxscramper> `/tmp/asdfasfdas.nim(133, 14) Error: type mismatch: got 'proc (m: ptr MemoryArray, a: uint16, b: uint16){.noSideEffect, gcsafe, locks: 0.}' for 'poke16' but expected 'proc (m: ptr uint8, a: uint16, b: uint16){.closure.}'`
15:09:23FromDiscord<haxscramper> you have different proc types
15:09:30FromDiscord<haxscramper> this is not even a question of side effects
15:09:55FromDiscord<reilly> Bruh.
15:10:00FromDiscord<cabboose> Oh I’ve hit that wall before
15:10:01FromDiscord<cabboose> Feels
15:10:04FromDiscord<cabboose> Feels bad
15:10:12FromDiscord<reilly> I,
15:10:16FromDiscord<reilly> forgot I made that change
15:10:28FromDiscord<haxscramper> and `ptr uint8` is not the same as `ptr array[N, uint8]`
15:10:38FromDiscord<haxscramper> you need to use `ptr UncheckedArray[uint8]`
15:10:48FromDiscord<reilly> I'm going to go shoot myself in the foot
15:10:51FromDiscord<haxscramper> but yeah, nobody here gives a shit about error messages
15:11:20FromDiscord<haxscramper> actually this could've been prevented if error message was like↵(@reilly)
15:11:22FromDiscord<haxscramper> optimized
15:11:23FromDiscord<haxscramper> for people
15:11:25FromDiscord<haxscramper> to see the error
15:12:52*pro joined #nim
15:12:53*pro quit (Client Quit)
15:12:56FromDiscord<reilly> I made a type alias so that I wouldn't have to write `array[65536, uint8]` everywhere, and I just forgot to do that for the procvar type definitions..................... ... .. . . .. . . . . . ..... . .. .. . ...
15:13:00FromDiscord<cabboose> Yeah this
15:13:12FromDiscord<cabboose> I’ve hit this wall before many times in hind sight
15:13:19FromDiscord<cabboose> The error makes you think the issue is somewhere else
15:13:39FromDiscord<cabboose> My classic example is when my gully comments was causing compilation errors
15:13:44FromDiscord<cabboose> But 0 explanation on why
15:13:54FromDiscord<cabboose> That hurt \:’)
15:14:01FromDiscord<haxscramper> like
15:14:03FromDiscord<cabboose> At least that’s fixed 🙏
15:14:05FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3Aw5
15:14:07FromDiscord<haxscramper> case\:↵ thin in case↵ another thing
15:14:25FromDiscord<haxscramper> notcaseRANDOM COMMENT↵of one↵of two
15:15:14FromDiscord<reilly> Nim's case syntax is definitely, uh, unconventional
15:15:35FromDiscord<haxscramper> well, you can do it like
15:15:46FromDiscord<haxscramper> sent a code paste, see https://play.nim-lang.org/#ix=3Aw6
15:15:46FromDiscord<haxscramper> like every single other language construct
15:15:47FromDiscord<haxscramper> indent after `:`
15:15:54FromDiscord<haxscramper> nothing special anywhere
15:23:12FromDiscord<reilly> I wish Nimsuggest:↵1. Had more helpful error messages↵2. Wasn't so slow↵3. Wouldn't randomly multiply itself hundreds of times and use 100% of my cpu
15:23:35FromDiscord<haxscramper> https://github.com/nim-lang/RFCs/issues/300
15:24:07FromDiscord<haxscramper> IC is suposed to be a solution to that
15:24:17FromDiscord<haxscramper> IC stands for incremental compilation
15:25:18FromDiscord<Yardanico> In reply to @reilly "I wish Nimsuggest: 1.": "3. Wouldn't randomly multiply itself hundreds of times and use 100% of my cpu" tbh don't remember the last time I've had this issue
15:25:22FromDiscord<Yardanico> and it's pretty fast for me too
15:25:39FromDiscord<Yardanico> about error messages - that's not specific to nimsuggest at all
15:25:49FromDiscord<haxscramper> it is still slow as hell for me
15:26:02FromDiscord<haxscramper> well, I try it periodically
15:26:10FromDiscord<haxscramper> and then turn off again
15:26:25FromDiscord<xflywind> I always turn off nimsuggest.
15:27:17FromDiscord<xflywind> It causes frustrating experience for me.
15:27:41FromDiscord<xflywind> (edit) "for" => "to"
15:29:06FromDiscord<reilly> In reply to @Yardanico ""3. Wouldn't randomly multiply": Consider yourself lucky! I had this happen just yesterday.
15:29:14FromDiscord<Yardanico> are you using nimsaem's extesion?
15:29:36FromDiscord<reilly> Is that an issue with the nimsaem one?
15:30:03FromDiscord<Yardanico> well, the kosz nim extension for vscode is effectively unmaintained
15:30:19FromDiscord<Yardanico> nimsaem is the maintained fork of kosz nim extension translated to Nim
15:30:29FromDiscord<Yardanico> and yes, there were fixed for nimsuggest in it
15:30:35FromDiscord<Yardanico> https://github.com/saem/vscode-nim
15:30:37FromDiscord<Yardanico> https://marketplace.visualstudio.com/items?itemName=nimsaem.nimvscode
15:30:37nrds<R2D299> itHub: 7"<No Description>"
15:31:05FromDiscord<reilly> That's exactly why I use the nimsaem one. Pure Nim and actively maintained.
15:31:17FromDiscord<xflywind> I think it is better to turn off nimsuggest and use tabnine.
15:31:19FromDiscord<Yardanico> then I don't know :eShrug1: :eShrug2:
15:31:27FromDiscord<Yardanico> In reply to @flywind "I think it is": I've tried TabNine and IMO it's not that good
15:31:33FromDiscord<Yardanico> it's only good for repetetive code, but for new code it's pretty bad
15:31:46FromDiscord<xflywind> yeah
15:32:19FromDiscord<reilly> Does TabNine support Nim?
15:32:26FromDiscord<Yardanico> it doesn't have to support a specific language
15:32:28FromDiscord<Yardanico> it's language-agnostic
15:32:45FromDiscord<Yardanico> it has some special features for popular languages, but Nim isn't one of them, but it still works
15:32:57FromDiscord<reilly> In that case, I can't imagine it works too well, especially on something relatively obscure like Nim.
15:33:45FromDiscord<Yardanico> well, it can learn from the codebase you're editing
15:33:57FromDiscord<Yardanico> maybe I should try it again, I haven't checked it out in a while
15:38:40FromDiscord<cabboose> It helps in the same way vs codes normal pattern recognition and suggestions would work
15:38:42FromDiscord<cabboose> I imagine
15:38:58FromDiscord<cabboose> Nimsuggest is still pretty painful
15:38:58FromDiscord<cabboose> It eats a shit load of memory too
15:39:07FromDiscord<cabboose> It’s like chromes step bro
15:44:22FromDiscord<Yardanico> @cabboose that's because nimsuggest is essentially the nim compiler constantly running
15:44:58FromDiscord<Yardanico> nim compiler uses quite some RAM when compiling (depends on the project size of course) but it's hard to notice because the compilation is usually pretty fast
16:11:46FromDiscord<alehander42> is https://github.com/Niminem
16:11:47FromDiscord<alehander42> around
16:12:00FromDiscord<alehander42> i want to talk with him about his python to nim project
16:13:58FromDiscord<Shoto> Has anyone made a matrix home server in Nim?
16:14:14FromDiscord<Shoto> I wanna see the code and maybe do something stupid with it lol
16:16:52FromDiscord<haxscramper> https://github.com/zevv/cpstest https://github.com/zevv/cpstest/blob/master/matrix.nim seems to be using matrix
16:16:54nrds<R2D299> itHub: 7"<No Description>"
16:17:04FromDiscord<haxscramper> someone was also working on matrix library
16:17:10FromDiscord<haxscramper> this one also uses CPS
16:17:21FromDiscord<haxscramper> https://github.com/nim-works/cps
16:17:24nrds<R2D299> itHub: 7"Continuation-Passing Style for Nim 🔗"
16:18:02FromDiscord<Shoto> Oh? What's that?
16:18:12FromDiscord<Shoto> Oh, I'm talking about the Matrix home server
16:18:27FromDiscord<Shoto> Like, Synapse https://github.com/matrix-org/synapse
16:18:30nrds<R2D299> itHub: 7"Synapse: Matrix reference homeserver"
16:19:20FromDiscord<cabboose> Ooye true.↵(@Yardanico)
16:19:57*smvg joined #nim
16:20:02FromDiscord<haxscramper> In reply to @Shoto Todoroki "Oh, I'm talking about": ah, you are talking about setting up matrix server for nim
16:20:08FromDiscord<cabboose> hissssss Python 🐍↵(@alehander42)
16:20:09FromDiscord<haxscramper> not writing someting matrix-related in nim
16:20:28FromDiscord<haxscramper> In reply to @Shoto Todoroki "Oh? What's that?": CPS is an async/threading etc. alternative
16:20:48FromDiscord<haxscramper> and lots of other things
16:25:30*Vladar joined #nim
16:26:11FromDiscord<alehander42> @cabboose i sent him an email
16:26:16FromDiscord<alehander42> is it you
16:27:11FromDiscord<cabboose> Nein sorry friend
16:27:25FromDiscord<alehander42> ok
16:27:32FromDiscord<alehander42> i would be very surprised
16:27:40FromDiscord<alehander42> nice to meet you again
16:28:42FromDiscord<cabboose> Que? Nice to meet you compadre
16:28:56FromDiscord<Shoto> In reply to @haxscramper "ah, you are talking": No i mean is there a homeserver that has been implemented in Nim, lol
16:29:12FromDiscord<Shoto> Like, it's been written in Nim, and runs
16:29:29FromDiscord<Yardanico> don't think so
16:29:40FromDiscord<cabboose> Sounds like a good project shoot
16:29:49FromDiscord<cabboose> I look forward to your PR shoto!
16:30:10FromDiscord<cabboose> How exciting to get our own nim written matrix server
16:34:26FromDiscord<Rika> In reply to @cabboose "I look forward to": PR?
16:34:39FromDiscord<Rika> Project?
16:51:18Zevv_haxscramper: nah' that's nothing. it's one or to API calls
16:51:24Zevv_the protocol is pretty huge to implement.
16:52:50FromDiscord<juan_carlos> Does calling a `SIGTERM ` calls all destructors ?.
16:58:17FromDiscord<Rika> Should
17:06:43FromDiscord<Yardanico> In reply to @Rika "Should": it's SIGTERM, why "should"?
17:06:58FromDiscord<Rika> Because it’s a graceful exit on term isn’t it
17:07:07FromDiscord<Rika> It’s only immediate on kill
17:22:11FromDiscord<Gumber> well assuming Nim does the right thing when it handles a SIGTERM signal
17:22:22FromDiscord<Gumber> but I imagine that was an important thing to get right 🙂
17:22:48FromDiscord<Gumber> (edit) "Nim" => "Nim's runtime"
17:33:01FromDiscord<dom96> In reply to @haxscramper "CPS is an async/threading": It's not an alternative to async, it's an alternative to closure iterators
17:34:54FromDiscord<haxscramper> In reply to @dom96 "It's not an alternative": Well https://github.com/nim-lang/RFCs/issues/295 mostly compares it to async, await and threads
17:34:59FromDiscord<haxscramper> Not closure iterators specifically
17:38:21FromDiscord<dom96> Yeah, and it does so dishonestly. https://github.com/nim-lang/RFCs/issues/295#issuecomment-748117262
17:40:30FromDiscord<cabboose> Isn't it a good framework that things like async could be built off though?
17:41:00FromDiscord<haxscramper> In reply to @dom96 "Yeah, and it does": But you could do just the same things with cps you do with async and other stuff
17:41:13FromDiscord<cabboose> yeah but thats what I mean
17:41:17FromDiscord<dom96> sure
17:41:24NimEventerNew post on r/nim by jabbalaci: int vs int32 vs uint32, see https://reddit.com/r/nim/comments/pzd29f/int_vs_int32_vs_uint32/
17:41:24FromDiscord<cabboose> like you can do any control flow stuff with it
17:44:03FromDiscord<Yardanico> ^probably int is faster than int32 because operating on 64-bit integers is faster on a 64-bit CPU than 32-bit integers?
17:44:21FromDiscord<Yardanico> or maybe the compiler does better optimizations for that combination
17:44:46FromDiscord<cabboose> The fastest was actually uint32
17:45:02FromDiscord<Yardanico> oh
17:45:11FromDiscord<Yardanico> did you post that?
17:45:14FromDiscord<cabboose> image.png https://media.discordapp.net/attachments/371759389889003532/893554164221751316/image.png
17:45:15FromDiscord<cabboose> nah
17:45:19FromDiscord<cabboose> I had a look at the source
17:45:21FromDiscord<cabboose> quite odd
17:45:46FromDiscord<Yardanico> well
17:45:48FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/893554302059171950/unknown.png
17:45:52FromDiscord<cabboose> Just the int32 is odd \:/
17:45:55FromDiscord<cabboose> oh
17:45:56FromDiscord<cabboose> hahahahhaha
17:45:57FromDiscord<Yardanico> v3 with in32 is -d:release so it has runtime checks
17:46:04FromDiscord<Yardanico> v4 is uint32 with -d:danger so no runtime checks
17:46:06FromDiscord<cabboose> mylawd
17:48:36FromDiscord<Yardanico> ah wait no
17:49:28FromDiscord<Yardanico> I think it's just because uint32 doesn't have overflow checks
17:49:29FromDiscord<Yardanico> while int32 does
17:57:50FromDiscord<cabboose> huh. interesting
18:07:57FromDiscord<enthus1ast> @ceramicskate0\: you can install and import winim
18:08:28FromDiscord<enthus1ast> https://github.com/khchen/winim/blob/b7b32603f4ef672bc34405bc6200e8aab2c366b1/winim/inc/winbase.nim#L1977
18:09:16FromDiscord<enthus1ast> Then use it directly from nim
18:12:00*jjido joined #nim
18:31:23*max22- quit (Ping timeout: 246 seconds)
18:50:06Mister_Magisterpreviously i asked how u fill array with single value
18:50:15Mister_Magisterbut what if i want array of x elements with value of 1 to x
18:51:48*jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
18:52:36FromDiscord<Yardanico> you use a loop then :)
18:52:51FromDiscord<haxscramper> `for idx in 0 .. x: arr[idx] = idx`
18:52:54FromDiscord<haxscramper> you know
18:52:55FromDiscord<haxscramper> loops
18:53:28*rockcavera quit (Ping timeout: 252 seconds)
18:53:36FromDiscord<Yardanico> too hard
18:53:47Mister_Magisterye
18:53:51Mister_Magisteri used loop
18:53:53FromDiscord<Yardanico> we must create fillarraywithnumbersfrom1tox nimble package
18:54:01Mister_MagisterYardanico: hell ye
18:54:17Mister_Magisteror modify fill method to accept sequence
18:54:20*max22- joined #nim
18:54:24Mister_Magisterso you could array.fill(0..x)
18:55:29Mister_Magisteri might even do a PR
18:55:31Mister_Magisterxd
18:55:36FromDiscord<Yardanico> that's not a sequence though, it's a range
18:55:45Mister_Magisterye okay
18:55:49Mister_Magisterbut you know what i mean
18:55:57FromDiscord<Yardanico> In reply to @Mister_Magister "i might even do": you can try, but I don't think it'll really get accepted]
18:55:58FromDiscord<Yardanico> (edit) "accepted]" => "accepted"
18:56:09Mister_Magisterwhy xd
18:56:17Mister_Magisterits pretty nice idea
18:56:17FromDiscord<Yardanico> you can of course go ahead and make your better ™️ nim stdlib
18:56:19FromDiscord<Yardanico> like some people do
18:56:50Mister_Magisternaah
18:56:55FromDiscord<Yardanico> In reply to @Mister_Magister "why xd": because it can be solved with 1 or 2 lines of code
18:57:39Mister_Magisterso can entire fill function
18:57:42Mister_Magisteryet its there
18:58:43FromDiscord<Yardanico> ok, go ahead, I can't stop you from submitting a PR of course
19:22:21*smvg quit (Remote host closed the connection)
19:22:49FromDiscord<jmgomez> Hey guys, how is going? Im wondering if Nim can be used as a embedded lang inside cpp (like you would do with lua)?
19:22:57FromDiscord<Gumber> Nimscript can
19:23:19FromDiscord<Gumber> https://github.com/h0lley/embeddedNimScript
19:23:21nrds<R2D299> itHub: 7"Using NimScript as embedded scripting language, enabling hot loading"
19:23:47FromDiscord<Gumber> I guess maybe some fairly exciting news? The CEO / lead dev of The Machinery game engine shares my sentiments about Rust being a poor language for game dev
19:24:05FromDiscord<Gumber> and also I believe I planted a seed in their head today about looking at Nim as a potential language to incorporate into the machinery
19:24:30FromDiscord<Gumber> so it's an exciting topic to stay tuned about / keep an eye out for because maybe it will be a thing they decide to explore in the near future 🙂
19:25:06FromDiscord<Gumber> and thanks to @geekrelief for all the work he's doing on TM bindings and porting examples to Nim - I'm sure as more TM users are exposed to his work the Nim evangelism in that community will pay dividends in brining new attention and users to Nim
19:25:32FromDiscord<jmgomez> In reply to @Gumber "https://github.com/h0lley/embeddedNimScript": That's pretty cool. Will look into it, Im looking for a lang to integrate into UE inside a Blueprint node. Thanks!
19:25:35FromDiscord<Gumber> and also thank you for pointing out the opportunity to spread awareness / knowledge of Nim to the leaders of that community - it was a superb callout this morning
19:25:54FromDiscord<Gumber> In reply to @jmgomez "That's pretty cool. Will": I hate the use case, but no problem 😉
19:26:23FromDiscord<Yardanico> In reply to @Gumber "and also thank you": can I like, buy our machinery and explicitly say somewhere in the message "hey, I bought it because I want to use machinery with nim" so they see there's nim demand :D
19:26:26FromDiscord<Rika> Mister_Magister: `import sequtils; let a = toSeq(1..5)`?
19:26:34FromDiscord<Yardanico> @Rika that's not an array though
19:26:37FromDiscord<Yardanico> he wants to fill an array
19:26:38FromDiscord<Rika> oh did he say array
19:26:47FromDiscord<Gumber> In reply to @Yardanico "can I like,": xD not so sure about that but you could certainly buy it and have full source access to it and build things with it and Nim
19:27:07FromDiscord<Gumber> and you could also get into the machinery discord server and talk about how much you think Nim would be a good fit for it / brag about the fact that you're using it with Nim
19:27:16FromDiscord<Gumber> and I mean, at the end of the day $50 for full source code of a AAA game engine
19:27:21FromDiscord<Yardanico> well yeah, it's just that I've done almost nothing with gamedev and don't think that a 3d game engine like that would be a good thing for me to start out
19:27:27FromDiscord<Gumber> that is probably the best architected / designed game engine to hit the market in a decade
19:27:29FromDiscord<Yardanico> i hope they'll add 2D soon(ish) :D
19:27:32FromDiscord<Gumber> is a pretty effing good deal if you ask me
19:27:37FromDiscord<Gumber> I'm sure someone will build a 2d renderer in userland
19:27:43FromDiscord<Gumber> after all everything is possible with TM in userland
19:27:52FromDiscord<Gumber> given its brilliantly thought out architecture and design
19:27:52FromDiscord<Yardanico> also what's with the naming (just curious)
19:27:57FromDiscord<Yardanico> our machinery/the machinery/machinery
19:28:01FromDiscord<Yardanico> which one
19:28:04FromDiscord<Yardanico> (edit) "which one ... " added "to use"
19:28:06FromDiscord<Gumber> our machinery is the name of the company
19:28:09FromDiscord<Gumber> the machinery is the name of the game engine
19:28:12FromDiscord<Yardanico> oh
19:28:13FromDiscord<Gumber> they're all the former bitsquid guys
19:28:20FromDiscord<Yardanico> yeah i don't know them, sorry :D
19:28:23FromDiscord<Gumber> or autodesk stingray guys depending on when you became aware of their old engine
19:28:40FromDiscord<Gumber> yeah no worries! I just know about it because well, I knew about bitsquid when I started getting into game engine dev
19:28:50FromDiscord<Yardanico> but yeah, you've convinced me to buy it just as an investment
19:28:51FromDiscord<Gumber> and I built a few projects relying on their foundation lib
19:28:56FromDiscord<Gumber> I think it's totally worth it
19:29:15FromDiscord<Gumber> like if you enjoy reading C / find well written C valuable especially in the sense of seeing it in a huge project like a game engine
19:29:22FromDiscord<Gumber> then it's a no-brainer IMO
19:31:54FromDiscord<Yardanico> In reply to @Gumber "and I built a": you should work in sales :D https://media.discordapp.net/attachments/371759389889003532/893581006697807912/unknown.png
19:32:02FromDiscord<Gumber> lmao
19:32:29FromDiscord<Gumber> I've been told I can be fairly convincing from time to time, but I enjoy writing code way more than trying to sell stuff to people
19:32:33FromDiscord<Gumber> it's so much easier xD
19:46:56FromDiscord<geekrelief> sent a code paste, see https://play.nim-lang.org/#ix=3Axn
19:48:50FromDiscord<Gumber> In reply to @geekrelief "Thanks for jumping into": I'm not sure what `vcc.exe` does in relation to setting up the env... I know you normally do it by `Use Vcvarsall.bat to set a 64-bit hosted build architecture`
19:49:11FromDiscord<geekrelief> Yeah I tried running inside the developer console, but it made no difference.
19:49:41FromDiscord<Gumber> https://github.com/nim-lang/Nim/blob/8ccde68f132be4dba330eb6ec50f4679e564efac/tools/vccexe/vccexe.nim#L55-L105
19:49:48FromDiscord<Gumber> looks like there's a flag there you can pass
19:51:19FromDiscord<geekrelief> sent a code paste, see https://play.nim-lang.org/#ix=3Axo
19:52:31FromDiscord<Gumber> I'd need to see your bindings probably to understand fully what's going on
19:52:36FromDiscord<Gumber> along with the TM header you're trying to wrap
19:53:34FromDiscord<geekrelief> let me tinker around with this a little more
19:53:38FromDiscord<geekrelief> thanks
19:53:41FromDiscord<Gumber> np!
20:01:27FromDiscord<geekrelief> a little progress, I think I resolved the pointer truncation issue by including `_WIN64` as a define for the generator as opposed to when compiling the dll. Not sure what's the difference in the binding output yet. Yak shaving now cause nimterop doesn't like 'tm.gcc.nim` as a filename!
20:10:29FromDiscord<geekrelief> Are dots allowed in module names? Or do they basically follow identifier rules when used as arguments to import and include?
20:10:37FromDiscord<Yardanico> they follow identifier rules
20:10:45FromDiscord<geekrelief> I see thanks!
20:10:50FromDiscord<Yardanico> because you can use modules as identifiers
20:10:59FromDiscord<Yardanico> import strutils↵↵echo strutils.strip("a b ")
20:11:23FromDiscord<geekrelief> thx for the clarification
20:42:53*kayabaNerve quit (Ping timeout: 265 seconds)
20:43:30*jjido joined #nim
20:49:48FromDiscord<dom96> anyone have any strong feelings about choosenim losing support for tar.xz?
20:50:31*pch__ is now known as kinkinkijkin
20:51:54*Vladar quit (Quit: Leaving)
20:56:48*jjido quit (Quit: My MacBook Air has gone to sleep. ZZZzzz…)
21:00:57FromDiscord<leorize> nightlies produce tar.xz
21:04:35FromDiscord<treeform> In reply to @dom96 "anyone have any strong": no
21:06:30FromDiscord<acek7> @treeform are you the heaviest nim user?
21:08:09FromDiscord<Yardanico> the heaviest nim user are status probably
21:08:18FromDiscord<dom96> In reply to @leorize "nightlies produce tar.xz": really? https://api.github.com/repos/nim-lang/nightlies/tarball/latest-version-1-6 for example gives a tar.gz
21:08:45FromDiscord<dom96> In reply to @acek7 "<@!107140179025735680> are you the": how do you define "heaviest"?
21:08:51FromDiscord<Gumber> the one that weighs the most
21:09:02FromDiscord<Yardanico> he probably meant "biggest" :P
21:09:02FromDiscord<Gumber> fat shaming going on up in here
21:09:12FromDiscord<Yardanico> @acek7 but yeah, I'm pretty sure it's status
21:09:13FromDiscord<acek7> im not sure how to define it lol
21:09:20FromDiscord<acek7> who the heck is that
21:09:26FromDiscord<Yardanico> status.im
21:09:26FromDiscord<Gumber> status.im
21:09:28FromDiscord<Yardanico> (edit) "status.im" => "https://status.im"
21:09:30FromDiscord<Gumber> they're implementing Eth 2.0 in nim
21:09:37FromDiscord<Gumber> or the did implement it I dunno
21:09:43FromDiscord<Gumber> (edit) "the" => "they"
21:09:44FromDiscord<Yardanico> @Gumber that was meant to contain an embed but okay :P
21:09:47FromDiscord<Gumber> I know next to zero about crypto
21:09:52FromDiscord<Gumber> it wasn't me!!!!!
21:09:55FromDiscord<Yardanico> huh
21:10:00FromDiscord<Gumber> I didn't remove the embed
21:10:02FromDiscord<dom96> 👀
21:10:07FromDiscord<Yardanico> 🤔
21:10:07FromDiscord<Gumber> lol
21:10:17FromDiscord<dom96> Sorry, I hate embeds
21:10:19FromDiscord<Yardanico> yeah sure it's not a big deal
21:10:21FromDiscord<dom96> it's a natural reaction for me at this point
21:10:23FromDiscord<Gumber> man I love it when people do shitty things in shared codebases
21:10:27FromDiscord<Gumber> like add implicit logic into a db insert
21:10:31FromDiscord<acek7> what other big software is made with nim
21:10:34FromDiscord<Gumber> so it's no longer just a db insert
21:10:37FromDiscord<Gumber> games / game engines
21:10:45FromDiscord<Gumber> operating system kernels
21:10:50FromDiscord<Gumber> spaceships
21:10:51FromDiscord<dom96> In reply to @acek7 "what other big software": the nim compiler 🙂
21:10:53FromDiscord<acek7> links?
21:10:54FromDiscord<Yardanico> In reply to @acek7 "what other big software": there's a small list in https://github.com/nim-lang/Nim/wiki/Organizations-using-Nim
21:10:59FromDiscord<Yardanico> of organizations/specific software
21:11:00FromDiscord<Gumber> I dunno - you can do anything with Nim you can do with C
21:11:02FromDiscord<Yardanico> please extend it
21:11:03FromDiscord<Gumber> or assembly language
21:11:06FromDiscord<Yardanico> (edit) "please extend it ... " added "if you know anyone using nim"
21:11:33FromDiscord<Gumber> use cases are pretty much limitless
21:11:35FromDiscord<Yardanico> need to add Goodboy Galaxy there, I brought it up to exelotl, guess he didn't have time
21:11:42FromDiscord<Gumber> oh yeah - that's a good one to add
21:12:46nrds<Prestige99> I want to ask what he's using to deploy to all those platforms (I've only looked into the gba side)
21:12:53FromDiscord<acek7> wait nim can do anything C or Assembly can do?
21:13:07FromDiscord<Yardanico> obviously
21:13:14FromDiscord<Yardanico> as (almost) any other native language
21:13:20FromDiscord<dom96> so can Python, just shell out to an assembly program 😉
21:13:37FromDiscord<Yardanico> @Gumber quick question about the machinery - as I understand, everything must be a plugin, even gameplay code?
21:13:50FromDiscord<acek7> and here i was thinking nim was special haha
21:14:04FromDiscord<Gumber> In reply to @Yardanico "<@!204328759715692544> quick question about": correct
21:14:12FromDiscord<Gumber> if you want to code gameplay code
21:14:18FromDiscord<Gumber> you could also just use creation graphs
21:14:22FromDiscord<Yardanico> hm, you can compile them in statically, right?
21:14:26FromDiscord<Gumber> yup!
21:14:30FromDiscord<Yardanico> so there's a single binary without tons of .dlls
21:14:40FromDiscord<Gumber> I think if you want to hot reload you have to dyamically link for obvious reasons
21:14:45FromDiscord<Gumber> (edit) "dyamically" => "dynamically"
21:15:00FromDiscord<Gumber> but when you actually build a release version or distributable everything gets linked in statically
21:15:05FromDiscord<Gumber> very similar to how my engine works for my project
21:15:21FromDiscord<acek7> are .dlls a nuisance ?
21:15:30FromDiscord<Gumber> for distributing software yes
21:15:47FromDiscord<Gumber> when you statically link the library is included in the final executable
21:15:56FromDiscord<Elegantbeef> Jeez asking a person to step on a scale is a lot of work
21:15:57FromDiscord<Gumber> so you pay in terms of increased file size for your distribuitable
21:16:06FromDiscord<Gumber> (edit) "distribuitable" => "distributable"
21:16:25FromDiscord<Gumber> if you dyamically link you load symbols from a dynamic library at runtime
21:16:35FromDiscord<Gumber> which has a performance cost and also requires those libraries to be present on the users sytem
21:16:58FromDiscord<Gumber> and they have to be on the linker's path so that they can be found at runtime for symbol resolution
21:17:17FromDiscord<Gumber> but with dynamic loading of symbols you can achieve hot reloading
21:17:36FromDiscord<Gumber> although you still have to think about state - which is simple enough to deal with if you know what you're doing
21:17:40FromDiscord<Gumber> (edit) "although you still have to think about state ... -" added "across reloads"
21:18:17FromDiscord<Gumber> (edit) "if you dyamically link you load symbols from a dynamic library ... at" added "(or shared library - they're different names for the same thing)"
21:18:24FromDiscord<Gumber> (edit) "dyamically" => "dynamically"
21:19:43FromDiscord<Elegantbeef> Well you can do inlined asm and it compiles to C so...
21:19:55FromDiscord<ceramicskate0> got Microsoft signed only process mitigation policy working from linux compile working thanks @enthus1ast and @haxscramper
21:19:55FromDiscord<Elegantbeef> If you have a C compiler for your platform Nim can do it
21:20:11FromDiscord<Elegantbeef> I guess more C compiler and nim outputs compatible nim
21:21:28FromDiscord<ceramicskate0> (edit) removed "working"
21:21:46FromDiscord<acek7> Does a larger nim project create any additional files or is it just one.exe no matter the size?
21:22:49FromDiscord<Gumber> it depends how you structure your project
21:22:51FromDiscord<Elegantbeef> It's not that big of a deal though imo
21:22:53*pch_ joined #nim
21:23:05FromDiscord<Gumber> Nim just outputs C or C++ or JS or Obj-C
21:23:10FromDiscord<Gumber> and then invokes whatever compiler toolchain you specify
21:23:33FromDiscord<acek7> I was just curious about what it would be like building something for say iPhone or MacOS or Linux
21:23:54FromDiscord<Gumber> I mean fir macOS or Linux it's pretty straightforward
21:23:58FromDiscord<Gumber> (edit) "straightforward" => "straight forward"
21:24:03FromDiscord<Gumber> and really isn't any different than building on Windows
21:24:22FromDiscord<Gumber> you just target a different os and maybe cpu arch depending on which mac you're talking about
21:24:30FromDiscord<Gumber> or if you're on like an ARM linux laptop or something
21:24:42FromDiscord<Gumber> or RISC-V or whatever.......
21:24:54FromDiscord<Gumber> iPhone is a bit trickier but doable
21:25:03FromDiscord<Gumber> (edit) "iPhone" => "iOS"
21:25:22*kinkinkijkin quit (Ping timeout: 252 seconds)
21:25:23FromDiscord<Gumber> this is assuming you're compiling for the same operating system you're compiling on
21:25:33FromDiscord<Gumber> if you want to cross compile, you need to use a cross compile toolchain
21:25:35*smvg joined #nim
21:25:37FromDiscord<Gumber> or something like zigcc
21:25:38FromDiscord<Gumber> or docker
21:25:48FromDiscord<Gumber> or - I dunno either way, no matter what, you need to cross compile 🙂
21:25:59FromDiscord<Gumber> if you're building on a different os / cpu arch then you're targetting
21:26:06FromDiscord<Gumber> but this is true of any native software
21:26:09FromDiscord<Gumber> Nim isn't special in this regard
21:26:56FromDiscord<Gumber> well, unless you are using a language that has a LLVM based compiler backend like Rust
21:27:02FromDiscord<Gumber> but then you get to deal with extremely long compile times 🙂
21:27:14FromDiscord<Gumber> worse than C++ even
21:27:15FromDiscord<acek7> Do i still need a mac to build the iOS app
21:27:26FromDiscord<Gumber> tmk yes you need macOS hardware to target iOS
21:27:41FromDiscord<Gumber> you don't need a mac - you could use a mac mini
21:27:41FromDiscord<acek7> that still annoys me
21:27:45FromDiscord<Gumber> welcome to apple
21:27:47nrds<Prestige99> I thought there's a way to get around it
21:27:49FromDiscord<acek7> i have a mac mini
21:27:49FromDiscord<Gumber> they are the worst
21:27:54FromDiscord<Gumber> maybe there is? I dunno
21:27:56nrds<Prestige99> probably against TOS though
21:27:58FromDiscord<Elegantbeef> Yea there is no difference for the desktop OS
21:28:08FromDiscord<Elegantbeef> For mobile you have more fun and have to deal with their native build process
21:28:08FromDiscord<acek7> i got one because i was wanting to eventually build apps
21:28:11FromDiscord<Gumber> fuck apple with a big rubber dildo IMO
21:28:13nrds<Prestige99> linux ftw
21:28:17nrds<Prestige99> ^^
21:28:22FromDiscord<Gumber> I prefer Windows but that's just because I build games
21:28:26FromDiscord<Gumber> and don't have the venom for it everyone else does
21:28:28nrds<Prestige99> I've never agreed with anyone more about mac
21:28:34FromDiscord<Gumber> for work I'm on a macbook pro but not by choice
21:28:36FromDiscord<Gumber> it's just what I was given
21:29:01nrds<Prestige99> Hm yeah I will need to see if I can release executables for windows using my game engine... just using sdl so it'll be fine, I just don't know how _yet_
21:29:04FromDiscord<Gumber> if I need to do webdev at home (which if I ever do makes me want to jump off a cliff) I'll use Windows + Windows subsystem for linux
21:29:19FromDiscord<Gumber> I did it with docker before the advent of zigcc
21:29:22FromDiscord<Gumber> but now I'd just use zigcc
21:30:27FromDiscord<acek7> im a designer, id love to build games but i struggle with code
21:30:52FromDiscord<Gumber> well you can help me out with mine in a few months if you'd like
21:30:54FromDiscord<Gumber> 🙂
21:31:06FromDiscord<acek7> sure i make music too
21:31:07FromDiscord<Gumber> I'm very close to the point of needing some good game designers and artists
21:31:33FromDiscord<Gumber> and I can't pay - but I promise to distribute funds fairly once and if it makes any money. I plan on going early access on steam next spring / summer
21:31:39FromDiscord<Gumber> with some sort of playable alpha
21:31:53FromDiscord<Gumber> well I could pay some, but probably not a lot
21:32:03FromDiscord<Gumber> I have a wife and dogs to feed and a mortgage to pay xD
21:32:10FromDiscord<Gumber> maybe soon a kiddo too
21:32:16FromDiscord<treeform> In reply to @acek7 "<@!107140179025735680> are you the": I am not fat! 😜
21:32:17FromDiscord<Gumber> time will tell 🙂
21:32:19FromDiscord<Gumber> lol
21:32:35FromDiscord<Gumber> was such a good intro into this whole convo
21:32:40FromDiscord<Gumber> love it
21:32:57FromDiscord<acek7> lol also im not after money i just love making things
21:33:04FromDiscord<Gumber> my main man @KingDarBoja has also expressed interest in helping out
21:33:11FromDiscord<Gumber> we're making a networked 3d multiplayer RTS
21:33:36FromDiscord<Gumber> or I am anyway - and he's also interested in joining the effort since that's pretty much his bread and butter as far as favorite type of game to play goes
21:33:36*smvg quit (Read error: Connection reset by peer)
21:33:49FromDiscord<Gumber> mine too, along with MMOs and PvP centric role playing games
21:34:00FromDiscord<Gumber> which there are far too few of - I think I'll work on a PvP centric ARPG after this one
21:34:31FromDiscord<acek7> i need a game that teaches me nim but i dont realize im learning it
21:34:42FromDiscord<Gumber> someone should make a zachtronics game for Nim
21:34:46FromDiscord<Gumber> (edit) "someone should make a zachtronics ... game" added "style"
21:34:53FromDiscord<Gumber> I'm pissed that guy has my name and made such cool games
21:35:03nrds<Prestige99> Gumber: Anything about your project you can mention?
21:35:11FromDiscord<Gumber> not really lol - really glad they found their niche
21:35:15FromDiscord<Gumber> I mean - sure I can mention anything :)(
21:35:17FromDiscord<Gumber> (edit) ":)(" => "🙂"
21:35:18FromDiscord<Gumber> ask away
21:35:28FromDiscord<Gumber> the engine code will all be MIT FOSS
21:35:33nrds<Prestige99> Just curious about more details
21:35:35nrds<Prestige99> ohhh sweet
21:35:38FromDiscord<Gumber> gameplay code and assets will all be closed source / protected
21:35:52nrds<Prestige99> That's a good way to go
21:35:59FromDiscord<Gumber> engine is heavily parallelized - not sure exactly HOW I'm going to do that yet but I've R&D'd and prototyped a couple of solutions
21:36:01nrds<Prestige99> I'd like to see trailers etc when they're available
21:36:22FromDiscord<Gumber> as far as theme and subject matter goes - I have a few ideas but am open to suggestions
21:36:35FromDiscord<Gumber> I plan on having networked physics and destructible environments
21:36:51FromDiscord<Gumber> it will probably be windows only because cross platform floating point determinism is a effing bitch
21:36:54FromDiscord<Gumber> (edit) "a" => "an"
21:37:12nrds<Prestige99> hm that's too bad
21:37:19FromDiscord<Gumber> I guess I could also do xbox in that case but I really don't want to because who wants to play an RTS on console?
21:37:26FromDiscord<Gumber> well you could always play with wine
21:37:50nrds<Prestige99> no authoritative server?
21:37:58FromDiscord<Gumber> I made the graphics backend vulkan so it's not tied to any platform specific graphics API
21:38:01FromDiscord<Gumber> nope p2p lockstep
21:38:06nrds<Prestige99> ah, okay
21:38:11FromDiscord<Gumber> for now only available on steam but I could add more gamer services and sell on epic too
21:38:13FromDiscord<Gumber> maybe gog
21:38:18FromDiscord<Gumber> haven't checked out if they have a gamer service yet
21:38:24FromDiscord<Gumber> but it will have leaderboards, matchmaking, ELO, etc....
21:38:41FromDiscord<Gumber> theme wise - I'm either going to do something WWII or alt history US civil war
21:39:01nrds<Prestige99> I thought you could get around the floating point issue with a lockstep system
21:39:05FromDiscord<Gumber> the second idea is my favorite but I haven't fully thought through how I'd do game mechanics with that idea yet
21:39:11FromDiscord<Gumber> nah
21:39:17FromDiscord<Gumber> lockstep really solves bandwidth issues
21:39:28FromDiscord<Gumber> doesn't handle floating point determinism
21:39:35FromDiscord<Gumber> you can get around floating point determinism using a master server architcture
21:39:57nrds<Prestige99> That's a shame tbh
21:40:01FromDiscord<Gumber> p2p lockstep really just makes it so you don't have to send down a fresh copy of the game state every tick
21:40:05nrds<Prestige99> Would love to see it on Linux as well
21:40:15FromDiscord<Gumber> so you can have hundreds of thousands of units in a game at once
21:40:28FromDiscord<Gumber> of course the planetary annihilation guys figured this out to some degree
21:41:40FromDiscord<Gumber> https://www.forrestthewoods.com/blog/tech_of_planetary_annihilation_chrono_cam/
21:42:17FromDiscord<Gumber> but as far as having enough detail to implement my own version of it, I don't think the blog article is that enlightening
21:42:22FromDiscord<Gumber> and also I don't want to have to pay for servers
21:42:29FromDiscord<Gumber> when I can just fork over $100 to steam and be done with it
21:42:48FromDiscord<Gumber> but yeah - wine is always an option for linux users who want to play
21:44:05*smvg joined #nim
21:44:52FromDiscord<Gumber> I could do a fixed math implementation but I don't think it's worth the perf penalty
21:44:59smvghas anyone done benchmarks comparing cython against nim ? I'm curious to see the performance differences
21:45:02FromDiscord<Gumber> I want to be able to have massive battles in whatever game I create
21:45:10FromDiscord<Gumber> Nim is not Python
21:45:15FromDiscord<Gumber> and doesn't strive to be
21:45:31nrds<Prestige99> just performance though?
21:45:39FromDiscord<Gumber> I just don't think it's a worthwhile benchmark
21:45:44nrds<Prestige99> yeah
21:45:48FromDiscord<Gumber> and I'm pretty sure Nim will beat it
21:45:57FromDiscord<Gumber> or can beat it rather
21:46:01FromDiscord<Gumber> benchmarks are stupid in that way
21:46:19nrds<Prestige99> I think with lockstep and fixed math, it could still get out of sync maybe
21:46:22FromDiscord<Gumber> Nim has a really really really really smart design
21:46:32FromDiscord<Gumber> yeah I mean there's always the chance for things to get out of sync
21:46:41FromDiscord<Gumber> but you can check for that and blow away game state in that occurance
21:46:48FromDiscord<Gumber> most RTS games have a system in place like this
21:47:12FromDiscord<Gumber> see Andreas was extremely smart to make Nim produce C
21:47:27FromDiscord<Gumber> you have a language and compiler that has been around and worked on and optimized for decades
21:47:36FromDiscord<Gumber> it's the grandpa of modern programming languages
21:47:52FromDiscord<Gumber> by modern I mean like post-punch cards
21:48:10FromDiscord<Gumber> so Nim doesn't have to fill that gap
21:48:26FromDiscord<Gumber> it can just produce correct portable C and then take advantage of all that existing compiler infrastructure / tooling
21:48:28pch_most modern languages are written in C
21:48:32*pch_ is now known as kinkinkijkin
21:48:37FromDiscord<Gumber> Nim isn't written in C
21:48:40FromDiscord<Gumber> sure it has compiler magic implemented in C
21:48:45FromDiscord<Gumber> but Nim is self hosted
21:48:47FromDiscord<Gumber> and boostrapped
21:49:11kinkinkijkinnim itself is written in C, the STD is written in nim
21:49:11FromDiscord<Gumber> the Nim compiler is written in Nim
21:49:14kinkinkijkinthis is extremely common
21:49:19FromDiscord<Gumber> uhhhh incorrect
21:49:35FromDiscord<Gumber> the Nim compiler is 100% Nim
21:49:41FromDiscord<Gumber> minus magic
21:49:44kinkinkijkinuhhhh correct, the definition of the grammar is entirely in C
21:49:58FromDiscord<Gumber> we're debating semantics at this point
21:50:01kinkinkijkinthe compiler transpiles the nim to C then sends it to GCC
21:50:07kinkinkijkinno we're not
21:50:09FromDiscord<Gumber> it doesn't transpile first of all
21:50:12kinkinkijkinit doesx
21:50:12FromDiscord<Gumber> it compiles to C
21:50:18FromDiscord<Gumber> okay keep spreading FUD about stuff you dont' know about
21:50:23FromDiscord<Gumber> what's the idfference between transpilation and compilation?
21:50:36FromDiscord<Gumber> because Nim doesn't transpile to C
21:50:44FromDiscord<Gumber> it's a differnt level of abstraction
21:50:47kinkinkijkinI've been using nim for 4 years, nim transpiles to various languages (C by default)
21:50:47FromDiscord<Gumber> it compiles to C
21:50:52FromDiscord<Gumber> I've bene using Nim for longer than you bud
21:50:57FromDiscord<Gumber> (edit) "bene" => "been"
21:51:05kinkinkijkink
21:51:06FromDiscord<Gumber> it doesn't transpile to C
21:51:12FromDiscord<Gumber> if you want to debate me you can but you're wrong
21:51:16FromDiscord<Gumber> and the inventor of the language will agree with me
21:51:25kinkinkijkinuh
21:51:46FromDiscord<Gumber> Nim was orignally written in object pascal btw
21:51:56FromDiscord<Gumber> so keep getting your facts wrong
21:52:00kinkinkijkinnim compiler generates C files and sends them to GCC or Clang to compile them
21:52:05kinkinkijkinthis is what transpilation is
21:52:08FromDiscord<Gumber> no it's not
21:52:10FromDiscord<Elegantbeef> It's a pointless distinction eitherway
21:52:15FromDiscord<enthus1ast> in the end, this ^ is a useless debate ;)
21:52:19kinkinkijkinit is
21:52:19FromDiscord<Gumber> you don't know the difference between transpilation and compilation
21:52:25FromDiscord<Gumber> but that's fine
21:52:36FromDiscord<Gumber> as I said we're debating semantics
21:52:40FromDiscord<Gumber> and I don't want to do so anymore
21:52:50kinkinkijkinthen gumber, please, if you're so infinitely much smarter than some random person you know nothing about
21:52:52kinkinkijkinexplain transpilation.
21:52:56FromDiscord<Gumber> if you want to go microbenchmark cython vs Nim go ahead - I see little point in the experiment o reffort
21:53:00FromDiscord<Gumber> I never said I was smarter than you
21:53:05FromDiscord<Gumber> I said I knew more about this topic than you
21:53:10FromDiscord<Gumber> don't conflate the two
21:53:26FromDiscord<Gumber> transpilation is producing or generating code at the same abstraction level as the language you are writing in
21:53:29FromDiscord<Elegantbeef> There is an important point of abstraction level
21:53:32FromDiscord<Gumber> so Java to C# would be transpilation
21:53:35FromDiscord<Elegantbeef> But eitherway it's a stupid argument
21:53:47FromDiscord<Gumber> C is at a lower abstraction level than Nim
21:53:49FromDiscord<Gumber> thus compiliation
21:53:53FromDiscord<Gumber> like I said semantic debate
21:53:55FromDiscord<Gumber> pointless
21:54:18FromDiscord<Gumber> but a distinction nonetheless
21:54:53FromDiscord<dom96> Is GCC a transpiler because it translates C into Asm?
21:55:01FromDiscord<Gumber> yeah exactly
21:55:11FromDiscord<Gumber> thank you for the analogy dom
21:55:22kinkinkijkinit doesn't, though
21:55:36kinkinkijkincompilation is turning programming language into bytecode
21:55:41FromDiscord<Gumber> is it?
21:55:43kinkinkijkinASM to bytecode is compilation
21:55:52FromDiscord<Gumber> I'd say you're incorrect
21:56:03kinkinkijkinbecause machine bytecode is nowhere near 1:1 to ASM
21:56:09FromDiscord<dom96> Asm is just a textual representation of bytecode
21:57:01FromDiscord<enthus1ast> this might also not be correct, because eg a move to a mem address and a move to a register produce different opcodes
21:57:06kinkinkijkinnot really, most ASMs are written perfectly sequentially while bytecode actually run is not actually perfectly sequential
21:57:14FromDiscord<enthus1ast> so it also depends on the context
21:57:15FromDiscord<Gumber> and bytecode is something that can be interpreted by a bytecode interpreter
21:57:23FromDiscord<Gumber> ASM is the human readable form of a machine's native language
21:57:27FromDiscord<Gumber> they are different
21:57:44kinkinkijkingod can you please stop condescending for no goddamn reason
21:57:52kinkinkijkinim not even a single-native english speaker
21:57:52FromDiscord<Gumber> that's the way you're taking it
21:58:06FromDiscord<Gumber> I corrected you and you got offended
21:58:11FromDiscord<Gumber> that's not my problem
21:58:36FromDiscord<Gumber> you also tried to flex your nim experience on me
21:58:37kinkinkijkinstop making incorrect corrections based on semantics you think you know perfectly and unassailably
21:58:39FromDiscord<Gumber> when you know nothing about me or who I am
21:59:02FromDiscord<Gumber> I know I'm correct in this situation and if you want to debate it with the language author go right ahead
21:59:11FromDiscord<dom96> It’s unfortunately easy to see condescension when talking like this. I’m personally not trying to be condescending, sorry if I’m coming across that way.
21:59:18FromDiscord<Gumber> his name is andreas rumph and you can probably find him active in #internals
21:59:34FromDiscord<Gumber> if you weren't aware of his handle or his name
21:59:35FromDiscord<Gumber> it's araq
21:59:42FromDiscord<Gumber> I'm done with this convo
21:59:47FromDiscord<Gumber> it's not productive or fun
22:00:08kinkinkijkinthank you for telling me the creator of the language i use primarily
22:00:19FromDiscord<Gumber> again I don't know what you know about the langauge or its inventor
22:00:23kinkinkijkinnext i need you to tell me what a "proc" is
22:00:29FromDiscord<dom96> Do have a look at the wiki page for ‘transpilation’
22:00:32FromDiscord<Gumber> well I assume you know that if you've been using Nim for four years
22:00:39FromDiscord<dom96> It supports the abstraction levels definition
22:00:47FromDiscord<Gumber> not everyone is familiar with the language's history
22:00:53FromDiscord<Gumber> or its creator
22:01:08FromDiscord<Gumber> again you're interpreting my words in a certain way and I cannot help that
22:01:49kinkinkijkinokay, so for context gumber, I'm a tooling developer who works mostly on porting and compilers
22:01:55FromDiscord<Gumber> gotcha
22:02:04*KainAlive joined #nim
22:02:22FromDiscord<Gumber> I'm a game engine developer
22:02:33FromDiscord<Gumber> I joined the community about six years ago at this point
22:02:40FromDiscord<Gumber> late 2014
22:02:42kinkinkijkinand I've been developing since I got my first computer when I was 10, so it's safe to assume I have understanding of concepts
22:02:42*KainAlive quit (Client Quit)
22:02:46FromDiscord<Gumber> or early 2015
22:02:54FromDiscord<Gumber> well I don't know how old you are
22:02:56kinkinkijkinI also speak 2 languages natively and develop in both of them
22:02:57FromDiscord<Gumber> you might be 12
22:03:09kinkinkijkinso words get mixed up
22:03:13FromDiscord<Gumber> that's okay I understand
22:03:19FromDiscord<Gumber> I'm slightly autistic and have bad ADHD
22:03:37FromDiscord<Gumber> however I am a native English speaker and I code in a large variety of languages and paradigms
22:03:39kinkinkijkinbut condescending over concepts and turning things into semantic debates is something that crosses language barriers
22:03:49FromDiscord<Gumber> I wasn't being condescending
22:03:54FromDiscord<Gumber> that's how you interpreted my words
22:04:06FromDiscord<Gumber> I was trying to explain a nuance to you
22:04:34FromDiscord<Gumber> and stop a misnomer from being accepted as truth, or what I perceived to be a misnomer
22:04:42FromDiscord<Gumber> and I think others would agree in this community, was a misnomer
22:04:55FromDiscord<Gumber> if we can just leave it at that - I'm fine with that outcome from this exchange
22:05:03kinkinkijkinnim, in its current "canonical" grammar definition, is written in C, though has translated grammars in C++, JS, and some others I don't remember right now
22:05:10FromDiscord<Gumber> and I won't walk away with any resentment or hard feelings if you don't as well
22:05:30kinkinkijkinthe nim compiler creates translated grammars for the backend language compiler in use
22:05:59kinkinkijkinthere's a lot of names for this but transpilation is one used in multiple communities to refer to this form of compilation
22:05:59FromDiscord<Gumber> I don't disagree with these statements
22:06:14FromDiscord<Gumber> in this community that has not historically been the case
22:06:25FromDiscord<Gumber> and that distinction was made very very often by Araq
22:06:32FromDiscord<Gumber> whenever this subject was brought up
22:06:34kinkinkijkinbecause transpilation is also used as a "bad" word to some people so people try to avoid it here
22:07:04FromDiscord<dom96> Yes. Typically the word transpilation is meant to diminish Nim.
22:07:08kinkinkijkiniirc most of the language's developers are in agreement that they see it as a bad word
22:07:16FromDiscord<dom96> But the fact remains: the WP definition disagrees.
22:07:54FromDiscord<dom96> The only thing we can argue about is whether C and Nim have the same “abstraction level “
22:08:14FromDiscord<dom96> I would say Nim is distinctly more high level than C
22:08:29kinkinkijkintechnically what nim does is actually called "through-compilation" but in the communities ive been brought up in, that's grouped in under transpilation
22:08:43FromDiscord<dom96> Thus by WPs definition, Nim compiles to C
22:09:40FromDiscord<zentoad> Is this the chat to ask for help?
22:09:43FromDiscord<Gumber> yes
22:09:46kinkinkijkinyes please do
22:09:51FromDiscord<Gumber> just slightly been derailed but our convo
22:10:12FromDiscord<Gumber> (edit) "but" => "byu"
22:10:12*KainAlive joined #nim
22:10:19FromDiscord<zentoad> When I get errors like this trying to call some C++ code:
22:10:20FromDiscord<Gumber> (edit) "byu" => "by"
22:10:22FromDiscord<enthus1ast> (it would be nice if the offtopic room is bridged to matrix btw ;) )
22:10:30FromDiscord<zentoad> sent a code paste, see https://play.nim-lang.org/#ix=3AxT
22:10:37FromDiscord<zentoad> I have no idea how to debug this
22:10:42FromDiscord<Gumber> can we see your Nim code?
22:11:01FromDiscord<Gumber> and how you're compiling it?
22:11:04FromDiscord<zentoad> sent a code paste, see https://play.nim-lang.org/#ix=3AxU
22:11:19FromDiscord<zentoad> I took everything out until I get this error, and I know the code isn't right, but
22:11:27FromDiscord<Gumber> how are you linking to G2lib?
22:11:33FromDiscord<enthus1ast> you must link the library youre useing
22:11:55FromDiscord<Gumber> well I'm not even sure that's the issue honestly
22:12:01FromDiscord<zentoad> My questions is, I guess, is there any way to know that's the problem from the errors
22:12:02FromDiscord<dom96> In reply to @enthus1ast "(it would be nice": It is bridged to matrix
22:12:03FromDiscord<Gumber> `stdlib_ioDatInit000` looks like some Nim symbol
22:12:09FromDiscord<Gumber> if you know C++ there is
22:12:23FromDiscord<enthus1ast> OR make sure the lib exports this symbol
22:12:41FromDiscord<Gumber> it's to difficult to debug your issue without knowing how you're compiling your program
22:12:41FromDiscord<zentoad> None of those calls (like the ioDatInit) are part of the C++ library I have to use
22:12:48FromDiscord<zentoad> ok
22:12:50FromDiscord<Gumber> like I said it looks like a Nim symbol
22:12:57FromDiscord<Gumber> also what operating system are you on?
22:13:04FromDiscord<Gumber> and what version of Nim are you using?
22:13:04FromDiscord<zentoad> Windows 10
22:13:20FromDiscord<zentoad> Nim Compiler Version 1.4.8 [Windows: amd64]
22:13:24FromDiscord<Gumber> okay
22:13:33FromDiscord<Gumber> and what does the invocation of `nim.exe look like?`
22:13:37FromDiscord<Gumber> (edit) "`nim.exe" => "`nim.exe`" | "like?`" => "like?"
22:14:03FromDiscord<zentoad> is there a more verbose flag to use or some other way for digging in?
22:14:08FromDiscord<enthus1ast> and gcc version?
22:14:15FromDiscord<enthus1ast> (or c compiler version)
22:14:27FromDiscord<Gumber> In reply to @zentoad "is there a more": how are you compiling your code???
22:14:41FromDiscord<zentoad> gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
22:14:41FromDiscord<Gumber> give me the command you're issuing to the command line
22:14:49FromDiscord<zentoad> sorry:
22:14:50FromDiscord<Gumber> `nim cpp ???`
22:14:59FromDiscord<zentoad> just nim cpp file.nim
22:15:01FromDiscord<zentoad> that's it
22:15:04FromDiscord<enthus1ast> this one @dom96 https://matrix.to/#/#nim-offtopic:matrix.org ?
22:15:06FromDiscord<zentoad> sorry I'm new to this
22:15:15FromDiscord<Gumber> no worries
22:15:19FromDiscord<Gumber> and no need to apologize
22:15:24FromDiscord<dom96> In reply to @enthus1ast "this one <@132595483838251008> https://matrix.to/#/": I believe so
22:15:35FromDiscord<Gumber> okay first of all you're not linking at all to your library as enthus1ast pointed out
22:15:38FromDiscord<Gumber> so that's one problem
22:15:51FromDiscord<zentoad> what is the best way to link those libraries?
22:15:58FromDiscord<Gumber> another problem appears to be that Nim's runtime isn't being linked correctly
22:16:11FromDiscord<Gumber> well you need to determine whether you want to statically or dynamically link your library
22:16:17FromDiscord<enthus1ast> i just pinged you in this channel. The channel is empty↵(@dom96)
22:16:24FromDiscord<zentoad> In reply to @Gumber "another problem appears to": Ahhh I don't know what that means, so it's probably wrong
22:16:32FromDiscord<Gumber> how'd you install Nim?
22:17:00FromDiscord<enthus1ast> could also be an ancient c compiler
22:17:05FromDiscord<Gumber> could be
22:17:10FromDiscord<Gumber> well cpp compiler but
22:17:23FromDiscord<Gumber> `gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0`
22:18:05FromDiscord<Gumber> @zentoad did you use choosenim and run `finish.exe`?
22:18:09FromDiscord<Gumber> or sorry I mean download Nim
22:18:13FromDiscord<Gumber> and run `finish.exe`?
22:18:21FromDiscord<Gumber> or did you use choosenim or ???
22:18:32FromDiscord<zentoad> I downloaded and did finish.exe
22:18:42FromDiscord<Gumber> where is your Nim installation located?
22:18:52FromDiscord<Gumber> on your machine?
22:19:13FromDiscord<zentoad> E:\nim-1.4.8_x64\nim-1.4.8
22:19:16FromDiscord<Gumber> I doubt this is causing the issue but...
22:19:17FromDiscord<Gumber> okay
22:19:39FromDiscord<Gumber> is Nim's `bin` folder in your system path?
22:19:56FromDiscord<zentoad> yes
22:20:09FromDiscord<Gumber> do me a favor...
22:20:31FromDiscord<Gumber> try running - `nim --cc:vcc -r file.nim`
22:20:38FromDiscord<Gumber> and tell me what it outputs
22:20:39FromDiscord<zentoad> ok
22:21:10FromDiscord<Gumber> sorry
22:21:34FromDiscord<Gumber> nim --cc:vcc cpp -r file.nim
22:22:01FromDiscord<zentoad> ohhhh. That worked?
22:22:06FromDiscord<zentoad> huh
22:22:20FromDiscord<Gumber> okay so mingw is the issue
22:22:29FromDiscord<Gumber> something is wrong with your mingw setulp
22:22:31FromDiscord<Gumber> (edit) "setulp" => "setup"
22:22:38FromDiscord<zentoad> man - this mingw/vs is driving me nuts
22:22:41FromDiscord<geekrelief> In reply to @geekrelief "a little progress, I": @Gumber I was mistaken. The warning about the pointer truncation is still there. I'm not sure what's referencing `basetsd.h` I looked all over the generated C and in the nim source.
22:22:43FromDiscord<leorize> have you tried to extract that archive?↵(@dom96)
22:22:44FromDiscord<Gumber> do you have multiple mingw installations or cygwin or something installed?
22:23:10FromDiscord<Gumber> In reply to @geekrelief "<@!204328759715692544> I was mistaken.": hmmmm - can you share your bindings and tell me what header you're trying to wrap?
22:23:25FromDiscord<zentoad> I do. Ruby put on somewhere, nim did too, and I've got another mingw installed
22:23:28FromDiscord<geekrelief> Yeah, I'll put it up.
22:23:29FromDiscord<Gumber> that's probably your issue
22:23:38FromDiscord<leorize> if you look here\: https://github.com/nim-lang/nightlies/releases/tag/latest-version-1-6 you will see that binary artifacts for \nix are `.tar.xz`
22:23:49FromDiscord<Gumber> I'm guessing the wrong mingw is getting invoked
22:24:40FromDiscord<zentoad> hmm, ok
22:24:40FromDiscord<enthus1ast> gcc --version
22:25:01*KainAlive quit (Quit: Quit)
22:25:03FromDiscord<zentoad> gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
22:25:13FromDiscord<zentoad> λ which gcc↵/c/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/gcc
22:25:28FromDiscord<zentoad> but I imagine this isn't what my nim install is using
22:25:33FromDiscord<zentoad> I actually don't know
22:25:49FromDiscord<enthus1ast> GCC 8.1↵May 2, 2018
22:25:58FromDiscord<enthus1ast> yeah try to update this one \:)
22:26:09*smvg quit (Quit: Leaving...)
22:26:12FromDiscord<zentoad> OK
22:26:25FromDiscord<zentoad> I'll go mess with all this and see what happens
22:26:29FromDiscord<enthus1ast> mine is ↵gcc (Rev2, Built by MSYS2 project) 10.1.0
22:26:33FromDiscord<zentoad> Thank you guys/girls for the help
22:28:56FromDiscord<zentoad> Oh, how is the best way to set the path: -I./include and libraries: opengl.lib
22:31:05FromDiscord<dom96> In reply to @leorize "if you look here\:": 😢
22:32:23FromDiscord<Gumber> In reply to @zentoad "Oh, how is the": I gotta finish up some work but I can help you with this in a few if you're still around
22:33:44FromDiscord<enthus1ast> you could put this in a youFilename.nims file↵(@zentoad)
22:34:29FromDiscord<enthus1ast> https://nim-lang.org/docs/nims.html
22:34:54FromDiscord<enthus1ast> this is evaluated every time you build your application
22:35:11*greaser|q quit (Changing host)
22:35:11*greaser|q joined #nim
22:35:12FromDiscord<enthus1ast> then use `switch`
22:35:13*greaser|q is now known as GreaseMonkey
22:35:30FromDiscord<enthus1ast> or put it in a nimble task
22:37:44*kayabaNerve joined #nim
22:40:47FromDiscord<dom96> So do I fight nimterop/nimarchive or implement tar.xz support in untar
22:41:32FromDiscord<Gumber> @zentoad yeah pretty what enthus1ast said: `--passC: "-I /your/include/dir/here"` or you can stick it in a nim.cfg file or config.nims file
22:42:08FromDiscord<Gumber> you shouldn't need to touch opengl.lib - you just need to make sure it's somewhere the linker can find it which it should be able to without any effort on your part
22:42:37FromDiscord<Gumber> make sure you read Nim's opengl docs if you're using Nim's opengl library
22:43:09FromDiscord<Gumber> sent a code paste, see https://play.nim-lang.org/#ix=3AxZ
22:43:17*Gustavo6046 quit (Remote host closed the connection)
22:43:23FromDiscord<enthus1ast> ok looking at the nim discord, there is a lot more going on, in terms of rooms etc
22:43:36*Gustavo6046 joined #nim
22:43:47FromDiscord<enthus1ast> i think this could all be done with the new matrix spaces
22:43:53FromDiscord<Gumber> isn't it already?
22:43:59FromDiscord<Gumber> I just upgraded matrix today and got the spaces thing
22:44:05FromDiscord<Gumber> and saw all of the community rooms
22:44:13FromDiscord<Gumber> I think the only thing that won't translate exactly is threads
22:44:16FromDiscord<enthus1ast> yes?↵(@Gumber)
22:44:17FromDiscord<Gumber> but I'm not sure about that either
22:44:32FromDiscord<enthus1ast> mhh i think i must upgrade my homeserver
22:44:34FromDiscord<Elegantbeef> Not that this community uses threads
22:44:36FromDiscord<Gumber> https://media.discordapp.net/attachments/371759389889003532/893629498707279932/unknown.png
22:44:48FromDiscord<Elegantbeef> I hit the same issue with element's spaces being hidden in a beta flag
22:44:59FromDiscord<Gumber> yup
22:45:06FromDiscord<Gumber> had to enable it / opt-in to it
22:45:11FromDiscord<dom96> we also have a space on Matrix https://matrix.to/#/#nim:envs.net
22:45:50FromDiscord<enthus1ast> ok then this is an issue on my part
22:46:23FromDiscord<Elegantbeef> Indeed
22:46:33FromDiscord<Elegantbeef> Need more mods from matrix though 😀
22:48:52*kayabaNerve quit (Ping timeout: 252 seconds)
22:55:35FromDiscord<fenrave> bit new to nim, is there any way of creating separate blocks of code without necessarily making a new function or macro?
22:56:02FromDiscord<fenrave> mostly just to indent sections of code to make them easier to read and to collapse them when i don't need to read them
22:56:11FromDiscord<Elegantbeef> `block`
22:56:33FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3Ay2
22:56:34FromDiscord<fenrave> ah
22:56:51FromDiscord<Elegantbeef> You can also just make a template
22:57:15FromDiscord<fenrave> yeah i could but its just for indenting properties after making an object
22:57:38FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=3Ay3
22:57:47FromDiscord<enthus1ast> normally when i do a block for "better visuals" it could be a proc, and it mostly ends this way
22:58:01FromDiscord<geekrelief> Hey @Gumber Here's my version of nimterop https://github.com/geekrelief/nimterop/tree/define and the binding generator https://github.com/geekrelief/tm-nim Clone them at the same level, then in tm-nim modify tm_gen.nim's `tm_nim_dir`. Then build with `nim c tm_gen.nim` It should spit out a bunch of warnings, but it'll generate `tm.nim` which compiles fine with `nim c minimal.nim`.
22:58:04FromDiscord<enthus1ast> func/proc
22:59:02FromDiscord<fenrave> does the bridge pass images
22:59:13FromDiscord<Elegantbeef> Yes
22:59:28FromDiscord<Elegantbeef> Though irc users get links cause images dont go into text well 😛
22:59:28FromDiscord<geekrelief> In reply to @geekrelief "Hey <@!204328759715692544> Here's my": @Gumber Going to grab something to eat. Let me know if you have any issues. Thanks!
22:59:40FromDiscord<Elegantbeef> Matrix users get embeds assuming they're on gui client
23:00:04FromDiscord<Elegantbeef> Guess the same applies to irc
23:00:24FromDiscord<fenrave> would be cool if termical clients automatically converted them to ascii characters
23:00:44FromDiscord<Elegantbeef> Lol useless but cool indeed
23:02:51FromDiscord<dom96> sure would be nice if there was a WinAPI function for extracting a zip file
23:04:17FromDiscord<enthus1ast> zippy can read zip files
23:06:35FromDiscord<fenrave> https://media.discordapp.net/attachments/371759389889003532/893635030360948776/unknown.png
23:06:44FromDiscord<fenrave> mostly so i can just hide hideous blocks like this https://media.discordapp.net/attachments/371759389889003532/893635069762240542/unknown.png
23:06:57FromDiscord<Gumber> In reply to @geekrelief "<@!204328759715692544> Going to grab": going to take a break for a bit myself because I've been at it all day, but I will take a look for you as soon as I am back 🙂
23:07:23FromDiscord<geekrelief> In reply to @Gumber "going to take a": Thanks, no rush. I'll keep working on this.
23:07:38FromDiscord<Gumber> I shouldn't be too long, prob back in an hour or so
23:08:25FromDiscord<Gumber> In reply to @fenrave "": you can actually use `block`s to avoid early returns, etc...
23:08:33FromDiscord<dom96> In reply to @enthus1ast "zippy can read zip": wow a pure Nim library, amazing
23:08:35FromDiscord<Gumber> I do this quite often in my code
23:09:01FromDiscord<fenrave> i'll remember that one, i had a problem with that when i was just messing around with nim a bit like 6 months ago
23:09:08FromDiscord<Gumber> I can show you an example
23:09:11FromDiscord<fenrave> ok
23:09:30FromDiscord<Gumber> keep in mind, I don't use exceptions
23:10:02FromDiscord<Gumber> sent a code paste, see https://paste.rs/0wK
23:10:10FromDiscord<Gumber> here is a simple example - but you can of course nest and name blocks and then break out of a named block
23:32:29*max22- quit (Remote host closed the connection)
23:46:59FromDiscord<dom96> heh, leave it to the Nim archives to find an edge case immediately https://github.com/guzba/zippy/issues/29
23:52:03FromDiscord<enthus1ast> \:)