01:19:22 | FromDiscord | <gogolxdong666> Is `=destory` enough to get resource released automatically with arc/orc? |
01:19:45 | FromDiscord | <Elegantbeef> If you use it properly yes |
02:35:08 | * | lucasta quit (Remote host closed the connection) |
02:39:41 | FromDiscord | <jviega> A big problem w/ nim is that it dynamically loads crap even if you statically link it :). We ended up doing a ton of hackery to do what I would call just-in-time shared objects. |
02:40:23 | FromDiscord | <Elegantbeef> Do you have an example of this, I'm curious? |
03:56:44 | * | antranigv quit (Quit: ZNC 1.8.2 - https://znc.in) |
03:57:04 | * | antranigv joined #nim |
04:23:50 | FromDiscord | <demotomohiro> In reply to @jviega "A big problem w/": On windows, there are 2 kind of .lib file. One for linking dll and another is a static link library.↵You need to make sure all linked libraries are static link library '.lib' file. |
04:34:20 | * | azimut joined #nim |
05:01:32 | FromDiscord | <spotlightkid> .lib files can also be import libraries, which are used as an intermediary when linking DLLs. |
05:07:48 | FromDiscord | <spotlightkid> Uh, I guess that's what you already said. Disregard me. |
06:52:34 | * | ntat joined #nim |
07:02:02 | FromDiscord | <Prestige> To and bits, do you need to import std/bitops and use bitand? Same with bitor, etc |
07:04:01 | FromDiscord | <odexine> no |
07:04:04 | FromDiscord | <Prestige> good ty |
07:04:06 | FromDiscord | <odexine> you can use `and` and `or` |
07:04:11 | FromDiscord | <odexine> theyre overloaded for integers |
07:21:11 | * | xet7 quit (Remote host closed the connection) |
08:46:24 | * | blackbeard420_ joined #nim |
08:46:32 | * | antranigv_ joined #nim |
08:46:36 | * | dza3 joined #nim |
08:48:16 | * | MightyJoe joined #nim |
08:49:01 | * | lumidify_ joined #nim |
08:53:29 | * | antranigv quit (*.net *.split) |
08:53:29 | * | lumidify quit (*.net *.split) |
08:53:29 | * | blackbeard420 quit (*.net *.split) |
08:53:29 | * | cyraxjoe quit (*.net *.split) |
08:53:30 | * | dza quit (*.net *.split) |
08:53:32 | * | dza3 is now known as dza |
09:53:01 | FromDiscord | <whoman0385> sent a code paste, see https://play.nim-lang.org/#ix=4AIJ |
09:53:11 | FromDiscord | <whoman0385> (edit) "https://play.nim-lang.org/#ix=4AIJ" => "https://play.nim-lang.org/#ix=4AIK" |
09:54:08 | * | antranigv_ is now known as antranigv |
10:10:13 | FromDiscord | <griffith1deadly> sent a code paste, see https://play.nim-lang.org/#ix=4AIO |
10:11:04 | FromDiscord | <whoman0385> it says `arguments can only be given if the '--run' option is selected` |
10:13:52 | FromDiscord | <griffith1deadly> oh i forgot -- before passL:-static |
10:14:19 | FromDiscord | <punchcake> In reply to @griffith1deadly "just identical code in": literally java and kotlin have so little differences in terms of syntax |
10:14:41 | FromDiscord | <griffith1deadly> kotlin more confortable |
10:14:52 | FromDiscord | <punchcake> then you havent wrote much kotlin |
10:15:01 | FromDiscord | <punchcake> its 98% the same as java |
10:15:08 | FromDiscord | <punchcake> it doesnt save much writing |
10:15:17 | FromDiscord | <punchcake> at this point idk why it exists |
10:16:47 | FromDiscord | <griffith1deadly> kotlin has a lot of useful operators built in, as well as its own std, which in many ways has everything that java lacks. for example, you can iterate String as string[index], as well as the ?: operator, purely as an example. |
10:18:11 | FromDiscord | <whoman0385> sent a code paste, see https://play.nim-lang.org/#ix=4AIP |
10:19:44 | FromDiscord | <griffith1deadly> in my case it's works good |
10:20:52 | FromDiscord | <spotlightkid> Probably their antivirus software has quarantined it.↵(@whoman0385) |
10:21:12 | FromDiscord | <whoman0385> ohhh alr |
10:21:51 | FromDiscord | <punchcake> In reply to @griffith1deadly "kotlin has a lot": in java you can too |
10:21:58 | FromDiscord | <whoman0385> they already have it off |
10:21:59 | FromDiscord | <punchcake> you just have to convert it into a char array |
10:22:24 | FromDiscord | <punchcake> In reply to @spotlightkid "Probably their antivirus software": damn looks like nim has been used for evil |
10:24:15 | FromDiscord | <griffith1deadly> In reply to @punchcake "in java you can": kotlin also have coroutines.↵i don't know, maybe you don't like it, or maybe you're just judging by bad experience, but in my case, switching to kotlin reduced the amount of code by 30%~, and made it much faster to write. i've been writing in Java for 2 years, in Kotlin for 1 year. |
10:24:30 | FromDiscord | <punchcake> @whoman0385 if this still persists you can do what i did, email every anti virus company that flags your app and send them your binary for analysis, btw dont strip symbols so they can actually see whats going on faster |
10:24:35 | FromDiscord | <punchcake> they will whitelist everything |
10:25:32 | FromDiscord | <punchcake> In reply to @griffith1deadly "kotlin also have coroutines.": i dont like kotlin because i wait 10 mins to build a trivial project |
10:25:46 | FromDiscord | <punchcake> man in 10 mins i can build wxwidgets from source |
10:26:44 | FromDiscord | <griffith1deadly> in Java, i could build from source for 30 minutes at a time for some project's |
10:26:56 | FromDiscord | <punchcake> not rlly |
10:27:13 | FromDiscord | <punchcake> a javafx app that had 300k LOC took 4 mins to run |
10:39:34 | FromDiscord | <whoman0385> In reply to @spotlightkid "Probably their antivirus software": my antivirus is on too tho so it cant be that |
10:53:48 | FromDiscord | <punchcake> In reply to @whoman0385 "my antivirus is on": send binary |
10:53:56 | FromDiscord | <punchcake> let me analyze it |
10:55:11 | FromDiscord | <whoman0385> i sent it in dms |
10:56:13 | FromDiscord | <punchcake> its time to run untrusted bins from the internet |
10:56:16 | FromDiscord | <punchcake> what could go wrong |
10:57:18 | FromDiscord | <punchcake> what even is the program |
10:57:30 | FromDiscord | <whoman0385> it downgrades a microsoft store app |
10:57:40 | FromDiscord | <punchcake> what app |
10:57:43 | FromDiscord | <whoman0385> roblox |
10:57:54 | FromDiscord | <punchcake> damn man |
10:58:01 | FromDiscord | <punchcake> your truly making use of the power of nim |
10:58:06 | FromDiscord | <whoman0385> yeah.. |
10:58:37 | FromDiscord | <punchcake> it runs fine on my machine |
10:58:48 | FromDiscord | <whoman0385> same for me |
10:59:07 | FromDiscord | <punchcake> you could do something cheeky |
10:59:33 | FromDiscord | <punchcake> you could just make a script in C++ to disable antivirus |
10:59:57 | FromDiscord | <whoman0385> well im not really that smart |
11:00:02 | FromDiscord | <whoman0385> and again its probably not an antivirus issue |
11:00:07 | FromDiscord | <whoman0385> i have it on my self and it doesnt care |
11:00:21 | FromDiscord | <punchcake> then just send the binary to whatever antivirus company thats flagging it |
11:00:29 | FromDiscord | <punchcake> then they'll whitelist it |
11:00:37 | FromDiscord | <whoman0385> the user doesnt even have an antivirus on |
11:00:39 | FromDiscord | <whoman0385> that cant be the issue |
11:00:42 | FromDiscord | <punchcake> https://www.virustotal.com/gui/file/9dd97e9d843a824d90dafced0bf7f7609cf1a7cd82e7e8ae41f5a0c9f25ec71c?nocache=1 |
11:01:05 | FromDiscord | <punchcake> oh i have an idea |
11:01:06 | FromDiscord | <punchcake> @whoman0385 |
11:01:11 | FromDiscord | <punchcake> make the user run the exe in cmd |
11:01:17 | FromDiscord | <whoman0385> ah |
11:01:17 | FromDiscord | <whoman0385> good idea |
11:01:20 | FromDiscord | <whoman0385> ill tell them |
11:01:22 | FromDiscord | <punchcake> it will print out stacktrace if something breaks |
11:02:18 | FromDiscord | <whoman0385> yeah |
11:02:50 | FromDiscord | <punchcake> @whoman0385 does the app have any external dependancies |
11:02:56 | FromDiscord | <punchcake> it could be |
11:03:03 | FromDiscord | <whoman0385> like other nim files or?.. |
11:03:08 | FromDiscord | <punchcake> idk because i have half the universe installed on my machine |
11:03:23 | FromDiscord | <punchcake> In reply to @whoman0385 "like other nim files": packages |
11:03:53 | FromDiscord | <whoman0385> i dont think so |
11:04:06 | FromDiscord | <whoman0385> https://media.discordapp.net/attachments/371759389889003532/1130092487847981086/image.png |
11:04:19 | FromDiscord | <punchcake> hm idk then |
11:04:49 | FromDiscord | <punchcake> In reply to @punchcake "make the user run": make them do this |
11:04:56 | FromDiscord | <punchcake> other than that generate logs bro |
11:05:09 | FromDiscord | <punchcake> wtf kind of app doesnt generate logs |
11:05:15 | FromDiscord | <whoman0385> yeah |
11:05:17 | FromDiscord | <whoman0385> i asked them |
11:05:43 | FromDiscord | <whoman0385> In reply to @punchcake "wtf kind of app": my apps 👍 |
11:06:56 | FromDiscord | <punchcake> In reply to @whoman0385 "my apps 👍": better implement some common logging system between them all |
11:07:38 | FromDiscord | <punchcake> its not that hard tbh just have a proc called `log` and offload it to a threadpool |
11:08:57 | FromDiscord | <punchcake> i can make it for you too |
11:11:12 | * | Jjp137 quit (Read error: Connection reset by peer) |
11:17:16 | FromDiscord | <whoman0385> alr i found the actual error https://media.discordapp.net/attachments/371759389889003532/1130095802040197130/image.png |
11:17:21 | FromDiscord | <whoman0385> i have no idea what this is tho |
11:17:40 | FromDiscord | <punchcake> why does the app depend on libcrypto? |
11:17:48 | FromDiscord | <whoman0385> idk |
11:21:53 | FromDiscord | <whoman0385> oh wait, its because i used -d:ssl |
11:24:23 | FromDiscord | <punchcake> bruh |
11:28:42 | FromDiscord | <whoman0385> yeah i had no idea you need extra dlls for that |
11:31:27 | FromDiscord | <punchcake> sent a code paste, see https://play.nim-lang.org/#ix=4AJ3 |
11:31:34 | FromDiscord | <punchcake> now you can log freely |
11:33:39 | FromDiscord | <punchcake> https://nim-lang.org/docs/logging.html |
11:33:52 | FromDiscord | <punchcake> im stupid there was a logging module all along |
11:38:39 | FromDiscord | <whoman0385> weird, i compiled with -d:ssl and added the dlls but now its saying ssl support isnt available? |
11:38:49 | FromDiscord | <punchcake> why do you need ssl anyways |
11:39:42 | FromDiscord | <whoman0385> well i need to download the older version of roblox to downgrade it |
11:40:06 | FromDiscord | <punchcake> are you using openssl? |
11:40:38 | FromDiscord | <odexine> Nim uses open SSL for SSL support via the define flag |
11:40:54 | FromDiscord | <punchcake> https://github.com/nim-lang/Nim/issues/19099 |
11:40:57 | FromDiscord | <punchcake> read @whoman0385 |
11:40:59 | FromDiscord | <Trayambak> I never realized the server had a Matrix bridge lol |
11:46:49 | FromDiscord | <whoman0385> ive already added the dlls in a zip file with my binary |
12:32:41 | FromDiscord | <ambient3332> What's the best and most portable way to implement OpenMP style parallel for in Nim? |
12:39:40 | FromDiscord | <punchcake> https://programming-language-benchmarks.vercel.app/nim-vs-java↵\ |
12:39:51 | FromDiscord | <punchcake> bro why does java outdo nim? |
12:56:37 | FromDiscord | <intellij_gamer> In reply to @ambient3332 "What's the best and": You could use openMP https://nim-lang.org/docs/system.html#%7C%7C.i%2CS%2CT%2Cstaticstring↵Tried it once before and seems to work |
13:18:02 | FromDiscord | <punchcake> `nim c -d:danger -d:lto --passC:-march=native main.nim` ↵is this the most absolute optimization i can squeeze out of nim? |
13:20:09 | FromDiscord | <odexine> automatically? sure. manually? kinda no? |
13:20:32 | FromDiscord | <punchcake> In reply to @odexine "automatically? sure. manually? kinda": from the compiler i mean |
13:21:09 | FromDiscord | <odexine> you can try using PGO |
13:21:46 | * | Jjp137 joined #nim |
13:21:50 | FromDiscord | <punchcake> In reply to @odexine "you can try using": profile guided optimization? |
13:22:19 | FromDiscord | <odexine> yes |
13:23:15 | FromDiscord | <punchcake> In reply to @odexine "yes": i tried and everything broke |
13:23:25 | FromDiscord | <punchcake> `nim c -d:danger -d:lto --passC:-march=native --passC:-ffast-math --passC:-fprofile-generate .\bench.nim` |
13:23:39 | FromDiscord | <odexine> dont use fast math prolly? |
13:23:44 | FromDiscord | <punchcake> bet |
13:23:58 | FromDiscord | <punchcake> In reply to @odexine "dont use fast math": still didnt work |
13:24:00 | FromDiscord | <odexine> fast math is kinda notorious for breaking things iirc? |
13:24:06 | FromDiscord | <punchcake> i get like a billion linker errs |
13:24:09 | FromDiscord | <punchcake> In reply to @odexine "fast math is kinda": yeah |
13:24:24 | FromDiscord | <punchcake> im trying to benchmark nbody too so its probably a horrible idea |
13:26:54 | FromDiscord | <odexine> i mean i think at that point its a matter of your code |
13:30:09 | FromDiscord | <ambient3332> sent a code paste, see https://play.nim-lang.org/#ix=4AJi |
13:30:40 | FromDiscord | <odexine> In reply to @ambient3332 "It just gives me": how are you using it? |
13:30:53 | FromDiscord | <ambient3332> sent a code paste, see https://play.nim-lang.org/#ix=4AJj |
13:32:27 | FromDiscord | <odexine> `0||n-1` -> `0||(n-1) |
13:32:29 | FromDiscord | <odexine> (edit) "`0||(n-1)" => "`0||(n-1)`" |
13:38:56 | FromDiscord | <ambient3332> Thanks, unfortunately it seems no matter what I do, running 16 threads instead of 1 gives very minor boosts in performance, even when 80% of the code is highly parallelizable |
13:39:18 | FromDiscord | <ambient3332> I think I just need to start wrangling threads manually at this point |
13:45:17 | FromDiscord | <punchcake> In reply to @ambient3332 "Thanks, unfortunately it seems": bc 16 threads compared to what a gpu can run is nothing |
13:45:42 | FromDiscord | <punchcake> gpu's can run hundreds of thousands of threads |
14:04:35 | FromDiscord | <ambient3332> sent a code paste, see https://play.nim-lang.org/#ix=4AJt |
14:07:08 | FromDiscord | <punchcake> and btw |
14:07:11 | FromDiscord | <demotomohiro> In reply to @ambient3332 "Thanks, unfortunately it seems": Maybe, what you do in the thread complete in short time and the cost of creating new threads is relatively large.↵Or your code is not CPU bound. |
14:07:21 | FromDiscord | <demotomohiro> If your code is highly parallelizable and CPU bound, running with 2 threads should be 2 times faster than running with one thread. |
14:07:30 | FromDiscord | <punchcake> is `-d:danger` safe to enable if everything has been tested in release? |
14:08:34 | FromDiscord | <demotomohiro> In reply to @punchcake "is `-d:danger` safe to": It would be safe if you tested it with all possible inputs. |
14:09:06 | FromDiscord | <ambient3332> In reply to @demotomohiro "Maybe, what you do": I assumed OpenMP would keep threads up and no just start/close them for each parallel for |
14:09:24 | FromDiscord | <punchcake> In reply to @demotomohiro "It would be safe": does it provide significantly faster code than release? |
14:09:52 | * | Eternado joined #nim |
14:10:25 | * | Eternado is now known as Anuapalabdhi |
14:11:41 | FromDiscord | <demotomohiro> In reply to @punchcake "does it provide significantly": It depends on how much runtime checks affects speed of your program in release mode.↵If your program is IO bound, -d:danger would not make much difference. |
14:12:00 | FromDiscord | <punchcake> In reply to @demotomohiro "It depends on how": if it uses a lot of loops |
14:12:06 | FromDiscord | <punchcake> would it help a lot? |
14:12:37 | * | Anuapalabdhi quit (Client Quit) |
14:13:28 | FromDiscord | <demotomohiro> In reply to @punchcake "if it uses a": It depends on how much runtime checks are done in the loop in -d:release mode. |
14:13:41 | FromDiscord | <punchcake> bottom line |
14:13:57 | FromDiscord | <punchcake> if im running production software on a server should i use release or danger |
14:14:13 | FromDiscord | <punchcake> i think release and march=native is the best option in a server setting |
14:14:40 | FromDiscord | <punchcake> since its a server i dont have to worry about it not being compatible |
14:15:44 | FromDiscord | <demotomohiro> -d:danger likely makes your code faster, and doesn't make slower.↵But how much make it faster depends on how much runtime checks are done. |
14:17:02 | FromDiscord | <demotomohiro> I think you should use release rather than danger if you want your program runs correctly and doesn't keep running when something go wrong. |
14:18:37 | FromDiscord | <odexine> id say danger is ok if you thoroughly tested your code with a fuzzer and comprehensive test suites |
14:19:02 | FromDiscord | <punchcake> i mean does danger disable literally every runtime check? |
14:19:06 | FromDiscord | <odexine> yes |
14:19:07 | FromDiscord | <punchcake> even bound checking? |
14:19:09 | FromDiscord | <odexine> yes |
14:19:14 | FromDiscord | <punchcake> so its like C++ |
14:19:23 | FromDiscord | <odexine> i guess that works as an analogy yes |
14:23:27 | FromDiscord | <ambient3332> sent a code paste, see https://play.nim-lang.org/#ix= |
14:24:57 | FromDiscord | <punchcake> sent a code paste, see https://play.nim-lang.org/#ix=4AJD |
14:25:00 | FromDiscord | <ambient3332> it's not |
14:25:06 | FromDiscord | <punchcake> have you tried? |
14:28:54 | FromDiscord | <ambient3332> also --passc:"/openmp" is 2x faster compoared to -d:openmp 🤔 |
14:35:04 | FromDiscord | <punchcake> In reply to @ambient3332 "also --passc:"/openmp" is 2x": how are you even using openmp in nim |
14:35:47 | FromDiscord | <ambient3332> In reply to @punchcake "how are you even": https://discord.com/channels/371759389889003530/371759389889003532/1130120806412845056 |
15:31:00 | * | blackbeard420_ quit (Quit: ZNC 1.8.2 - https://znc.in) |
15:31:12 | * | blackbeard420 joined #nim |
15:32:51 | FromDiscord | <_aromat> sent a long message, see http://ix.io/4AJN |
15:33:24 | FromDiscord | <punchcake> at this point i think i gave up on nim gui's, the only hope is to find a way to bind nim to js (same as how wails.io does it) and then make a web based ui lib |
15:36:51 | FromDiscord | <odexine> walkfiles doesnt necessarily read in the order of date modified |
15:36:56 | NimEventer | New thread by CardealRusso: Detect arm during compilation., see https://forum.nim-lang.org/t/10339 |
15:40:32 | FromDiscord | <_aromat> In reply to @odexine "walkfiles doesnt necessarily read": I guess it only works because I save them with now() as filename |
15:40:42 | FromDiscord | <odexine> possibly |
15:40:52 | FromDiscord | <odexine> but i dont think walkfiles has a defined order |
15:42:37 | FromDiscord | <jviega> @elegantbeef run this on a Linux box: |
15:43:02 | FromDiscord | <jviega> sent a long message, see http://ix.io/4AJP |
15:43:57 | FromDiscord | <punchcake> @pmunch https://github.com/PMunch/nim-electron have you given up on this project or what happened? |
15:44:24 | FromDiscord | <jviega> sent a code paste, see https://play.nim-lang.org/#ix=4AJQ |
15:45:53 | FromDiscord | <jviega> Which means you need not only libprcre.so to be there, but also libc, libm, libdl, ... |
15:46:23 | FromDiscord | <jviega> Same thing certainly happens when we try to add in OpenSSL3, etc. |
15:48:25 | FromDiscord | <jviega> We are probably the only people who have ever run a nim executable in an alpine container that imports re or openssl, because not only is it non-trivial to work around, the nim forum amusingly claims it's impossible to address: https://forum.nim-lang.org/t/9119 |
15:51:34 | FromDiscord | <jviega> And in our build environment, we had .o's/.a's and .so's. |
15:52:58 | FromDiscord | <demotomohiro> You might need to rewrite re module so that it can links static library. |
15:54:16 | FromDiscord | <jviega> We just did a bunch of trickery to embed so's in the binary and load them from the binary before the proper entry point. |
15:54:47 | FromDiscord | <odexine> i didnt know this about nim wow |
15:54:49 | FromDiscord | <jviega> It's a follow-up on someone having the same issue yesterday. |
15:54:50 | FromDiscord | <odexine> thats some fucker |
15:54:51 | FromDiscord | <odexine> (edit) "fucker" => "fuckery" |
15:55:21 | FromDiscord | <jviega> One good thing about Go, which I've always hated, is that it was super easy to build a truly static binary. |
15:56:30 | FromDiscord | <jviega> Makes Nim pretty bad for the tech world when it's that difficult. |
15:56:54 | FromDiscord | <demotomohiro> At least, Nim can use static link library: https://internet-of-tomohiro.netlify.app/nim/clibrary.en.html#use-c-static-library-from-nim |
15:57:45 | FromDiscord | <jviega> No, if it has to load a .so at all, even if libc is statically linked, it will also dynamically load libc, even though the symbols are already there statically. |
15:59:13 | FromDiscord | <jviega> dynamic linking != dynamic loading. You can have a statically linked binary and still call dlopen() |
15:59:41 | FromDiscord | <ambient3332> you can link dynamically and load statically? |
16:00:01 | FromDiscord | <demotomohiro> --dynlibOverrideAll doesnt work? |
16:00:38 | FromDiscord | <jviega> Nope, definitely not for OpenSSL3 |
16:01:16 | FromDiscord | <jviega> It worked in some cases, but there are a few places around where it definitely does not. |
16:05:13 | FromDiscord | <demotomohiro> https://github.com/nim-lang/Nim/blob/devel/lib/wrappers/pcre.nim#L313↵You might need to define `usePcreHeader` to link libpcre statically and install libpcre compiled as static link library. |
16:05:20 | FromDiscord | <jviega> Even if you were to tell me there's some magic flag combo to make it all work, I'd say it's just another example of Nim tooling, etc. not being good. |
16:07:19 | FromDiscord | <jviega> I promise you, if I was able to create a binary that works in an alpine container that uses libpcre and openssl3, I know more than enough about the internals of ELF, linkers, loaders and so on. |
16:09:14 | FromDiscord | <jviega> I'm telling you, even if I have all the correctly compiled dependencies around, it's way too difficult, and in some places, it seems impossible (OpenSSL3) to get a static binary that actually includes all the dependencies. |
16:11:49 | FromDiscord | <jviega> And by the way, if you have a .a or a .o around, there is no need to have the header files to link statically. That's not how it works |
16:11:58 | FromDiscord | <jviega> (it being linkers) |
16:13:08 | FromDiscord | <demotomohiro> https://github.com/nim-lang/Nim/blob/devel/lib/wrappers/openssl.nim#L285↵It seems even if `useStaticLink` is true, this module imports functions using dynlib pragma. |
16:13:45 | FromDiscord | <jviega> We were able to get openssl to staticly link until we switched to openssl3. |
16:14:29 | FromDiscord | <jviega> IIRC anyway. But yeah, when we switched to openssl3 at least, it was definitely getting loaded via dlopen |
16:14:58 | FromDiscord | <jviega> Even if it was ACTUALLY statically linked already |
16:15:14 | FromDiscord | <jviega> Which.. means you have to carry the so around anyway |
16:15:22 | FromDiscord | <jviega> Which is absolutely not acceptable |
16:16:31 | FromDiscord | <demotomohiro> You can link .a or .o without header but you have to translate almost every thing in header to Nim code.↵Using header pragma might be easier. |
16:18:52 | FromDiscord | <jviega> The nim standard library should be better than that. Again, the tech world loves deploying a single static executable in a stripped down environment, and other languages manage to make it easy. |
16:21:47 | FromDiscord | <punchcake> In reply to @jviega "The nim standard library": +1 for static exe's |
16:21:47 | FromDiscord | <jviega> But the fact that OpenSSL3 (and possibly earlier versions I guess) have to be dynamically loaded to be able to use the nim libraries that call it (unless you do low-level hackery like us) is just insane |
16:21:57 | FromDiscord | <punchcake> it makes it easier to share everything |
16:22:23 | FromDiscord | <punchcake> @jviega mind sharing the way on how you embedded the dll inside the exe? |
16:22:38 | FromDiscord | <demotomohiro> I usually build my code on running machine so that my program can load .so files without problems even if running machine is raspberry pi zero. |
16:22:45 | FromDiscord | <jviega> Maybe we'll write you a HOWTO guide at some point, but it does require work that isn't easy |
16:23:10 | FromDiscord | <punchcake> In reply to @jviega "Maybe we'll write you": trust me im a mad man |
16:23:22 | FromDiscord | <punchcake> i write windows gui's in C directly using windows.h |
16:23:26 | FromDiscord | <jviega> We did give a talk that covered that topic at Summercon yesterday, the video should end up available soon |
16:23:36 | FromDiscord | <punchcake> whos we? |
16:24:38 | FromDiscord | <jviega> One of my co-workers and I |
16:28:48 | FromDiscord | <jviega> The gist is though: 1) staticread() everything that the system will end up attempting to dlopen (which, if anything dlopens, will include libc and ldl, etc), 2) use link-time wrapping to impose an implementation of open64_nocancel. Have that wrapper check the path, and if it's a library you embeded, use memfd to hand it the library, otherwise proxy to openat(). 3) Add a constructor to your program to use a custom LD_LIBRARY_PATH to make |
16:29:07 | FromDiscord | <demotomohiro> By the way, If you want your executable runs on many machines without rebuilding on each machines, you cannot use `--passC:-march=native` unless all machine have same CPU as `-march=native` optimize code for the CPU on build machine. |
16:29:28 | FromDiscord | <punchcake> yes |
16:29:51 | FromDiscord | <punchcake> In reply to @jviega "The gist is though:": damn |
16:30:59 | FromDiscord | <punchcake> In reply to @demotomohiro "I usually build my": btw static linking reduces security risks |
16:31:15 | FromDiscord | <punchcake> somone cant just somehow modify the dll to inject code in your program |
16:32:23 | FromDiscord | <jviega> On the mac, since there's no memfd, I ended up just dropping carrying around the dylibs and then dropping them and setitng a custom DYLD_LIBRARY_PATH. Any time you set the dynamic library path, you need to self-reexec of course. |
16:32:46 | FromDiscord | <jviega> My co-worker did the Linux version, I did the mac version 🙂 |
16:35:47 | FromDiscord | <demotomohiro> In reply to @punchcake "btw static linking reduces": If someone can modify dll or inject code, that means someone already hacked my PC and can access any files and is no longer secure even if executables are statically linked. |
16:36:12 | FromDiscord | <punchcake> In reply to @demotomohiro "If someone can modify": not really |
16:36:39 | FromDiscord | <punchcake> some programs might be venerable but dont really give root acess |
16:36:47 | FromDiscord | <punchcake> but it can still download and replace some files |
16:37:38 | FromDiscord | <jviega> PunchCake is 100% right, it's an easy way to escalate prives, and why LD_PRELOAD no longer checks the current working directory by default, to try to mitigate it a bit. |
16:39:23 | FromDiscord | <punchcake> ty |
16:39:33 | FromDiscord | <punchcake> i think we might be a bit biased tho 😅 |
16:41:15 | FromDiscord | <jviega> sent a long message, see http://ix.io/4AKa |
16:42:08 | FromDiscord | <jviega> That's just a headache that drives people away, esp when they invested the time to build something significant. We did build out a ton of stuff in Nim, but we absolutely do not recommend Nim to people, even if we're okay with our choice. |
16:42:32 | FromDiscord | <jviega> I'm not sure we'd reach for it for another big project. |
16:42:37 | FromDiscord | <punchcake> and that is another point too, static linking ensures that all the lib versions you have are exactly the same on the consumer's/server's machine |
16:42:45 | FromDiscord | <punchcake> so thats one less headache to worry about |
16:43:54 | FromDiscord | <michaelb.eth> except libc, but depends |
16:43:57 | FromDiscord | <jviega> If I were to this project again, I'd probably hold my nose and pick Rust. Nim's just not even worried about trying to be 'prime time' so to speak. |
16:44:14 | FromDiscord | <punchcake> In reply to @jviega "If I were to": C |
16:44:15 | FromDiscord | <jviega> @michaelb.eth I just said absolutely w/ libc. |
16:44:31 | FromDiscord | <punchcake> rust is very annoying to work with |
16:44:37 | FromDiscord | <michaelb.eth> ah, I was looking at PunchCake's comment |
16:44:50 | FromDiscord | <jviega> I've been writing C for 35 years, but for big projects, it's too much work due to memory safety issues. |
16:45:08 | FromDiscord | <jviega> If performance isn't a huge issue, I'd hold my nose and use Go instead of Nim. |
16:45:37 | FromDiscord | <punchcake> have you considered bohem GC? |
16:45:45 | FromDiscord | <jviega> Nim would be great for me, if it seemed to care at all about more than the users. |
16:46:02 | FromDiscord | <punchcake> In reply to @jviega "Nim would be great": if it had a bigger ecosystem |
16:46:07 | FromDiscord | <jviega> I've used it many times, doesn't keep developers from making off-by-one errors that take a week to debug 😉 |
16:46:27 | FromDiscord | <jviega> The focus of the current ecosystem is wrong. |
16:46:38 | FromDiscord | <punchcake> it should be on GUI |
16:46:49 | FromDiscord | <punchcake> literally the lack of nim gui's is insane |
16:47:57 | FromDiscord | <jviega> I mean, there's a reason why there are no major Nim projects. The one we're doing is already slotted to be a Linux Foundation project, which you'd think would be good for Nim, but I'm kind of embarrassed it's been such a bad experience. |
16:49:20 | FromDiscord | <jviega> @punchcake I do hate Rust. I think it's silly to ask developers to work harder on memory management than they do in C. And the code people write is generally unreadable. |
16:49:21 | FromDiscord | <punchcake> why is it so bad? |
16:49:39 | FromDiscord | <punchcake> In reply to @jviega "<@655759729477287956> I do hate": bohem gc |
16:49:40 | FromDiscord | <punchcake> amen |
16:49:51 | FromDiscord | <punchcake> its not as slow as you might think |
16:51:16 | FromDiscord | <jviega> So many reasons, but it all mainly boils down to issues like the above. The ecosystem isn't geared to make it easy for developers. The package manager is garbage, the error messages are garbage, they don't have good, current packages for stuff that should be basic (like even writing to an s3 bucket). The list goes on and on and on. |
16:51:57 | FromDiscord | <jviega> I don't think it's slow. I am a compiler person, I'm not afraid of garbage collection 😉 |
16:52:29 | FromDiscord | <punchcake> In reply to @jviega "So many reasons, but": oh yeah the package manager is bad |
16:52:43 | FromDiscord | <jviega> But for some kinds of low-level things, it's better to use a ref counting approach to amortize the collection, as GC pauses can be an issue |
16:53:16 | FromDiscord | <punchcake> the shit ecosystem is why i wont consider nim for serious projects, half of the packages i use is either made by @neroist. or @pmunch lol |
16:53:25 | FromDiscord | <ambient3332> @jtv so thing like Go is what you would use...? |
16:54:07 | FromDiscord | <jviega> I just said above. If performance is a major concern, I'd hold my nose and use Rust (even though I hate it). If it isn't, I'd hold my nose and use Go (which I also don't like, but not with as much venom as Rust) |
16:54:23 | FromDiscord | <punchcake> In reply to @jviega "I just said above.": why not C++ |
16:54:28 | FromDiscord | <jviega> I'd love Nim if it seemed to give a crap about the developer 🙂 |
16:54:30 | FromDiscord | <ambient3332> So I guess you hate C++ more than Rust |
16:54:33 | FromDiscord | <punchcake> modern C++ is pretty safe with smart pointers |
16:54:34 | FromDiscord | <jviega> Oh yeah |
16:54:41 | FromDiscord | <odexine> i believe a lot of us here hold the same sentiment with nim, that it's pretty messy |
16:54:41 | FromDiscord | <jviega> C++ is an atrocity |
16:55:01 | FromDiscord | <ambient3332> Modern C++ was a thing in 1999 |
16:55:16 | FromDiscord | <punchcake> In reply to @jviega "C++ is an atrocity": as long as you restrict yourself to a subset of it your good xd |
16:55:29 | FromDiscord | <jviega> As long as that subset is C, I'll consider it |
16:55:48 | FromDiscord | <demotomohiro> I understand you needs static links so that you can run your program on any distro.↵But there are people strongly discourage static linking:↵https://blogs.gentoo.org/mgorny/2021/02/19/the-modern-packagers-security-nightmare/ |
16:55:52 | FromDiscord | <jviega> I'll never use C++ again. Just having to link to C++ code gives me enough nightmares |
16:56:55 | FromDiscord | <jviega> @demotomohiro I really don't care at all about what some random gentoo guy said. Different people have different needs, and I hope you can see I'm not an idiot. |
16:57:00 | FromDiscord | <punchcake> In reply to @jviega "I'll never use C++": thats why i stopped using it tbh, in C i crash in development but in C++ i crash in production and get fired |
16:57:21 | FromDiscord | <punchcake> C++ is an acquired taste for sure |
16:57:39 | FromDiscord | <ambient3332> Static linking for shipping software is very different from static linking for distro packages |
16:58:08 | FromDiscord | <punchcake> agreed |
16:58:09 | FromDiscord | <jviega> Exactly. |
16:59:05 | FromDiscord | <jviega> I don't care about distros. I'm firmly embedded in the tech world, where it's not about the distro, it's about running as little on top of the kernel as possible. |
16:59:07 | FromDiscord | <jviega> CPU == $$ |
16:59:25 | FromDiscord | <punchcake> In reply to @jviega "CPU == $$": the python devs are crying in the corner rn |
16:59:31 | FromDiscord | <punchcake> jesus is python a horrible language |
16:59:35 | FromDiscord | <jviega> Cram more containers on there. |
16:59:50 | FromDiscord | <jviega> 30 years ago, python was a breath of fresh air, but now I agree :/ |
17:00:04 | FromDiscord | <ambient3332> With Python it's easy to solve small problems quickly and ship them |
17:00:57 | FromDiscord | <takemichihanagaki3129> In reply to @jviega "I've used it many": Indeed! Nim is my favorite language nowadays, but I hate how it's hard to debug and understand errors. |
17:01:17 | FromDiscord | <punchcake> sent a long message, see http://ix.io/4AKm |
17:01:44 | FromDiscord | <jviega> We have an internal page called "Nim's dumb error messages" that tries to help point people on the right path. Compiler error messages are hard, but Nim takes it to a new level. |
17:01:49 | FromDiscord | <punchcake> In reply to @ambient3332 "With Python it's easy": is good if your program is 100 lines or less |
17:02:39 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "i mean OOP makes": Don't use pip.↵There are some alternatives to it. There is one from the Python Foundation that uses packages locally instead of globally. |
17:03:04 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "Don't use pip. There": so the python foundation finally realized pip is garbage |
17:03:16 | FromDiscord | <takemichihanagaki3129> I'm particularly using Poetry. But I'll probably move to PSF's alternative. |
17:03:18 | FromDiscord | <jviega> One of my co-workers once spent a few years writing an implementation of Python from scratch with no GIL, and they decided it couldn't be "python" because the python test suite assumes single-threadedness under the hood, and thus wouldn't pass one test in the test suite |
17:03:19 | FromDiscord | <punchcake> and i also dont plan on using python in ever |
17:03:26 | FromDiscord | <jviega> I think they've finally backed off of that ho |
17:03:36 | FromDiscord | <punchcake> In reply to @jviega "One of my co-workers": its called pypy |
17:03:40 | FromDiscord | <punchcake> it has a jit too |
17:04:22 | FromDiscord | <jviega> Not the version he did. This was about a decade ago that we went to Guido with it. |
17:04:24 | FromDiscord | <ambient3332> pybind11 is probably the best experience I've had binding C++ so far in any lang |
17:04:31 | FromDiscord | <ambient3332> (Python) |
17:04:34 | FromDiscord | <punchcake> In reply to @ambient3332 "pybind11 is probably the": better than swig? |
17:04:41 | FromDiscord | <ambient3332> yes |
17:04:45 | FromDiscord | <punchcake> damn |
17:04:50 | FromDiscord | <punchcake> been using swig so much tbh |
17:04:58 | FromDiscord | <ambient3332> Given that Swig on Windows requries a lot more setup |
17:05:10 | FromDiscord | <punchcake> it doesnt really |
17:05:11 | FromDiscord | <jviega> Whom I've known since 1994, and he still decided to decline. |
17:05:13 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "i mean OOP makes": They already know about GIL issues, and newer versions are using GIL by interpreter now.↵That's not perfect, but better than nothing. ↵↵But really multithreading, don't use Python. Lol |
17:05:17 | FromDiscord | <punchcake> just download it and put it to path |
17:05:31 | FromDiscord | <takemichihanagaki3129> (edit) "In reply to @punchcake "i mean OOP makes": They already know about GIL issues, and newer versions are using GIL by interpreter now.↵That's not perfect, but better than nothing. ↵↵But really ... multithreading," added "if you want" |
17:05:37 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "They already know about": or just dont use python |
17:05:40 | FromDiscord | <punchcake> use C |
17:06:24 | FromDiscord | <punchcake> i mean its the first language i learnt but after learning this thing called static typing my programming experince trancended |
17:07:13 | FromDiscord | <punchcake> it was shocking at first "whaat a string can just be a float then be an int then be a instance of a class" |
17:07:27 | FromDiscord | <punchcake> (edit) "can" => "cant" |
17:08:09 | FromDiscord | <jviega> They can be in C 🙂 |
17:08:28 | FromDiscord | <_alkamist_> Someone should just make some absurdly minimal improvement to C that transpiles to C and fixes all of the things most people can agree are objectively bad. |
17:08:36 | FromDiscord | <punchcake> In reply to @jviega "They can be in": you gotta do some werid ooga booga stuff |
17:08:36 | FromDiscord | <jviega> That's called Zig |
17:08:40 | FromDiscord | <punchcake> In reply to @_alkamist_ "Someone should just make": thats just zig |
17:08:42 | FromDiscord | <_alkamist_> Zig goes way too far though |
17:09:01 | FromDiscord | <jviega> I dunno, to me, Zig doesn't do enough for me to consider it over C |
17:09:06 | FromDiscord | <punchcake> same |
17:09:14 | FromDiscord | <punchcake> its like C but javafied |
17:09:19 | FromDiscord | <jviega> Yup |
17:09:25 | FromDiscord | <punchcake> idk how to explain but its very verbose |
17:09:37 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "i mean its the": I started with Python too.↵After some years, there are a few things that makes you unhappy with the language. But, anyway, that is just a tool. |
17:10:00 | FromDiscord | <ambient3332> I don't really enjoy doing raw pointer arithmetic or implementing my own hash maps, Which is why I don't use C |
17:10:10 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "I started with Python": yeah its like one of the tools in my basment that i just used once and never used again |
17:10:26 | FromDiscord | <punchcake> In reply to @ambient3332 "I don't really enjoy": there are libs to help you with common datastructures |
17:10:39 | FromDiscord | <ambient3332> In reply to @punchcake "there are libs to": ...which are not a part of the language |
17:10:43 | FromDiscord | <punchcake> yes |
17:10:46 | FromDiscord | <punchcake> but this is C |
17:11:02 | FromDiscord | <punchcake> you dont have to worry about it using a deprecated feature |
17:11:13 | FromDiscord | <punchcake> In reply to @punchcake "there are libs to": https://github.com/tezc/sc |
17:11:17 | FromDiscord | <odexine> In reply to @punchcake "but this is C": where basically nothing usable is part of the language :baqua: |
17:11:20 | FromDiscord | <jviega> Well this was fun, but I G2G! |
17:11:28 | FromDiscord | <punchcake> In reply to @jviega "Well this was fun,": see ya |
17:11:55 | FromDiscord | <punchcake> In reply to @odexine "where basically nothing usable": C has 1 principle that prevented it from being C++ |
17:12:10 | FromDiscord | <punchcake> if it isnt awfully hard to implement then you should make it |
17:14:49 | FromDiscord | <ambient3332> Writing state of the art hashing and sorting functions is far from trivial, which is why I prefer the stdlib already has them |
17:15:08 | FromDiscord | <punchcake> isnt that what openssl is for |
17:15:42 | FromDiscord | <punchcake> and implementing a crypo lib in the stdlib is such a bad idea for a language thats meant to be protable |
17:16:23 | FromDiscord | <odexine> hashing as in non-crypto |
17:17:31 | * | lucasta joined #nim |
17:17:47 | * | ced1 joined #nim |
17:17:48 | FromDiscord | <jviega> C has qsort(). And hash tables are easy really. I can even give you one that fast, threadsafe and doesn't use locks. Don't see that in any other language. |
17:18:04 | FromDiscord | <punchcake> In reply to @odexine "hashing as in non-crypto": in that case, i also perfer a gui lib in C |
17:18:16 | FromDiscord | <punchcake> surley it isnt hard to port a gui lib to the esp32 |
17:18:23 | FromDiscord | <punchcake> (edit) "surley" => "surely" |
17:18:26 | Amun-Ra | there are hashmaps in posix (iirc) |
17:18:38 | FromDiscord | <jviega> No there aren't |
17:18:49 | * | lucasta quit (Remote host closed the connection) |
17:18:51 | Amun-Ra | man hcreate |
17:19:03 | FromDiscord | <ambient3332> Everything is easy once you have deep understanding of them |
17:19:14 | * | lucasta joined #nim |
17:19:31 | FromDiscord | <jviega> IIRC that's an associate array |
17:19:59 | FromDiscord | <punchcake> and idk why C doesnt have vectors |
17:20:01 | FromDiscord | <punchcake> like wtf bro |
17:20:11 | FromDiscord | <punchcake> its the only datastructure i use every project |
17:20:15 | Amun-Ra | the biggest con of hcreate is that only one hash table can be used at a time |
17:20:47 | FromDiscord | <jviega> there's hcreate_r() |
17:20:57 | Amun-Ra | ah, right |
17:20:57 | FromDiscord | <jviega> It's been a long time since I've used it so I don't remember |
17:21:56 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "and idk why C": I may be wrong, but C avoids to use malloc internally. ↵And you will need to put your dynamic array into the heap memory.↵↵Basically, almost everything is explicit. So you know what you're doing. |
17:21:59 | FromDiscord | <pmunch> In reply to @punchcake "<@392962235737047041> https://github.com/PMunch/nim": Not given up, it was never supposed to be anything more than an experiment to see how that would work. And maybe tee someone else off to make something more for it. Glad you like my packages by the way 🙂 |
17:22:42 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "I may be wrong,": ok thats actually a good reason |
17:22:49 | FromDiscord | <punchcake> im convinced |
17:23:25 | FromDiscord | <punchcake> In reply to @pmunch "Not given up, it": damn it could've been the start of something brilliant |
17:24:02 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "ok thats actually a": I can't remember C giving me some `free_some_datastructure` , there is just `free`.↵↵Every single type can be statically stored. Dynamic arrays can't. |
17:24:35 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "I can't remember C": xd after i think about it you can completely avoid malloc while using the C stdlib |
17:25:42 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "xd after i think": Yep, people that do embedding C avoids malloc, everything goes on static memory (stack). |
17:25:59 | FromDiscord | <pmunch> In reply to @punchcake "damn it could've been": Well you're free to take the idea and use it. As I mention in the README I basically just followed the Electron quick start guide met coded it in Nim. There really isn't much more than that to it.↵Personally I've never liked web UIs much, so I didnt have much of an incentive to ever use it |
17:26:30 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "Yep, people that do": as a guy who does embedded C we do use malloc but its freed shorty after using it since we still need the memory back |
17:27:06 | FromDiscord | <jviega> You don't use alloca()?? |
17:27:20 | FromDiscord | <punchcake> no |
17:27:24 | FromDiscord | <jviega> (I thought we were leaving; My wife wasn't ready 🙂 |
17:27:35 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "as a guy who": Hmmm, interesting!↵Noted it down, I didn't know that. |
17:28:16 | FromDiscord | <jviega> alloca() is generally going to be far faster whenever it can be used |
17:28:31 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "Hmmm, interesting! Noted it": i mean embedded C is just regular C but you have from 200 to 300 kb of ram |
17:28:35 | FromDiscord | <punchcake> and on an rtos |
17:28:50 | FromDiscord | <punchcake> so there isnt much room for leaks |
17:29:18 | FromDiscord | <jviega> Since it bascially just has to push the stack pointer then bump it by the size, as opposed to managing headers, pools, lists, etc. |
17:29:24 | FromDiscord | <gamma8099> Would it be help to make some data engineering/data science stuff would that be helpful |
17:30:15 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "i mean embedded C": That's impressive! |
17:30:18 | FromDiscord | <gamma8099> Maybe there are ones idk about, or even an ETL or ORM |
17:30:22 | FromDiscord | <jviega> (Ok now we're leaving) |
17:30:26 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "That's impressive!": you can learn for free↵https://wokwi.com/ |
17:30:31 | FromDiscord | <punchcake> In reply to @jviega "(Ok now we're leaving)": enjoy the date bro |
17:31:28 | * | lucasta quit (Remote host closed the connection) |
17:31:58 | FromDiscord | <ambient3332> ehh.. arduino, and not stm32 🤷♂️ |
17:32:05 | FromDiscord | <punchcake> In reply to @ambient3332 "ehh.. arduino, and not": neither |
17:32:06 | FromDiscord | <punchcake> esp32 |
17:32:15 | FromDiscord | <ambient3332> (wokwi.com you posted) |
17:32:21 | FromDiscord | <punchcake> yes |
17:32:25 | FromDiscord | <punchcake> there is an esp32 there |
17:32:36 | FromDiscord | <punchcake> https://media.discordapp.net/attachments/371759389889003532/1130190255962734814/image.png |
17:32:42 | FromDiscord | <ambient3332> ESP32 C3? |
17:33:07 | FromDiscord | <punchcake> In reply to @ambient3332 "ESP32 C3?": i think so |
17:33:10 | FromDiscord | <punchcake> idk havent used it |
17:33:54 | FromDiscord | <punchcake> i mean just take the site with a grain of salt, its good for prototyping but its nothing like real hands on dev |
17:34:45 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "you can learn for": Thanks a lot! |
17:34:48 | FromDiscord | <punchcake> also esp32 boards are cheap as hell they're like 2 or 3 usd |
17:35:01 | FromDiscord | <punchcake> they arent very useful alone tho |
17:35:08 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "Thanks a lot!": np |
17:35:34 | FromDiscord | <ambient3332> I use this to play around: https://easyeda.com/ 😉 easy to export to JLCPCB and get a fully working prototype |
17:35:51 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "also esp32 boards are": How do you communicate with the board?↵Via Serial port? |
17:36:08 | FromDiscord | <takemichihanagaki3129> Or via some other protocol? |
17:36:09 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "How do you communicate": not sure how it works on the site |
17:36:12 | FromDiscord | <punchcake> didnt use it tbh |
17:36:25 | FromDiscord | <punchcake> but you gotta read the esp32 manual to understand what pins do what |
17:36:50 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "not sure how it": Talking about ESP32, specifically. Not the website. |
17:37:05 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "but you gotta read": Hmmmm, I see. |
17:37:09 | FromDiscord | <punchcake> i mean define by what you mean communicate? |
17:37:10 | FromDiscord | <ambient3332> ESP32 has Wifi, I2C, SPI, serial, etc |
17:37:21 | FromDiscord | <punchcake> display port? flashing? wifi? |
17:37:47 | FromDiscord | <punchcake> xd its not hard its just a bit tedious |
17:37:53 | FromDiscord | <takemichihanagaki3129> In reply to @ambient3332 "ESP32 has Wifi, I2C,": @punchcake This! 😂😂 |
17:38:56 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "<@655759729477287956> This! 😂😂": https://randomnerdtutorials.com/esp32-pinout-reference-gpios/ |
17:39:04 | FromDiscord | <punchcake> keep this as refrence its good enough |
17:39:34 | FromDiscord | <punchcake> once you have the basics down read this↵https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf↵not entire but only what matters to you |
17:41:09 | FromDiscord | <takemichihanagaki3129> I'm saving this links!↵I'll probably use it a lot. My uni is going to start next month. |
17:43:49 | FromDiscord | <PunchCake> You computer engineer?↵(@takemichihanagaki3129) |
17:44:31 | FromDiscord | <takemichihanagaki3129> In reply to @PunchCake "You computer engineer? (<@890300313729400832>)": Yes! |
17:44:58 | FromDiscord | <PunchCake> Same |
17:53:00 | FromDiscord | <punchcake> Damn this what my matrix acc look like |
17:53:58 | FromDiscord | <odexine> In reply to @jviega "alloca() is generally going": me when i free alloca |
17:54:32 | FromDiscord | <punchcake> In reply to @odexine "me when i free": XD |
17:55:24 | FromDiscord | <punchcake> In reply to @odexine "me when i free": Btw who is kanon |
17:55:34 | FromDiscord | <odexine> anime girl |
17:55:37 | FromDiscord | <odexine> same one on my avatar |
17:55:45 | FromDiscord | <punchcake> Ngl she kinda hot |
17:56:06 | FromDiscord | <odexine> oh |
17:56:21 | FromDiscord | <punchcake> But not hotter than my beloved waifu akeno |
17:58:57 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "Ngl she kinda hot": Your Discord's isn't lieing, lol. |
17:59:40 | FromDiscord | <odexine> In reply to @takemichihanagaki3129 "Your Discord's isn't lieing,": LMAO I did not realise |
17:59:59 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "Your Discord's isn't lieing,": https://media.discordapp.net/attachments/371759389889003532/1130197153785057360/my_honest_reaction_chrishemsworth_ryangosling_robertpattinson.mp4 |
18:01:22 | FromDiscord | <takemichihanagaki3129> I love this meme.↵I'm afraid of us being off-topic... |
18:01:37 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "I love this meme.": The mods are asleep |
18:01:37 | FromDiscord | <takemichihanagaki3129> Let's go to #offtopic |
18:01:39 | FromDiscord | <punchcake> Look |
18:01:45 | FromDiscord | <punchcake> FUCK YOU MODS HAHAHAH |
18:01:48 | FromDiscord | <punchcake> see |
18:02:38 | FromDiscord | <punchcake> Ngl bro Robert pattinson is handsome as hell |
18:05:09 | FromDiscord | <punchcake> In reply to @takemichihanagaki3129 "Your Discord's isn't lieing,": Btw lying |
18:05:48 | FromDiscord | <takemichihanagaki3129> In reply to @punchcake "Btw lying*": I was afraid about "lying" be the wrong form. Thanks! |
18:06:01 | FromDiscord | <punchcake> Np |
18:50:52 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=4AKT |
18:51:22 | FromDiscord | <4zv4l> if that can help |
18:51:23 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=4AKU |
18:52:17 | FromDiscord | <4zv4l> when I changed the IP it worked, why I can't send a broadcast ? |
18:56:21 | FromDiscord | <demotomohiro> Maybe broadcast requires root? |
18:56:22 | FromDiscord | <4zv4l> I also tried `192.168.1.255` but doesn't work either |
18:56:30 | FromDiscord | <4zv4l> so my dhcp client run as root ? |
18:56:33 | FromDiscord | <4zv4l> (edit) "run" => "runs" |
18:56:53 | FromDiscord | <demotomohiro> i dont know |
18:57:21 | FromDiscord | <4zv4l> lmao even with `sudo` I get permission denied |
19:00:01 | FromDiscord | <4zv4l> ooooh |
19:00:02 | FromDiscord | <4zv4l> I found |
19:00:23 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=4AKY |
19:00:34 | FromDiscord | <yepoleb> In reply to @punchcake "FUCK YOU MODS HAHAHAH": i cri |
19:01:28 | FromDiscord | <takemichihanagaki3129> sent a code paste, see https://play.nim-lang.org/#ix=4AL0 |
19:07:02 | FromDiscord | <takemichihanagaki3129> @Andreas, is there any roadmap for Nim right now?↵IK that probably some people ask it for you, but I'm curious about that. |
19:07:17 | FromDiscord | <4zv4l> In reply to @takemichihanagaki3129 "Are you using any": yes I am |
19:07:27 | FromDiscord | <4zv4l> but with the setSockOpt it works great ! |
19:39:15 | FromDiscord | <pmunch> In reply to @punchcake "The mods are asleep": No we're not, we're always watching |
19:41:34 | FromDiscord | <pmunch> As long as you yield when someone wants to discuss on topic stuff here it's fine. And as long as you stay respectful of course |
19:43:11 | FromDiscord | <pmunch> If you're not respectful you aren't allowed in off topic either though. So in that case you're shit out of luck. |
19:45:53 | FromDiscord | <ambient3332> sent a code paste, see https://play.nim-lang.org/#ix=4ALb |
19:47:51 | FromDiscord | <ambient3332> 2.2ms with lower precision |
19:51:35 | FromDiscord | <michaelb.eth> @takemichihanagaki3129 you `@` mentioned a different Andreas |
20:16:12 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4ALh |
20:16:42 | FromDiscord | <takemichihanagaki3129> In reply to @michaelb.eth "<@890300313729400832> you `@` mentioned": Ohhh, OMG sorry for that! |
20:17:17 | FromDiscord | <takemichihanagaki3129> What is Andreas' account? |
20:18:53 | FromDiscord | <takemichihanagaki3129> sent a code paste, see https://play.nim-lang.org/#ix=4ALj |
20:19:45 | FromDiscord | <takemichihanagaki3129> (edit) "https://play.nim-lang.org/#ix=4ALj" => "https://play.nim-lang.org/#ix=4ALk" |
20:19:50 | FromDiscord | <takemichihanagaki3129> Can you access that file? |
20:20:04 | FromDiscord | <System64 ~ Flandre Scarlet> Which file? |
20:20:39 | FromDiscord | <tsoj> is osproc supposed to not work for nimscprits? |
20:21:07 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @takemichihanagaki3129 "Can you access that": There is no ini file in the folder I'm working in |
20:22:44 | FromDiscord | <takemichihanagaki3129> In reply to @sys64 "There is no ini": What is into your nimble file? |
20:23:52 | FromDiscord | <System64 ~ Flandre Scarlet> sent a code paste, see https://play.nim-lang.org/#ix=4ALm |
20:25:20 | FromDiscord | <takemichihanagaki3129> 🤔, there is nothing wrong with your nimble file, I think. |
20:25:23 | FromDiscord | <michaelb.eth> In reply to @takemichihanagaki3129 "What is Andreas' account?": take a look in the `#internals` channel |
20:26:07 | FromDiscord | <michaelb.eth> also not that in the past he's said he doesn't care for `@` mentions, but still fair game, I guess |
20:26:24 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @takemichihanagaki3129 "🤔, there is nothing": This is very weird |
20:26:39 | FromDiscord | <Elegantbeef> nimscript is a subset of Nim importedC code does not work↵(@tsoj) |
20:26:55 | FromDiscord | <takemichihanagaki3129> In reply to @sys64 "This is very weird": I'll have a look into each package you added... |
20:27:11 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @takemichihanagaki3129 "I'll have a look": It compiles under Windows |
20:27:42 | FromDiscord | <Elegantbeef> https://github.com/nim-lang/RFCs/issues/503 this is the roadmap |
20:27:42 | FromDiscord | <Elegantbeef> btw |
20:28:32 | FromDiscord | <Elegantbeef> The issue seems to be opensuse did not install the system lib where nimble expects |
20:28:47 | FromDiscord | <System64 ~ Flandre Scarlet> Btw is Nim 2 coming soon? |
20:28:50 | FromDiscord | <Elegantbeef> > Error\: cannot open '/usr/lib/nim/lib/system.nim' |
20:28:57 | FromDiscord | <takemichihanagaki3129> In reply to @Elegantbeef "The issue seems to": Ohhhh, I see. |
20:29:08 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @Elegantbeef "> Error\: cannot open": does not exist? |
20:29:14 | FromDiscord | <takemichihanagaki3129> In reply to @Elegantbeef "https://github.com/nim-lang/RFCs/issues/503 this is": Thanks, dude! |
20:29:29 | FromDiscord | <takemichihanagaki3129> In reply to @sys64 "does not exist?": try `cat` it... |
20:30:00 | FromDiscord | <System64 ~ Flandre Scarlet> There is no lib folder in nim folder |
20:34:56 | * | ced1 is now known as cedb |
20:47:01 | * | ntat quit (Quit: leaving) |
20:57:49 | FromDiscord | <michaelb.eth> In reply to @sys64 "Btw is Nim 2": I believe the gating factor is the fixing of `Showstopper` bugs and no additional `Showstopper` bugs appearing for some amount of time after the last one is fixed. |
20:58:04 | FromDiscord | <michaelb.eth> https://github.com/nim-lang/Nim/issues?q=is%3Aissue+is%3Aopen+label%3AShowstopper |
21:00:26 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @michaelb.eth "I believe the gating": I solved this problem↵But now I have this issue : |
21:00:29 | FromDiscord | <System64 ~ Flandre Scarlet> https://media.discordapp.net/attachments/371759389889003532/1130242576096694312/message.txt |
21:04:32 | FromDiscord | <michaelb.eth> In reply to @sys64 "I solved this problem": not sure, maybe copy/paste the super long `g++ ...` command and add in the `--verbose` flag |
21:04:55 | FromDiscord | <michaelb.eth> (edit) "copy/paste" => "copy/paste/run" | "command and" => "command, but" | removed "in" |
21:06:51 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @michaelb.eth "not sure, maybe copy/paste/run": Same thing https://media.discordapp.net/attachments/371759389889003532/1130244177385500812/message.txt |
21:16:24 | FromDiscord | <michaelb.eth> In reply to @sys64 "Same thing": not sure if it's the same problem: https://stackoverflow.com/questions/18406369/qt-cant-find-lgl-error |
21:19:58 | * | xet7 joined #nim |
21:26:27 | FromDiscord | <System64 ~ Flandre Scarlet> In reply to @michaelb.eth "not sure if it's": It helped me, thanksç https://media.discordapp.net/attachments/371759389889003532/1130249105424273479/image.png |
21:26:29 | FromDiscord | <System64 ~ Flandre Scarlet> (edit) "thanksç" => "thanks!" |
21:27:58 | * | azimut quit (Ping timeout: 240 seconds) |
21:30:09 | * | azimut joined #nim |
21:51:18 | * | azimut quit (Ping timeout: 240 seconds) |
22:14:53 | * | disso-peach quit (Quit: Leaving) |
23:36:28 | * | lucasta joined #nim |