<< 30-10-2019 >>

00:12:24*Hideki_ quit (Remote host closed the connection)
00:13:12*Hideki_ joined #nim
00:15:06*luis__ joined #nim
00:17:17*Hideki_ quit (Ping timeout: 240 seconds)
00:43:24*luis__ quit (Ping timeout: 252 seconds)
00:48:28rayman22201@yumaikas, congrats! your article is #2 on HN right now :-D
00:51:04*Hideki_ joined #nim
01:00:42FromGitter<zacharycarter> anyone know how `outdir` works with nimterop and `getHeader` ?
01:01:07FromGitter<zacharycarter> I keep getting an error about missing build files even though I'm using the -d:xxxGit and -d:xxxStatic flags
01:01:50*Hideki_ quit (Ping timeout: 265 seconds)
01:03:59FromGitter<zacharycarter> ah never mind I figured out the issue
01:08:16FromGitter<zacharycarter> meh - I can't get passed this error: No build files found in
01:08:21*ng0 quit (Quit: Alexa, when is the end of world?)
01:19:31shashlickSup
01:19:52shashlickWhat's your code look like
01:20:13shashlick@zacharycarter ^^
01:22:26FromGitter<zacharycarter> shashlick - I just added a comment to this issue: https://github.com/nimterop/nimterop/issues/57
01:22:40FromGitter<zacharycarter> I think it's still a problem with enums that reference other values defined in the same enum
01:23:49*kevin joined #nim
01:24:13*kevin is now known as Guest73162
01:24:30FromGitter<zacharycarter> I stopped using getHeader because of the `No build files found in` error
01:24:44shashlickWhat did you pass to getHeader
01:24:49shashlickI'll look into that issue
01:24:57FromGitter<zacharycarter> but before the code looked like:
01:25:29FromDiscord<slymilano> >Is Nim stable? I have vague memories that some parts of its runtime had some deep issues that weren't yet resolved, like maybe around concurrency? I see the language is at 1.0 now, does it have a stable, solid, dependable implementation and runtime?
01:25:35FromDiscord<slymilano> https://news.ycombinator.com/item?id=21393675
01:25:44FromDiscord<slymilano> Really curious to hear what you guys say
01:25:46FromGitter<zacharycarter> https://gist.github.com/zacharycarter/4927871683a3bdd8284eb8a5b7785c99
01:26:02FromGitter<zacharycarter> and I would run with: `nim c -d:sokol_gfxGit -d:sokol_gfxStatic .\sokol_gfx.nim`
01:26:53FromGitter<zacharycarter> slymilano: that's a pretty vague description of `deep issues`
01:27:22shashlickLet me try
01:27:40shashlickYour code set Defines is missing the L
01:27:45FromDiscord<slymilano> Yeah I figured it's vague
01:27:55FromGitter<zacharycarter> and I think the fact that the language is now 1.0 is an assertion from the author / contributors to the language that it is the things you asked about
01:28:23FromGitter<zacharycarter> err yeah sorry
01:28:28FromGitter<zacharycarter> that setDefines shouldn't be there
01:29:00FromDiscord<slymilano> oh i didn't ask the question, just saw it https://news.ycombinator.com/item?id=21392803
01:29:04FromGitter<zacharycarter> since I'm setting the defines in `nim c` command
01:29:57shashlickI've not tested with _
01:30:08shashlickWill need to see how the macros hold up
01:30:23FromGitter<zacharycarter> ah okay
01:31:02shashlickLinux?
01:31:06FromGitter<zacharycarter> Windows
01:32:20FromGitter<zacharycarter> slymilano: I guess the simple answer is yes - but there are all sorts of caveats and I think the question is flawed in the first place
01:33:39FromGitter<zacharycarter> You can achieve concurrency and parallelism in Nim
01:34:50FromGitter<zacharycarter> I'm guessing the author of - `I have vague memories that some parts of its runtime had some deep issues that weren't yet resolved, like maybe around concurrency` - is referring to the fact that the default GC imposes thread local heaps which can make sharing memory between threads tricky
01:35:28FromGitter<zacharycarter> but I don't think that has anything to do with a stable / solid / dependable implementation and runtime
01:35:53FromGitter<zacharycarter> also what person A might deem fitting the above criteria, person B might not
01:37:12FromGitter<zacharycarter> but as I mentioned previously, I think the fact that the language has crossed the v 1.0 threshold means the authors are asserting those things
01:37:20FromGitter<zacharycarter> ymmv
02:26:00shashlick@zacharycarter - sokol doesn't have any cmake, configure or makefiles
02:26:04shashlickthere's nothing to build
02:26:32shashlickyou really just need cImport
02:44:09*Guest73162 quit (Quit: Leaving)
02:44:24*Guest73162 joined #nim
02:50:49*seni quit (Quit: Leaving)
02:51:39*Guest73162 quit (Quit: Leaving)
02:54:48*Guest6403 joined #nim
03:10:32*FreshcollegeGirl joined #nim
03:19:16*rockcavera quit (Remote host closed the connection)
03:19:26*tamago324 joined #nim
03:21:34*tamago324 quit (Remote host closed the connection)
03:22:56leorizemore nim on HN and the first thing people complain is still style-insensitivity :p
03:24:25*tamago324 joined #nim
03:55:48FromGitter<zacharycarter> shashlick: ah okay, I thought you could just download and prepare the header with getHeader but I guess not
03:56:00FromGitter<zacharycarter> it's always the first complaint
04:07:03*Guest6403 quit (Quit: leaving)
04:07:49*kevin joined #nim
04:07:51shashlickthat's what gitPull does pretty much
04:07:56*kevin is now known as Guest94183
04:08:10yumaikaso/
04:11:33yumaikasDo we have some way to leave messages in here?
04:11:39yumaikas!leavemessage
04:11:43yumaikashrm....
04:11:47yumaikas!bot
04:11:59disruptekshashlick: https://github.com/disruptek/nimph
04:24:57*Guest94183 quit (Ping timeout: 240 seconds)
04:38:26*dddddd quit (Ping timeout: 240 seconds)
04:46:18*nsf joined #nim
04:54:31leorizeyumaikas: leave message?
04:56:08yumaikasleorize: Like, a bot where you can ask it to let someone know something next time they are active. It's a feature of some IRC channels I've been in elsewhere
04:56:26leorizewe don't have that :P
04:56:48disrupteki usually just send them a virus.
04:56:54disruptekperks 'em right up.
04:57:17yumaikasleorize: You think it would be a bad thing to keep up and running here?
04:57:34leorizeI think it's fine
04:57:41leorizealthough you can just point ppl to logs :P
04:58:32*chemist69_ joined #nim
04:58:56*Hideki_ joined #nim
05:00:37yumaikasYou can, I suppose I might. Just wanted to chat with dom96 some is all
05:00:54leorizeoh, dom96 has a bouncer here
05:01:02leorizejust ping him
05:01:34*chemist69 quit (Ping timeout: 265 seconds)
05:02:11yumaikas@dom96?
05:02:15yumaikasor just his nick?
05:02:31*yumaikas has weechat in a VPS watching here
05:02:37FromDiscord<Rika> doesnt matter really does it
05:02:45leorizeit's irc, just the nick is fine
05:03:01yumaikasFair enough. IDK what he's got set to highlight
05:03:14*Hideki_ quit (Ping timeout: 240 seconds)
05:03:27disruptekwhat is OCB Amazon Neptune and why did it cost me $1000 last month? 🙁
05:03:42FromDiscord<Rika> rip
05:13:24disruptekvery odd. it's like, in addition to the normal ~$300 rate i usually pay, but i've never gotten this line item before.
05:15:22yumaikasRika, leorize: Y'all running anything publicly written in Jester, with source available?
05:16:19FromDiscord<Rika> nope, im pretty new to the language, and im still stuck converting a medium sized python lib to pure nim
05:16:55yumaikasOk. Looking for examples to list in a promotional docs-site I'm working on atm
05:17:58FromDiscord<Rika> what intuitions do you all have regards ref object vs object, because i cant decide if this one type should be heap or stack allocated xd
05:18:08disruptekref.
05:18:38yumaikasRika: I'd need more context
05:18:54yumaikasIf it's going to be mutated from procs a lot, I'd say go with ref object
05:19:14FromDiscord<Rika> hmm the fields are mutated
05:19:33FromDiscord<Rika> i'll make it a ref i think
05:19:50FromDiscord<Rika> i can only recall fields being passed into procs and being mutated
05:19:52yumaikasAlso, if you're coming from pthong, I think that ref object is probably going to be closer to what you might expect
05:20:03FromDiscord<Rika> pthong.
05:20:32yumaikasderp
05:20:35yumaikas*python
05:20:37FromDiscord<Rika> wonder how much impact a ref object has on performance though, if any at all
05:20:48yumaikasDepends on your use case
05:21:03yumaikasWorst comes to worst, measure it both ways
05:21:21FromDiscord<Rika> i'll be instantiating 10s of thousands of these and storing it in memory
05:21:55yumaikasThat sounds like something to profile then. What is the context for this?
05:21:59FromDiscord<Rika> rather, not storing it in memory but destroying them again then reinstantiating when necessary (its not my lib...)
05:22:44yumaikas(To be clear, I don't have an answer for how this should be done)
05:22:44FromDiscord<Rika> here's the lib im moving https://github.com/llllllllll/slider
05:24:00FromDiscord<Rika> the `Beatmap` class in `beatmap.py` is what i'm moving (i kinda fixed the "christ almighty thats a lot of fields" issue)
05:25:35yumaikasOk. Well, I'm not an expert in this. I think I'd start without making it a ref, and then pass refs where they are needed
05:25:54yumaikasbut, like I said, I'd measure it if performance is a sticking point
05:26:26FromDiscord<Rika> hmm
05:26:32yumaikasThe nim *should* be faster than the python, at least for stuff that isn't accelerated by C libraries under the hod
05:26:33FromDiscord<Rika> well ill just figure it out i guess ;;
05:26:54FromDiscord<Rika> this class is pure python so it should be okay
05:27:46FromDiscord<Rika> it takes a few seconds parsing a thousand of the files (converting to the class) so it should be fine right ;;
05:30:40yumaikasWhen it comes to performance, it all depends on if you can afford to do less
05:31:59FromDiscord<Rika> do keyword-only arguments exist in nim?
05:33:11yumaikasNot as such, I don't think
05:33:27FromDiscord<Rika> https://github.com/nim-lang/Nim/issues/9036 darn
05:33:31yumaikasI know that htmlgen uses macros to get halfway there
05:34:33*jwm224 joined #nim
05:34:52FromDiscord<Rika> eeeeeeee i dont think im that desperate to get there
05:35:50yumaikasNow, if you're ok with them also being positional, I think you have args be specified with keywords, so long as you provide a default value?
05:35:52*kevin joined #nim
05:35:56yumaikasI could remember wrong
05:36:14*kevin is now known as Guest96537
05:38:22FromDiscord<Rika> ill just trust whoever would use this weird ass library to pass it keyworded
05:41:18yumaikasRika: Have your examples pass it keyworded, that should make it a *lot* more likely that other people do
05:42:00FromDiscord<Rika> oh no i havent put docu on this lib yet 😰
05:42:30FromDiscord<Rika> aaaaaaa ill do it when i finish (also damn i need to put this in git with proper commits too oh no)
05:43:07*Guest96537 quit (Quit: leaving)
05:43:44*kevin_ joined #nim
05:49:32*theelous3_ quit (Read error: Connection reset by peer)
05:52:02yumaikasdom96: I have a start on a docs repo up at https://github.com/yumaikas/jester-docs, and apparently we had met improperly before: https://news.ycombinator.com/item?id=18139797
05:57:16*sagax quit (Ping timeout: 252 seconds)
06:02:50*FreshcollegeGirl quit (Ping timeout: 240 seconds)
06:06:31*theelous3 joined #nim
06:11:06FromDiscord<Rika> ooh thats cool
06:14:40*LargeEpsilon joined #nim
06:34:42*narimiran joined #nim
06:39:25Araqwhat's an "improper meeting"?
06:41:20FromDiscord<Rika> unaware meeting?
06:45:04narimirannim bingo, there is a new nim thread on HN, can you guess the top-voted comment?
06:45:35*solitudesf joined #nim
06:49:36Araqsome bullshit about something that never comes up in practice
06:51:24narimirani wrItE mY cODe liKE tHiS
06:58:54FromGitter<SolitudeSF> and the comment right below it gives wrong examples of style insensitivity. the classic.
06:59:20Araqyes and in Java you can write it like this:
06:59:23Araq\u0069\u0020\u0077\u0072\u0049\u0074\u0045\u0020\u006D\u0059\u0020\u0063\u004F\u0044\u0065\u0020\u006C\u0069\u004B\u0045\u0020\u0074\u0048\u0069\u0053
06:59:48Araqbecause Java allows for Unicode inputs in non-string-literals
07:00:00*gmpreussner_ quit (Quit: kthxbye)
07:00:47Araqthere are good reasons for not using Java, this is not one of these.
07:02:35Araqnow back to my precious command line where I have to type 'gcc' even though the program is called GCC
07:03:16Araqand back to browsing where every url starts with 'https' even though I'm pretty sure it should be HTTPS
07:04:52*gmpreussner joined #nim
07:15:20FromDiscord<Rika> but my grep
07:15:21FromDiscord<Rika> :V
07:21:08GordonBGoodAraq: and a link to an interview with you that was actually quite informative for a short interview (SoftwareSource), but all of his interviews aren't dated on the website, so can't tell how relevent they are
07:22:00GordonBGoodSorry, (SourceSort)
07:22:50GordonBGoodI assumed the interview came after the buzz about version 1.0, but I don't think it says anywhere
07:25:57GordonBGoodAraq: I went back and closely looked at your araq-refcounting branch; there are a couple of things I notices; would you like me to file comments in issues there or chat about them first here?
07:26:09GordonBGoodThere are just a couple of observations...
07:26:59AraqGordonBGood: the interview is about 2 weeks old
07:27:16GordonBGoodThank you on the interview
07:27:38Araqand yeah ask here
07:27:52GordonBGoodOkay, here goes:
07:27:54Araqthe branch is WIP btw, I'm finishing the refcount implementation
07:28:23Araqthe idea is that --gc:destructors is the new mode
07:28:31GordonBGoodI assume you intented that the --gc:destructors and --gc:hooks seem to do about the same thing?
07:28:47Araqno
07:28:55Araq--gc:destructors == refcounting
07:29:01GordonBGoodThe mode is --gc:destructors, but it has a --gc:hooks option?
07:29:02Araq--gc:hooks == araqsgc
07:29:38GordonBGoodYes, currently --gc:hooks is araqsgc, but it opens the door to others in the future?
07:30:10Araqwell it's hooks
07:30:32Araqyou can write your own GC via it but it needs more hooks for this to work out
07:30:36GordonBGoodOkay, I'll reread it again in the view that destructors is the mode, hooks is an available option on top of destructors
07:31:29GordonBGoodYes, we discussed the "more hooks" required; let it ride for now as it likely isn't that important
07:31:32AraqI think --gc:hooks is a deadend, as I said, too many proc vars would be involved to the point we're better off with a swappable mmdisp.nim implementation or something
07:32:32GordonBGoodHmm, that's interesting that you are starting to see --gc:hooks that way
07:32:53Araq'=' and '=destroy' and '=sink' are static constructs, more efficient than runtime hooks and we need to stick to one thing and make it work really well
07:33:30Araqenough experimentation, it's time to decide on a design and to stick with it
07:33:47GordonBGoodMy other observation is that destructors and or hooks have optSeqDestructors in the option set but as currently written they also need to declare nimSeqsV2 just as newruntime does?
07:34:17GordonBGoodI'm with you there, there is already too much legacy code to worry about
07:34:59GordonBGooddestructors/hooks can't work without nimSeqsV2 as they have already shed the cruft
07:37:01GordonBGoodJust as newruntime has also shed the cruft and forces that destructors and nimSeqsV2 must be used
07:40:46AraqnimSeqsV2 is optSeqDestructors, I don't understand the question
07:41:05Araqother options also imply optSeqDestructors
07:41:33*filcuc joined #nim
07:42:37GordonBGoodThe comment is: you turn on optSeqDestructors, which tells the compiler what to do, but I think you also need to declare the symbol "nimSeqsV2" in order to make the when statements work?
07:43:31GordonBGoodAs currently written...
07:43:43Araqah. good point, yes
07:44:39GordonBGoodSo, at least for now, we need to add the declarations of "nimSeqsV2" at the same time we turn on "optSeqDestructors", right?
07:45:33Araqright
07:46:04GordonBGoodFinally, maybe you can help me shortcut some investigations on the "using seqsv2 everywhere" project, which is now my top priority:
07:46:55GordonBGoodI've got the whole project mapped out and half finished, but I have some conflicts between using the new and old seqs (not at the same time, of course)
07:47:33GordonBGoodI never liked the old seqs/strings, so up to now just used them as they seems to work and never really looked at the structure
07:48:43GordonBGoodNow it seems I have never really understood how they were mapped into memory; I assume that there was an outer object that contained a ptr/ref just like the new ones, but it seems I was mistaken
07:50:03GordonBGoodI'm now starting to come to the realization that the new seqsv2 do work like that, but the old ones were a stack location pointing to the whole GenericSeq object on the heap, right?
07:50:26*jjido joined #nim
07:51:09Araqright
07:51:31Araqold seq/string: a single pointer
07:51:45Araqnew seq/string: a (len, pointer) pair
07:52:00GordonBGoodI've just had a "whoops" moment when I realized that I was trying to pass the new seqsv2 outer object (containing the len) when the routines were expecting the old seq pointer
07:52:45GordonBGoodSo that seems to mean that in order to give the old code proc's what they expect, I'm going to have to pass them a pointer to the outer object, right?
07:53:04GordonBGoodSo a pointer to an object that then contains a pointer?
07:53:42GordonBGoodI can do it, but it seems redundant somehow...
07:54:15Araqit's mind boggling for me too ;-)
07:54:31Araqit helps to look at how tyTuple is handled
07:55:19GordonBGoodWell, I guess the most important thing is get it working first, and then look at tuning if possible later :)
07:56:35GordonBGoodI really want to get this into devel so everybody can test it against their libraries, and hopefully so we can soon make it the default and get rid of the old version
07:56:51GordonBGoodstake through the heart so it never comes back
07:58:11GordonBGoodIt seems to me that in addition to the reasons that you no longer find the old seqs acceptible as you stated a couple of days ago...
07:59:15GordonBGoodThey are also the reason the GC was/is so difficult to support, why a multi-threaded GC seemed so difficult, and therefore why a smoothly working multi-threading async is in the state it is
07:59:38*luis__ joined #nim
07:59:57Araqhardly, you can't blame seqs for MM being hard
08:00:01GordonBGoodBut that's just my (strongly held) opionion ;-)
08:01:31GordonBGoodIt seems to me that the whole deepCopy mess came about because of the difficulty of crossing seq's/string's/closure to different threads
08:02:01Araqno, it's a problem of threadlocal heaps
08:02:27GordonBGoodIt wasn't actually the seq's/string's/ref's I suppose, but the lack of destroy/move semantics, but now seq's (and I think closures) embrace that
08:03:21*gmpreussner_ joined #nim
08:03:51GordonBGoodYes, I understand that it was the problem of theadlocal heaps, but without the complexities of supporting seqs with cruft, it seems to me that something like a shared heap GC would have been much easier and likely done by now
08:03:55*krux02 joined #nim
08:04:27*gmpreussner quit (Ping timeout: 240 seconds)
08:05:30GordonBGoodIn order to make seqsv2 work with all the old MM, I'm having to make at least some minor changes in every GC implementation and adaptation, as they were all "hard coded" to GenericSeq
08:06:01GordonBGoodAnyway, "water under the bridge", we are well on the way do doing it right now, I think
08:06:44*ng0 joined #nim
08:07:40GordonBGoodWith seqsv2, and if we didn't have to support the old seqs/strings/closures, each of the GC files would be simpler
08:08:23GordonBGoodAraq: let me get back to work and not take up more of your time; thanks for the help
08:12:41ZevvInteresting: I have a workload thats 100% faster on 'nim c' then it is on 'nim cpp'
08:19:20*Vladar joined #nim
08:28:09ZevvTwice the cache misses on .cpp, hmmm
08:31:49*floppydh joined #nim
08:40:11AraqZevv: my guess would be that c++'s name mangling on top of Nim's name mangling produces long internal identifiers
08:40:18Araqslowing everything down quite a bit
08:40:25Zevvat *run time* ?
08:42:11*tklohna_ joined #nim
08:42:19Araqoh I thought you were talking about the compile times
08:43:06Zevvnope :)
08:43:35Araqhttps://github.com/nim-lang/Nim/pull/12550 is 'outplace' a word?
08:43:56Araqthe opposite of an inplace operation is 'outplace'. right?
08:44:04Zevvif you want it to be
08:44:21Zevv"in place" is two words, actually
08:44:37Araqsorted(x) == outplace(sort(x)) ?
08:44:49Araqany English natives around?
08:45:34FromDiscord<Chiqqum_Ngbata> "outplace" isn't a word or commonly used neologism
08:45:44Araqsorted(x) == sort(x).ed()
08:46:09Araqshuffle(x).ed, nah too silly
08:46:17FromDiscord<Chiqqum_Ngbata> Wikipedia tells me... "An algorithm which is not in-place is sometimes called not-in-place or out-of-place. "
08:47:37Araqcopyof(sort(x))
08:47:50FromDiscord<Chiqqum_Ngbata> copy makes the most sense to me
08:48:14*letto_ joined #nim
08:48:26Araqcopied(sort(x))
08:50:04FromDiscord<Chiqqum_Ngbata> Perfect IMO
08:50:15AraqI like 'outplace' better, at least it's not misleading, you have to read its docs, 'copied(sort(x))' could mean it's copied afterwards
08:52:19FromDiscord<Chiqqum_Ngbata> No chance of defaulting sorting to making a copy & making the in-place sortInPlace or sort(thing, inplace=true) ?
08:52:27Araqhmm or maybe even returnInner(sort(copy x))
08:53:55AraqChiqqum_Ngbata: Nim values efficiency too much for that, we mostly use inplace algorithms where they have clear performance benefits
08:54:33*fanta1 joined #nim
08:54:44FromDiscord<Chiqqum_Ngbata> Right, fair enough
08:55:19Zevvand in real life a thing like sorting is often perfectly fine in most of the cases
09:00:28*Hideki_ joined #nim
09:04:02*tamago324 quit (Remote host closed the connection)
09:05:10*Hideki_ quit (Ping timeout: 268 seconds)
09:08:41*vesper joined #nim
09:09:06PMunchOnce you've got your types mapped working against C in Nim really "just works" :)
09:09:29*vesper11 quit (Ping timeout: 268 seconds)
09:09:33PMunchAlthough with a bit more casting and pointers than in normal Nim code
09:10:00*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:26:31FromDiscord<kodkuce> dous using C wrapedd libs give you any slowdown vs same lib in Nim?
09:26:58FromDiscord<kodkuce> *same lib 100% same writed in Nim
09:27:36PMunchWell, it depends on how they are implemented
09:27:56PMunchNim obviously doesn't have the ability to opitimise anything in a C wrapped library
09:28:40PMunchBut it will all be optimised by the C compiler off course, so it's only for some pretty edge-cases you would get a speedup I think
09:28:55PMunchBut it all depends on what the wrapper is doing
09:29:11PMunchSome wrappers will convert types back and forth, which might be slow if you do it a lot
09:30:57*tklohna_ quit (Ping timeout: 250 seconds)
09:41:43FromDiscord<kodkuce> got it, ty 🙂
09:44:33*letto_ quit (Quit: Konversation terminated!)
09:46:12*letto joined #nim
09:53:46superbiais there a list of modules that work/don't work with JS
09:54:08dom96yumaikas, epic, thanks!
09:54:50dom96oh cool, we're on HN front page
09:59:22FromDiscord<mratsim> @kodkuce, no slowdown, Nim compiles to C with the same C calling convention so there is no extra wrapper overhead
09:59:35PMunchBy the way yumaikas, you can use the Freenode MemoServ to send messages to offline users: https://github.com/atheme/atheme/wiki/MemoServ%3ASEND
10:00:27*luis__ quit (Quit: luis__)
10:00:53PMunchdom96, I keep seeing articles on Nim by people I've never heard of, which is a really good sign :)
10:01:24dom96superbia, don't think so. Just try to import them, if they don't work you'll know ;)
10:01:39dom96PMunch, yep :)
10:02:48PMunchsuperbia, most pure Nim modules should work
10:03:23superbiaI mean, is there a reason why a nice list of working modules or not working modules doesn't exist?
10:04:18PMunchProbably no-one has been arsed to write one :P
10:04:42PMunchBut no, there is no reason why it couldn't exist
10:10:15Araqsuperbia: the stdlib mentions *if* a module works with JS
10:10:37Araqusually it's safe to assume that it doesn't work
10:11:57FromDiscord<mratsim> I thought it was the other way around
10:24:44*abm joined #nim
10:31:30Zevvwhat is apart from expections and refs/pointers the biggest difference between C and CPP codegen?
10:33:49AraqC++ codegen enables 'importcpp'
10:35:34Zevvhmm that does not seem relevant for what I'm looking at here. It must be something with the refs vs pointers, but can't get my fingers behind it yet.
10:42:09*pigmej quit (Remote host closed the connection)
10:42:11*Balu[m]1 quit (Remote host closed the connection)
10:42:14*Manny8888 quit (Remote host closed the connection)
10:42:19*Connor[m] quit (Remote host closed the connection)
10:42:19*MrAxilus quit (Read error: Connection reset by peer)
10:42:19*d-nice2[m] quit (Remote host closed the connection)
10:42:20*nergal[m] quit (Read error: Connection reset by peer)
10:42:20*planetis[m] quit (Read error: Connection reset by peer)
10:42:22*LEdoian[m] quit (Read error: Connection reset by peer)
10:42:24*spymasterd[m] quit (Read error: Connection reset by peer)
10:42:25*meff[m] quit (Write error: Connection reset by peer)
10:42:26*BitPuffin quit (Remote host closed the connection)
10:42:27*Miguelngel[m] quit (Remote host closed the connection)
10:42:27*skrylar[m] quit (Remote host closed the connection)
10:42:27*salotz[m] quit (Remote host closed the connection)
10:42:29*GitterIntegratio quit (Read error: Connection reset by peer)
10:42:30*zielmicha[m]1 quit (Remote host closed the connection)
10:42:31*lasso[m] quit (Remote host closed the connection)
10:42:32*testgovno[m] quit (Remote host closed the connection)
10:42:32*Demos[m] quit (Remote host closed the connection)
10:42:34*M948e5[m] quit (Read error: Connection reset by peer)
10:42:34*lqdev[m] quit (Read error: Connection reset by peer)
10:42:35*narimiran[m] quit (Remote host closed the connection)
10:42:37*xomachine[m] quit (Read error: Connection reset by peer)
10:42:38*muxueqz[m] quit (Remote host closed the connection)
10:42:38*yglukhov[m] quit (Read error: Connection reset by peer)
10:42:39*isaac[m]1 quit (Remote host closed the connection)
10:42:40*Asbrn[m] quit (Remote host closed the connection)
10:42:41*k0mpjut0r quit (Write error: Connection reset by peer)
10:42:41*nc-x[m] quit (Remote host closed the connection)
10:42:41*TheManiac[m] quit (Remote host closed the connection)
10:42:42*macsek1911[m] quit (Remote host closed the connection)
10:42:42*leorize[m] quit (Remote host closed the connection)
10:42:42*swisscowbell[m] quit (Remote host closed the connection)
10:50:43FromDiscord<treeform> C++ backend uses c++ exceptions, while c does a different thing.
10:51:20Zevvyeah, but there are no exceptions happening, and I just threw out all raises as well.
10:51:55ZevvAt the ASM level things are also not that different, but still I get 1.7 instructions per cycle on C and only 1.0 on C++
10:52:09Zevvpipeline stalls
10:53:41*kevin_ quit (Quit: leaving)
11:00:08*clyybber joined #nim
11:05:01*testgovno[m] joined #nim
11:20:50*Vladar quit (Ping timeout: 240 seconds)
11:21:17*Vladar joined #nim
11:27:38*LargeEpsilon quit (Ping timeout: 252 seconds)
11:28:55*Connor[m] joined #nim
11:28:55*swisscowbell[m] joined #nim
11:28:55*k0mpjut0r joined #nim
11:28:55*planetis[m] joined #nim
11:28:55*leorize[m] joined #nim
11:28:56*d-nice2[m] joined #nim
11:28:56*GitterIntegratio joined #nim
11:28:56*M948e5[m] joined #nim
11:28:56*MrAxilus joined #nim
11:28:56*BitPuffin joined #nim
11:28:56*isaac[m] joined #nim
11:28:56*nergal[m] joined #nim
11:28:57*Manny8888 joined #nim
11:28:57*Demos[m] joined #nim
11:28:57*lqdev[m] joined #nim
11:28:57*pigmej joined #nim
11:28:57*LEdoian[m] joined #nim
11:29:02*salotz[m] joined #nim
11:29:02*skrylar[m] joined #nim
11:29:03*spymasterd[m] joined #nim
11:29:03*muxueqz[m] joined #nim
11:29:03*lasso[m] joined #nim
11:29:03*Miguelngel[m] joined #nim
11:29:03*narimiran[m] joined #nim
11:29:03*Asbrn[m] joined #nim
11:29:03*nc-x[m] joined #nim
11:29:03*xomachine[m] joined #nim
11:29:04*meff[m] joined #nim
11:29:04*TheManiac[m] joined #nim
11:29:04*yglukhov[m] joined #nim
11:29:04*Balu[m] joined #nim
11:29:04*macsek1911[m] joined #nim
11:29:05*zielmicha[m]1 joined #nim
11:41:30FromGitter<zacharycarter> I think I have working sokol_gfx bindings now, so yay!
11:47:57*solitudesf quit (Ping timeout: 246 seconds)
11:49:26*rockcavera joined #nim
11:52:07*solitudesf joined #nim
11:53:18FromGitter<zacharycarter> excited to start writing some networking code this evening
12:07:39*LargeEpsilon joined #nim
12:09:42shashlick@zacharycarter I think getHeader should work for your use case too, will expand it
12:09:49shashlickAny other hiccups
12:10:05FromDiscord<mratsim> does the new nimble now eats hint and warning on nimble test @dom96?
12:28:08*lritter joined #nim
12:28:58*clyybber quit (Quit: WeeChat 2.6)
12:29:07*clyybber joined #nim
12:31:56clyybberAraq: Seems like the `Obj(v: 1)` to `var tmp = Obj(); tmp.v = 1; tmp` conversion is causing many problems.
12:32:20clyybberIt also doesn't seem that well of an idea in hindsight, maybe this should be better done in the backend as it is now.
12:32:51Araqwhich problems?
12:33:16clyybberThe test failure, one moment
12:33:18FromGitter<alehander42> clyybber everything that one does in the backend needs to be done in each backend, isnt it
12:33:44FromGitter<alehander42> is there something like a pre-backend pass which does stuff like that independent on the actual target
12:34:02*theelous3 quit (Ping timeout: 276 seconds)
12:34:32clyybberalehander42: Yes there is, and thats exactly where I'm doing it currently.
12:35:03clyybberAraq: Here: https://dev.azure.com/nim-lang/Nim/_build/results?buildId=430
12:35:49clyybberI'm not sure the cause of it though. But introducing a temporary for every object constructor seems a bit overkill (doing it before the code backend and injectdestructors that is)
12:36:44clyybberAraq: And I could do the transformation from `Obj(v: 1)` to `Obj(v: 1, somefieldwithadefaultvalue: 2)` in theory.
12:36:59clyybberIts just that I need to rely on the object-variant-discriminator to be constant.
12:37:16clyybberWhich it is required to be currently by the spec
12:37:54clyybberSo I wanted your opinion on wether theres plans to remove that const restriction or if its here to stay (meaning I can rely on it)
12:39:12Araqyou can rely on it in the sense that the value will always be required to be precise enough so that we can detect the object case branch at compiletime
12:39:24clyybberYeah, thats enough
12:39:39Araqit can be a variable of a 'range' type if that's precise enough
12:40:05clyybberYeah, just need to know which case its gonna end up in. So I can insert the appropriate default values.
12:40:18clyybber*case branch
12:41:38Araqfrom `Obj(v: 1)` to `Obj(v: 1, somefieldwithadefaultvalue: 2)` is even better in theory because it doesn't lose information
12:41:58Araqwe still know it's a complete object construction
12:42:02AraqI like it.
12:42:15*dddddd joined #nim
12:42:20clyybberYeah, and thats better for the js backend
12:42:29clyybberBecause js has constructors right?
12:42:51Araqit helps every backend not to lose information
12:43:14Araqthe backend can always lower on its own, but extracting the highlevel information that existed is harder
12:44:48clyybberYeah
12:45:01*Vladar quit (Quit: Leaving)
12:45:16*Kaivo joined #nim
12:45:56*Hideki_ joined #nim
12:47:03clyybberwoow, I found something rare in the compiler code
12:47:17clyybbercommand syntax like this `someproc arg1, arg2, arg3`
12:51:01clyybberAraq: Should I allow this:
12:51:12clyybbertype o = object
12:51:17clyybber case b: bool = true
12:51:30clyybber of false: f: int
12:51:36clyybber of true: t: int
12:51:54clyybberdiscard o(t: 1)
12:51:58clyybber?
12:54:56FromGitter<zacharycarter> shashlick: I think the enum thing is the only thing that's really blocking me atm, I ended up using nimgen to generate the bindings instead of nimterop
12:55:06FromGitter<zacharycarter> and then I manually tweaked the output from nimgen
12:55:10Araqyeah, it's required for a better Option[T] type
12:55:14FromGitter<zacharycarter> since I was in a rush
12:57:07clyybberAraq: Ok. I have to do some of the transformation in sem then.
12:57:46Araqbeware about the effects for the macro system then
12:58:14clyybberAraq: Yeah, I don't want to affect that. Maybe I'll store it somewhere secret for use in transf
12:58:41clyybberOr I just transform twice. One time only for checks.
12:58:45Araqhttps://www.deviantart.com/a-discworld-guild/art/Death-Builds-a-Swing-Set-37768200 this is how to not design software systems.
12:59:15Araqclyybber: unfortunately this hidden AST state is worse
12:59:29Araqsee nfDefault node flags
13:00:00AraqnfDefaultParam, nfDefaultRefsParam, nfExecuteOnReload ...
13:00:15Araqbad design.
13:00:36shashlick@zacharycarter why nimgen? Anything specific
13:00:38clyybberLol that pic.
13:00:56clyybberAraq: So what should I do? Just take the bad design and go with it?
13:01:03clyybberWhats bad about it anyways?
13:01:35AraqNim's macro system works better with less magic so do the transformation in sem and document the breaking change
13:01:51Araq(but then previously we had no default values so it doesn't break anything, does it...)
13:02:25shashlickI'm planning on porting some nimgen stuff into nimterop
13:02:25clyybberAraq: Should I also do the reset and default(T) transformations in sem?
13:03:19Araqso .. --gc:destructors. it's a thing now
13:03:36Araqsimple tests work
13:03:58FromGitter<zacharycarter> shashlick: I had to do a lot of search and replace work and I was just more familiar with nimgen's API. I'll give nimterop a shot again soon
13:04:02Araqlooking for sensible milestones
13:04:16clyybberAraq: And --gc:hooks is an extension of --gc:destructors, is that right?
13:04:35Araqyeah but don't use it :P
13:04:41Araqthe hooks are incomplete
13:04:51clyybberok
13:05:31Araqtime to write a threading API that doesn't suck I guess
13:05:41clyybberAraq: I think it may be a good idea to do the object constructor to object contructor transformation in sem and result, default(T), and reset in transf.nim, wdyt?
13:05:43FromDiscord<mratsim> just how many --gc: are there now?
13:05:58clyybberAraq: yes please
13:06:15clyybbermratsim: Not enough :D
13:06:57Araqmratsim: there is only --gc:destructors, everything else is moribund. Until we switch to something else, next Monday.
13:07:46Araqclyybber: hmmm, I still like 'result' in the backend
13:08:10Araqdon't care about default(T) and reset
13:08:18clyybberAraq: I don't want to make it go away, just insert a `result = Obj(defaultthings)` at the start of a proc.
13:08:40clyybberOh
13:09:00Araqdon't insert this, use the DFA to see where it's required
13:09:02clyybberIt just occured to me that I have to insert an object constructor for every variable thats not initalized.
13:09:09shashlick@zacharycarter cool I'll port those into nimterop
13:09:13Araqyup
13:09:18clyybberAraq: Ok. Won't the backend optimize it away anyways?
13:09:24clyybberIf its not used I mean.
13:10:26Araqthe C backend does that but still
13:10:52clyybberok
13:12:05FromDiscord<mratsim> so what about the threading API, will it differ from Threadpool API?
13:15:54Araqmratsim: we should join forces on your picasso thing
13:17:12shashlickNimble nawabs nimby nimph
13:17:16clyybberYeah
13:17:23clyybberI wanted to say, those should join too.
13:17:25shashlickWish we could bring all this together
13:17:40Araqnawabs died with 'nimble develop'
13:17:48clyybbershashlick: Thougg, I meant nawabs, nimby and nimph
13:18:10clyybbernimble is a bit different, as its old an has to retain compatibility.
13:18:47Araqjust today I discussed Nimble with dom96, want to change $nimbledir
13:18:55shashlickYa but nimble isn't just some random tool, it's the official package manager
13:19:11clyybbershashlick: Exactly. Thats why experiments should be done elsewhere.
13:19:15clyybberUntil its ready.
13:19:29shashlickIf that's what they are, sure
13:19:55shashlickBut ideas need to come back into nimble eventually
13:20:04Araqanyhow one idea we developed was that the existence of $cwd/deps means Nimble uses that instead of $nimblePath
13:20:20clyybberwhere $cwd is the project dir?
13:20:22clyybberYeah pls
13:20:23Araqyes
13:20:40Araqother current working dir or "project dir"
13:20:44shashlickWhat of Nim's knowledge of nimble
13:20:58Araqmost likely project dir
13:21:36FromDiscord<mratsim> I don't mind joining forces
13:22:10FromDiscord<mratsim> the PoC is there, the original author (another Andreas) is also available if needed (and he is german 😉 )
13:22:21Araqoh no
13:22:34AraqI cannot get along with other Germans
13:22:54clyybberhaha, thats why krux is in your team right?
13:23:39FromDiscord<mratsim> well he is focused on releasing a cleanup C version, he is not a Nim dev (yet)
13:24:48FromDiscord<mratsim> basically my proof of concept and tests are living in e04 folder: https://github.com/mratsim/weave/blob/master/e04_channel_based_work_stealing/tests/fib.nim
13:25:18FromDiscord<mratsim> and now we need a proper generic, nim-ified code which I should get back to: https://github.com/mratsim/weave/tree/master/picasso
13:29:44Araqnow we need proper =hooks :-)
13:32:07Araqshashlick: there is an RFC covering that, does it have any known flaws?
13:32:41shashlickI've not thought much about it
13:33:38Araqwhat's your opinion on $cwd/deps?
13:36:59shashlicki like it but `rm -rf deps` won't do what you expect
13:39:35Araq'rm -rf' never does what I expect
13:41:11shashlickso basically this is for https://github.com/nim-lang/nimble/issues/131
13:43:32Araqyeah
13:47:08shashlickseems like an easy fix - if dir exists, set nimbleDir
13:49:01Araqexactly
13:49:17*Hideki_ quit (Ping timeout: 240 seconds)
13:49:22Araqand Nim needs to understand this too or else we remove --nimbleDir
13:49:40*Vladar joined #nim
13:50:50shashlickmy concern with RFCs in general is that they don't refine into clear requirements and design
13:51:19shashlickthere's several nimble changes that are interrelated and needs a bigger design discussion to nail down the exact functionality
13:51:29shashlickand we don't seem to get there with github issues
13:52:31shashlickso $cwd/deps depends on https://github.com/nim-lang/nimble/issues/654
13:54:43Araqwell the RFCs are better than nothing
13:55:38*superbia quit (Ping timeout: 240 seconds)
13:56:42Araq#654 is wrong because Nimble should create/touch the .nim.cfg file so that nimsuggest and other tools understand the setup
13:57:27Araq'nimble getPaths' cannot work nor do I want nim to call into Nimble, wrong direction
13:57:46Araqesp since nimble already calls nim
13:58:59Araqoh it's mentioned in the discussion
14:01:53Araqand apparently the discussion died because I didn't reply
14:03:41disruptekwhy would you remove nimbleDir now?
14:05:32Araqbecause it means we have to sync the two implementations
14:06:06Araqand ideally we like to see Nimble change it, I personally think $nimbledir is terrible
14:06:35disruptekoh, for some reason i read that as nimblePath. you wouldn't change the compiler, right?
14:07:00AraqI'm vague, nimbledir is the same as nimblePath for me
14:07:51disruptekokay, well, yeah, it's pretty vague. prefer we not remove anything until we have a concrete plan on how it could work.
14:08:23disruptekwithout nimblePath, i have to rethink how i do all package management.
14:08:33disruptekand it kills nimph to boot.
14:08:48Araqwait what? why would it?
14:09:07*EvilKhaosKat joined #nim
14:09:24Araqanyhow, I wrote enough RFCs on Nimble's issue tracker
14:09:37disruptekthe point of nimph is to create a virtual env style "this is your world now" and then be able to freeze it like an upside-down icicle.
14:10:23AraqI feel like we should create a "Nimble-experiments" branch, hack something together and iterate
14:11:17Araqthere is no need to change the Nim compiler for experiments, you can pass --noNimblePath to it
14:11:28disrupteki /want/ nimblePath.
14:11:29Araqin fact, that's what Nimble already does
14:11:41disruptekeverything falls apart if it goes away.
14:11:58disrupteki mean, the whole idea of nimph is that it stands on nimble's shoulders.
14:12:03shashlicknimblePath will be retained, this $cwd is just another way of setting it
14:12:09shashlickconfiguration by convention
14:12:11*GordonBGood quit (Ping timeout: 276 seconds)
14:12:15disrupteksure, i could write something to replace it, but i'm trying to integrate here.
14:12:42AraqI want project specific dependencies
14:12:47shashlick@disruptek, i'm yet to read your readme but i'd rather see your work improve nimble
14:12:56disruptekwell, maybe we're talking about the same thing, then.
14:13:10disrupteknimph puts all your project's dependencies in the project's directory.
14:13:20disruptekthen it nimblePath on the compiler so you can find them.
14:13:25Araqthat's fine with me, that's what I'm aiming for too
14:14:06shashlick@Araq - for the near term, we can add $cwd support to nimble and nim and deal with #654 separately
14:14:27disruptekis there a different compiler option for "where to find !stdlib modules"?
14:14:44disruptekother than --path, i mean?
14:14:55shashlickif $cwd/deps exists or new flag in .nimble file says local deps, use that method
14:14:55Araqwhat's wrong with --path?
14:15:14disruptekthe problem with --path is /only/ that most people don't use it.
14:15:20Araqhere is what I often do: create a nim.cfg file
14:15:23Araqit contains
14:15:30Araq--noNimblePath
14:15:30disrupteki'm trying to build something that works with everyone else's flow.
14:15:39Araq--path:x --path:y etc
14:15:50disruptekyes, that's how i started with nim because i was frustrated with nimble.
14:15:56Araqand then I have complete control and can ignore Nimble ;-)
14:16:10disruptekbut i decided that was too anti-social of me and it didn't make sense if i wanted to share code.
14:16:11shashlick@Araq - why does the global package dir not work for you?
14:16:16shashlickhow has it broken for you in the past
14:16:39Araqit accumulates cruft by design
14:16:42disruptekyou can't control it and it's a mess. i don't want to have to build with nimble.
14:17:16disrupteki can't control individual project dependencies as soon as they /lexically/ clash, eg. npeg-#head.
14:17:26disruptekridiculous.
14:17:39Araqfor example, I had broken builds because nim picks up chronos-2.2.8 instead of chronos-1.2.2
14:17:56disruptekyes, and the supposed solution to that is to build with nimble.
14:18:10disrupteki don't want to have to use a tool because that tool broke my compiler environment.
14:18:25Araqbut that doesn't work, nimble uses my nim.exe but i'm developing the compiler so it should use my nim_temp.exe
14:18:41Araqand yeah, there is always a workaround
14:18:57Araqbut the workarounds suck moreso than avoiding Nimble.
14:20:04Araqplus I still fundamentally disagree with having multiple package-$version dirs, it's pretending we live in times where version control has yet to be invented.
14:20:35Araqbut I have written down all these things in Nimble's issue tracker already.
14:21:11shashlickI'm sure package local deps is useful
14:21:26shashlickJust wanted to know how global has bitten you specifically
14:21:38disrupteki just enumerated some examples.
14:21:38Araqwell do you know now?
14:22:01shashlick@disruptek Nim is aware of nimble, you don't need to build only with nimble
14:22:06shashlickI've never used nimble c
14:22:12disruptekno, that's incorrect.
14:22:14Araq:O
14:23:22shashlickWhy do you think https://github.com/nim-lang/nimble/issues/654 exists
14:23:42disruptekdo i need to read it?
14:23:59shashlickMore eyes
14:24:09Araqdisruptek, I think you know about it already
14:24:10disruptekit causes the compiler to use the latest versions, which are not necessarily the versions i want it to use.
14:24:19Araq^ exactly.
14:24:26shashlickAnyway, I'm all for improving nimble, I'm happy to contribute too
14:24:38AraqI know :-)
14:24:44shashlickBut there needs to be a clear path forward that folks can agree upon
14:24:57Araqwhich is why I'm spending my time on this here
14:25:24disrupteki want to be able to hack on a library in order to fix its interop with my code, and then push those changes to that library. i don't want that hackery to break every other package i have that uses that library while it's in this state of flux.
14:26:02shashlickMy biggest hurdle is getting @dom96's attention, though that's gotten a bit better
14:26:07shashlickTime difference doesn't help
14:26:10disruptekie. i'm working on lib1 inside app1 and i don't want app2 which depends upon lib1 to break.
14:26:14Araqagreed. the fact that Nimble throws away the .git dir hinders collaboration IMO.
14:27:35Araq(it also throws away examples and documentation... yada yada yada)
14:27:45disruptekyou end up having to `nimble develop` everything, and also constantly prune shit outta .nimble/pkgs and then maybe you don't want your develop copy so you wanna delete it and ... it's insane.
14:28:51Araqplus as treeform found out, 'nimble develop' doesn't work when you have 2 instances of the package you work on because you have project specific deps.
14:29:15disruptekwell of course not. but that's solved with nimph and his tool. wasn't a big deal.
14:32:27disruptekone thing that's nice about what we have now is that i can do `cd oldapp; nim c --nimblePath=../newapp/.nimble oldapp.nim; nimble test` to confirm that an old app builds against a new app's packages. i don't want to lose that, either.
14:33:14federico3https://lobste.rs/s/9o7mpj/nim_scripting_ease_compiled_language
14:33:22Araqso for me the global $nimbledir is the single cause of the trouble, it lead to --nimblePath, --noNimblePath, 'nimble develop'.
14:34:23shashlickOne thing about package local deps is how it will impact CI caching
14:35:01shashlickAlso, for deps folder to exist it will need to be checked into source control
14:35:24shashlickOr we introduce a new nimble flag in the file
14:35:31Araqyou can check in deps/empty.txt
14:35:40AraqI've used this workaround in the past
14:37:25FromGitter<nixfreakz_twitter> where does the exe get stored again when cross compiling ?
14:37:38shashlickIt also brings up the question of whether this is a user or project preference
14:38:20shashlickThen if you install a package globally that had local deps how does that work
14:38:38Araqdeps are not local or global
14:38:53Araqdeps are deps but in the end they are stored somewhere
14:39:03disrupteksomeone write that down.
14:39:19Araqcurrently that's $nimbledir, we like a project specific location.
14:39:57FromGitter<alehander42> Araq but the problem with package-$version is
14:40:02FromGitter<alehander42> that you might use lib A and lib B
14:40:05Araqdisruptek, but I did, it's in the issue tracker... :-/
14:40:08FromGitter<alehander42> which depend on different versions of C
14:40:13FromGitter<alehander42> i am not sure how version control
14:40:14FromGitter<alehander42> helprs
14:40:22disruptekit was just comically quotable. 😁
14:40:22FromGitter<alehander42> or maybe i am misunderstanding
14:40:24clyybberWe should just use git submodules.
14:40:28clyybberThats what I do.
14:40:35clyybberEveryone handles their deps themselves.
14:40:41clyybberBoom every problem solved.
14:40:51FromGitter<alehander42> and we should use assembler
14:40:58FromGitter<alehander42> everybody handles his own compilation
14:41:24clyybberNot a fair comparision
14:41:31FromGitter<alehander42> well it is
14:41:36clyybberNope
14:41:38Araqalehander42: yes I know. it doesn't come as often as people bring it up and in the meantime while Nimble solves this very problem I don't want to use it.
14:41:50FromGitter<alehander42> "let everyone do it yourself" is not always the best we can do
14:41:56disrupteka better retort is to suggest that you git submodule the stdlib used in your app, too.
14:42:00shashlickMy point is that nimble install in a project dir should install in its deps dir if it exists
14:42:02FromGitter<alehander42> but otherwise i see the simpleness point :P
14:42:33disruptekshashlick: that's how it works now.
14:42:33FromGitter<alehander42> Araq it doesnt because we have few packages probably
14:42:37shashlickBut that deps dir should have no effect when that project is now a dependency itself
14:42:41clyybberalehander42: Of course a fancy nim specific wrapper around git submodules would be cool
14:43:00FromGitter<alehander42> in the future i imagine it coming more, as the probability of a well known nimble package to be used by many other deps
14:43:03FromGitter<alehander42> comes bigger
14:43:06clyybberalehander42: But the fact is that simple fs hierarchy + submodules solve all package problems.
14:43:18FromGitter<alehander42> well, this is just simplistic
14:43:21FromGitter<alehander42> at the very least
14:43:27FromGitter<alehander42> i might want to use a different vcs
14:43:27clyybberIt just works
14:43:28FromGitter<alehander42> than git
14:43:39clyybberFair enough mercurial has submodules too.
14:43:49FromGitter<alehander42> i might not want to use a vcs
14:43:52clyybberWell
14:44:02clyybberthen I don't care about you :p
14:44:11FromGitter<alehander42> but the fact is
14:44:22clyybberUse a vcs or bust.
14:44:29disruptekthe reason not to use submodules is that i don't need to maintain my own version control history to get value from /your/ version control history.
14:44:34FromGitter<alehander42> yea
14:44:39FromGitter<alehander42> i just feel its incorrect
14:44:46FromGitter<alehander42> but i think disruptek knows why
14:44:56Araqyou can keep the package-$version scheme and yet put it into a local directory
14:44:56clyybberdisruptek: Small wrapper to update your submodules.
14:45:11Araqit's orthogonal.
14:45:12clyybberI'm not arguing we should use submodules as is.
14:45:13FromGitter<alehander42> Araq but what is the problem with supporting package/version
14:45:22clyybberI'm arguing we should build a pkg manager that is just a small wrapper for submodules.
14:45:27FromGitter<alehander42> its a technical problem, i want my tools to solve it
14:45:36FromGitter<alehander42> and let me just use it
14:45:49clyybberAnd thats what I'm planning to build.
14:45:54disruptekclyybber: i would say that when nimph is built, it would make sense to be able to turn an existing dep into a submodule with a single command.
14:46:04FromGitter<alehander42> clyybber your idea is cool, but i think it applies to "just build a lang-independent package manager which works like that"
14:46:14Araqalehander42: it isn't a problem, it's a personal preference of mine not to do it this way
14:46:15FromGitter<alehander42> because if you do that, i see no reason to limit it to a language
14:46:20clyybberalehander42: Sure.
14:46:27*nixfreak28 joined #nim
14:46:57clyybberalehander42: Well, not quite. I would want that wrapper to generate a .cfg similar to nimby to include the submodules paths.
14:47:04Araqbecause then if I do "update dependency X" X's directory name doesn't change.
14:48:02disruptekyes, but a `mv` is atomic pretty low on i/o.
14:48:36Araqcome on, I might navigate to the directory, my brain is happier with stable names
14:48:37FromGitter<mratsim> why isn’t nimbledir with package + version hash / commit hash enough?
14:48:44Araqit's not about the machine, it's about myself.
14:48:48disrupteki mean, i agree in principle. in practice, nimph won't care what it's named. it will rename it.
14:48:58FromGitter<mratsim> that also saves on disk space
14:49:18disruptekit /is/ enough.
14:49:35AraqI don't care about disk space. if it becomes scare, I delete some porn.
14:50:15Araq*scarce
14:53:34*floppydh quit (Quit: WeeChat 2.6)
14:53:43disrupteki wanna gonna use github stars instead of package age to determine seniority, but i was worried about Araq's porn collection.
14:53:53disruptek^ was gonna, that is.
14:53:56Araqbut let me make this clear: if nimble detects $cwd/deps and uses it automatically it would be a huge improvement, I think
14:54:12Araqyou can keep the project-$version stuff as it is
14:54:36federico3disruptek: github stars are really meaningless
14:54:39disruptekactually it should detect $cwd/**/.nimble
14:54:52*evilkhaoskat_ joined #nim
14:54:54Araqand I'm willing to patch the compiler to do the same
14:55:01disruptekwhere ** may include any ..
14:55:22Araquntil we sort out/change the nim/nimble integration
14:55:29disruptekif you do that, i'm not sure nimph needs to do any package management at all.
14:55:31FromGitter<mratsim> When I run out of space next, I guess I’m gonna have to delete my 25k+ pics of whale flukes (https://github.com/mratsim/humpback-whale-identification)
14:56:00disruptekkinky bastard.
14:56:59federico3space on might be cheap but very often disk usage is a proxy for complexity and bloat
14:57:17*EvilKhaosKat quit (Ping timeout: 240 seconds)
14:57:53disruptekwhat's good about stars is that they already exist and people are using them to vote.
14:58:05Araquse a deduplicating file system. yes, yes, I know. that too has "issues". still an order of magnitude better than faking this feature via symlinks.
14:59:32Araqor via "sharing" stuff in some crazy global fashion (/usr/bin anyone?)
15:01:57FromGitter<alehander42> hm, what should i do next for notnil
15:04:53*PMunch quit (Quit: Leaving)
15:06:15Araqalehander42: what's the status?
15:08:38FromGitter<alehander42> well i didnt have much time last several weeks
15:09:22FromGitter<alehander42> so its basically on "it seems the early ast-based pr + some new fixes/changes seems to work fine for most of the spec"
15:11:02FromGitter<alehander42> i guess mostly it needs some more tests and mostly the initialization thing: https://github.com/alehander42/RFCs/blob/master/RFCs/nilcheck.rst#initialization-of-non-nilable-pointers
15:12:53*solitudesf quit (Remote host closed the connection)
15:18:20Araqok, will think about it
15:21:29shashlick@Araq I'll take care of it, presuming @dom96 is in sync
15:23:05shashlickDo you agree with a nimble field as well so that folks don't need to check in an empty directory
15:23:42shashlickBut then Nim won't know about it cause it doesn't parse nimble files
15:24:51shashlickAlthough only nimble installs dependencies so the deps folder will exist already once Nim commands are run
15:25:18*superbia joined #nim
15:27:51Araqdom96 is ok with it
15:28:17Araqnimble field is ok too for me but as you noticed nim wouldn't understand it
15:28:52Araqwe can use a longer name like 'nimbledeps' and then it can always be enabled IMO
15:29:21shashlickShouldn't matter like I said cause it only matters when you need to install deps and folder doesn't exist
15:29:37shashlickCan't be always on else it will never allow global deps
15:30:16Araqwhy does it need to allow "global deps"?
15:30:34shashlickThat's how stuff works today
15:30:48shashlickThe past is always with us
15:31:15Araqbut I opt-in for the new behaviour, I create a 'nimbledeps' dir
15:31:28Araqit means I'm aware of the consequences
15:31:31shashlickYes that I agree
15:31:54shashlickI'm talking about making a configuration option as well, not just convention
15:32:20shashlickSo if the dir doesn't exist, it will get created since project owner wants local deps
15:32:39*evilkhaoskat_ quit (Quit: Leaving)
15:32:44*solitudesf joined #nim
15:32:53shashlickSince nimble is configured with a nimble file, that's the best place to put it
15:33:43Araqhmm ok
15:34:13Araqnim doesn't have to know about this then, nimble creates the nimbledeps or it doesn't
15:34:20dom96I think you should let Araq implement it at first at least
15:34:37Araqin either case nimbledeps will be picked up by Nim
15:34:42Araqif it exists
15:35:35Araq???
15:35:43shashlickYes that is correct
15:35:57shashlickIf dir exists, use it
15:37:03Araqdom96, why?
15:37:46disruptekfor one thing, you won't be able to complain that the tail is wagging the dog. 😜
15:38:24dom96Araq, you know your use cases well, so it makes sense for you to implement and resolve any problems that come up
15:40:27disruptekwill the compiler iterate over all parents to find dep dirs? just stop at the first one? or be blind to anything unspecified?
15:41:12Araqdisruptek, it surely won't do what Nimble does in order to confuse everybody
15:41:39disrupteky'know, there are two opposite interpretations of that sentence.
15:41:49Araqkidding aside, I'll copy the logic from Nimble
15:42:03Araqyay code duplication
15:42:59clyybber"just use a deduplicating file system"
15:43:03clyybberjk :p
15:45:55shashlick@Araq @dom96 I can do the nim portion as well, have to learn that part anyway
15:46:50Araqshashlick, I appreciate it very much, thanks
15:47:10dom96Wait, the Nim portion?
15:58:40Araqdom96, Nim needs to understand $pwd/nimbledeps too because 'nim c' already understands --nimblePath
15:59:05*superbia1 joined #nim
16:01:53*superbia1 quit (Client Quit)
16:02:02*superbia quit (Ping timeout: 240 seconds)
16:03:57dom96lol
16:04:13*jjido joined #nim
16:04:47dom96--nimblePath exists to make using Nimble packages without having to create a nimble package easy
16:05:58dom96Are you planning to put packages into $pwd/deps (and btw I much prefer `deps` than `nimbledeps`) manually without Nimble?
16:06:19*jjido quit (Client Quit)
16:06:33dom96I'm assuming you're not, in which case you'll already have a Nimble package and will be able to use `nimble` instead of `nim`.
16:06:37clyybberpls make it nimbledeps
16:06:54clyybberTHen I know where it came from
16:07:39disruptek.something; i don't need to see it.
16:07:48Araqdom96, that's true but there is no reason 'nim c' suddenly breaks just because we also went with #654 in some half-baken way
16:08:54Araqwe can work on #654 afterwards once you made your peace with the idea that Nimble manages a nim.cfg file :P
16:09:05PistosHm, impressive quantity here: http://rosettacode.org/wiki/Category:Nim
16:09:12clyybberdisruptek: Yeah, it should definitely be .nimbledeps
16:09:51Araqdon't you dare and put a dot in front of it!
16:09:58dom96haha
16:10:02Araqdon't hide important things!
16:10:47disruptekif i can't take it for granted, then what's the point?
16:11:50dom96Araq, implement this in Nimble first. You can probably get away with using `--nimblePath:./deps` in your nim.cfg
16:12:00dom96to make `nim c` work
16:12:15dom96But as I've said to you, I want us to see how well this works first
16:12:17disrupteki couldn't make it work last time i tried.
16:12:38dom96adding yet another Nimble-specific logic to Nim is a bad move
16:13:16shashlickThat's just for the near term so that it can be decoupled from 654
16:13:35Araqdom96, I'm afraid it cannot work this way, but we'll see
16:13:51dom96shashlick, what do you mean by "decoupled from 654"?
16:14:07shashlick654 is to remove nimble code from Nim
16:14:17shashlickThat doesn't have clear line of sight yet
16:14:25disruptekmy issue coulda been due to https://github.com/nim-lang/Nim/issues/12367 i guess.
16:14:36shashlickSo for now Nim can continue to know about nimble
16:14:42shashlickWe can solve that separately
16:14:44dom96shashlick, so the solution is to add more Nimble-related stuff to Nim?
16:14:54shashlickI had made some suggestions on that one
16:15:14shashlickI'm fine solving both together but it will slow it down since we don't yet have consensus
16:15:55dom96All that you need to do is implement a `freeze` command in Nimble and support for this new `deps` directory *in Nimble*
16:16:01dom96Nim doesn't need to know about it at all
16:16:31shashlickHow will Nim know to use this deps dir
16:18:32dom96That's something to work out later
16:18:45dom96we can test out this feature without Nim knowing about it
16:22:11*narimiran quit (Ping timeout: 276 seconds)
16:23:41nixfreak28where does nim store the exe nim c -d:mingw-w64 control1.nim ?
16:23:46shashlickSo it will work only with nimble c and not Nim c?
16:24:21dom96yes
16:31:18shashlickOk will cross that bridge when we reach it
16:32:22shashlickI'll post a comment with design details and we can proceed on implementation after that
16:32:56shashlickWill track here - https://github.com/nim-lang/nimble/issues/131
16:41:12disruptekthe compiler needs to be modified because it currently finds packages outside nimblePath.
16:41:31disruptekthis cannot be solved properly until that is fixed.
16:41:45shashlick@dom96 is suggesting to resolve that as part of 654
16:41:51nixfreak28only compiles to Mach-0 not exec " nim c -d:mingw-w64 control1.nim
16:42:15shashlickI'm not fully convinced but let's see if that gets some clarity
16:45:33*tklohna joined #nim
16:48:26disruptekif i'm reading #654 right, it says that the compiler will know so little about where to look for and find packages, that the only way to build something that imports from a package directory will be to pass each and every path you want to import.
16:49:27disruptekie. package directories as a concept need not even exist.
16:50:45*tklohna quit (Ping timeout: 268 seconds)
16:56:25*tklohna joined #nim
16:57:16Araqand how can we try out the feature if 'nim c' is my muscle memory and doesn't support it? that's crazy talk
16:57:21disruptekin case it wasn't clear, i will restate that nimblePath can only be set via config.nims, and as it is additive, it cannot be used with today's compiler anyway.
16:58:20Araqnot to mention that we don't have consensus on #654 either, you cannot simply go ahead and do it.
16:59:13disruptekwow, #131 dates to may of 2015.
17:00:17Araqand how can I test it with nimsuggest integration? I can't, this half-assed thing doesn't work
17:00:30Araqit needs the compiler patch.
17:00:43disrupteki guess i will just do it in nimph. i can solve all these problems and paper over the apparent power struggle.
17:00:47FromDiscord<kodkuce> nim can wrap C++ libs too right?
17:00:58disruptekyep.
17:04:24dom96okay. I add the compiler patch. But do try to implement this with a simple nim.cfg change if possible
17:04:31dom96(and if that fails it might be a good idea to fix it)
17:04:42dom96s/I add/add/ lol
17:05:12disruptekwhat nim.cfg works?
17:06:28disrupteki mean, what nim.cfg would you like to see in an ideal world, assuming the compiler knew how to read it?
17:08:20*LargeEpsilon quit (Ping timeout: 276 seconds)
17:10:03*Jesin quit (Quit: Leaving)
17:11:38disruptekexpect ima hafta write an expect dsl for nim.
17:19:14disruptekanyone remember the old kibbutz tool? not finding it in ddg, but it was just a sentimental thought...
17:21:52*Jesin joined #nim
17:22:03*lritter quit (Ping timeout: 240 seconds)
17:36:00shashlickWe will get there
17:36:13shashlickTakes time to build consensus
17:38:27*elrood joined #nim
17:38:42*elrood left #nim (#nim)
17:41:00disruptekbut shashlick
17:41:05disruptekTHINK OF THE CHILDREN
17:41:12disruptekCHILDREN ARE DYING
17:41:27shashlickWe are the world, we are the children
17:45:50*Jesin quit (Quit: Leaving)
17:52:26*Jesin joined #nim
17:52:50shashlickI need a quality come back on that @disruptek
18:00:17*clyybber quit (Quit: WeeChat 2.6)
18:00:56*fanta1 quit (Quit: fanta1)
18:03:35*tklohna quit (Ping timeout: 276 seconds)
18:05:00stefantalpalaruDon't worry, this is a high-quality comeback. Michael Jackson was thinking about children all the time.
18:05:28*NimBot joined #nim
18:10:21*tklohna joined #nim
18:20:49disrupteknimble, n: somehow, the opposite of agile.
18:22:11nixfreak28If I need to compile a dll file into the nim program in order to run it on windows is that possible ? or does the user on windows need that dll file?
18:22:23*skrylar[m] has somehow managed to barely use nimble all this time
18:22:37disruptekit's not dll if it's not a "dynamically loaded library."
18:23:21nixfreak28 wine64 window.exe could not load: SDL2.dll
18:23:30skrylar[m]unless you use one of those weird file bundlers that you can sometimes get from drm platforms
18:23:55nixfreak28so I can't bundle the dll file in ?
18:24:21skrylar[m]no but you can statically link SDL2 these days
18:24:56nixfreak28so I need to know the path on the windows box to do that correct?
18:24:57*LargeEpsilon joined #nim
18:25:20skrylar[m]no?
18:25:29skrylar[m]are you cross compiling or something
18:25:33nixfreak28yes
18:25:39disruptekshashlick: if you don't think that was quality, you have a hole in your soul.
18:25:40nixfreak28from osx/linux to windows
18:25:51skrylar[m]well windows doesn't embed the path to a library like linux does
18:29:12nixfreak28So your saying I won't be able to give the user on windows an exe file unless they install SDL2?
18:37:43shashlickIt just needs to be in the path
18:37:59shashlickOr statically link like @lqdev is
18:43:35*Tyresc joined #nim
18:45:09nixfreak28right but the use has to have SDL2 installed on there machine correct ?
18:45:21nixfreak28use == user
18:46:10shashlickOr you can ship binary with your exe or statically link into your exe
18:47:52*Jesin quit (Quit: Leaving)
18:48:11nixfreak28I need to read about statically linked , thanks
18:50:20stefantalpalaruskrylar[m]: Linux binaries don't hardcode library paths by default. You need to fuck them up on purpose to set an "rpath": https://en.wikipedia.org/wiki/Rpath
18:52:11*Jesin joined #nim
19:06:26*Tyresc quit (Ping timeout: 265 seconds)
19:08:28*Kameleon joined #nim
19:13:11*narimiran joined #nim
19:16:59*GordonBGood joined #nim
19:18:43FromGitter<nixfreakz_twitter> So like this nim c -d:mingw --cpu:amd64 --dynlibOverride:sdl2 --passL:/usr/local/opt/sdl2/lib/libSDL2.dylib --threads:on window.nim
19:18:58FromGitter<nixfreakz_twitter> nm invalid file
19:18:59FromGitter<nixfreakz_twitter> hmm
19:31:52nixfreak28Here we go nim c -d:mingw --cpu:amd64 --passC="/usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib" --threads:on window.nim
19:33:53*filcuc quit (Ping timeout: 264 seconds)
19:42:12*LargeEpsilon quit (Ping timeout: 246 seconds)
19:57:40*Kameleon quit (Quit: Leaving)
20:03:43shashlickHow do you expect an osx dylib shared lib to work on windows
20:09:46*rosma[m] joined #nim
20:20:18*rosma[m] left #nim ("User left")
20:22:01krux02On Linux you can simply assume SDL2 to be installed, it doesn't need to be shipped.
20:22:25krux02so many things depend on SDL2 that you can see it as a core thing these days.
20:22:41*LargeEpsilon joined #nim
20:23:05skrylar[m]you probably shouldn't
20:23:21skrylar[m]unless you plan on shipping source, or being part of a core repo, it's a good idea to ship anything that isn't on a default like, debian install as part of an appimage
20:24:56skrylar[m]mostly because even IF what you use is safely there NOW, it might not be tomorrow, and if the app can't be recompiled it becomes a humongous pain in everyone's ass to work around
20:27:23*krux02 quit (Remote host closed the connection)
20:28:06*krux02 joined #nim
20:32:18skrylar[m]can't speak about snapcraft, but flatpak will also deal with this for you
20:39:27*lqdev[m] uploaded an image: image.png (48KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/VcmgVOSdhDgbsgVxFtCeOPSh >
20:39:35lqdev[m]got some progress on my high level Wren wrapper
20:39:49skrylar[m]👌
20:39:50lqdev[m]finally starting to wrap my head around macros with `untyped` and `typed` params
20:40:13nixfreak28I really don't know anything about cross compiling extra libs using nim thats why I'm asking you guys
20:42:03rayman22201on Windows, you just put the dll you want in the same directory as your exe file.
20:42:25rayman22201but note, a dylib will not work on Windows. That's the Mac specific format for shared libraries
20:42:28skrylar[m]@lqdev the brain melt happens when you have macros producing macros
20:43:04skrylar[m]<rayman22201 "but note, a dylib will not work "> thats true but also pedantry ^_^
20:43:40*nsf quit (Quit: WeeChat 2.6)
20:43:43skrylar[m]oh wait
20:43:45rayman22201how is that pedantry? if you look at his previous comment, he was trying to compile a windows binary using a dylib file
20:43:56skrylar[m]yeah ey'd need to link to the dll in the cross compiler, i see what you meant
20:44:03rayman22201>.>
20:44:58skrylar[m]i'm not sure that cross compiling is worth it in the first place, but eh.
20:47:03skrylar[m]something i like doing is putting a gulp pragma in to call pkg-config
20:47:29skrylar[m]since you will want both cflags and ldflags, and those vary
20:47:51skrylar[m](i'm not sure if this breaks crossing with nim though)
20:48:10*tklohna quit (Ping timeout: 268 seconds)
20:50:14*ng0 quit (Quit: Alexa, when is the end of world?)
20:50:15*GordonBGood quit (Read error: Connection reset by peer)
20:53:43*GordonBGood joined #nim
20:58:10*LargeEpsilon quit (Ping timeout: 252 seconds)
21:00:20lqdev[m]skrylar: fortunately, I don't do that and I never will (hopefully)
21:00:28lqdev[m]I just prefer generating calls to macros instead
21:04:01*abm quit (Quit: Leaving)
21:17:06disruptektell me something good, humans.
21:18:27*narimiran quit (Remote host closed the connection)
21:19:01*eys joined #nim
21:20:42disruptekc-blake released cligen-0.9.41 with a couple fixes for me, then after i bumped my stuff to that tag, he removed it. not a trace. semver ftw. now i'm on nimble/pkgs/cligen-#337c447118879ad875d40969619fc64a02b94312.
21:20:43FromDiscord<exelotl> I'm seeing hatsune miku in january
21:21:03disruptekwtf is that?
21:21:35FromGitter<zetashift> A vocaloid: https://en.wikipedia.org/wiki/Vocaloid
21:22:20FromGitter<zetashift> Not my kind of music, but it's weirdly endearing
21:22:51disruptekinteresting.
21:23:29FromGitter<zetashift> Also anyone know if there is an issue/RFC about how Nim/Araq is moving forward with concepts?
21:24:02*jjido joined #nim
21:24:34disruptekthere is, but i can't remember if it's in rfcs or issues.
21:26:58FromGitter<zetashift> Oh gotem: https://github.com/nim-lang/RFCs/issues/168
21:27:36disruptekthat's the one.
21:45:02*tklohna joined #nim
21:52:32dom96I'm actually pleasantly impressed that we have this in our docs: https://nim-lang.github.io/Nim/nimc.html#cross-compilation-for-ios
21:55:40dom96lol, the xcode I have is too old for Nim
21:58:20FromDiscord<kodkuce> Mac sux anyway
21:58:27FromDiscord<kodkuce> iphone too
21:59:22dom96Yeah, of course. Don't worry, once I find myself with a decade of free time I will start to use Arch Linux again
22:00:16skrylar[m]its a nice desktop environment
22:00:32skrylar[m]i still based my gui stuff on Be instead of NeXT tho
22:00:44skrylar[m]although i guess since both are based on message passing its not that different
22:03:03dom96hrm, it seems that --os:ios should possibly imply `macosx` rather than just `posix`
22:04:58*skrylar[m] idly wonders how sr.ht builds actually run
22:05:16skrylar[m]azure and travis are VMs if i recall
22:05:50euantorsr.ht builds are VMs inside QEMU running inside Docker
22:06:02skrylar[m]bizzare
22:06:11euantorSo Host -> Docker -> QEMU -> Build
22:06:41euantorReasoning is that there have been KVM escape issues in the past and docker adds an extra level of sand boxing
22:06:42skrylar[m]i used to use a small jenkins to do canary builds against nim's git
22:06:51skrylar[m]tho laminar is nice for even smaller stuff
22:08:08skrylar[m]yeh. those external CIs are still bothersome IMO
22:08:24skrylar[m]downloading a nim compiler and source checkout every build? egh
22:12:17*eys quit (Quit: eys)
22:14:31*nixfreak28 quit (Ping timeout: 260 seconds)
22:15:08skrylar[m]@dom96 are the gtk bindings old because nobody has bothered to update them
22:15:39dom96why else would they be old?
22:16:05skrylar[m]politics, intentional deprecation, ...
22:17:15skrylar[m]did gdk3 already, half done with glib
22:17:29dom96AFAIK salewski has gtk3 bindings
22:18:11skrylar[m]i saw ey was doing something with the introspector
22:22:31*tklohna quit (Ping timeout: 268 seconds)
22:40:11FromGitter<brentp> @mratsim . I just prototyped some code that uses Arraymancer to do dimensionalty-reduction with PCA on genomic data, then trains a simple neural net on labelled samples to do ancestry prediction on incoming samples.
22:47:29*Vladar quit (Quit: Leaving)
22:51:58*LargeEpsilon joined #nim
22:54:50dom96Nothing like downloading each dependency separately for iOS. This is why I hate dependencies with a passion.
22:57:05Araqlol. it only needs a better package manager.
22:58:41*LargeEpsilon quit (Ping timeout: 276 seconds)
23:08:12*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
23:10:25dom96yay, a dependency that doesn't respect the `ssl` define
23:10:34dom96but instead quits my app with "SSL support is required."
23:13:06dom96https://github.com/CORDEA/oauth/blob/develop/src/oauth2.nim#L295-L297
23:13:08*dom96 sighs
23:14:42*qwertfisch is now known as zombiefisch
23:17:46*solitudesf quit (Ping timeout: 265 seconds)
23:19:31dom96yay, a Nim stack trace. Finally! https://i.imgur.com/8H8Eqoj.png
23:26:14Calinoudoesn't OAuth imply SSL support?
23:26:18Calinouusing it without SSL sounds risky
23:27:47dom96of course, but when I'm trying to get my large application, which uses oauth for something that's non-critical, running on iOS quitting my application at runtime is a big PITA
23:28:03dom96it should throw a compiletime error
23:30:53dom96oooh, lldb goes into SDL's source code. That's nice
23:37:52dom96now the question is, how do I load a font on iOS
23:38:58dom96Guess I'll need to implement resource bundling
23:47:11*Sembei joined #nim
23:47:30*Sembei quit (Client Quit)
23:53:02shashlickJust use nimdeps