<< 18-07-2023 >>

00:28:46FromDiscord<zanderfh> Could someone point me in the right direction here
00:28:49FromDiscord<zanderfh> I have been trying for hours
00:28:57FromDiscord<zanderfh> Basically, in python requests there is
00:29:11FromDiscord<zanderfh> params = {"data" : "moreData"} ↵requests.get(url, headers, params)
00:29:24FromDiscord<zanderfh> (edit) "params = {"data" : "moreData"} ↵requests.get(url, headers, params)" => "sent a code paste, see https://play.nim-lang.org/#ix=4AQI"
00:29:26FromDiscord<zanderfh> How do I accomplish the params part in Nim, I've tried all sorts of things and I just can't get it to work and I am not sure how to accomplish it
00:29:34FromDiscord<zanderfh> It is just not working for me
00:29:37FromDiscord<graveflo> `std/uri`
00:29:49FromDiscord<zanderfh> could you please elaborate
00:30:40FromDiscord<graveflo> https://nim-lang.org/docs/uri.html↵you can format your params using this standard library package
00:31:09FromDiscord<zanderfh> Which proc would i use
00:31:17FromDiscord<zanderfh> combine?
00:31:22FromDiscord<graveflo> `/` and `?`
00:31:55FromDiscord<zanderfh> Are you sure?
00:32:24FromDiscord<zanderfh> i guess there's only one way to find out
00:32:27FromDiscord<graveflo> yep. If the params are in the request body then you might want to do something slightly different but that is the idea
00:32:38FromDiscord<graveflo> for uri params
00:32:45FromDiscord<zanderfh> I tried putting them in body and it didnt work
00:33:05FromDiscord<graveflo> `encodeQuery` will work for the body
00:33:38FromDiscord<graveflo> but use the URI based params if you can
00:33:54FromDiscord<zanderfh> im looking on the docs and in what context would i use /
00:33:56FromDiscord<zanderfh> i understnad ?
00:34:23FromDiscord<graveflo> assuming that `url` in you python example is just the loc
00:35:01FromDiscord<graveflo> it would be `uri ? params` and that is the url for your request
00:35:53FromDiscord<zanderfh> YOOOO IT WORKED
00:35:54FromDiscord<zanderfh> no way
00:35:56FromDiscord<zanderfh> thanks so much
00:35:59FromDiscord<graveflo> yw
00:36:08FromDiscord<zanderfh> its literally 01:35 in the morning and ive been at it for ages now
00:36:11FromDiscord<zanderfh> thanks so much bro
04:37:52*cyraxjoe quit (Ping timeout: 245 seconds)
04:40:36*cyraxjoe joined #nim
05:11:56*Guest12 joined #nim
05:14:10*Guest12 quit (Client Quit)
05:18:59NimEventerNew thread by zanderfh: HTTPclient, see https://forum.nim-lang.org/t/10345
06:36:32*azimut joined #nim
06:51:11*PMunch joined #nim
07:14:58*PMunch_ joined #nim
07:17:56*PMunch quit (Ping timeout: 245 seconds)
07:45:57FromDiscord<bung8954> sent a code paste, see https://play.nim-lang.org/#ix=4ARC
07:48:38FromDiscord<demotomohiro> I think it do assign
07:49:10FromDiscord<demotomohiro> it does assign
07:49:37FromDiscord<enthus1ast> why do we have to test for a derived value with↵obj of Myderived value, btw? Why cant be this automatic?
07:50:08FromDiscord<Elegantbeef> It's automatic using methods
07:50:11FromDiscord<enthus1ast> no
07:50:23FromDiscord<enthus1ast> if i store a base in a seq
07:50:49FromDiscord<enthus1ast> then it will not catch up the correct method but the base method
07:50:52FromDiscord<bung8954> In reply to @demotomohiro "I think it do": I get nil when I use later
07:52:00FromDiscord<bung8954> I called as `newControllerCompletedHandler(b.ctx.windowHandle, b.ctx.controller, b.ctx.view, b.ctx.settings)`
07:53:40FromDiscord<Elegantbeef> Move the dispatch parameter to the first parameter or use the deprecated `--multiMethods:on`
07:53:40FromDiscord<enthus1ast> -.-
07:53:41FromDiscord<Elegantbeef> The issue with your dispatch is that you have N \ N number of possible dispatches
07:53:41FromDiscord<Elegantbeef> If you add another parameter you have N^3 and so forth
07:53:41FromDiscord<Elegantbeef> Where N is the number of inheriting objects from the base
07:55:14FromDiscord<Elegantbeef> Multimethods existed, but Nim methods are now dispatched on the first parameter alone which makes it easier to follow dispatch
07:56:00FromDiscord<enthus1ast> oh man
07:56:10FromDiscord<enthus1ast> it works. thank you Elegantbeef
07:56:23FromDiscord<Elegantbeef> Please don't say you enabled multimethods 😄
07:56:28FromDiscord<enthus1ast> no
07:57:03FromDiscord<enthus1ast> i'm not using methods and inheritance in nim that often to be honest
07:58:11FromDiscord<Elegantbeef> PS if you want `informer.doWork(bleh)` to work you can always make a `proc doWork[T: BaseType](informer: var Informer, val: var T) = doWork(val, informer)`
07:58:35FromDiscord<Elegantbeef> I guess that could just be `val: var BaseType`
07:59:51FromDiscord<enthus1ast> I'm currently exploring which api i would like to use, i'm not really settled yet
08:14:03FromDiscord<enthus1ast> Have a look, while writing a document for my notes, i broke the c gen
08:14:04FromDiscord<enthus1ast> https://play.nim-lang.org/#ix=4ARL
08:15:42FromDiscord<Elegantbeef> Hmph `var T` causes it there
08:16:25FromDiscord<enthus1ast> but the "same" code over multiple files work
08:16:39FromDiscord<enthus1ast> this is basically what i do
08:17:19FromDiscord<graveflo> is it correct to stack `ref object of`s there?
08:17:37FromDiscord<Elegantbeef> Yes
08:17:52FromDiscord<Elegantbeef> `object of T` would drop the ref
08:18:02FromDiscord<graveflo> oh good to know
08:18:05FromDiscord<enthus1ast> doing var is kind of useless here
08:18:16FromDiscord<Elegantbeef> Yea was going to say that
08:18:23FromDiscord<Elegantbeef> But this is a bug so I guess a new github issue 😄
08:18:27FromDiscord<Elegantbeef> If it doesnt exist
08:18:50FromDiscord<enthus1ast> yeah
08:34:22FromDiscord<demotomohiro> sent a code paste, see https://play.nim-lang.org/#ix=4ARO
08:44:07FromDiscord<bung8954> thanks! dont know where's the problem.
09:08:37FromDiscord<bung8954> my problem is my ptr initial value is nil
09:18:56FromDiscord<bung8954> oh, I can use `GetWindowLongPtr` get my user data inside that callback
09:29:28*jmdaemon quit (Ping timeout: 258 seconds)
11:46:01*PMunch_ is now known as PMunch
12:24:45FromDiscord<4zv4l> is there a lib to do nice user interaction in the terminal like nimble does ?
12:28:12FromDiscord<ambient3332> https://github.com/c-blake/cligen ?
12:35:11FromDiscord<jmgomez> Is there a define to test against for `nim check`?
12:41:36FromDiscord<jmgomez> There is no defined, closest thing is: `when querySetting(command) == "check":`
12:41:44FromDiscord<jmgomez> (edit) "defined," => "define,"
12:48:20NimEventerNew Nimble package! bard - Nim interface of Google Bard free API, see https://github.com/thisago/bard
12:51:05PMunch4zv4l, by the way what Nimble does isn't all that nice :P
12:51:43FromDiscord<4zv4l> I mean, it could be better for sure but it's already good xD↵I like the `tab menu` thing
12:57:24PMunchIt's so uncommon to use tab in the terminal though :P Always takes me by surprised that I can't navigate with the direction keys
13:05:00FromDiscord<punchcake> nim sucks
13:32:33PMunchWhat makes you say that?
13:39:09FromDiscord<DMXZ> In reply to @punchcake "nim sucks": Who?
13:39:34FromDiscord<punchcake> In reply to @PMunch "What makes you say": there is no gui library thats good in the whole language
13:39:36FromDiscord<punchcake> wtf bro
13:40:38PMunchAs I brought up earlier, this is simply a side effect of there not being any good GUI libraries. Not really Nim specific
13:40:54PMunchAlthough you can use pretty much all of the available ones
13:41:25FromDiscord<punchcake> In reply to @PMunch "Although you can use": nimqt doesnt work on windows
13:41:25FromDiscord<punchcake> fuck
13:41:26FromDiscord<punchcake> this
13:41:30FromDiscord<punchcake> nim language
13:42:19FromDiscord<punchcake> https://github.com/jerous86/nimqt/issues/28
13:42:27FromDiscord<punchcake> i make bug report and nobody responds
13:42:39FromDiscord<DMXZ> it is suppose to be used to write core parts of an app and for you to use another language to make the gui
13:43:00FromDiscord<punchcake> nim is advertised that it can replace my entire stack
13:43:14FromDiscord<DMXZ> NimGUI for gui?
13:43:26PMunchIt can, at least if your stack isn't made out of insane choices
13:43:50FromDiscord<DMXZ> In reply to @PMunch "It can, at least": shut up
13:43:51FromDiscord<punchcake> In reply to @PMunch "It can, at least": qt is insane?
13:43:52FromDiscord<punchcake> bruh
13:44:06PMunchAnd you've put in a bug report to someones hobby project during summer vacation times, are you surprised you don't get an immediate reply?
13:44:15FromDiscord<DMXZ> In reply to @punchcake "bruh": its just a bot bruh
13:44:20FromDiscord<punchcake> In reply to @PMunch "And you've put in": yes
13:44:26FromDiscord<odexine> In reply to @punchcake "yes": Why is that
13:44:32FromDiscord<punchcake> In reply to @DMXZ "its just a bot": you stupid mf
13:44:35PMunchOh no, QT isn't insane, that was just a general comment
13:44:37FromDiscord<punchcake> its pmunch on irc
13:44:40PMunchDMXZ, I'm not a bot..
13:44:58FromDiscord<punchcake> In reply to @odexine "Why is that": you gotta take care of your projects
13:45:01PMunchI am a moderator though, so lets keep things civil..
13:45:06FromDiscord<odexine> In reply to @punchcake "you gotta take care": It’s not an obligation
13:45:10FromDiscord<punchcake> it is
13:45:11FromDiscord<DMXZ> In reply to @PMunch "<@1130166329039650896>, I'm not a": you sure as hell talk like one
13:45:18FromDiscord<punchcake> you just not maintain a project?
13:45:19FromDiscord<odexine> Do you not see all of the “no warranty provided” lines in each license,
13:45:20FromDiscord<punchcake> like that
13:45:22FromDiscord<odexine> (edit) "license," => "license?"
13:45:36PMunchDMXZ, I talk like a bot?
13:45:36FromDiscord<punchcake> In reply to @odexine "Do you not see": i mean its standard to maintain your project
13:45:37FromDiscord<odexine> In reply to @punchcake "you just not maintain": It’s within your right to
13:45:46FromDiscord<odexine> In reply to @punchcake "i mean its standard": It’s standard yes, not obligatory
13:46:21PMunchI wouldn't call a > two day response time not maintaining their project
13:48:53FromDiscord<DMXZ> In reply to @punchcake "you stupid mf": im sorry about how your parents dropped you when you were born
13:49:07FromDiscord<punchcake> In reply to @DMXZ "im sorry about how": im about to drop your mom
13:49:17FromDiscord<leetnewb> this does not seem very civil
13:49:20FromDiscord<odexine> Jesus Christ why are you two now arguing
13:49:24FromDiscord<punchcake> In reply to @leetnewb "this does not seem": because it isnt
13:49:53FromDiscord<DMXZ> In reply to @punchcake "im about to drop": i about to f### your mom more than brain f###
13:50:09FromDiscord<punchcake> bros censoring fuck 💀
13:50:39FromDiscord<DMXZ> In reply to @punchcake "bros censoring fuck 💀": it not me you bozo
13:52:34FromDiscord<pmunch> Well that's enough of that
13:53:41FromDiscord<punchcake> agred
13:53:43FromDiscord<punchcake> (edit) "agred" => "agreed"
13:53:51FromDiscord<michaelb.eth> What’s with all the brogrammers of late? High schoolers on summer vacation?
13:54:18FromDiscord<pmunch> Wasn't there someone who did some bro-analysis a while back?
13:54:55FromDiscord<pmunch> Crap, it deleted all their messages.. Sorry future people without context, go check the IRC logs if you want to see what was going on
13:55:20FromDiscord<punchcake> https://media.discordapp.net/attachments/371759389889003532/1130860357884321983/WhatsApp_Image_2023-07-17_at_13.32.45.jpg
13:55:32FromDiscord<punchcake> i feel ashamed studying computer engineering
13:55:55FromDiscord<leetnewb> In reply to @pmunch "Crap, it deleted all": For anybody reading, almost certainly not worth your time to dig out the context :p
13:57:54FromDiscord<pmunch> In reply to @punchcake "i feel ashamed studying": In general memes aren't accepted in the main channel. Besides this is just unnecessarily hurtful, doesn't add anything useful, and generally just encourages off-topic messages
13:58:06FromDiscord<punchcake> okay
13:58:26FromDiscord<punchcake> @pmunch bro come save us
13:58:31FromDiscord<punchcake> make bindings to qt
13:58:42FromDiscord<punchcake> i'll pay you 10 usd
13:59:00FromDiscord<takko_the_boss> I just came in and am hit in the face with bro-ness.↵↵Carry on.
13:59:49PMunchtakko_the_boss, if it's any consolidation it isn't usually this bro-y in here
14:00:01FromDiscord<michaelb.eth> In reply to @punchcake "make bindings to qt": Have you tried DOtherSide?↵https://github.com/filcuc/DOtherSide
14:00:24FromDiscord<punchcake> In reply to @michaelb.eth "Have you tried DOtherSide?": yes
14:00:27FromDiscord<punchcake> it dont work on windows
14:00:33FromDiscord<punchcake> fucking windows man
14:00:42FromDiscord<ambient3332> Anyone done a lot of HTML parsin? Is there a way in the std htmlparser to find all divs with a partial class name?
14:00:44FromDiscord<takko_the_boss> I check in every now and again. I concur with your statement.↵(<@709044657232936960_=50=4dunch=5b=49=52=43=5d>)
14:00:47FromDiscord<michaelb.eth> In reply to @punchcake "it dont work on": It certainly can
14:00:49FromDiscord<ambient3332> Or do I have to regex a line location?
14:00:55FromDiscord<punchcake> In reply to @michaelb.eth "It certainly can": how
14:01:00FromDiscord<pmunch> In reply to @punchcake "i'll pay you 10": Eh, I'd rather spend my time on Futhark. That way you could easily create your own bindings. Besides, my time is worth way more than 10USD 😛 That's barely enough to buy a beer here
14:01:16FromDiscord<punchcake> In reply to @pmunch "Eh, I'd rather spend": bro i'll make it 15
14:01:37FromDiscord<punchcake> you can buy dinner with it
14:02:19FromDiscord<pmunch> I could probably get the ingredients to make an ok meal for $15, if I added some rice or something from the cupboard..
14:02:30FromDiscord<michaelb.eth> In reply to @punchcake "how": if they’re still using it, check out how Status Desktop is configured to build for Windows; if they’ve moved off it, look at an older tagged release: https://github.com/status-im/status-desktop
14:03:43FromDiscord<punchcake> In reply to @michaelb.eth "if they’re still using": where does it say
14:03:53FromDiscord<Clonkk> Status desktop is based on QML \: https://github.com/status-im/nimqml
14:04:09FromDiscord<Clonkk> That at least should work since it's alreayd being used
14:05:21FromDiscord<punchcake> bro
14:05:26FromDiscord<treeform> And many desktop apps are now just electron/webview. So any Nim web framework will do.
14:05:26FromDiscord<punchcake> im asking on how to compile dotherside
14:05:30FromDiscord<punchcake> not nimqml
14:05:38FromDiscord<punchcake> In reply to @treeform "And many desktop apps": treeform fix fidget
14:05:38FromDiscord<punchcake> ffs
14:05:45FromDiscord<Clonkk> Yup↵(@treeform)
14:05:53FromDiscord<ambient3332> In reply to @treeform "And many desktop apps": ...the worst desktop apps
14:06:03FromDiscord<punchcake> DAMN BRO
14:06:11FromDiscord<punchcake> is it so hard to get a working gui in nim
14:06:26FromDiscord<treeform> its so hard to get working gui anywhere
14:06:31FromDiscord<Clonkk> sure it's not optimizied but it works for simple stuff↵(@ambient3332)
14:06:35FromDiscord<punchcake> In reply to @treeform "its so hard to": qt and C++ is easy
14:06:36FromDiscord<ambient3332> Visual C# makes it very easy
14:07:07FromDiscord<treeform> Having shipped a visual C# app to thousndsa of people. Nope. Should have used electron.
14:07:18FromDiscord<punchcake> electron sucks
14:07:19FromDiscord<punchcake> ass
14:07:36FromDiscord<punchcake> its slow af
14:07:50FromDiscord<ambient3332> I'd rather use Godot than Electron just out of principle
14:08:05FromDiscord<punchcake> In reply to @ambient3332 "I'd rather use Godot": qt
14:08:14FromDiscord<punchcake> qt doesnt cost much if your 1 dev
14:08:39FromDiscord<Clonkk> Even Java can't manage to have a universal GUI stacks that works everywhere. In the long run, complex GUI needs to be specialized
14:08:48FromDiscord<punchcake> In reply to @Clonkk "Even Java can't manage": javafx
14:08:50FromDiscord<punchcake> swing
14:09:21FromDiscord<treeform> I have shipped VB6 WinForms, C# WFP, and even wxwidgets at some point. Electron is the best of them so far.
14:09:32FromDiscord<ambient3332> In reply to @treeform "I have shipped VB6": why?
14:09:44FromDiscord<Clonkk> Have you actually tried to use them or are you just listing google search ? Having worked on complex swing application, it's not all flowers and rainbow and not that "platform" agnostic↵(@punchcake)
14:09:51FromDiscord<treeform> It just works. Its fast. You can style it. There are many tutorials online.
14:09:56FromDiscord<punchcake> In reply to @Clonkk "Have you actually tried": yup i did
14:09:59FromDiscord<punchcake> javafx
14:10:03FromDiscord<ambient3332> In reply to @treeform "It just works. Its": It's slow
14:10:07FromDiscord<treeform> WFP is really really slow at rendering text.
14:10:14FromDiscord<punchcake> wrote some 40k line app couple years ago and it was seemless
14:10:19FromDiscord<ambient3332> Win32 is very fast at rendering text
14:10:25FromDiscord<punchcake> mem usage was as high as electron tho
14:10:37FromDiscord<treeform> Yes but C# means WFP which is 1000 times slower then Electron.
14:10:45FromDiscord<ambient3332> WinForms
14:10:57FromDiscord<treeform> WinForms are not protible and hard to style.
14:11:10FromDiscord<treeform> Make everything look like 2002
14:11:25FromDiscord<ambient3332> Well once styling becomes a critical selling point, you can just make the entire app in Unity
14:11:34FromDiscord<punchcake> In reply to @ambient3332 "Well once styling becomes": qt
14:11:43FromDiscord<punchcake> qt is the best gui framework ever made
14:11:59FromDiscord<treeform> I have not tried Unity for app dev. But I have doubts ... having never seen one.
14:12:09FromDiscord<treeform> (edit) "I have not tried Unity for ... app" added "heavy 2d GUI"
14:12:24*xet7 quit (Remote host closed the connection)
14:12:35FromDiscord<ambient3332> Which apps are both 1. Heavy 2D GUI app, and 2. Styling is a mandatory requirement
14:13:22FromDiscord<treeform> I don't know Reddit, Discord, Slack, Twitter, Google (Gmail, Calendar, etc...), ?
14:13:31FromDiscord<ambient3332> None of those are heavy 2d GUI apps
14:13:38FromDiscord<ambient3332> gmail calendar are web native apps
14:14:22FromDiscord<Clonkk> So use QML↵(@punchcake)
14:14:32FromDiscord<punchcake> In reply to @Clonkk "So use QML (<@655759729477287956>)": IVE FUCKING BEEN TRYING TOO
14:14:33FromDiscord<punchcake> (edit) "TOO" => "TO"
14:14:36FromDiscord<punchcake> JESUS CHRIST
14:15:20FromDiscord<treeform> Of the apps I have currently open 50% of them are electron apps.
14:15:37FromDiscord<treeform> And the other 50% are not portable.
14:15:38FromDiscord<punchcake> In reply to @treeform "Of the apps I": bros ram is 200 gb
14:16:23FromDiscord<treeform> Apps I have open, Finder, Chrome, Piximator ( native apps) and discord, vscode, figma (web apps).
14:16:31FromDiscord<treeform> Chrome is kind of inbetween
14:16:36FromDiscord<Clonkk> Like i've already linked you, there is a nim qml bindings maintained by status that is actually used in production so if you can't manage to make it work, you're just doing it wrong.↵https://github.com/status-im/status-desktop↵https://github.com/status-im/nimqmlThis should cover all your need↵(@punchcake)
14:16:36FromDiscord<treeform> Finder is OS app
14:16:43FromDiscord<ambient3332> How is Chrome in between?
14:16:53FromDiscord<punchcake> In reply to @Clonkk "Like i've already linked": nimqml isnt the problem
14:16:54FromDiscord<treeform> The only native app is Piximator wich is probably written in ObjC
14:16:55FromDiscord<punchcake> dotherside is
14:17:04FromDiscord<punchcake> which IDK WHERE TO FUCKING PUT IT IN PATH IN WINDOWS
14:17:07FromDiscord<punchcake> WTF DO THEY MEAN
14:17:17FromDiscord<nervecenter> There are no good GUI solutions anywhere, only the least-worst for your application. Maintainers of small projects are not on-call customer service. You will have to roll your own solutions sometimes.
14:17:29FromDiscord<nervecenter> (edit) "There are no good GUI solutions anywhere, only the least-worst for your application. Maintainers of small projects are not on-call customer service. You will have to roll your own solutions ... sometimes." added "and fixes"
14:17:29FromDiscord<ambient3332> All webview apps are memory hogs and run with 10x more latency than native apps in my experience
14:17:34FromDiscord<Dale 데울> Chrome is basically electron but you can’t dynlib it
14:17:44FromDiscord<punchcake> In reply to @ambient3332 "All webview apps are": js devs are lazy
14:17:49FromDiscord<punchcake> thats why
14:17:55FromDiscord<punchcake> webviews arent the problem
14:18:02FromDiscord<treeform> In reply to @ambient3332 "How is Chrome in": I do think that is false, many native apps are so crappy.
14:18:21FromDiscord<bung8954> `~(WS_THICKFRAME | WS_MAXIMIZEBOX)` what's the `~` in nim ?
14:18:32FromDiscord<djazz> `not`
14:18:39FromDiscord<ambient3332> Many native apps are so crappy for the same reason Electron is so crappy. A layer cake of abstractions
14:18:52FromDiscord<treeform> I agree
14:19:13FromDiscord<treeform> But it feels like native layers in many of the propular native GUI libs is just as slow and crappy as chrome.
14:19:27FromDiscord<treeform> Main example: WPF
14:19:40FromDiscord<ambient3332> Qt is a lot more snappy than any Electron app
14:19:48FromDiscord<ambient3332> WPF is trash and should not be used
14:19:50FromDiscord<punchcake> In reply to @ambient3332 "Qt is a lot": telegram app proves that
14:20:04FromDiscord<punchcake> compare it to discord
14:20:18*PMunch quit (Quit: Leaving)
14:20:30FromDiscord<Clonkk> So Nim is bad because you don't know how to use an OS. Got it, thanks for your constructive criticism, spoken in a calm and elegant manner.↵(@punchcake)
14:20:32*xet7 joined #nim
14:20:47FromDiscord<nervecenter> If you make an Electron app without a huge shadow-dom library like React, you can make it reasonably fast. Bonus points by using Node's `exec` to call a Nim library to do all the hard work.
14:21:00FromDiscord<punchcake> In reply to @Clonkk "So Nim is bad": ok buddy talk to me in calm after 4 days of trying to set up dotherside
14:21:04FromDiscord<nervecenter> (edit) "library" => "executable"
14:21:08FromDiscord<punchcake> im gonna show them the other side of my dick i swear
14:21:39FromDiscord<ambient3332> In reply to @nervecenter "If you make an": How much memory would a simple calculator app made in that way use?
14:21:50FromDiscord<ambient3332> Compared to Nim/GTK
14:21:52FromDiscord<nervecenter> Not a very useful test case for Electron
14:22:27FromDiscord<nervecenter> If you're making a large multi-function application that needs to display lots of data, documents, and potentially plots, it becomes a reasonable choice
14:22:31FromDiscord<nervecenter> It's nonsense for a calculator
14:22:40FromDiscord<Clonkk> IMO comparing simple app will always advantage native framework because it has a low entry cost while web app has a high entry cost.↵(@ambient3332)
14:23:15FromDiscord<ambient3332> Discord is just IRC with a bit more user friendly interface, yet takes 1000000x more memory and is about as much slower
14:23:20FromDiscord<Clonkk> It's like benchmarks that compare the size of a hello world binary between language
14:23:43FromDiscord<nervecenter> In reply to @ambient3332 "Discord is just IRC": So go ahead and make your own if it's that easy
14:24:03FromDiscord<ambient3332> In reply to @nervecenter "So go ahead and": I would, if it was profitable
14:24:08FromDiscord<nervecenter> d'oh!
14:24:29FromDiscord<punchcake> this is the error thats making me go crazy https://media.discordapp.net/attachments/371759389889003532/1130867694242123896/image.png
14:24:41FromDiscord<punchcake> even though i can use qml in C++ just fine
14:26:44FromDiscord<punchcake> history has been made https://media.discordapp.net/attachments/371759389889003532/1130868257046417428/image.png
14:28:19FromDiscord<michaelb.eth> You’ll probably end up hating the combination of Nim and Qt/QML, just fyi
14:28:32FromDiscord<punchcake> In reply to @michaelb.eth "You’ll probably end up": i've looked at the dev api's
14:28:32FromDiscord<punchcake> they
14:28:37FromDiscord<punchcake> (edit) "they" => "they're very good"
14:28:45FromDiscord<punchcake> better than C++ qml actually
14:28:58FromDiscord<ambient3332> For my purposes ImGUI should be enough
14:30:07FromDiscord<punchcake> the entire issue was visual studio was supposed to put dotherside in my path after building but it turns out it needs admin perms
14:30:11FromDiscord<punchcake> so thats that
14:30:51FromDiscord<michaelb.eth> In reply to @punchcake "i've looked at the": It’s not that, more so that as soon as you need to do multithreaded stuff you’ll start to realize that Qt, being architected around common assumptions about memory management in C++, doesn’t mesh well with Nim
14:31:50FromDiscord<punchcake> In reply to @michaelb.eth "It’s not that, more": why what would happen
14:31:58FromDiscord<michaelb.eth> maybe you’ll have a slightly better time with Nim 2.0’s orc mm than with its legacy refc mm
14:33:48FromDiscord<michaelb.eth> In reply to @punchcake "why what would happen": Because in Nim it can be tricky to read/write across threads when `ref object` is involved, and your going to have a lot of that
14:34:32FromDiscord<michaelb.eth> but again maybe with Nim orc you’ll have a better time than my experiences with refc, which is still the default in Nim 1.6
14:34:59FromDiscord<michaelb.eth> (edit) "your" => "you’re"
14:35:09FromDiscord<punchcake> In reply to @michaelb.eth "Because in Nim it": define read and write across thread
14:35:11FromDiscord<punchcake> its simple
14:35:25FromDiscord<punchcake> if its a shared resource that needs to be acessed between threads use a mutex
14:35:32FromDiscord<punchcake> if its only read then no mutex needed
14:35:38FromDiscord<michaelb.eth> No that won’t help you with refc mm
14:35:44FromDiscord<punchcake> what?????????????????
14:35:57FromDiscord<punchcake> refc just doesnt obey multithreaded rule?
14:35:59FromDiscord<punchcake> wtf
14:36:49FromDiscord<michaelb.eth> Because even a read across thread screws up the garbage collector’s reference count and some time later (non deterministic) you’ll get a crash with SIGSEGV
14:36:55FromDiscord<michaelb.eth> welcome to Nim
14:38:02FromDiscord<michaelb.eth> anyway just trying to warn you about difficulties ahead, maybe spare you some pain, or at least you’ll know why you’re having pain
14:38:36FromDiscord<punchcake> In reply to @michaelb.eth "Because even a read": can i go the no gc way?
14:38:41FromDiscord<michaelb.eth> Nope
14:38:45FromDiscord<punchcake> shit
14:38:53FromDiscord<punchcake> even with boehm this happens?
14:39:22FromDiscord<michaelb.eth> good question, haven’t tried with boehm
14:40:33FromDiscord<michaelb.eth> would be a good exercise to do some small example of lots of reading/writing back and forth across threads with Nim boehm and see what happens
14:40:56FromDiscord<michaelb.eth> But don’t put Qt in the mix, keep it simple
14:41:24FromDiscord<punchcake> i mean is this a nim bug or its just how nim is designed?
14:41:44FromDiscord<michaelb.eth> It’s just life with refc, it’s how it is
14:43:35FromDiscord<michaelb.eth> Orc is different, but you still have to be careful of referencing across threads because of how the reference counts work, look back in internals channel for discussions in recent months re: atomicref, which is on an experimental Nim branch, or maybe it’s in devel now
14:44:21FromDiscord<Clonkk> You can use --mm\:orc + Channel to safely uses ref across thread↵(@michaelb.eth)
14:44:38FromDiscord<punchcake> In reply to @michaelb.eth "Orc is different, but": can i avoid all of these problems by simply copying what i need to the thread?
14:44:42FromDiscord<Clonkk> The issue mentionned above with refc, is that using refc each thread has its own heap
14:45:18FromDiscord<Clonkk> Whereas --mm\:orc has a shared heap
14:45:52FromDiscord<michaelb.eth> In reply to @Clonkk "You can use --mm\:orc": Yes, but it’s important to architect around message passing style, which is not necessarily how people tend to write programs, but it is possible for sure
14:46:08FromDiscord<punchcake> In reply to @michaelb.eth "Yes, but it’s important": +1 for not using messages
14:46:19FromDiscord<punchcake> they increase compleixty by a lot
14:46:35FromDiscord<michaelb.eth> Right but that’s what you’ll need to do
14:46:49FromDiscord<Clonkk> You can use https://github.com/nim-lang/threading with --mm\:orc and you should have all the tools you need for multithreading↵(@punchcake)
14:47:29FromDiscord<Clonkk> You can use channel (which really aren't that bad), smartptrs, atomics
14:47:47FromDiscord<Clonkk> Which covers most use case
14:47:49FromDiscord<michaelb.eth> Hope it works 😄
14:48:08FromDiscord<punchcake> fair enough
14:48:15FromDiscord<punchcake> orc is what i plan to use anyways
14:48:18FromDiscord<Clonkk> I use threading with --mm\:orc and don't have any issues so far
14:48:27FromDiscord<punchcake> so far is they key
14:48:33FromDiscord<punchcake> (edit) "they" => "the"
14:48:42FromDiscord<michaelb.eth> Just don’t use orc with 1.6
14:48:43FromDiscord<Clonkk> The biggest paint points for me so far is managing the threads object
14:49:08FromDiscord<punchcake> In reply to @michaelb.eth "Just don’t use orc": wdym
14:49:14FromDiscord<michaelb.eth> It’s bugged
14:49:19FromDiscord<punchcake> then what do i use
14:49:21FromDiscord<michaelb.eth> Stick with 2.0
14:49:30FromDiscord<punchcake> 2.0 is released?
14:49:33FromDiscord<Clonkk> That is my setup and it works. Sure 2.0 will improve things↵(@michaelb.eth)
14:49:39FromDiscord<michaelb.eth> devel branch
14:49:47FromDiscord<Clonkk> But telling people that orc is unusable with 1.6 is wrong
14:49:48FromDiscord<punchcake> so it isnt stable
14:50:20FromDiscord<Clonkk> All compiler have bugs, I haven't met any "blocking" issues with orc + 1.6
14:50:32FromDiscord<michaelb.eth> In reply to @Clonkk "But telling people that": Ask the Status folks, in their experience it’s got some showstopper problems in 1.6
14:51:04FromDiscord<punchcake> downloaded and installed the status client
14:51:09FromDiscord<punchcake> pretty neat and well done
14:51:27FromDiscord<Clonkk> The Status folks works on some very big & complex application that aren't necessarily comparable most usgae
14:52:08FromDiscord<punchcake> https://status.app/u/zQ3shkPWcjij1K9azw4TiNwm1Dmro4K67ArHcY1yRwHwfqCsv
14:52:11FromDiscord<punchcake> somone send me a message
14:52:32FromDiscord<michaelb.eth> True but at the same time they are also simply running their Nim programs longer and at larger scale
14:54:07FromDiscord<punchcake> i think nimqml's fork made by the status guys is the best to use
14:54:23FromDiscord<punchcake> if they're using it for they're software they are relying on it to not break
14:54:28FromDiscord<michaelb.eth> Probably
14:54:30FromDiscord<punchcake> its even production software too
14:55:51FromDiscord<punchcake> there is only 1 issue thought, text looks blurry for some reason
15:00:40FromDiscord<punchcake> but why did the signal team choose nim for their client?
15:00:44FromDiscord<punchcake> its a huge bet
15:03:54FromDiscord<michaelb.eth> It was, I was there at the time, and other options were considered, but Nim was chosen because it was being used successfully by the teams working on protocols.
15:04:22FromDiscord<michaelb.eth> (edit) "was," => "was a huge bet,"
15:05:01FromDiscord<michaelb.eth> (edit) "the" => "other Status"
15:05:21FromDiscord<punchcake> pretty nice seeing nim in production software
15:05:36FromDiscord<michaelb.eth> e.g. the teams working on Nimbus ethereum client and the Waku protocol
15:06:59FromDiscord<punchcake> very nice
15:09:55FromDiscord<nervecenter> I use Nim for an engineering data analysis CLI application that gets invoked by server-side PHP or can be run locally, and now will also back an Electron GUI
15:11:41FromDiscord<punchcake> In reply to @michaelb.eth "e.g. the teams working": after seeing that a company that has raised 100 million dollars using nim and qml in production i will for sure start using it
15:11:54FromDiscord<punchcake> In reply to @nervecenter "I use Nim for": use nim qml
15:12:08FromDiscord<punchcake> or treat your customers like shit with electron
15:13:24FromDiscord<nervecenter> Find me the greatest QML interactive plotting library you can and I'll get right on it
15:13:31FromDiscord<nervecenter> (edit) "QML" => "Qt"
15:13:51FromDiscord<punchcake> https://github.com/xmake-io/xmake-repo
15:13:56FromDiscord<punchcake> lets go my pr got merged
15:14:30FromDiscord<ambient3332> HTML definitely has an edge when it comes to plotting. Yet write me Substance Painter in Electron
15:14:32FromDiscord<punchcake> In reply to @nervecenter "Find me the greatest": bet
15:14:32FromDiscord<punchcake> https://www.qcustomplot.com/
15:14:56FromDiscord<punchcake> https://github.com/jkriege2/JKQtPlotter
15:15:20FromDiscord<michaelb.eth> In reply to @punchcake "https://www.qcustomplot.com/": GPL
15:15:25FromDiscord<punchcake> so?
15:15:41FromDiscord<punchcake> pay for it ya cheap ass
15:15:53FromDiscord<punchcake> if your already gonna pay for qt then pay for the plotting
15:17:19FromDiscord<michaelb.eth> Don’t assume the worst. For example, I tend to work on open source projects (my own and others) and I don’t want GPL in the mix, though LGPL is okay
15:18:19FromDiscord<michaelb.eth> In reply to @punchcake "if your already gonna": just use it open source, it’s mostly LGPL, don’t need to pay Qt for it unless you need a support contract
15:18:39FromDiscord<punchcake> or your gonna static link
15:18:42FromDiscord<michaelb.eth> (edit) "Don’t assume the worst. For example, I tend to work on open source projects (my own and others) and I don’t want GPL in the mix, though LGPL is okay ... " added "for me"
15:19:03FromDiscord<punchcake> idk if using dotherside is considered static linking or what since i just have to put the dll/so
15:19:12FromDiscord<ambient3332> GPL3 restricts free labor that big companies exploit, yet it also restricts freedom for good actors. Depends on what you're doing. Entirely FOSS stack? GPL3 is great
15:19:19FromDiscord<michaelb.eth> In reply to @punchcake "or your gonna static": Nope, that’s just Qt marketing FUD that you can’t static link.
15:19:38FromDiscord<punchcake> In reply to @michaelb.eth "Nope, that’s just Qt": hm i see
15:19:48FromDiscord<punchcake> i think LGPL requires your program to be relinkable
15:20:04FromDiscord<punchcake> i guess you could ship the object files too or make them avaliable?
15:20:11FromDiscord<michaelb.eth> Exactly
15:20:21FromDiscord<michaelb.eth> I explained here recently: https://forum.nim-lang.org/t/10301#68810
15:21:16FromDiscord<punchcake> "in a form that can be relinked"
15:21:28FromDiscord<michaelb.eth> In reply to @ambient3332 "GPL3 restricts free labor": Opinions differ, but why not just always dual-license under MIT and Apache2?
15:21:31FromDiscord<punchcake> does shipping the exe alone consider it to be relinkable?
15:21:37FromDiscord<michaelb.eth> In reply to @punchcake "does shipping the exe": No
15:21:45FromDiscord<punchcake> then what do i got to ship
15:21:56FromDiscord<punchcake> the object files too?
15:22:07FromDiscord<punchcake> so just exe + obj files
15:22:23FromDiscord<michaelb.eth> ship the exe, and make object file available if requested or on public http server or something
15:22:31FromDiscord<ambient3332> In reply to @michaelb.eth "Opinions differ, but why": FOSS dev and proprietary development are two entirely different bubbles which I don't like to mix. Working without any compensation for people who use my work to make money just doesn't sit right with me.
15:22:46FromDiscord<ambient3332> Of course libraries are a different matter
15:23:07FromDiscord<punchcake> ahhh so i can put on my website "in order to comply with licencing restrections the object files are avaliable here "
15:23:08FromDiscord<nixfreak> Just getting into threads and concurrency , is learning about posix pthreads a good into to nim threads? https://github.com/freebendy/ben-books/blob/master/POSIX_Thread/pthread-primer.pdf
15:23:27FromDiscord<nixfreak> (edit) "into" => "intro"
15:24:33FromDiscord<punchcake> In reply to @michaelb.eth "ship the exe, and": if im making an app i'll probably hire a lawyer for 1 hour
15:24:36FromDiscord<punchcake> doesnt cost much
15:27:21FromDiscord<punchcake> https://media.discordapp.net/attachments/371759389889003532/1130883514687037500/image.png
15:27:35FromDiscord<punchcake> nah tho qt license price is going craaaaaaazy
15:29:17*xet7 quit (Quit: Leaving)
15:29:21FromDiscord<punchcake> ok thats better https://media.discordapp.net/attachments/371759389889003532/1130884016233533511/image.png
15:29:46FromDiscord<punchcake> In reply to @punchcake "": if i have 10 devs thats like 40k a month
15:29:49FromDiscord<punchcake> (edit) "month" => "year"
15:29:51FromDiscord<punchcake> damn
15:31:05FromDiscord<punchcake> but idk if getting into an iron clad with Qt is a good idea or not
15:35:31FromDiscord<ambient3332> In reply to @nixfreak "Just getting into threads": I just use OpenMP, and it works like this: for i in 0..<x => for i in 0||(x+1), and the loop now runs in parallel
15:36:16FromDiscord<ambient3332> (edit) "0||(x+1)," => "0||(x-1),"
15:37:00FromDiscord<ambient3332> As far as I understand it, Nim abstracts threads so you don't have to worry about if you have POSIX threads or something else
15:39:00FromDiscord<michaelb.eth> In reply to @punchcake "if im making an": yes, good idea if it's a commercial project
15:39:50FromDiscord<punchcake> In reply to @michaelb.eth "yes, good idea if": but how would qt know im using the foss version on my closed source static linked app?
15:42:17FromDiscord<nervecenter> probably by scanning the executable for binary blobs that look like pieces of Qt compiled with `-02`
15:42:33FromDiscord<nervecenter> (edit) "`-02`" => "`-O2`"
15:42:45FromDiscord<punchcake> even if i obfoscate the app?
15:42:59FromDiscord<nervecenter> This is very elaborate
15:43:18FromDiscord<punchcake> im tryna dodge the 300 usd a month
15:44:34FromDiscord<punchcake> jesus qt makes 121 million euro a year in revenue
15:44:43FromDiscord<odexine> if you're ever discovered you're gonna be paying way more than you would have had you just paid 300 a month
15:44:44FromDiscord<odexine> ngl
15:45:31FromDiscord<punchcake> In reply to @odexine "if you're ever discovered": im literally rich if i make 300 usd a month
15:48:15FromDiscord<michaelb.eth> sent a long message, see http://ix.io/4ATE
15:49:20FromDiscord<michaelb.eth> While you should still consult with a lawyer — and I'll not that I am not a lawyer (IANAL) — if you do that, then you should be okay per the terms of the LGPL lice nse.
15:49:26FromDiscord<michaelb.eth> (edit) "lice nse." => "license."
15:49:58FromDiscord<michaelb.eth> (edit) "http://ix.io/4ATE" => "http://ix.io/4ATG"
15:50:18FromDiscord<punchcake> https://github.com/teslamotors/qt
15:50:19FromDiscord<punchcake> like this?
15:51:31FromDiscord<odexine> In reply to @michaelb.eth "While you should still": you anal??? :baqua:
15:51:44FromDiscord<odexine> sorry had to
15:51:53FromDiscord<michaelb.eth> lol
15:51:54FromDiscord<punchcake> In reply to @odexine "you anal??? <:baqua:746617285057314928>": XD
15:52:18FromDiscord<punchcake> bro i'll just get the small busniess license
15:52:32FromDiscord<punchcake> its only 500 usd a year
15:52:35FromDiscord<odexine> sorry do you mind if you either link me the reason you need the business license or tell me
15:52:40FromDiscord<punchcake> a bank loan would suffice
15:52:46FromDiscord<odexine> because i dont actually know why
15:52:52FromDiscord<punchcake> In reply to @odexine "sorry do you mind": im making a closed source app
15:52:59FromDiscord<punchcake> static linked
15:53:09FromDiscord<michaelb.eth> so you think I'm full of shit, or what?
15:53:14FromDiscord<punchcake> no
15:53:15FromDiscord<michaelb.eth> if so, that's fine
15:53:23FromDiscord<punchcake> nim qml links static
15:53:37FromDiscord<punchcake> i just need to ship the qml files and also the dotherside dll
15:53:46FromDiscord<punchcake> so idk what to do to dynamic link the bullshit
15:54:26FromDiscord<punchcake> wait i gotta try something
15:54:33FromDiscord<michaelb.eth> wdym? what's the technical thing you don't understand or that's a problem? and how does that relate to needing a commercial license
15:54:39FromDiscord<michaelb.eth> (edit) "license" => "license?"
15:54:44FromDiscord<michaelb.eth> (edit) "if so, that's fine ... " added "😄"
15:56:19FromDiscord<punchcake> In reply to @michaelb.eth "wdym? what's the technical": nvm it links dynamic
15:56:28FromDiscord<punchcake> it was pulling the qt in my path thats why
15:56:46FromDiscord<punchcake> ok so we still can use dynamic qt
15:56:52FromDiscord<punchcake> and not pay the bullshit
15:57:26FromDiscord<nixfreak> In reply to @ambient3332 "I just use OpenMP,": is openMP a nim module ?
15:57:28FromDiscord<michaelb.eth> or, you know, static link and don't pay :facepalm:
15:57:43FromDiscord<punchcake> In reply to @michaelb.eth "or, you know, static": nah its fine dynamic link
15:57:52FromDiscord<ambient3332> sent a code paste, see https://play.nim-lang.org/#ix=4ATJ
15:57:53FromDiscord<michaelb.eth> anyway, if we want to discuss further about licensing and Qt, probably better to move to offtopic channel
15:58:11FromDiscord<punchcake> In reply to @michaelb.eth "anyway, if we want": sure
15:59:19FromDiscord<nixfreak> sent a code paste, see https://play.nim-lang.org/#ix=4ATK
16:00:56FromDiscord<punchcake> huh
16:01:32FromDiscord<punchcake> sent a code paste, see https://play.nim-lang.org/#ix=4ATN
16:02:16FromDiscord<ambient3332> In reply to @nixfreak "OK , I actually": There are simple examples https://nim-lang.org/docs/threads.html
16:02:24FromDiscord<michaelb.eth> sounds familiar, trying to remember how that was solved in Status Desktop
16:02:27FromDiscord<punchcake> (edit) "https://play.nim-lang.org/#ix=4ATN" => "https://play.nim-lang.org/#ix=4ATO"
16:03:05FromDiscord<ambient3332> sent a code paste, see https://play.nim-lang.org/#ix=4ATP
16:03:06*sagax joined #nim
16:03:28FromDiscord<punchcake> In reply to @michaelb.eth "sounds familiar, trying to": please do
16:03:32FromDiscord<punchcake> or i am fucked
16:03:33FromDiscord<michaelb.eth> In reply to @punchcake "please do": https://github.com/search?q=repo%3Astatus-im%2Fstatus-desktop%20windeployqt&type=code
16:03:49FromDiscord<michaelb.eth> you run it against dotherside.dll, not the exe
16:03:54FromDiscord<michaelb.eth> if you're linking dynamically
16:04:04FromDiscord<punchcake> you sure?
16:04:06FromDiscord<punchcake> lemme try
16:04:20FromDiscord<ambient3332> OpenMP works on shared memory tho
16:04:24FromDiscord<ambient3332> with Nim
16:05:07FromDiscord<ambient3332> I'm not sure if non-shared memory threads should be called threads or just processes
16:05:15FromDiscord<punchcake> In reply to @michaelb.eth "you run it against": IT WORKS
16:05:20FromDiscord<punchcake> man your a fucking wizard
16:05:49FromDiscord<michaelb.eth> 🧙‍♂️
16:05:55FromDiscord<punchcake> XDDDDDD
16:06:10FromDiscord<punchcake> In reply to @michaelb.eth "you run it against": also i asume its same for linux and macos
16:06:18FromDiscord<punchcake> just run it on dotherside not exe
16:06:18FromDiscord<michaelb.eth> let's see
16:06:44FromDiscord<michaelb.eth> mac: https://github.com/search?q=repo%3Astatus-im%2Fstatus-desktop+macdeployqt&type=code
16:07:22FromDiscord<michaelb.eth> you run macdeployqt against the .app bundle that isn't fully bundled yet
16:07:51FromDiscord<punchcake> wdym
16:07:53FromDiscord<michaelb.eth> and there were two layers for some reason, I don't remember why it had to be that way, but I remember pulling out a lot of my hair figuring it out
16:07:58FromDiscord<punchcake> nim generates a .app for mac?
16:08:24FromDiscord<michaelb.eth> no, you have to build it up yourself
16:08:32FromDiscord<michaelb.eth> it's just a directory, not hard
16:08:35FromDiscord<punchcake> what do i put in it
16:08:47FromDiscord<punchcake> im not experince with windows
16:08:50FromDiscord<punchcake> (edit) "windows" => "mac"
16:09:00FromDiscord<michaelb.eth> read the status-desktop Makefile, it's all there
16:09:01FromDiscord<punchcake> im a windows user that gets cucked with my data
16:09:32FromDiscord<punchcake> In reply to @michaelb.eth "and there were two": when bundling the app is harder than making it
16:09:33FromDiscord<punchcake> xd
16:09:35FromDiscord<michaelb.eth> and I apologize for much of the Makefile, I hadn't done much work with `make` previously (other than running it), so it's a mess
16:09:46FromDiscord<punchcake> its fine
16:09:59FromDiscord<michaelb.eth> I haven't been involved with it for 2 years, but I still recognize a lot of it as stuff I worked on
16:10:45FromDiscord<punchcake> so wait
16:10:48FromDiscord<punchcake> let me get this straight
16:11:07FromDiscord<punchcake> so i dont get sued by daddy qt the pimp i have to fork qt and put all the sources there?
16:11:10FromDiscord<punchcake> that i am using
16:11:12FromDiscord<michaelb.eth> (edit) "I haven't been involved with it for 2 years, but I still recognize a lot of it ... as" added "(the innards of the Makefile)"
16:11:17FromDiscord<punchcake> if i dynamiclly link
16:11:39FromDiscord<michaelb.eth> nah, just get the qt sources / compiled libs the usual way, via package manager or Qt installer or whatever
16:11:52FromDiscord<michaelb.eth> but you should fork and link to your fork for compliance with LGPL
16:12:12FromDiscord<punchcake> what if my fork is just the same as regular qt
16:12:14FromDiscord<michaelb.eth> "link" — in the documentation, the Help menu, etc.
16:12:18FromDiscord<punchcake> i didnt mod anything
16:13:12FromDiscord<odexine> you dont need to fork if you make no changes
16:13:13FromDiscord<michaelb.eth> doesn't matter, the FSF has pointed out in the past that implicitly or explicitly saying, "hey, it's open source stuff, and you can find it on GitHub, etc." doesn't satisfy the terms
16:13:18FromDiscord<odexine> really
16:13:21FromDiscord<michaelb.eth> yes
16:13:30FromDiscord<odexine> sounds dumb
16:13:38FromDiscord<michaelb.eth> but, consider that we're talking about a compiled distributable
16:13:48FromDiscord<punchcake> thats closed source
16:14:04FromDiscord<michaelb.eth> I'm not talking about when authoring a library or open source app that someone will compile themselves
16:14:17FromDiscord<punchcake> cant i put in my site that i havent modifed the qt sources
16:15:48FromDiscord<michaelb.eth> alternatively, print out the sources and buy a second-hand copy machine, and put a mailing address in the Help menu where users can send a written request via postal service, and then mail them back a copy of the printed sources
16:16:00FromDiscord<michaelb.eth> I think that technically that would be in compliance
16:16:17FromDiscord<michaelb.eth> but seriously, just fork it, and sync `master` occasionally
16:16:41FromDiscord<punchcake> just like how tesla did it?
16:17:06FromDiscord<punchcake> In reply to @punchcake "https://github.com/teslamotors/qt": here
16:18:21FromDiscord<punchcake> why is this so complicated
16:18:23FromDiscord<punchcake> legal bsd
16:18:25FromDiscord<punchcake> (edit) "bsd" => "bs"
16:21:03FromDiscord<punchcake> one way i can think of is making my app open source but i make the build process hard and undocumented
16:21:15FromDiscord<punchcake> so you can see the source but you cant do anything with it
16:25:28FromDiscord<michaelb.eth> In reply to @punchcake "just like how tesla": yes, like that, it's sufficient
16:26:09FromDiscord<michaelb.eth> In reply to @punchcake "why is this so": it's not really, seems more like you're overcomplicating it
16:26:55FromDiscord<nixfreak> In reply to @ambient3332 "There are simple examples": Yes, I do know about the entry , thank you for the info.
16:37:24*ntat joined #nim
16:51:11FromDiscord<djazz> Nim check froze up computer... Umm just hovering static loop thing in vscode https://media.discordapp.net/attachments/371759389889003532/1130904611214069930/DSC_8175.jpg
16:53:16FromDiscord<punchcake> In reply to @djazz "Nim check froze up": prolly froze because you dont got ram
16:54:52FromDiscord<odexine> no i think its known that nim check and nimsuggest commonly have memory issues
16:57:35FromDiscord<punchcake> In reply to @odexine "no i think its": and they dont fix it
16:57:39FromDiscord<punchcake> isnt it with gc
16:57:42FromDiscord<odexine> its a hard fix
16:57:44FromDiscord<punchcake> the gc rn 😴
16:57:45FromDiscord<odexine> its not really with the gc
16:58:00FromDiscord<nixfreak> sent a long message, see http://ix.io/4ATY
16:59:42FromDiscord<punchcake> In reply to @nixfreak "Ok so to the": i would make a vector with a mutex on it so each threads can store what is open and what is not in the vector
16:59:53FromDiscord<punchcake> and not use channels
17:00:53FromDiscord<nixfreak> vector like math vector ? and mutex like locking ?
17:01:09FromDiscord<punchcake> In reply to @nixfreak "vector like math vector": vector like a seq in nim
17:01:16FromDiscord<punchcake> a dynamiclly expandable array
17:01:25FromDiscord<punchcake> and mutex as in lock
17:01:40FromDiscord<punchcake> put a lock on the vector to prevent issues
17:02:07FromDiscord<nixfreak> Havent' read much into locking yet , so I will look into that thanks
17:02:26FromDiscord<nixfreak> any reason not to use async ? or use async with threads ?
17:02:40FromDiscord<djazz> In reply to @djazz "Nim check froze up": Made a minimal test, turns out I cant use result as variable name inside const = static:
17:02:41FromDiscord<punchcake> In reply to @nixfreak "any reason not to": commonly you choose 1 of them
17:02:46FromDiscord<odexine> async would technically be more appropriate for sockets
17:02:47FromDiscord<punchcake> either async or threads
17:03:02FromDiscord<djazz> Oh, nvm
17:03:03FromDiscord<odexine> i personally think that nim's stdlib async implementation is poor though
17:03:15FromDiscord<punchcake> i dont like async tbh
17:03:24FromDiscord<punchcake> i perfer the threadpool aproach
17:03:28FromDiscord<punchcake> (edit) "aproach" => "approach"
17:04:04FromDiscord<nixfreak> ok why not channels ?
17:04:28FromDiscord<punchcake> In reply to @nixfreak "ok why not channels": its complicated for no reason
17:04:52FromDiscord<nixfreak> channels is complicated you mean
17:05:27FromDiscord<punchcake> i never needed to use a channel exept if im running some sort of event looping concoction
17:05:42FromDiscord<punchcake> (edit) "looping" => "polling"
17:05:48FromDiscord<nixfreak> oh like an event loop for a gui?
17:05:55FromDiscord<nixfreak> or game
17:05:57FromDiscord<punchcake> not for a gui
17:06:05FromDiscord<punchcake> just a event loop for whatever project im doing
17:06:30FromDiscord<nixfreak> most gui's use an event loop , GTK, Qt, EFL, nuclear
17:06:42FromDiscord<nixfreak> ok gui framework maybe
17:06:48FromDiscord<punchcake> you can use event looping for other stuff
17:07:05FromDiscord<punchcake> like a thread thats detecated to do something very spesific
17:07:29FromDiscord<punchcake> anyways threadpooling will suffice
17:07:38FromDiscord<nixfreak> thats what I was thinking of using to retreive recv() information back from a socket
17:07:44FromDiscord<punchcake> In reply to @nixfreak "Ok so to the": what i would do is
17:08:33FromDiscord<punchcake> run on a single thread
17:08:34FromDiscord<punchcake> XD
17:08:43FromDiscord<nixfreak> really ? why ?
17:09:00FromDiscord<punchcake> i mean it depends
17:09:07FromDiscord<punchcake> if every port check a syscall?
17:09:32FromDiscord<punchcake> and why do you want to scan every port
17:09:51FromDiscord<nixfreak> well recev() function is an OS function for a syscall
17:10:11FromDiscord<punchcake> yeah i guess threading is nessecary
17:10:23FromDiscord<punchcake> do what i suggested
17:10:31FromDiscord<nixfreak> In reply to @punchcake "and why do you": because you want to find out what services are on what ports
17:10:46FromDiscord<punchcake> thread pool and lock the seq as a point of synchronization
17:11:08FromDiscord<punchcake> but it depends
17:11:19FromDiscord<punchcake> if every syscall takes 1 second thats 60k seconds
17:11:32FromDiscord<michaelb.eth> yeah, like we talked about earlier, you can't just do that in Nim like you would in C/C++
17:11:43FromDiscord<punchcake> you can try
17:12:20FromDiscord<michaelb.eth> yeah, and then you can cry when you it blows up randomly with SIGSEGV
17:12:25FromDiscord<michaelb.eth> (edit) removed "you"
17:12:46FromDiscord<michaelb.eth> cf. the stuff Clonkk linked earlier, and Araq's malebolgia
17:13:04FromDiscord<michaelb.eth> things are looking more promising with Nim 2.0 (devel branch, currently)
17:13:24FromDiscord<nixfreak> yeah using devel branch right now , 1.9.5
17:13:46FromDiscord<nixfreak> still have to call experimental pragma
17:14:09FromDiscord<punchcake> In reply to @nixfreak "yeah using devel branch": btw on windows rum netstat -aon
17:14:12FromDiscord<punchcake> (edit) "rum" => "run"
17:14:14FromDiscord<punchcake> as admin
17:14:30FromDiscord<michaelb.eth> "malebolgia" — https://github.com/Araq/malebolgia
17:14:50FromDiscord<punchcake> this gets all ips and ports and pid's associated with them
17:14:55FromDiscord<nixfreak> so basically your saying I can't replicate a thread safe scanner , but have the pthread support as in C library ?
17:15:02FromDiscord<punchcake> you can
17:15:08FromDiscord<punchcake> bro just try
17:15:11FromDiscord<punchcake> if it blows up revert to C
17:15:29FromDiscord<djazz> sent a code paste, see https://play.nim-lang.org/#ix=4AU3
17:15:42FromDiscord<djazz> with nim check
17:16:07FromDiscord<michaelb.eth> In reply to @djazz "with nim check": because it's a `const`, nim check is basically compiling it
17:16:11FromDiscord<djazz> issue is the type mismatch float32
17:16:18FromDiscord<djazz> and tuple is float64
17:16:24FromDiscord<michaelb.eth> (edit) "it" => "it, I think"
17:16:27FromDiscord<punchcake> In reply to @djazz "and tuple is float64": bruh
17:16:33FromDiscord<djazz> lower the loop size and it works (to like 10)
17:16:57FromDiscord<nixfreak> I am going try , just wanted some info on threads cause I'm a n00b lol
17:17:31FromDiscord<punchcake> @nixfreak my advice is dont
17:17:36FromDiscord<punchcake> you'll know when you need them
17:17:39FromDiscord<punchcake> then learn them
17:17:59FromDiscord<djazz> `Error: expression '' has no type (or is ambiguous)` on the line `arr[i] = hslToRgb(col)`
17:18:09FromDiscord<djazz> then memory grows
17:18:10FromDiscord<punchcake> if you want to try threading make some malware that does remote code execution
17:18:28FromDiscord<punchcake> its pretty easy
17:18:32FromDiscord<punchcake> ish
17:18:35FromDiscord<nixfreak> yeah thats red team stuff next
17:19:18FromDiscord<punchcake> In reply to @nixfreak "yeah thats red team": black hat
17:19:26FromDiscord<punchcake> i learnt programming to make exploits
17:19:37FromDiscord<punchcake> then i enjoyed programming and said nah
17:19:42FromDiscord<punchcake> im not making no exploits
17:19:58FromDiscord<punchcake> or make a botnet
17:20:04FromDiscord<nixfreak> exploitdev is great learning for C programming
17:20:04FromDiscord<punchcake> pretty easy
17:20:28FromDiscord<nixfreak> I just don't launch pubically
17:21:07FromDiscord<djazz> using object instead of tuple works
17:21:14FromDiscord<michaelb.eth> fwiw, in this discord we discourage making malware in Nim or any other language, or encouraging others to do so↵I realize you're just giving some perspective on what got you into programming, etc., why it could be an interesting exercise, etc., but just keep that in mind
17:22:28FromDiscord<punchcake> In reply to @michaelb.eth "fwiw, in this discord": its pretty trivial malware
17:22:42FromDiscord<punchcake> anyone with 3 months of programming experince can make it
17:22:49FromDiscord<nixfreak> Its only for learning and security researching
17:23:16FromDiscord<punchcake> yes
17:23:18FromDiscord<nixfreak> same with RE and threat intel
17:23:22FromDiscord<punchcake> like my hentai collection
17:23:26FromDiscord<punchcake> researching
17:23:34FromDiscord<nixfreak> lol - no not the same
17:23:53FromDiscord<punchcake> i work at the institute of waifu analysis bro
17:24:47FromDiscord<nixfreak> lol
17:25:43FromDiscord<nixfreak> I like anime also
17:26:04FromDiscord<nixfreak> should talk in offtopic if this continues
17:26:19FromDiscord<punchcake> xd
17:26:37FromDiscord<punchcake> In reply to @nixfreak "should talk in offtopic": anyways bro
17:26:42FromDiscord<punchcake> try making a botnet
17:26:54FromDiscord<punchcake> its very fun i might actually make one
17:27:16FromDiscord<punchcake> as long as you know how to do event polling
17:27:39FromDiscord<nixfreak> yeah I have always wanted to , then automate it
17:27:54FromDiscord<punchcake> its automated by default
17:27:59FromDiscord<punchcake> buuuut there is a catch
17:28:19FromDiscord<nixfreak> kind of ... botnet are usually controlled by C2
17:28:28FromDiscord<punchcake> you need to either port forward or figure out a way to make the infected machine get messages
17:29:03FromDiscord<nixfreak> bot net using irc is really fun
17:29:05FromDiscord<punchcake> i think you gotta do hole punching
17:29:20FromDiscord<nixfreak> yeah thats why a lot of p2p botnets exist now
17:29:35FromDiscord<nixfreak> use upnp ports
17:29:38FromDiscord<punchcake> but be warned p2p botnet is a bad idea
17:29:40FromDiscord<punchcake> very bad idea
17:29:59FromDiscord<punchcake> to arrest you all they need to figure out whos sending the botnet commands
17:30:04FromDiscord<punchcake> if its p2p gg
17:30:57FromDiscord<nixfreak> thats why you use a multiple hop VPN with proxies and or use a zombie and the C2 is an simple as a twitter bot
17:31:13FromDiscord<nixfreak> (edit) "an" => "as"
17:31:18FromDiscord<punchcake> nah
17:31:31FromDiscord<punchcake> your better off renting a vps from dark web or something
17:31:35FromDiscord<punchcake> pretty easy to find
17:31:42FromDiscord<punchcake> you pay in monero and the rest is yours
17:31:47FromDiscord<nixfreak> very true
17:32:21FromDiscord<punchcake> i remeber one time my freind made a botnet with a cool command called "sacrifice"
17:32:52FromDiscord<punchcake> it would just destory the user's machine but prior to doing it it would pop a message box saying "sacrifices must be made"
17:32:54FromDiscord<punchcake> XDDD
17:33:40FromDiscord<nixfreak> take #offtopic now ok
17:34:56FromDiscord<nixfreak> So is there every going to be a pthreads lib for nim ? or just a bunch of different modules ?
17:35:13FromDiscord<nixfreak> (edit) "every" => "ever"
17:35:52FromDiscord<nixfreak> Thats what's kind of confusing using nim , that there are so many different modules that kind of do the samething just differently
17:41:02*xet7 joined #nim
17:43:22FromDiscord<michaelb.eth> In reply to @nixfreak "So is there ever": there's the `std/posix` wrapper: https://nim-lang.org/docs/posix.html
17:45:04FromDiscord<nixfreak> yep thats cool , I was just curious if there was ever going to one modules that is "standardized" that's all
17:45:33FromDiscord<nixfreak> I'm looking at this too https://github.com/Araq/malebolgia
17:55:31FromDiscord<punchcake> In reply to @nixfreak "yep thats cool ,": i think you can use futhrak to import C header right @pmunch
17:56:11FromDiscord<nixfreak> yeah you can , just never used it before.
17:57:00FromDiscord<pmunch> In reply to @punchcake "i think you can": Indeed!
17:57:23FromDiscord<punchcake> In reply to @pmunch "Indeed!": @nixfreak our superior pmunch has saved you once again
17:58:33FromDiscord<pmunch> Oh, I have no idea what you are talking about. But Futhark can import C headers, it's kinda the only thing it does
17:59:08FromDiscord<punchcake> In reply to @pmunch "Oh, I have no": i mean stdlib headers
17:59:11FromDiscord<punchcake> like pthread.h
18:01:04FromDiscord<punchcake> i am convinced that @pmunch @treeform @neroist. are our superiors
18:01:55FromDiscord<punchcake> sorry for the @ btw
18:02:30FromDiscord<pmunch> Yeah it can do any header as long as Clang can do it
18:02:57FromDiscord<pmunch> I've wrapped the low-level stuff to deal with SCSI disks with it before
18:03:21FromDiscord<that_dude.> In reply to @punchcake "i think you gotta": Nat traversal is a massive pita trust me. I wouldn't wish the punishment of trying to make it work on anyone.
18:03:34FromDiscord<pmunch> And just stay in school and play around with programming, you'll get just as good
18:03:54FromDiscord<punchcake> In reply to @pmunch "And just stay in": how olf are you
18:03:58FromDiscord<punchcake> (edit) "olf" => "old"
18:04:32FromDiscord<ambient3332> what's the situation of Futhark on Windows atm?
18:05:08FromDiscord<pmunch> In reply to @punchcake "how old are you": I'm 31, no idea about the others
18:05:21FromDiscord<punchcake> In reply to @pmunch "I'm 31, no idea": explains why you are me superior
18:05:40FromDiscord<punchcake> (edit) "me" => "my"
18:05:45FromDiscord<pmunch> In reply to @ambient3332 "what's the situation of": Should work fine, as long as you install Clang correctly
18:06:00FromDiscord<ambient3332> I don't want to install anything separate 🤔
18:06:18FromDiscord<pmunch> In reply to @punchcake "explains why you are": Eh, age isn't everything, plenty of old idiots out there
18:06:29FromDiscord<pmunch> And young savants for that matter
18:06:32FromDiscord<punchcake> In reply to @pmunch "Eh, age isn't everything,": how long have you been programming for
18:06:48FromDiscord<punchcake> plus young programmers are shit
18:06:51FromDiscord<punchcake> nowdays
18:07:02FromDiscord<pmunch> In reply to @ambient3332 "I don't want to": Well you don't really need clang. Only the libclang DLL
18:07:03FromDiscord<ambient3332> you get some humility with age
18:07:13FromDiscord<djazz> In reply to @ambient3332 "what's the situation of": I added windows support to Futhark, just install clang from their github releases and you should be good to go
18:07:26FromDiscord<michaelb.eth> In reply to @ambient3332 "you get some humility": and gry hairs 😄
18:07:31FromDiscord<michaelb.eth> (edit) "gry" => "gray"
18:07:38FromDiscord<pmunch> In reply to @punchcake "how long have you": Since I was about 10, so some 20 odd years I guess
18:07:43FromDiscord<punchcake> In reply to @michaelb.eth "and gray hairs 😄": im 20 and i look like im 34
18:07:47FromDiscord<punchcake> In reply to @pmunch "Since I was about": BRO
18:07:48FromDiscord<punchcake> NAAAH
18:07:51FromDiscord<punchcake> NAAAAAAAAAAAAAAAAAAH
18:07:56FromDiscord<nixfreak> 43 - here
18:08:01FromDiscord<michaelb.eth> 46
18:08:04FromDiscord<punchcake> yall old af
18:08:08FromDiscord<punchcake> wtf
18:08:16FromDiscord<pmunch> Well gee thanks
18:08:22FromDiscord<nixfreak> lol
18:08:25FromDiscord<punchcake> we all gonna get old one day
18:08:33FromDiscord<punchcake> or i mean i at least
18:08:47FromDiscord<michaelb.eth> In reply to @punchcake "we all gonna get": yeah and it sucks, but that's life, enjoy!
18:09:03FromDiscord<punchcake> In reply to @michaelb.eth "yeah and it sucks,": i wanna enjoy parting before i grow old
18:09:07FromDiscord<pmunch> Eh, getting old is better than the alternative
18:09:12FromDiscord<punchcake> and have sex with sexy russian women
18:09:22FromDiscord<michaelb.eth> In reply to @pmunch "Eh, getting old is": quite true, quite true
18:09:26FromDiscord<punchcake> (edit) "parting" => "partying"
18:09:29FromDiscord<ambient3332> i would not mind getting younger for a few years
18:09:46FromDiscord<punchcake> i wonder how old is araq tbh
18:09:49FromDiscord<michaelb.eth> Memento mori
18:09:58FromDiscord<michaelb.eth> In reply to @punchcake "i wonder how old": early 40s
18:09:58FromDiscord<punchcake> he looks like his mental health is going to shit
18:10:03FromDiscord<michaelb.eth> dude
18:10:09FromDiscord<punchcake> what
18:10:24FromDiscord<punchcake> have you seen his fourm posts latley
18:10:27FromDiscord<michaelb.eth> maybe start working on a filter between your fingers and your brain
18:10:27FromDiscord<nixfreak> just work out and eat right , you'll be fine
18:10:34FromDiscord<Phil> I'd move that debate to offtopic
18:10:47FromDiscord<punchcake> ok
18:10:49FromDiscord<System64 ~ Flandre Scarlet> Is it possible to enable multithread on C compiler please?
18:10:54FromDiscord<Phil> Thanks
18:10:57FromDiscord<Phil> (edit) "Thanks" => "Thanks!"
18:11:03FromDiscord<michaelb.eth> In reply to @sys64 "Is it possible to": `--threads:on` ?
18:11:05FromDiscord<punchcake> In reply to @sys64 "Is it possible to": i think `-lpthread`?
18:11:23FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "i think `-lpthread`?": I meant multithreaded compilation
18:11:26FromDiscord<Phil> In reply to @michaelb.eth "`--threads:on` ?": It should be noted that if you're on devel, that flag should be provided by default
18:11:30FromDiscord<punchcake> In reply to @michaelb.eth "`--threads:on` ?": then this
18:11:37FromDiscord<Phil> The C-Compiler compiles multithreaded by default
18:11:42FromDiscord<Phil> Atleast gcc does
18:11:47FromDiscord<Phil> It just links only with a single threaded
18:11:53FromDiscord<Phil> Which means the default linker is slow as fuuuuuuuuck
18:12:03FromDiscord<System64 ~ Flandre Scarlet> ah, and can I use multithread on this?
18:12:15FromDiscord<System64 ~ Flandre Scarlet> there is the -jx flag I thing
18:12:16FromDiscord<michaelb.eth> In reply to @sys64 "ah, and can I": what platform are you on, windows?
18:12:30FromDiscord<michaelb.eth> I feel like I know the answer because I think I asked you before
18:12:32FromDiscord<System64 ~ Flandre Scarlet> In reply to @michaelb.eth "what platform are you": Windows
18:12:35FromDiscord<Phil> As in "Can a compiler compile with multiple threads a program that uses multiple threads"?
18:13:10FromDiscord<ambient3332> Nim threads don't share memory so it might also be an issue that's blocking parallelism
18:13:19FromDiscord<Phil> I'm somewhat confused on which part the multithread is referring to now
18:13:32FromDiscord<System64 ~ Flandre Scarlet> In reply to @isofruit "I'm somewhat confused on": Multithreaded compilation
18:13:34FromDiscord<punchcake> In reply to @ambient3332 "Nim threads don't share": so i can pass a pointer to a thread?
18:13:42FromDiscord<punchcake> (edit) "can" => "cant"
18:14:48FromDiscord<Phil> In reply to @sys64 "Multithreaded compilation": Then you should be good as in that shouldn't be anything you should need to worry about.↵The act of compilation itself should be multithreaded on all compilers, the windows default compiler (whichever one that is) should also do it similar to gcc simply because there's no way in hell that windows would give itself the embarassment of having that much longer compiletimes that would res
18:15:08FromDiscord<punchcake> msvc
18:15:23FromDiscord<System64 ~ Flandre Scarlet> In reply to @isofruit "Then you **should** be": and linking?
18:15:37FromDiscord<punchcake> In reply to @isofruit "Then you **should** be": i thin he or she meant the same way you pass --parralel in cmake
18:15:42FromDiscord<punchcake> (edit) "thin" => "think"
18:15:49FromDiscord<Phil> Linking I assume is always single threaded simply because the linkers I've googled were single threaded and always slow
18:15:56FromDiscord<Phil> But generrally linking should be less than half your compile time
18:16:10FromDiscord<Phil> Though there are fast linkers out there
18:16:13FromDiscord<Phil> I just haven't used them
18:16:33FromDiscord<System64 ~ Flandre Scarlet> Because compilation is quite slow for me
18:16:53FromDiscord<Phil> Even the debug compiles?
18:16:55FromDiscord<ambient3332> Depends on what you're compiling. Is there a specific file it gets stuck on?
18:17:03FromDiscord<System64 ~ Flandre Scarlet> In reply to @isofruit "Even the debug compiles?": I compile on Release
18:17:17FromDiscord<Phil> Always? Even during the development process?
18:17:20FromDiscord<punchcake> In reply to @ambient3332 "Depends on what you're": and hardware
18:17:28FromDiscord<System64 ~ Flandre Scarlet> In reply to @ambient3332 "Depends on what you're": No real idea, I know there is a lot of inline stuff
18:17:40FromDiscord<System64 ~ Flandre Scarlet> In reply to @isofruit "Always? Even during the": yeah, even if I change a small thing
18:17:54FromDiscord<punchcake> In reply to @sys64 "yeah, even if I": how many LOC are you compiling
18:17:57FromDiscord<Phil> Any particular reason why during the development phase you can't do debug compiles?
18:18:08FromDiscord<Phil> Or rather I assume there is one so I'm asking for the specific reason
18:18:30FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "how many LOC are": Wdym?
18:18:40FromDiscord<System64 ~ Flandre Scarlet> In reply to @isofruit "Any particular reason why": less good performances
18:18:40FromDiscord<punchcake> how many lines is your program
18:18:51FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "how many lines is": How can I count that?
18:18:51FromDiscord<punchcake> In reply to @sys64 "less good performances": doesnt matter in debug
18:18:56FromDiscord<punchcake> you want to debug
18:19:17FromDiscord<punchcake> In reply to @sys64 "How can I count": with an ide and some pair of eyes
18:19:34FromDiscord<Phil> During debug it should only matter to compile to see if it compiles and maybe test out whatever feature you developed / bugs you fixed.↵E.g. the web application I have in nim I always compile develop and only when I build for production do I link and use -d:release
18:19:52FromDiscord<Phil> Because without those the compilation is like 4x faster
18:19:53FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "with an ide and": I say that because there is a lot of files
18:20:08FromDiscord<punchcake> if its a big program ofc its gonna take forever to compile
18:21:00FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "if its a big": 65 Nim files
18:21:16FromDiscord<nixfreak> damn
18:21:19FromDiscord<punchcake> damn
18:21:29FromDiscord<nixfreak> all different procs?
18:21:34FromDiscord<punchcake> whats bro cooking
18:21:48FromDiscord<nixfreak> your Waifu
18:22:01FromDiscord<System64 ~ Flandre Scarlet> In reply to @nixfreak "all different procs?": Wdym?
18:22:16FromDiscord<punchcake> In reply to @nixfreak "your Waifu": uwu
18:22:43FromDiscord<michaelb.eth> In reply to @sys64 "How can I count": ChatGPT says: https://chat.openai.com/share/a33a2e27-02e0-47eb-8e97-6fb819cd1885
18:22:44FromDiscord<punchcake> In reply to @nixfreak "your Waifu": my waifu https://media.discordapp.net/attachments/371759389889003532/1130927653919129760/images.jfif
18:23:26FromDiscord<michaelb.eth> In reply to @michaelb.eth "ChatGPT says: https://chat.openai.com/share/a33a2e2": just change `'.txt'` to `.nim`↵also, I'm not on Windows atm so can't check if the commands it proposed actually work
18:23:27FromDiscord<System64 ~ Flandre Scarlet> In reply to @michaelb.eth "ChatGPT says: https://chat.openai.com/share/a33a2e2": Will try this↵Btw↵https://github.com/system64MC/kurumi-x/tree/BoxUndoRedo↵My project
18:23:29FromDiscord<Phil> 65 is not that massive, but nicely sized
18:23:47FromDiscord<System64 ~ Flandre Scarlet> At the same time, it's a synthesizer
18:24:01FromDiscord<michaelb.eth> (edit) "`.nim`↵also," => "`'.nim'`↵also,"
18:24:06FromDiscord<punchcake> In reply to @isofruit "65 is not *that*": it also depends on a lot of factos
18:24:09FromDiscord<punchcake> (edit) "factos" => "factors"
18:24:18FromDiscord<punchcake> if your using a lot of macros or templates
18:24:26FromDiscord<punchcake> how many lines
18:24:30FromDiscord<Phil> Yeah, metaprogramming will stress the compiler of course
18:24:39FromDiscord<Phil> And what dependencies you have that make use of metaprogramming
18:24:53FromDiscord<punchcake> yeah thats why C++ compile times go crazy
18:25:03FromDiscord<Phil> My admin-plugin for prologue was basically all generics which blew up compilation times for me
18:25:52FromDiscord<michaelb.eth> yeah, something I'm working on recently has several thousands lines of Nim macros, and it does increase compile times, though not horribly (not yet)
18:26:01FromDiscord<Phil> Because it generated like a thousand loc from the generics per ORM model
18:26:18FromDiscord<Phil> And at 30 ORM models that starts becoming noticeable
18:26:43FromDiscord<punchcake> In reply to @michaelb.eth "yeah, something I'm working": thousands of macros sound like a bad idea
18:27:23FromDiscord<System64 ~ Flandre Scarlet> In reply to @michaelb.eth "ChatGPT says: https://chat.openai.com/share/a33a2e2": 6207 lines
18:27:25FromDiscord<michaelb.eth> it's some layers that together form a DSL that I hope proves to be quite useful
18:27:34FromDiscord<michaelb.eth> but we'll see
18:28:04FromDiscord<punchcake> In reply to @sys64 "6207 lines": not much
18:28:07FromDiscord<punchcake> idk tbh
18:28:08FromDiscord<michaelb.eth> In reply to @sys64 "6207 lines": nice, it worked 😄
18:28:18FromDiscord<punchcake> probably your machine is slow or something
18:28:34FromDiscord<punchcake> compiling qt with web engine for example takes me 12 hours
18:28:46FromDiscord<michaelb.eth> @System64 ~ Flandre Scarlet are you targeting Nim's C or C++ backend?
18:28:47FromDiscord<punchcake> from source
18:28:48FromDiscord<enthus1ast> "nimble develop -g" still does not work as it seems \:/
18:29:29FromDiscord<System64 ~ Flandre Scarlet> In reply to @michaelb.eth "<@380360389377916939> are you targeting": C++↵Because with C, I have a segmentation fault with the ImGUI lib
18:30:17FromDiscord<michaelb.eth> I don't have any significant experience with C++, but one often hears complaints about slow compile-times for C++ in general, so maybe that's a factor in your situation
18:30:25FromDiscord<michaelb.eth> others here may know better
18:30:45FromDiscord<ambient3332> C++ can definitely kill your compile times
18:30:57FromDiscord<ambient3332> I get 15 minutes with just few files
18:31:06FromDiscord<punchcake> In reply to @ambient3332 "I get 15 minutes": how many
18:31:15FromDiscord<System64 ~ Flandre Scarlet> So it's that or segmentation fault
18:31:26FromDiscord<punchcake> i once wrote a 30k line C++ program with no generics and it took me like 1 min to compile
18:31:35FromDiscord<punchcake> In reply to @sys64 "So it's that or": or better computer
18:31:41FromDiscord<punchcake> so you can compute faster
18:31:56FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "or better computer": I have a war machine↵Intel Core i7, RTX 3050
18:32:01FromDiscord<punchcake> jesus
18:32:20FromDiscord<punchcake> but yeah
18:32:23FromDiscord<System64 ~ Flandre Scarlet> 144Hz screen
18:32:32FromDiscord<punchcake> ahh thats the problem
18:32:39FromDiscord<punchcake> you didnt overclock your screen
18:32:42FromDiscord<punchcake> thats why
18:32:42FromDiscord<System64 ~ Flandre Scarlet> 🤣
18:33:10FromDiscord<System64 ~ Flandre Scarlet> About ImGUI, did someone managed to compile a program that uses NimGL's ImGUI?
18:33:22FromDiscord<System64 ~ Flandre Scarlet> with C backend
18:34:37FromDiscord<punchcake> do you really need imgui
18:34:43FromDiscord<punchcake> or are you using it bc its eays
18:34:46FromDiscord<punchcake> (edit) "eays" => "easy"
18:35:06FromDiscord<System64 ~ Flandre Scarlet> In reply to @punchcake "do you really need": The entire thing relies on ImGUI
18:35:11FromDiscord<punchcake> damn
18:35:33FromDiscord<System64 ~ Flandre Scarlet> well, the GUI part
18:35:38*xet7 quit (Read error: Connection reset by peer)
18:35:44FromDiscord<System64 ~ Flandre Scarlet> I also use it because easy
18:37:06FromDiscord<punchcake> use qt bro
18:37:15FromDiscord<punchcake> it has better performance
18:37:26FromDiscord<punchcake> it doesnt use gpu like imgui
18:37:37FromDiscord<punchcake> unless your doing some heavy graphing
18:37:54FromDiscord<System64 ~ Flandre Scarlet> And it makes my code GPL I think
18:38:01FromDiscord<punchcake> LGPL
18:38:14FromDiscord<System64 ~ Flandre Scarlet> Oh interesting
18:38:51FromDiscord<System64 ~ Flandre Scarlet> But what for thoses links so? https://media.discordapp.net/attachments/371759389889003532/1130931707428749452/image.png
18:39:02FromDiscord<michaelb.eth> note there are some Qt libs that are only licensed with GPL, but most of them are multi-licensed as GPL and LGPL
18:39:39FromDiscord<punchcake> In reply to @sys64 "But what for thoses": yeah better stay on imgui then
18:40:35FromDiscord<ambient3332> Lot of cool node based stuff made in Godot: https://rodzilla.itch.io/material-maker just a question how well you can create the faster parts with Nim
18:41:33FromDiscord<System64 ~ Flandre Scarlet> In reply to @ambient3332 "Lot of cool node": Is there a framework for that?
18:42:02FromDiscord<ambient3332> Godot is the framework. It's a game engine, that also has a nice UI building system that can be easily themed
18:42:55FromDiscord<jmgomez> In reply to @ambient3332 "I get 15 minutes": I get 4 for seconds for 300k 😛
18:43:00*xet7 joined #nim
18:43:03FromDiscord<enthus1ast> "nimble develop -g" is broken and "nimble develop" cannot work with local files o.0, how you guys develop your modules?
18:43:13FromDiscord<jmgomez> (edit) removed "for"
18:43:31FromDiscord<jmgomez> (and pulling millions on the cpp side of things)
18:43:34FromDiscord<ambient3332> In reply to @jmgomez "I get 4 seconds": Yeah, the C++ thing I'm importing is mostly templates and seem is built in a way that just kills the compilers
18:43:55FromDiscord<System64 ~ Flandre Scarlet> In reply to @ambient3332 "Godot is the framework.": Didn't knew it has GUI stuff
18:44:22FromDiscord<jmgomez> In reply to @ambient3332 "Yeah, the C++ thing": you dont use PCHs?
18:44:28FromDiscord<enthus1ast> in version 4 godot can even do multi window↵(@System64 ~ Flandre Scarlet)
18:44:29FromDiscord<ambient3332> PCHs?
18:44:37FromDiscord<jmgomez> precompiled headers
18:44:57FromDiscord<ambient3332> My endpoint is {.compile.} in Nim
18:45:03FromDiscord<ambient3332> there's no in-between
18:45:05FromDiscord<System64 ~ Flandre Scarlet> In reply to @enthus1ast "in version 4 godot": Oh wow!
18:46:10FromDiscord<System64 ~ Flandre Scarlet> In reply to @enthus1ast "in version 4 godot": https://docs.godotengine.org/en/stable/tutorials/ui/index.html↵Yeah it has that stuff
18:46:27FromDiscord<michaelb.eth> In reply to @sys64 "But what for thoses": maybe QPainter can make that possible, though I don't have any experience with it, just found via googl
18:46:55FromDiscord<jmgomez> In reply to @ambient3332 "My endpoint is {.compile.}": then you shoudlnt complain about the compilation times 😛
18:47:11FromDiscord<ambient3332> In reply to @jmgomez "then you shoudlnt complain": It is what it is...
18:47:18FromDiscord<jmgomez> headers exists for a reason
18:47:47FromDiscord<ambient3332> is there an option for Nim to cache the headers?
18:48:19FromDiscord<jmgomez> you use them as usual but you have a prestep in the cpp side of things where you precompile them
18:52:35FromDiscord<jmgomez> (pch can also be used from c btw)
18:52:52FromDiscord<jmgomez> https://en.wikipedia.org/wiki/Precompiled_header
18:56:21FromDiscord<ambient3332> Is there a way to precompile Nim module so that it won't get re-compiled when I change the flags?
18:56:44FromDiscord<ambient3332> I know I can manually do this with object files, but I would prefer something more convenient and automatic
18:57:32FromDiscord<jmgomez> most of the time it will generate different code your only option is to have a different nimcache folder for your flag combs. I usually do `debug` and `release`
18:58:18FromDiscord<punchcake> why the nim compiler stupid
18:58:28FromDiscord<punchcake> why does it generate diffrent code for the same file XD
18:58:38FromDiscord<punchcake> its constant no
18:58:42FromDiscord<ambient3332> I could hide the {.compile.} behind a C export
18:58:44FromDiscord<punchcake> same input same output
18:59:03FromDiscord<ambient3332> although it kind of defeats the point
18:59:10FromDiscord<jmgomez> that's called deterministic not constant, and your changing the input
19:00:43FromDiscord<jmgomez> In reply to @ambient3332 "I could hide the": you can do exportc to a lib and importc it back that will speed things up too
19:01:56*jmdaemon joined #nim
19:07:37FromDiscord<bung8954> `snprintf(esc, n, "\\x%02x", (int)c);` equals to `"\\x" & byte.toHex(2)` ?
19:15:45FromDiscord<spatchler> hi, im having problems with the easygl examples that involve model loading with stb_image, when i run them it just says `out of memory` after the path of the model its trying to load
19:15:50FromDiscord<spatchler> Why is this happening?
19:55:51FromDiscord<enthus1ast> i tried to describe the issues i have in a nimbel issue https://github.com/nim-lang/nimble/issues/1124
20:02:50*ntat quit (Quit: leaving)
20:49:59FromDiscord<yayo256> Sorry for the abruptness.↵Could you please add Japanese to language-specific?↵Sorry if I'm doing something wrong.↵(DeepL)
21:10:24*rockcavera joined #nim
21:41:08*alice quit (Remote host closed the connection)
21:44:19*alice joined #nim
22:15:59*sagax quit (Ping timeout: 246 seconds)
22:36:38*azimut quit (Ping timeout: 240 seconds)
22:47:34*jmdaemon quit (Ping timeout: 260 seconds)