<< 07-09-2022 >>

00:02:35FromDiscord<Datavenia> How far away from IC is Nim?
00:02:53FromDiscord<Elegantbeef> Year(s) probablly
00:03:15FromDiscord<Elegantbeef> Hard to say there is only the Nim2.0 roadmap
00:03:25FromDiscord<Elegantbeef> And that doesnt even have estimated times
00:03:40FromDiscord<Datavenia> In reply to @Elegantbeef "Year(s) probablly": Why so long?
00:03:54FromDiscord<Elegantbeef> Small core dev team
00:04:20FromDiscord<Datavenia> Fair. Also stupid question: how much work is it to translate valid python to Nim?
00:06:28FromDiscord<Elegantbeef> There's what 2 full time core developers now?
00:06:53FromDiscord<Elegantbeef> Just copy paste it and resolve all the issues 😛
00:07:24FromDiscord<Elegantbeef> There are some projects that attempt to do it
00:08:31FromDiscord<Elegantbeef> A big issue is that python is dynamically typed which means it's quite hard to convert code
00:08:46FromDiscord<Elegantbeef> Same thing with JS
00:15:36FromDiscord<Superstart033> sent a code paste, see https://play.nim-lang.org/#ix=49PJ
00:15:38FromDiscord<Superstart033> How this code works?
00:15:44FromDiscord<Datavenia> In reply to @Elegantbeef "A big issue is": Hrm so mypy? 😛
00:15:56FromDiscord<Superstart033> Why are those proc part of the animal object?
00:16:12FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=49PK
00:16:20FromDiscord<Yardanico> https://nim-lang.org/docs/manual.html#procedures-method-call-syntax
00:16:20FromDiscord<Elegantbeef> https://nim-lang.org/docs/manual.html#procedures-method-call-syntax
00:16:25FromDiscord<Elegantbeef> Bot win
00:16:37FromDiscord<Yardanico> in nim `a(b)` is the same as `b.a()` or `a b`
00:16:53FromDiscord<Superstart033> Oh
00:24:30*jmdaemon joined #nim
00:26:34FromDiscord<Superstart033> Thank you, guys!
00:29:51FromDiscord<Elegantbeef> Beep boop beep
00:29:57FromDiscord<Elegantbeef> I mean... no problem.
00:35:44FromDiscord<Patitotective> In reply to @Elegantbeef "Beep boop beep": bots actually say 010101010
00:36:01FromDiscord<Elegantbeef> You'd know
00:44:57FromDiscord<Prestige> Why does a `let` variable not have an address but a `var` does?
00:45:06FromDiscord<Elegantbeef> it does have an address
00:45:09FromDiscord<Elegantbeef> it's just `unsafeaddr`
00:45:22FromDiscord<Prestige> Why is that?
00:45:26FromDiscord<Elegantbeef> The point is to say "yes i really want to mutate it" but that is no longer the case soon
00:45:38FromDiscord<Elegantbeef> Cause it's unsafe to take the address of `let` as you may mutate it
00:45:45FromDiscord<Prestige> ah okay
00:45:46FromDiscord<Prestige> Thanks
00:45:58FromDiscord<Elegantbeef> But that's gone in devel
00:46:07FromDiscord<Elegantbeef> `addr` is fine for both there
00:46:16FromDiscord<Elegantbeef> Since it's not any more unsafe than `addr`
00:46:23FromDiscord<Prestige> Sweet ty
00:53:53FromDiscord<Patitotective> In reply to @Elegantbeef "it's just `unsafeaddr`": `dangerousAddrDoNotUse`
00:54:32FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=49PP
00:54:55FromDiscord<Patitotective> lmao
01:02:53FromDiscord<Superstart033> sent a code paste, see https://play.nim-lang.org/#ix=49PV
01:03:02FromDiscord<Superstart033> Can someone help me? How do I add to the student seq?
01:03:32FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=49PW
01:03:50FromDiscord<Patitotective> i was typing faster but my pc is lagged
01:04:16FromDiscord<Superstart033> I try it, but is been giving errors https://media.discordapp.net/attachments/371759389889003532/1016876522713399336/unknown.png
01:04:32FromDiscord<Elegantbeef> `add (name, grade)`
01:04:40FromDiscord<Superstart033> ?
01:04:40FromDiscord<Elegantbeef> Otherwise you're not making a tuple
01:04:48FromDiscord<huantian> also `school: var School`
01:05:06FromDiscord<Patitotective> better `add((name, grade))` :p (but dont tell beef)
01:05:11FromDiscord<Elegantbeef> `add(name, grade)` calls `add` passing in name and grade, `add (name, grade)` adds the created tuple
01:05:12FromDiscord<SaAnd> beef be more clear `add((name, grade))`
01:05:22FromDiscord<Elegantbeef> It's not even more clear
01:05:41FromDiscord<Elegantbeef> You need to learn the difference between command syntax and normal syntax
01:05:42FromDiscord<Superstart033> https://media.discordapp.net/attachments/371759389889003532/1016876882471432242/unknown.png
01:06:03FromDiscord<huantian> In reply to @huantian "also `school: var School`": change the school param to this
01:06:06FromDiscord<Elegantbeef> `addStudent` doesnt take `var School`
01:06:25FromDiscord<demotomohiro> Nim is space sensitive. `f.add (a, b)` and `f.add(a, b)` is different
01:06:27FromDiscord<Elegantbeef> When you mutate a `object` the parameter needs to be marked `var` to say it's a mutable reference
01:06:35FromDiscord<Superstart033> I thought that was option?
01:06:39FromDiscord<Superstart033> (edit) "option?" => "optional?"
01:06:47FromDiscord<Superstart033> But now I know
01:06:48FromDiscord<Superstart033> Thanks!
01:07:10FromDiscord<SaAnd> Yup, by default, objects are immutable
01:12:06FromDiscord<huantian> I'm suprised beef restrained himself and didn't say tuples are trash or something
01:12:35FromDiscord<Patitotective> haha
01:12:53FromDiscord<Elegantbeef> I mean they are
01:36:53*jmdaemon quit (Ping timeout: 252 seconds)
01:39:38*arkurious quit (Quit: Leaving)
02:14:13*jmdaemon joined #nim
02:34:25FromDiscord<Datavenia> What’s the over/under on Nim/Zig for langdev?
02:40:23FromDiscord<Elegantbeef> In what regard?
02:41:31FromDiscord<Datavenia> Mhm just like pros and cons of both in y’all’s opinions
02:42:36FromDiscord<Elegantbeef> I mean the cons of Zig are quite clear, it's a 'simple' language so things like overloads are not there
02:44:04FromDiscord<Elegantbeef> Plus you have to manually manage memory
02:44:33FromDiscord<Patitotective> thats really ufn
02:44:35FromDiscord<Patitotective> (edit) "ufn" => "fun"
02:45:52FromDiscord<Patitotective> pros of nim: is better
02:46:09FromDiscord<Elegantbeef> It's a much more flexible language
02:52:51FromDiscord<sOkam!> Do you know of any article, or simple example app, that uses nim with manual memory management?
02:56:48FromDiscord<Elegantbeef> it's pretty much the same as any other language just use Nim's allocators
03:01:52FromDiscord<Patitotective> 🌃
03:07:38FromDiscord<!&luke> In reply to @Patitotective "thats really fun": It's faster than nim tho
03:07:51FromDiscord<!&luke> Not by much
03:07:55FromDiscord<!&luke> But still a bit
03:08:34FromDiscord<Elegantbeef> It's not
03:08:44FromDiscord<Elegantbeef> I dont get why people speak out their arse
03:09:48FromDiscord<Elegantbeef> https://benhoyt.com/writings/count-words/ shows it's slower than zig, but if you slightly modify the Nim source to not iterate words twice you get it just as fast
03:10:22FromDiscord<Elegantbeef> At this level of high level languages you're not down to arbitrary statements, it's about the driver at the wheel
03:11:51*derpydoo quit (Quit: derpydoo)
03:36:36FromDiscord<beans> sent a code paste, see https://play.nim-lang.org/#ix=49Qv
03:36:52FromDiscord<beans> (edit) "https://play.nim-lang.org/#ix=49Qv" => "https://play.nim-lang.org/#ix=49Qw"
03:37:59FromDiscord<beans> Basically I want to a seq that holds some data and is modified by the main thread, then have several threads that are spawned read from that seq and do some work with the data but never actually write to that original seq
03:38:22FromDiscord<beans> (edit) "Basically I want to a seq that holds some data and is modified ... by" added "over time"
03:39:56FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=49Qy
03:40:01FromDiscord<Elegantbeef> If you're using refc i do not know how to "properly" do this
03:46:11*jmdaemon quit (Quit: ZNC 1.8.2 - https://znc.in)
04:23:24*jmdaemon joined #nim
05:33:36qwrzig is basically better C, and not much anything else - if you love unsafe manual memory management, then it might be nice
05:35:15qwreven linux kernel is trying to go for safe manual memory management (rust), so i'm unsure what the exact niche for zig is
06:13:12*vicecea quit (Remote host closed the connection)
06:13:44*vicecea joined #nim
06:22:36FromDiscord<beans> sent a code paste, see https://play.nim-lang.org/#ix=49R0
06:22:57FromDiscord<Bung> anyone interested help me with this https://github.com/bung87/scorper/blob/sbmh/src/scorper/http/sbmh.nim , it's derived boyer moore search, I've double checked the code but result still slightly different.
06:23:02FromDiscord<Elegantbeef> `for item in list.mitems`
06:23:06FromDiscord<beans> (edit) "https://play.nim-lang.org/#ix=49R0" => "https://paste.rs/RVP"
06:23:24FromDiscord<beans> thanks
06:23:24FromDiscord<Elegantbeef> `mitems` is the mutable items iterator defined for most collections
06:47:11*jmdaemon quit (*.net *.split)
06:47:11*qwr quit (*.net *.split)
06:47:12*mahlon quit (*.net *.split)
06:47:12*koltrast quit (*.net *.split)
06:47:12*lumidify quit (*.net *.split)
06:47:12*lain quit (*.net *.split)
06:47:12*rb quit (*.net *.split)
06:47:12*tinystoat quit (*.net *.split)
06:47:12*attah quit (*.net *.split)
06:47:12*_________ quit (*.net *.split)
06:47:13*blackbeard420 quit (*.net *.split)
06:47:13*FromDiscord quit (*.net *.split)
06:47:13*via__ quit (*.net *.split)
06:47:13*euantorano quit (*.net *.split)
06:47:13*dv^_^ quit (*.net *.split)
06:47:13*neceve quit (*.net *.split)
06:47:14*hexeme_ quit (*.net *.split)
06:47:14*Onionhammer quit (*.net *.split)
06:47:14*genpaku quit (*.net *.split)
06:47:14*cornfeedhobo quit (*.net *.split)
06:47:14*qwestion quit (*.net *.split)
06:47:14*NimEventer quit (*.net *.split)
06:47:14*Amun-Ra quit (*.net *.split)
06:47:15*syl quit (*.net *.split)
06:47:15*oddish quit (*.net *.split)
06:47:15*def- quit (*.net *.split)
06:47:15*jkl quit (*.net *.split)
06:47:16*droidrage quit (*.net *.split)
06:47:16*om3ga quit (*.net *.split)
06:47:16*LyndsySimon quit (*.net *.split)
06:47:16*xaltsc quit (*.net *.split)
06:47:16*ixmpp quit (*.net *.split)
06:47:17*m5zs7k quit (*.net *.split)
06:47:17*fallback quit (*.net *.split)
06:47:17*notchris quit (*.net *.split)
06:47:17*oprypin quit (*.net *.split)
06:47:17*drewr quit (*.net *.split)
06:47:18*disso_peach quit (*.net *.split)
06:47:18*djanatyn quit (*.net *.split)
06:47:18*systemdsucks quit (*.net *.split)
06:47:18*supakeen quit (*.net *.split)
06:47:18*redj quit (*.net *.split)
06:47:19*adium quit (*.net *.split)
06:47:19*sagax quit (*.net *.split)
06:47:19*nisstyre quit (*.net *.split)
06:47:19*oz quit (*.net *.split)
06:47:19*DixieFlatline quit (*.net *.split)
06:47:19*mal`` quit (*.net *.split)
06:47:19*gshumway quit (*.net *.split)
06:47:19*Yardanico quit (*.net *.split)
06:47:19*madprog quit (*.net *.split)
06:47:20*rockcavera quit (*.net *.split)
06:47:20*tk quit (*.net *.split)
06:47:20*wallabra quit (*.net *.split)
06:47:20*crem quit (*.net *.split)
06:47:20*termer quit (*.net *.split)
06:49:44*vicecea quit (*.net *.split)
06:49:44*estiquelapice quit (*.net *.split)
06:49:44*buster_blue[m] quit (*.net *.split)
06:49:44*alice quit (*.net *.split)
06:49:44*nullsh quit (*.net *.split)
06:49:45*madprops quit (*.net *.split)
06:49:45*Jjp137 quit (*.net *.split)
06:49:45*oisota quit (*.net *.split)
06:49:45*deadmarshal quit (*.net *.split)
06:50:45*nisstyre joined #nim
06:50:45*oz joined #nim
06:50:45*DixieFlatline joined #nim
06:50:45*mal`` joined #nim
06:50:45*gshumway joined #nim
06:50:45*Yardanico joined #nim
06:50:45*madprog joined #nim
06:50:45*disso_peach joined #nim
06:50:45*supakeen joined #nim
06:50:45*djanatyn joined #nim
06:50:45*systemdsucks joined #nim
06:50:45*redj joined #nim
06:50:45*fallback joined #nim
06:50:45*notchris joined #nim
06:50:45*oprypin joined #nim
06:50:45*drewr joined #nim
06:50:45*droidrage joined #nim
06:50:45*om3ga joined #nim
06:50:45*LyndsySimon joined #nim
06:50:45*xaltsc joined #nim
06:50:45*ixmpp joined #nim
06:50:45*def- joined #nim
06:50:45*jkl joined #nim
06:50:45*blackbeard420 joined #nim
06:50:45*FromDiscord joined #nim
06:50:45*via__ joined #nim
06:50:45*euantorano joined #nim
06:50:45*dv^_^ joined #nim
06:50:45*hexeme_ joined #nim
06:50:45*Onionhammer joined #nim
06:50:45*genpaku joined #nim
06:50:45*cornfeedhobo joined #nim
06:50:45*qwestion joined #nim
06:50:45*NimEventer joined #nim
06:50:45*Amun-Ra joined #nim
06:50:45*syl joined #nim
06:50:45*mahlon joined #nim
06:50:45*koltrast joined #nim
06:50:45*lumidify joined #nim
06:50:45*lain joined #nim
06:50:45*rb joined #nim
06:50:45*tinystoat joined #nim
06:50:45*attah joined #nim
06:50:45*_________ joined #nim
06:50:45*sagax joined #nim
06:50:45*termer joined #nim
06:50:45*adium joined #nim
06:50:45*oddish joined #nim
06:50:45*crem joined #nim
06:50:45*wallabra joined #nim
06:50:45*m5zs7k joined #nim
06:50:45*tk joined #nim
06:50:45*rockcavera joined #nim
06:50:45*neceve joined #nim
06:50:45*qwr joined #nim
06:50:45*jmdaemon joined #nim
06:50:45*vicecea joined #nim
06:50:45*estiquelapice joined #nim
06:50:45*deadmarshal joined #nim
06:50:45*oisota joined #nim
06:50:45*Jjp137 joined #nim
06:50:45*madprops joined #nim
06:50:45*nullsh joined #nim
06:50:45*alice joined #nim
06:50:45*buster_blue[m] joined #nim
06:50:56*vicecea quit (*.net *.split)
06:50:56*estiquelapice quit (*.net *.split)
06:50:57*buster_blue[m] quit (*.net *.split)
06:50:57*alice quit (*.net *.split)
06:50:57*nullsh quit (*.net *.split)
06:50:57*madprops quit (*.net *.split)
06:50:57*Jjp137 quit (*.net *.split)
06:50:57*oisota quit (*.net *.split)
06:50:57*deadmarshal quit (*.net *.split)
06:50:57*jmdaemon quit (*.net *.split)
06:50:57*qwr quit (*.net *.split)
06:50:58*mahlon quit (*.net *.split)
06:50:58*koltrast quit (*.net *.split)
06:50:58*lumidify quit (*.net *.split)
06:50:58*lain quit (*.net *.split)
06:50:58*rb quit (*.net *.split)
06:50:58*tinystoat quit (*.net *.split)
06:50:58*attah quit (*.net *.split)
06:50:58*_________ quit (*.net *.split)
06:50:59*blackbeard420 quit (*.net *.split)
06:50:59*FromDiscord quit (*.net *.split)
06:50:59*via__ quit (*.net *.split)
06:50:59*euantorano quit (*.net *.split)
06:51:00*dv^_^ quit (*.net *.split)
06:51:00*neceve quit (*.net *.split)
06:51:00*hexeme_ quit (*.net *.split)
06:51:00*Onionhammer quit (*.net *.split)
06:51:00*genpaku quit (*.net *.split)
06:51:00*cornfeedhobo quit (*.net *.split)
06:51:00*qwestion quit (*.net *.split)
06:51:00*NimEventer quit (*.net *.split)
06:51:00*Amun-Ra quit (*.net *.split)
06:51:01*syl quit (*.net *.split)
06:51:01*oddish quit (*.net *.split)
06:51:01*def- quit (*.net *.split)
06:51:01*jkl quit (*.net *.split)
06:51:02*droidrage quit (*.net *.split)
06:51:02*om3ga quit (*.net *.split)
06:51:02*LyndsySimon quit (*.net *.split)
06:51:02*xaltsc quit (*.net *.split)
06:51:02*ixmpp quit (*.net *.split)
06:51:02*m5zs7k quit (*.net *.split)
06:51:03*fallback quit (*.net *.split)
06:51:03*notchris quit (*.net *.split)
06:51:03*oprypin quit (*.net *.split)
06:51:03*drewr quit (*.net *.split)
06:51:04*disso_peach quit (*.net *.split)
06:51:04*djanatyn quit (*.net *.split)
06:51:04*systemdsucks quit (*.net *.split)
06:51:04*supakeen quit (*.net *.split)
06:51:04*redj quit (*.net *.split)
06:51:04*adium quit (*.net *.split)
06:51:04*sagax quit (*.net *.split)
06:51:05*nisstyre quit (*.net *.split)
06:51:05*oz quit (*.net *.split)
06:51:05*DixieFlatline quit (*.net *.split)
06:51:05*mal`` quit (*.net *.split)
06:51:05*gshumway quit (*.net *.split)
06:51:05*Yardanico quit (*.net *.split)
06:51:05*madprog quit (*.net *.split)
06:51:05*rockcavera quit (*.net *.split)
06:51:05*tk quit (*.net *.split)
06:51:05*wallabra quit (*.net *.split)
06:51:06*crem quit (*.net *.split)
06:51:06*termer quit (*.net *.split)
06:52:23*reversem3[m] quit (Ping timeout: 255 seconds)
06:56:44*nisstyre joined #nim
06:56:44*oz joined #nim
06:56:44*DixieFlatline joined #nim
06:56:44*mal`` joined #nim
06:56:44*gshumway joined #nim
06:56:44*Yardanico joined #nim
06:56:44*madprog joined #nim
06:56:44*disso_peach joined #nim
06:56:44*supakeen joined #nim
06:56:44*djanatyn joined #nim
06:56:44*systemdsucks joined #nim
06:56:44*redj joined #nim
06:56:44*fallback joined #nim
06:56:44*notchris joined #nim
06:56:44*oprypin joined #nim
06:56:44*drewr joined #nim
06:56:44*droidrage joined #nim
06:56:44*om3ga joined #nim
06:56:44*LyndsySimon joined #nim
06:56:44*xaltsc joined #nim
06:56:44*ixmpp joined #nim
06:56:44*def- joined #nim
06:56:44*jkl joined #nim
06:56:44*blackbeard420 joined #nim
06:56:44*FromDiscord joined #nim
06:56:44*via__ joined #nim
06:56:44*euantorano joined #nim
06:56:44*dv^_^ joined #nim
06:56:44*hexeme_ joined #nim
06:56:44*Onionhammer joined #nim
06:56:44*genpaku joined #nim
06:56:44*cornfeedhobo joined #nim
06:56:44*qwestion joined #nim
06:56:44*NimEventer joined #nim
06:56:44*Amun-Ra joined #nim
06:56:44*syl joined #nim
06:56:44*mahlon joined #nim
06:56:44*koltrast joined #nim
06:56:44*lumidify joined #nim
06:56:44*lain joined #nim
06:56:44*rb joined #nim
06:56:44*tinystoat joined #nim
06:56:44*attah joined #nim
06:56:44*_________ joined #nim
06:56:44*sagax joined #nim
06:56:44*termer joined #nim
06:56:44*adium joined #nim
06:56:44*oddish joined #nim
06:56:44*crem joined #nim
06:56:44*wallabra joined #nim
06:56:44*tk joined #nim
06:56:44*rockcavera joined #nim
06:56:44*neceve joined #nim
06:56:44*qwr joined #nim
06:56:44*jmdaemon joined #nim
06:56:44*vicecea joined #nim
06:56:44*estiquelapice joined #nim
06:56:44*deadmarshal joined #nim
06:56:44*oisota joined #nim
06:56:44*Jjp137 joined #nim
06:56:44*madprops joined #nim
06:56:44*nullsh joined #nim
06:56:44*alice joined #nim
06:56:50*jmdaemon quit (*.net *.split)
06:56:50*qwr quit (*.net *.split)
06:56:50*mahlon quit (*.net *.split)
06:56:51*koltrast quit (*.net *.split)
06:56:51*lumidify quit (*.net *.split)
06:56:51*lain quit (*.net *.split)
06:56:51*rb quit (*.net *.split)
06:56:51*tinystoat quit (*.net *.split)
06:56:51*attah quit (*.net *.split)
06:56:51*_________ quit (*.net *.split)
06:56:51*blackbeard420 quit (*.net *.split)
06:56:51*FromDiscord quit (*.net *.split)
06:56:52*via__ quit (*.net *.split)
06:56:52*euantorano quit (*.net *.split)
06:56:52*dv^_^ quit (*.net *.split)
06:56:52*neceve quit (*.net *.split)
06:56:52*hexeme_ quit (*.net *.split)
06:56:52*Onionhammer quit (*.net *.split)
06:56:52*genpaku quit (*.net *.split)
06:56:52*cornfeedhobo quit (*.net *.split)
06:56:52*qwestion quit (*.net *.split)
06:56:52*NimEventer quit (*.net *.split)
06:56:53*Amun-Ra quit (*.net *.split)
06:56:53*syl quit (*.net *.split)
06:56:53*oddish quit (*.net *.split)
06:56:53*def- quit (*.net *.split)
06:56:53*jkl quit (*.net *.split)
06:56:54*droidrage quit (*.net *.split)
06:56:54*om3ga quit (*.net *.split)
06:56:54*LyndsySimon quit (*.net *.split)
06:56:54*xaltsc quit (*.net *.split)
06:56:54*ixmpp quit (*.net *.split)
06:56:54*fallback quit (*.net *.split)
06:56:54*notchris quit (*.net *.split)
06:56:55*oprypin quit (*.net *.split)
06:56:55*drewr quit (*.net *.split)
06:56:55*disso_peach quit (*.net *.split)
06:56:55*djanatyn quit (*.net *.split)
06:56:55*systemdsucks quit (*.net *.split)
06:56:56*supakeen quit (*.net *.split)
06:56:56*redj quit (*.net *.split)
06:56:56*adium quit (*.net *.split)
06:56:56*sagax quit (*.net *.split)
06:56:56*nisstyre quit (*.net *.split)
06:56:56*oz quit (*.net *.split)
06:56:56*DixieFlatline quit (*.net *.split)
06:56:56*mal`` quit (*.net *.split)
06:56:56*gshumway quit (*.net *.split)
06:56:56*Yardanico quit (*.net *.split)
06:56:56*madprog quit (*.net *.split)
06:56:56*rockcavera quit (*.net *.split)
06:56:57*tk quit (*.net *.split)
06:56:57*wallabra quit (*.net *.split)
06:56:57*crem quit (*.net *.split)
06:56:57*termer quit (*.net *.split)
06:57:56*m5zs7k joined #nim
06:57:56*PMunch joined #nim
06:57:56*jmdaemon joined #nim
06:57:56*qwr joined #nim
06:57:56*neceve joined #nim
06:57:56*rockcavera joined #nim
06:57:56*tk joined #nim
06:57:56*wallabra joined #nim
06:57:56*crem joined #nim
06:57:56*oddish joined #nim
06:57:56*adium joined #nim
06:57:56*termer joined #nim
06:57:56*sagax joined #nim
06:57:56*_________ joined #nim
06:57:56*attah joined #nim
06:57:56*tinystoat joined #nim
06:57:56*rb joined #nim
06:57:56*lain joined #nim
06:57:56*lumidify joined #nim
06:57:56*koltrast joined #nim
06:57:56*mahlon joined #nim
06:57:56*syl joined #nim
06:57:56*Amun-Ra joined #nim
06:57:56*NimEventer joined #nim
06:57:56*qwestion joined #nim
06:57:56*cornfeedhobo joined #nim
06:57:56*genpaku joined #nim
06:57:56*Onionhammer joined #nim
06:57:56*hexeme_ joined #nim
06:57:56*dv^_^ joined #nim
06:57:56*euantorano joined #nim
06:57:56*via__ joined #nim
06:57:56*FromDiscord joined #nim
06:57:56*blackbeard420 joined #nim
06:57:56*jkl joined #nim
06:57:56*def- joined #nim
06:57:56*ixmpp joined #nim
06:57:56*xaltsc joined #nim
06:57:56*LyndsySimon joined #nim
06:57:56*om3ga joined #nim
06:57:56*droidrage joined #nim
06:57:56*drewr joined #nim
06:57:56*oprypin joined #nim
06:57:56*notchris joined #nim
06:57:56*fallback joined #nim
06:57:56*redj joined #nim
06:57:56*systemdsucks joined #nim
06:57:56*djanatyn joined #nim
06:57:56*supakeen joined #nim
06:57:56*disso_peach joined #nim
06:57:56*madprog joined #nim
06:57:56*Yardanico joined #nim
06:57:56*gshumway joined #nim
06:57:56*mal`` joined #nim
06:57:56*DixieFlatline joined #nim
06:57:56*oz joined #nim
06:57:56*nisstyre joined #nim
07:41:21FromDiscord<Tetralux> In reply to @Datavenia "What’s the over/under on": Zig is about being very much in control over what your program is doing at any given moment; part of that is being explicit, simple, and clear with the code; part of it is manual memory management.↵It's a fairly frugal language, but a decent one - even if code can get a little busy at times.↵You won't find stuff like `f(1, 2)` and `f (1, 2)` being different though - which you wil
07:41:41FromDiscord<Tetralux> (edit) "In reply to @Datavenia "What’s the over/under on": Zig is ... about" added "generally" | removed "very much"
07:42:10FromDiscord<Tetralux> (edit) "In reply to @Datavenia "What’s the over/under on": Zig is generally about being in control over what your program is doing at any given moment; part of that is being explicit, simple, and clear with the code; part of it is manual memory management.↵It's a fairly frugal language, but a decent one - even if ... code" added "some can find the" | removed "can get"
07:42:14FromDiscord<Tetralux> (edit) "busy" => "'busy'"
07:42:40FromDiscord<Rika> I honestly don’t believe the “simple” part
07:45:04FromDiscord<Shiba> you can pass `(1, 2)` as a parameter ?
07:45:12FromDiscord<Rika> Tuple, yes
07:47:44FromDiscord<Rika> Zig’s thing is unambiguity
07:47:54FromDiscord<Rika> Nim’s thing is flexibility
07:48:03FromDiscord<Rika> They’re very much antitheses to each other
07:48:06FromDiscord<Tetralux> sent a long message, see http://ix.io/49Rb
07:49:08FromDiscord<Tetralux> (edit) "http://ix.io/49Rb" => "http://ix.io/49Rc"
07:49:16FromDiscord<Rika> In reply to @Tetralux "There's an argument to": Okay, I don’t really have anything to respond to with this
07:49:28FromDiscord<Elegantbeef> Odin is quite literally just modern pascal, and pascal was designed as a teaching language so it's probably vastly more approachable than C or Zig 😄
07:49:34FromDiscord<Rika> Lol
07:51:33FromDiscord<Elegantbeef> I had to check about expressions, and what the fuck
07:51:34FromDiscord<Tetralux> In reply to @Elegantbeef "Odin is quite literally": I imagine you're being facetious, since that isn't really how that works.↵But it is, nevertheless, quite approachable. It's designed to be. 😄
07:51:42FromDiscord<Elegantbeef> > While loops are expressions. The result of the expression is the result of the else clause of a while loop
07:52:08FromDiscord<Elegantbeef> Mildly↵(@Tetralux)
07:52:43FromDiscord<Elegantbeef> There is some truth in that pascal was designed for education and odin is very similar to pascal, so it hits many of the same marks
07:53:01FromDiscord<Elegantbeef> Whether it's more approachable is another thing
07:53:17FromDiscord<Tetralux> sent a code paste, see https://play.nim-lang.org/#ix=49Re
07:53:32FromDiscord<Elegantbeef> I dont see how that really makes sense
07:53:42FromDiscord<Tetralux> (edit) "https://play.nim-lang.org/#ix=49Re" => "https://play.nim-lang.org/#ix=49Rf"
07:54:02*tanami quit (Ping timeout: 255 seconds)
07:54:07FromDiscord<Tetralux> The `else` runs if the loop didn't `break`.
07:54:09*tanami joined #nim
07:54:16FromDiscord<Rika> That’s the inverse of Python huh
07:54:30FromDiscord<Rika> Definitely gonna cause lots of confusion for someone switching haha
07:54:54FromDiscord<Rika> It only makes sense after further reading, not really intuitive as you said yeah
07:55:26FromDiscord<Elegantbeef> I think it's overloading the `else` word, so i dont think it really makes sense
07:55:37FromDiscord<Rika> Break being a for loop return is kinda cursed but I guess it’s whatever
07:55:49FromDiscord<Elegantbeef> Does the language construct do something that is predictable yes, is it sensible not in my opinion
07:56:43FromDiscord<Tetralux> sent a code paste, see https://play.nim-lang.org/#ix=49Rg
07:56:56FromDiscord<Tetralux> There's a common thread going on here.
07:57:00FromDiscord<Tetralux> (edit) "here." => "there."
07:57:34FromDiscord<Rika> Nim also has the arbitrary block break but I don’t know, it sounds like it would be confusing
07:57:47FromDiscord<Rika> It’s sounds almost like a return goto
07:59:01*tiorock joined #nim
07:59:01*rockcavera is now known as Guest4008
07:59:01*tiorock is now known as rockcavera
07:59:07FromDiscord<Tetralux> In reply to @Rika "Nim also has the": That's what I was saying about actually using it; as someone who's written a decent amount of Zig code (though not anywhere near as much as Odin) -- the only point of confusion I've found with it is remembering which side the `:` goes on in `break :blk value;` 🤣↵I did find `for ... else` a bit hard to intuit though - but I know it now.
08:00:32FromDiscord<Rika> Well you could say that for all languages
08:00:37FromDiscord<Tetralux> In reply to @Elegantbeef "Does the language construct": Might be a case of unfamiliarity honestly; Zig can easily feel kinda out of left-field in a few different places.
08:01:17FromDiscord<Rika> You could say similarly for the “ambiguous tuple” example you gave, that you’ll easily get it once you use the language more
08:01:51*Guest4008 quit (Ping timeout: 260 seconds)
08:02:51FromDiscord<Tetralux> In reply to @Rika "You could say similarly": I think a case can be made there, sure.
08:07:02FromDiscord<Stuffe> is there any way to iterate over an OrderedTable in reverse without mutating the OrderedTable or doing unnecessary work?
08:22:17FromDiscord<ElegantBeef> Uh oh bridge breaky
08:24:30FromDiscord<ElegantBeef> There is not a way presently, sadly the best way would be to use private access to make a reverse iterator
08:25:59FromDiscord<ElegantBeef> Actually i dont think it's possible
08:26:07FromDiscord<ElegantBeef> The internal implementation only stores next, not last
08:26:21FromDiscord<Stuffe> yeah I am just reading the source
08:26:47FromDiscord<Stuffe> you can get private members if you use pointers and cast
08:26:56FromDiscord<ElegantBeef> That's dumb
08:26:59FromDiscord<Stuffe> as a last resort
08:27:12FromDiscord<ElegantBeef> You can just use https://nim-lang.org/docs/importutils.html#privateAccess%2Ctypedesc
08:27:28FromDiscord<ElegantBeef> and/or the `{.all.}` pragma on modules
08:27:38FromDiscord<Stuffe> ah nice
08:27:48FromDiscord<Stuffe> this is why I love nim
08:27:53FromDiscord<ElegantBeef> Still not really suggested, but yea it's "possible"
08:28:44FromDiscord<Stuffe> yeah its not optimal but sometimes real life doesn't allow optimal
08:29:13FromDiscord<Stuffe> anyway, I guess I can store the values of my OrderedTable in reverse
08:34:47FromDiscord<Stuffe> actually an `insert_as_first` function would work much better for me
08:40:58*xet7 joined #nim
08:47:14*buster_blue[m] joined #nim
09:07:09*jmdaemon quit (Ping timeout: 252 seconds)
09:09:43*jmdaemon joined #nim
09:11:18*xet7 quit (Ping timeout: 240 seconds)
09:46:09*reversem3[m] joined #nim
09:47:29*xet7 joined #nim
09:51:33FromDiscord<Nalmyth> sent a code paste, see https://play.nim-lang.org/#ix=49RB
09:51:44FromDiscord<Nalmyth> (edit) "https://play.nim-lang.org/#ix=49RB" => "https://play.nim-lang.org/#ix=49RC"
10:09:19FromDiscord<dom96> In reply to @Tetralux "Like I said, it": This is Zig? Seeing as Guido considers the `else` in a for loop a mistake I consider it a double mistake to implement it and give it the opposite semantics to Python's implementation
10:10:07FromDiscord<dom96> (edit) "In reply to @Tetralux "Like I said, it": This is Zig? Seeing as Guido considers the `else` in a for loop a mistake ... Iin" added "in Python," | "in Python,I consider it a double mistake to implement it ... and" added "in a new language"
10:12:30FromDiscord<dom96> Also seeing @Rika talk about what Zig's/Nim's "things" are, it makes me wonder if to be a successful language these days you need a clear cut "thing" that you do significantly better enough than other languages to foster adoption
10:27:03*arkurious joined #nim
10:38:08*Vladar joined #nim
10:50:04*genpaku quit (Read error: Connection reset by peer)
10:50:57FromDiscord<jos> i think nim has more than enough of that
10:50:59FromDiscord<jos> probably too much
10:51:27FromDiscord<jos> i think the main thing you need these days is good branding and good libs
10:51:34FromDiscord<jos> and good tooling
10:52:16FromDiscord<Rika> i agree with that
10:52:42*genpaku joined #nim
10:56:52FromDiscord<dom96> Nim has multiple small things, no one big thing
10:57:13FromDiscord<dom96> I think Zig might suffer from the same
10:59:11FromDiscord<Rika> not really idt
10:59:16FromDiscord<enthus1ast> zig is used by big corps mostly for cross compiling\: https://jakstys.lt/2022/how-uber-uses-zig/
11:05:19FromDiscord<jos> i think nim could be successful if it cleaned up the syntax, added more sugar, and focused on orc as a selling point
11:05:24FromDiscord<jos> and maybe at that point rebrand
11:05:39FromDiscord<Rika> then that would not be nim 🙂
11:05:42FromDiscord<jos> although u could say nim is already pretty successful i think that would launch it to next level
11:05:44FromDiscord<jos> ye but who cares
11:05:55FromDiscord<jos> branding is important
11:06:14FromDiscord<Rika> "i think x will be successful if it changed into y"
11:06:26FromDiscord<Rika> i dont know man, that sounds like it would apply to anything
11:07:04FromDiscord<jos> sure. but if you consider those things a much smaller scope of work than creating a language from scratch
11:07:09FromDiscord<jos> then maybe you'll understand my perspective
11:07:13FromDiscord<jos> languages make breaking changes all the time
11:08:14FromDiscord<jos> imo nim is destined to never grow larger just because of the syntax
11:08:15FromDiscord<Rika> yes but my point is that it would then of course not be nim, then so what
11:08:32FromDiscord<jos> while the syntax is totally fine, there's deep tribalism in systems langs that you just can't get out of
11:08:36FromDiscord<Rika> nim cant become popular by changing into something else, because then it wouldnt be nim
11:08:42FromDiscord<Rika> what is popular is the new thing
11:08:45FromDiscord<jos> point taken, but it's really not that interesting to me
11:08:51FromDiscord<jos> i just think the syntax is a huge blocker
11:08:54FromDiscord<Rika> then fork it
11:09:06FromDiscord<jos> someone was asking for opinions, i'm not doing anything besides sharing my opinion
11:09:33FromDiscord<Rika> i dont remember seeing anyone actually asking, maybe thats why i dont understand you
11:09:38FromDiscord<jos> there was a discussion above
11:09:45FromDiscord<jos> nobody asked outright, sure
11:09:46FromDiscord<Rika> i know
11:09:48FromDiscord<Rika> okay
11:09:52FromDiscord<jos> anyway, it would be really cool if you focused on talking about the topic of what i'm saying
11:09:52FromDiscord<Rika> well thats that
11:09:55FromDiscord<jos> instead of all the nuances surrounding it
11:10:22FromDiscord<Rika> well no, i thought what you were talking about is already obvious and not something interesting to talk about
11:10:39FromDiscord<jos> the syntax being a blocker towards broader adoption?
11:10:42FromDiscord<Rika> yes
11:10:51FromDiscord<jos> okay, then no need to comment on it!
11:10:58FromDiscord<jos> have a good one
11:10:59FromDiscord<Rika> okay
11:11:16FromDiscord<Rika> i have no idea what just went on here really
11:11:18FromDiscord<jos> you should re-read our discussion
11:11:24FromDiscord<jos> you basically just went totally nuts
11:11:58FromDiscord<jos> argumentative for no reason, not focusing on the topic but instead talking about a bunch of tangential inaccuracies
11:12:09FromDiscord<jos> 🤷‍♂️
11:12:13FromDiscord<Rika> okay
11:12:40FromDiscord<jos> then topping it off with a "who asks" and "i already knew that, it was obvious"
11:12:44FromDiscord<jos> (edit) "asks"" => "asked""
11:12:46FromDiscord<jos> lmfao
11:12:49FromDiscord<jos> anyway, gotta go
11:12:51FromDiscord<Rika> okay
11:14:14FromDiscord<Rika> i really dont understand what would be interesting about saying "oh nim would be more successful if it wasnt nim"
11:14:36FromDiscord<jos> rust for the first 3 years doesn't look much like rust now
11:14:46FromDiscord<jos> and you're praraphrasing and strawmanning me
11:14:47FromDiscord<jos> but whatever
11:14:52FromDiscord<jos> done talking to you
11:14:58FromDiscord<Rika> nim hasnt been here for just three years by now
11:15:02FromDiscord<Rika> okay
11:15:31FromDiscord<Rika> In reply to @jos "and you're praraphrasing and": of course, because this is how i understood you
11:32:49FromDiscord<Tetralux> sent a long message, see http://ix.io/49RS
11:33:20FromDiscord<Tetralux> (edit) "http://ix.io/49RS" => "http://ix.io/49RT"
11:34:04FromDiscord<Tetralux> (edit) "http://ix.io/49RT" => "http://ix.io/49RU"
11:39:54FromDiscord<jmgomez> Hey guys, Is there a way to make available an experimental feature across the whole project?
11:40:17FromDiscord<jmgomez> like a compiler directive or something like that
11:48:37FromDiscord<Rika> In reply to @jos "done talking to you": let me at least apologise with regards to what i said, i put my thoughts into words incorrectly
11:48:50FromDiscord<Rika> i'm a bit confused even now, so its prolly a matter of my brain being overworked today
11:51:17FromDiscord<dom96> In reply to @Tetralux "One of Zig's 'iconic'": Huh. So the “break i “ in the Zig code is like a ‘return i’
11:51:50FromDiscord<dom96> Feels weird to have the ‘break’ keyword do that
11:52:54FromDiscord<dom96> The reason I mentioned Python is because it supports an “else” on the “for”
11:52:58FromDiscord<Tetralux> sent a code paste, see https://play.nim-lang.org/#ix=49RZ
11:53:57FromDiscord<dom96> Interesting. Allowing {}-less ifs is also a sin though 🙂
11:54:16FromDiscord<Tetralux> sent a long message, see http://ix.io/49S0
11:54:50FromDiscord<dom96> So Zig doesn’t have ‘return’ as a keyword?
11:55:23FromDiscord<Tetralux> In reply to @Tetralux "Yeah, you're not the": Plus, breaking from a labelled loop is already familiar to most people, as well.
11:55:35FromDiscord<Tetralux> In reply to @dom96 "So Zig doesn’t have": Zig does have `return`, but it -always- means "Return from the function."
11:56:10FromDiscord<dom96> To me at least it makes more sense to think of the block as a function
11:57:19FromDiscord<dom96> But all this is subjective anyway and I’m sure there are other trade offs at play here that pushed the author of this syntax to do it this way.
11:58:04FromDiscord<Ekopalypse> sent a long message, see http://ix.io/49S1
11:58:17FromDiscord<Tetralux> In reply to @dom96 "To me at least": That does have merit, though that does make me wonder how you'd return from the function, from within a local block expression. 🤔
11:58:29FromDiscord<Ekopalypse> (edit) "http://ix.io/49S1" => "http://ix.io/49S2"
11:59:54FromDiscord<dom96> Hm. True
12:00:29FromDiscord<dom96> That is a good reason to pick a different keyword
12:02:15FromDiscord<Tetralux> Right - indeed.
12:03:08FromDiscord<Tetralux> In reply to @Ekopalypse "I am faced with": I'm no Nim expert, but that looks like you may need do `{. cdecl, gcsafe .}` in some places, to tell Nim that, "No, this function won't do stuff behind the GC's back that it doesn't tell you about." 🤔
12:03:26FromDiscord<Tetralux> (edit) "you" => "it"
12:07:01FromDiscord<Ekopalypse> Thanks for the information and yes this compiles, it's just that I don't understand the reason for this error. It is a global variable and I naively expected it to be ignored by the gc.
12:07:23FromDiscord<Tetralux> In reply to @Ekopalypse "Thanks for the information": I think it may be more about the fact that `seq` is GC'd 🤔
12:07:47FromDiscord<Ekopalypse> Oh I see
12:08:25FromDiscord<Ekopalypse> but wait funcItem, the seq is a global var as well
12:09:18FromDiscord<Tetralux> `@[]` is local though - that might be it.
12:09:26FromDiscord<Tetralux> (And that's also a `seq`)
12:10:30FromDiscord<Tetralux> sent a code paste, see https://play.nim-lang.org/#ix=49S8
12:23:09*piertoni joined #nim
12:33:11FromDiscord<Ekopalypse> @Tetralux - yes, code slightly modified but with a warning `'about' is not GC safe as it accesses 'pluginName' which is a GC'ed global store [GcUnsafe2]`. I think I'm starting to understand what this is about.↵Thank you very much.
12:37:32FromDiscord<Tetralux> In reply to @Ekopalypse "<@201094465815969794> - yes, code": Happy to help o7
12:38:18FromDiscord<Datavenia> I think the main thing the zig/nim conversation reveals is that there is so much subjectivity in what is good in PL design
12:45:12FromDiscord<jmgomez> sent a code paste, see https://play.nim-lang.org/#ix=49Se
12:45:50*neceve quit (Ping timeout: 268 seconds)
12:47:28FromDiscord<Rika> i dont know about new concepts but perhaps old concepts allowed for it, but i dont recall too well
12:51:26FromDiscord<demotomohiro> sent a code paste, see https://play.nim-lang.org/#ix=49Sg
12:52:51FromDiscord<jmgomez> In reply to @demotomohiro "Why do you need": It's just to illustrate a the use case but ideally I can swap the MemoryRepo with another one if it respects the "contract" described in the Repo concept
13:00:52FromDiscord<demotomohiro> If you have a proc that has `Repo[MyEntity]` parameter and you pass myRepo to it, it should compiles when `MemoryRepo[MyEntity]` is swaped with another one that respects `Repo[MyEntity]` concept.
13:03:36FromDiscord<jmgomez> really so it only works in one direction? Because if the above doesnt work then returning a type that implements a concept as the concept wouldnt work neither. Right?
13:10:11FromDiscord<demotomohiro> I'm not sure.
13:11:27FromDiscord<Rika> I don’t know how well concepts and generics mix
13:23:38FromDiscord<jmgomez> 👍
13:27:04FromDiscord<Rika> Anyway concepts right now are kind of in a limbo of support because we’re in the middle of transitioning
13:28:00FromDiscord<planetis> That won't work. Can't create a var with a concept as type.
13:28:39FromDiscord<Rika> I think it was only as an example
13:28:49FromDiscord<Rika> A better one would be a procedure argument of course
13:51:50*derpydoo joined #nim
14:02:54*piertoni quit (Quit: Client closed)
14:30:33*PMunch quit (Quit: Leaving)
14:33:29FromDiscord<auxym> Hm so if I understand the flatty code correctly, it's not portable between relative to machine endianness. So writing a flatty buffer on LE and reading it back on a BE machine would result in incorrect data,
16:59:47FromDiscord<planetis> also it casts bytes to bigger types without any length checks but whatever.
17:05:39*xet7 quit (Ping timeout: 252 seconds)
17:21:00*xet7 joined #nim
17:36:37*LuxuryMode joined #nim
17:47:17FromDiscord<Require Support> is there a way in nim to not do anything when theres an exception?
17:48:00FromDiscord<planetis> try: code except: discard ?
17:48:21FromDiscord<Require Support> thanks
18:44:49FromDiscord<beans> Let's say I have two threads and one variable protected by a lock. If thread two tries to acquire the lock while thread one already has the lock and is writing to the variable, will that halt the execution of thread two until it can successfully acquire the lock?
18:46:19FromDiscord<enthus1ast> if you use `tryAquire` it would return false and you can go on with the flow
18:46:39FromDiscord<enthus1ast> `tryAcquire`
18:48:04FromDiscord<beans> oh yeah I know what tryAquire does, I'm just making sure I properly understand the behavior of `acquire`
18:48:21FromDiscord<beans> acquire would block the thread until it can successfully acquire the lock, correct?
18:48:31FromDiscord<beans> (edit) "acquire" => "`acquire`"
18:48:57FromDiscord<enthus1ast> yes
18:49:06FromDiscord<beans> ok thanks
20:12:55*Vladar quit (Quit: Leaving)
20:19:53FromDiscord<Patitotective> In reply to @Elegantbeef "It's not": benchmarks are 💀
20:34:31FromDiscord<mratsim> In reply to @dom96 "The reason I mentioned": Guido said it was one big mistake
21:05:52FromDiscord<dom96> In reply to @dom96 "This is Zig? Seeing": ^
21:05:56FromDiscord<dom96> In reply to @mratsim "Guido said it was": I know
21:40:01*neceve joined #nim
21:43:55FromDiscord<B L Â D É> sent a code paste, see https://play.nim-lang.org/#ix=49Ua
21:44:06FromDiscord<B L Â D É> Why can i access person.age after i freed
21:44:38FromDiscord<B L Â D É> Isn't it suppose to be nil
21:46:10FromDiscord<Elegantbeef> You freed it but didnt change the pointer to nil
21:49:40FromDiscord<B L Â D É> sent a code paste, see https://paste.rs/E6e
21:52:44FromDiscord<B L Â D É> sent a code paste, see https://play.nim-lang.org/#ix=49Ud
21:52:47FromDiscord<B L Â D É> This code works
21:53:04FromDiscord<B L Â D É> So now child parent pointer will point to invalid data?
21:54:13FromDiscord<B L Â D É> Sorry I'm new to managing memory, if u have some resources
21:56:57*jmdaemon quit (Quit: ZNC 1.8.2 - https://znc.in)
22:08:45FromDiscord<Elegantbeef> welcome to pointer invalidation 😄
22:09:22FromDiscord<Elegantbeef> If you have a pointer like this you need to store a reference count, then only dealloc when it gets less than 0
22:10:16FromDiscord<Rainbow Asteroids> if only nim could manage its own memory
22:12:35FromDiscord<Elegantbeef> Small indie team technology isnt there yet
22:12:50FromDiscord<B L Â D É> In reply to @Elegantbeef "If you have a": Yea so just use orc 😂😂
22:12:55FromDiscord<Elegantbeef> Correct
22:13:05FromDiscord<B L Â D É> I was just experimenting guys
22:13:05FromDiscord<Elegantbeef> Cyclical memory management is a bitch in the best of times
22:13:25FromDiscord<Elegantbeef> Yea we understand but we'll still make jokes
22:13:33FromDiscord<B L Â D É> I fount myself doing shared ptrs i cpp everywhere anyways
22:13:53FromDiscord<Elegantbeef> Idiomatic Nim is to use `ref` and avoid `ptr` unless you really really need it
22:14:00FromDiscord<Elegantbeef> Generally you only need it for lower level logic or FFI
22:14:37FromDiscord<B L Â D É> Yea one time i needed a ptr to an object in an array so i took the address to mutate
22:14:55FromDiscord<Elegantbeef> That's not very idiomatic 😛
22:15:02*neceve quit (Quit: ZNC - https://znc.in)
22:15:02FromDiscord<B L Â D É> My first nim project is an interpreter for my language written in go
22:15:23FromDiscord<B L Â D É> In reply to @Elegantbeef "That's not very idiomatic": I know, is there a better choice?
22:15:34FromDiscord<Elegantbeef> Depends on what you were doing
22:19:08*neceve joined #nim
22:24:01*cyraxjoe quit (Quit: I'm out!)
22:26:06*cyraxjoe joined #nim
22:29:34*xet7 quit (Read error: Connection reset by peer)
22:43:40FromDiscord<sealmove> hey, I have a c wrapper (generated with nimterop). The underlying c file includes a header. When I import this nim wrapper 2 times I get a redefinition error
22:44:10FromDiscord<sealmove> one solution I thought of is to add the classic `#ifdef` safeguards in the c header file
22:44:38FromDiscord<sealmove> shouldn't nim-c interfacing take care to avoid such issues?
22:46:31FromDiscord<sealmove> hmm, the header files already have guards
22:46:53FromDiscord<Elegantbeef> I dont know what nimterop does, but i've not had issues
22:49:36FromDiscord<sealmove> sent a code paste, see https://play.nim-lang.org/#ix=49Uo
22:49:53FromDiscord<sealmove> (edit) "https://play.nim-lang.org/#ix=49Uo" => "https://play.nim-lang.org/#ix=49Up"
22:49:53FromDiscord<Elegantbeef> That'd do it
22:50:25FromDiscord<sealmove> yeah, time to find a "correct" alternative
22:51:07FromDiscord<Elegantbeef> Were you importing or including the file?
22:52:11FromDiscord<sealmove> it's part of a nimble lib package
22:52:23FromDiscord<sealmove> i import it in private modules
22:53:10FromDiscord<sealmove> hmm maybe I can use `when`?
22:53:35FromDiscord<sealmove> but no... I can't _execute_ a pragma conditionally
22:53:42FromDiscord<sealmove> can I?
22:53:57FromDiscord<Elegantbeef> You can but you generally shouldnt need to
22:54:37FromDiscord<sealmove> ok hmm, how do I compile it once? maybe the compilation can be taken care of by a nimble task?
22:55:00FromDiscord<Elegantbeef> Afaik it should only compile it once
22:55:23FromDiscord<Elegantbeef> Module top level statements only run once when imported
22:55:29FromDiscord<Elegantbeef> If you're including them that's on you
22:55:30FromDiscord<sealmove> but I import it twice
22:55:39FromDiscord<Elegantbeef> Modules are only semantically checked once
22:55:40FromDiscord<sealmove> no, I only import, no include
22:55:47FromDiscord<sealmove> ok so it's a bug then
22:57:36FromDiscord<sealmove> In reply to @รєคɭ๓๏שє "Actually I see now": maybe it's because I am evaluating code?
22:58:32FromDiscord<Elegantbeef> What?
22:58:37FromDiscord<sealmove> sent a code paste, see https://play.nim-lang.org/#ix=49Ur
22:58:40FromDiscord<sealmove> not pre-computed
22:59:00FromDiscord<Elegantbeef> it's static code it gets evaluated on the spot for the VM to work with
23:02:07FromDiscord<sealmove> sent a code paste, see https://play.nim-lang.org/#ix=49Uv
23:03:38FromDiscord<sealmove> But is it a problem if it's compiled twice? Isn't the problem _linking_ twice?
23:04:03FromDiscord<sealmove> You get redefinition error if you link twice I believe
23:07:41FromDiscord<sealmove> sent a code paste, see https://play.nim-lang.org/#ix=49Ux
23:07:51FromDiscord<sealmove> so the pragma also links them
23:09:15FromDiscord<Elegantbeef> Well yea it links the C file
23:09:23FromDiscord<Elegantbeef> What's the point of compiling without linking
23:11:16FromDiscord<sealmove> ok i'll try to reproduce in a minimal example
23:11:39FromDiscord<sealmove> tomorrow though
23:19:26*wallabra quit (Ping timeout: 260 seconds)
23:22:15*wallabra joined #nim
23:26:00*wallabra_ joined #nim
23:27:20*wallabra quit (Ping timeout: 255 seconds)
23:27:53*wallabra_ is now known as wallabra
23:30:50*jmdaemon joined #nim