<< 06-11-2017 >>

00:00:10dom96yep
00:03:53GitDisc<GooRoo> Well, it's strange. I have one slack team which is about 3 years old, and there is no such a feature.
00:04:03GitDisc<GooRoo> But in newly created one I have this: https://habrastorage.org/webt/f6/qf/si/f6qfsijnlx8jvxwnvbf5saxpps8.png
00:04:49*vlad1777d quit (Ping timeout: 248 seconds)
00:08:21*enthus1ast- quit (Ping timeout: 240 seconds)
00:09:23GitDisc<GooRoo> still don't get the situation with the need of bridges though
00:11:51*yglukhov joined #nim
00:14:41*NimBot joined #nim
00:15:57*yglukhov quit (Ping timeout: 240 seconds)
00:25:41*xkapastel joined #nim
00:31:16*enthus1ast- joined #nim
00:32:09FromGitter<zacharycarter> ugh more slack channels :/
00:32:32FromGitter<zacharycarter> please don't make slack mandatory / the only option
00:32:52GitDisc<GooRoo> @dom96
00:32:53GitDisc<GooRoo> IMO there should be only one place to talk. The rest is redundant because having all of them simultaneously creates an illusion that one can use all modern features of another tool which is obviously a lie:
00:32:54GitDisc<GooRoo> - if I use Discord, I can't use mentions and can't get ones because not all users exist in Discord in fact. I also can't write someone in private or call
00:32:55GitDisc<GooRoo> - I'm not sure whether I'm able to just paste the file/picture because I don't know if a "bridge" handles it
00:32:56GitDisc<GooRoo> - all messages from gitter and irc are shown as being sent by one bot
00:32:58GitDisc<GooRoo> - some messages synced from gitter or irc look like corrupted
00:32:59GitDisc<GooRoo> - etc.
00:33:00GitDisc<GooRoo>
00:33:02GitDisc<GooRoo> All this shit creates even *worse* experience comparing to just having IRC only. I hate IRC 'cause it's old as hell and doesn't consistently support some modern fancy features I got used to. But if most people here are using IRC, you must stick to using only it officially.
00:33:02FromGitter<zacharycarter> whoa
00:33:03GitDisc<GooRoo>
00:33:04GitDisc<GooRoo> I guess the intention was to try to cover wider audience giving everyone an ability to use the tool they like. But it doesn't work like this. A direct analogy is the following: good UX expert does some investigations in order to make every user feel comfortable, bad UX expert creates bunch of settings instead, or in other words delegates own responsibilities to the end-user.
00:34:19FromGitter<zacharycarter> I don't disagree that one place to chat would be advantageous but it's also unrealistic
00:34:44GitDisc<GooRoo> it's quite realistic
00:35:43FromGitter<zacharycarter> I don't think all these bridges are a great idea
00:35:50FromGitter<zacharycarter> I do think that we were doing fine with gitter / IRC
00:36:19*arnetheduck joined #nim
00:36:20*zolk3ri quit (Remote host closed the connection)
00:36:30FromGitter<zacharycarter> give folks a thin and thick client option
00:37:04FromGitter<zacharycarter> and I think that was already accomplished
00:38:24GitDisc<GooRoo> When I first decided to join this community, I used gitter. I opened it, puked, puked again, and closed it for a few weeks.
00:38:37FromGitter<zacharycarter> that's fine and your opinion you could find and use an IRC client
00:39:13FromGitter<zacharycarter> the community has existed for close to 10 years with IRC and gitter more recently
00:41:55FromGitter<zacharycarter> I know I'd be turned off if I had to use slack to talk to folks about Nim
00:41:57GitDisc<GooRoo> I understand and respect this. But adding a bridge to Gitter was a mistake IMHO.
00:44:27FromGitter<zacharycarter> I understand why the gitter bridge is problematic - but it's historically proven to be not THAT problematic
00:44:41FromGitter<zacharycarter> which IMO is why the IRC / gitter mechanism we currently have is worth sticking with
00:44:41GitDisc<GooRoo> @zacharycarter As I mentioned before, with Slack you're still able to use IRC. The only difference is server
00:44:55FromGitter<zacharycarter> and then I'd have to start using IRC :/
00:45:50GitDisc<GooRoo> so you are using gitter now?
00:45:51FromGitter<zacharycarter> I don't see why we need to introduce slack
00:45:58FromGitter<zacharycarter> or discord
00:46:08FromGitter<zacharycarter> or anything beyond what we already had going
00:46:44FromGitter<zacharycarter> yes I'm on gitter currently
00:51:04GitDisc<GooRoo> well, I've opened Gitter in web-browser and it looks somewhat weird for me https://habrastorage.org/webt/p3/rz/rr/p3rzrrilnwcz7nd_tfw_ncpwy6g.png
00:52:34GitDisc<GooRoo> and I don't say we have to introduce Slack
00:52:56FromGitter<zacharycarter> the whole <GitDisc> thing I don't think existed until another bridge was introduced
00:53:26GitDisc<GooRoo> it was there before Discord definitely
00:53:54FromGitter<zacharycarter> I'm pretty sure that's what it's for
00:53:57FromGitter<zacharycarter> is the discord bridge
00:54:14FromGitter<zacharycarter> and I'm almost certain it wasn't
00:54:26FromGitter<zacharycarter> at least I didn't see it in gitter
00:55:07enthus1ast-maybe bundle the bridges in one "bridge" bot
00:56:11GitDisc<GooRoo> @zacharycarter Yep, exactly this one is for Discrord. But what's the difference with IRC? https://habrastorage.org/webt/3a/sl/ea/3asleahanqrs1ookgkb6cnax-24.png
00:56:16GitDisc<GooRoo> the same shit
00:56:35GitDisc<GooRoo> all messages from IRC are just reposted in Gitter by bot
00:57:36FromGitter<zacharycarter> sorry, I wasn't trying to say it was any different, just that it was new
00:57:51FromGitter<zacharycarter> before it was just the IRC | GItter communication
00:58:22enthus1ast-which already breaks auto name completion btw
00:58:36FromGitter<zacharycarter> I maintain my stance though that things were fine before with the integration we had
00:59:11FromGitter<zacharycarter> I generally see most of the more active #nim users having gitter accounts or IRC accounts and some use both
00:59:37FromGitter<zacharycarter> I don't see much of a reason to add more bridges or introduce different services when we already have an established communication mechanism / community
00:59:46GitDisc<GooRoo> All I'm trying to say is that currently it's a mess. And someone have finally to take responsibility and decide which single IM tool will be used by all others. And others just have to stick to it.
01:00:10FromGitter<zacharycarter> it wasn't a mess until recently
01:00:17FromGitter<zacharycarter> it was working fine up until a few weeks ago
01:00:59GitDisc<GooRoo> dude, it was the same. No difference if the bot was called "From IRC" or "GitDisc"
01:02:03FromGitter<zacharycarter> dude - you're the one coming into an existing community and calling things a mess when we've all been using these chats on a daily basis for, in some folks cases, years
01:03:42GitDisc<GooRoo> it's just not possible to distinguish who writes what because in Gitter (and now in Discord) there are two different visual styles in fact: one is native, where every user has own avatar and bla-bla-bla, and another is made by a bridge, where messages from different people are posted by one bot
01:04:59GitDisc<GooRoo> @zacharycarter The fact it worked before doesn't really mean that it was good. Community is growing and the impact of previously minor issues is bigger.
01:05:03FromGitter<zacharycarter> it's been this way since the bridge existed
01:05:32FromGitter<zacharycarter> right and we shouldn't just jump to some other chat service because the community is growing and someone wants it
01:05:45FromGitter<zacharycarter> we should take a step back and figure out what is best for the community
01:06:40FromGitter<zacharycarter> it might involve moving somewhere else and it might involve staying put, but I think we should definitely consider folks opinions and put it up in a poll on the forums / in here
01:07:33GitDisc<GooRoo> I don't say that I know how to do it better (even if I'd like to think that I know). And I'm not the most useful community member, so in general everyone gives no shit what I'm talking about. But I just wanted to mention that there is an issue, and at some point it will become critical.
01:08:40FromGitter<zacharycarter> I don't have an answer either other than what we've been doing, and maybe you're right and the majority of the community uses slack and I just need to shut up and use it
01:09:22FromGitter<zacharycarter> and I think it's a good topic to bring up to the community
01:09:41FromGitter<zacharycarter> but I think it needs broader discussion
01:09:42GitDisc<GooRoo> from what I can see, it seemed for me that everyone uses IRC mostly
01:10:04FromGitter<zacharycarter> a lot do - some hop between gitter and IRC but the majority I believe use IRC
01:10:57*enthus1ast- quit (Ping timeout: 240 seconds)
01:11:44*ipjk quit (Read error: Connection reset by peer)
01:12:09FromGitter<zacharycarter> I avoid slack - I already have to use it for work. The less I'm on the app the better IMO
01:12:42FromGitter<zacharycarter> discord I'm totally impartial to and have very little experience using
01:13:17GitDisc<GooRoo> Discord's target audience is gamers
01:13:43FromGitter<zacharycarter> yeah from my understanding it's a new vent / teamspeak etc
01:13:53GitDisc<GooRoo> exactly
01:14:00GitDisc<GooRoo> and it has an impact on the features they are working on and releasing
01:14:03FromGitter<zacharycarter> I do think a Nim gaming community would be beneficial to the language
01:14:26FromGitter<zacharycarter> well a Nim gamedev community anyway
01:14:39FromGitter<zacharycarter> there are quite a few folks working on gamdev related projects with Nim
01:15:24*enthus1ast- joined #nim
01:15:37GitDisc<GooRoo> come on, Nim's compiler crashes every 3rd run  Does anyone really use Nim for gamedev except enthusiasts?
01:16:14FromGitter<zacharycarter> haha wait what?
01:18:37FromGitter<zacharycarter> elaborate ass troll
01:19:00GitDisc<GooRoo> nothing personal  I believe Nim will become a great language. But currently it has some doubtful things
01:19:15FromGitter<zacharycarter> it's compiler definitely doesn't crash on every 3rd run
01:19:47GitDisc<GooRoo> Probably I'm just not lucky enough
01:20:42FromGitter<zacharycarter> well the language certainly isn't perfect, no programming language is, it's also very niche, but it's certainly capable
01:20:50FromGitter<zacharycarter> I don't think luck has much to do with it
01:21:13GitDisc<GooRoo> I've exaggerated a little bit
01:22:52FromGitter<zacharycarter> https://www.facebook.com/reelvalley/
01:22:54FromGitter<zacharycarter> that was made with Nim
01:24:58enthus1ast-oh wow
01:25:08GitDisc<GooRoo> It looks really awesome, but, don't get me wrong, this is not the game I would use as a proof that Nim is capable to replace C++ in gamedev for example.
01:33:53*dddddd quit (Ping timeout: 248 seconds)
01:39:57*dddddd joined #nim
01:40:49GitDisc<GooRoo> Okay, back to previous topic: not sure if there will be a discussion, but want to summarize my thoughts:
01:40:49GitDisc<GooRoo>
01:40:51GitDisc<GooRoo> My main point: we need only one single tool for conversations, independently of whether it's a "good old" IRC or more or less modern standard Slack. Just no bridges! Someone has to decide.
01:40:52GitDisc<GooRoo>
01:40:53GitDisc<GooRoo> And now my humble and subjective addition. Personally, I prefer Slack because:
01:40:55GitDisc<GooRoo> - as I said above: it's a standard de facto nowadays. A lot of people already use it at work. So why to have several different tools for different teams/communities if it's possible to have several teams/communities in one tool?
01:40:56GitDisc<GooRoo> - some other communities also use Slack. For example, C++ and JetBrains MPS
01:40:57GitDisc<GooRoo> - it supports integrations with many different tools and services, for example, with GitHub. Also it is possible to easily add some polls or whatever.
01:40:59GitDisc<GooRoo> - it has an application that works equally good on all platforms including mobile ones
01:41:00GitDisc<GooRoo> - it has integrated IRC support. It means that you'll still have to register in Slack with your email, get a separate IRC password and connect to Slack's server instead of FreeNode, but then you can use any IRC client of your choice if you like. And your messages will be really shown as yours (and not posted by some bot), mentions should work as well, etc.
01:41:01GitDisc<GooRoo> Why I don't like Slack:
01:41:02GitDisc<GooRoo> - on a "free" account they show you only last 10k of messages in history log
01:43:00GitDisc<GooRoo> And sorry if it looks like I'm a rude troll with a passion to starting holy wars. That's because of my way to express thoughts 
01:45:58GitDisc<GooRoo> shiii~~ TIL: GitDisc bridge syncronizes messages line by line... In gitter it looks even worse than I assumed
01:53:19GitDisc<GooRoo> BTW, always wanted to mention: Nim's community is not pretty big. But it's really amazing to see it's alive. It's way more active than many other communities I've even seen.
01:57:08*kalkin-- joined #nim
01:57:22*marenz_ quit (Ping timeout: 268 seconds)
02:00:58*kalkin- quit (Ping timeout: 264 seconds)
02:12:25FromGitter<Varriount> GooRoo: Yet currently you are using a bridge to gitter. :P
02:13:36*chemist69 quit (Ping timeout: 246 seconds)
02:26:12*chemist69 joined #nim
02:28:51*vivus quit (Quit: Leaving)
02:31:22shashlickjust caught up with that discussion
02:32:12shashlickI think matrix.org/riot.im is working well for me - I had similar frustrations with Gitter and couldn't stay on via IRC
02:55:30*xkapastel quit (Quit: Connection closed for inactivity)
03:00:08FromGitter<Varriount> Anyone know what these new "liftLocal" and "partial" pragmas are?
03:36:41FromGitter<data-man> @Varriount: https://github.com/nim-lang/Nim/blob/devel/tests/fields/timplicitfieldswithpartial.nim
03:37:57FromGitter<Varriount> @data-man I saw those. All I can guess is that "partial" seems to be used for types without a complete definition. liftLocal is still a mystery.
03:40:05FromGitter<data-man> @Varriount: wait when Araq wakes up :)
03:41:39*dddddd quit (Remote host closed the connection)
03:42:59FromGitter<Varriount> Looks like partial might be for some dynamic type generation. Huh
03:43:41FromGitter<Varriount> Like, the compiler will define the body of the type based
03:43:55FromGitter<Varriount> On what fields are used in code
03:44:04FromGitter<Varriount> Might be useful for macros.
03:46:14FromGitter<data-man> Changelog not changed for this :)
03:47:26*Jesin quit (Quit: Leaving)
03:56:33*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
04:12:44*yglukhov joined #nim
04:17:05*yglukhov quit (Ping timeout: 248 seconds)
05:36:07*nsf joined #nim
05:44:28*SenasOzys joined #nim
06:10:41*Amrykid quit (Ping timeout: 248 seconds)
06:11:13*qwertfisch quit (Ping timeout: 248 seconds)
06:11:13*redlegion quit (Ping timeout: 248 seconds)
06:11:45*shortCircuit__ quit (Ping timeout: 248 seconds)
06:14:33*Vladar joined #nim
06:14:57*Lord_Nightmare quit (Ping timeout: 248 seconds)
06:16:30*qwertfisch joined #nim
06:16:40*Amrykid joined #nim
06:16:56*Lord_Nightmare joined #nim
06:17:03*alexday joined #nim
06:25:05*Lord_Nightmare quit (Ping timeout: 248 seconds)
06:31:29*planetis[m] quit (*.net *.split)
06:31:30*ehmry quit (*.net *.split)
06:31:30*Demos[m] quit (*.net *.split)
06:31:30*pwntus quit (*.net *.split)
06:31:30*m712 quit (*.net *.split)
06:31:30*avsej quit (*.net *.split)
06:31:30*craigger quit (*.net *.split)
06:31:30*koppeh quit (*.net *.split)
06:31:31*joebo quit (*.net *.split)
06:31:31*benoliver999 quit (*.net *.split)
06:31:31*MonsterAbyss quit (*.net *.split)
06:31:31*notdekka[m] quit (*.net *.split)
06:31:31*hohlerde quit (*.net *.split)
06:31:31*mindB quit (*.net *.split)
06:31:31*cyraxjoe quit (*.net *.split)
06:31:31*RushPL quit (*.net *.split)
06:31:31*odc quit (*.net *.split)
06:31:31*gsingh93 quit (*.net *.split)
06:31:32*r4vi quit (*.net *.split)
06:31:32*watzon quit (*.net *.split)
06:31:33*demi- quit (*.net *.split)
06:31:33*d10n quit (*.net *.split)
06:31:33*nathanj quit (*.net *.split)
06:31:33*abeaumont quit (*.net *.split)
06:31:33*dashed quit (*.net *.split)
06:31:33*surma quit (*.net *.split)
06:31:33*LyndsySimon quit (*.net *.split)
06:31:33*qwertfisch quit (*.net *.split)
06:31:33*zielmicha_ quit (*.net *.split)
06:31:34*euantor quit (*.net *.split)
06:31:34*xet7 quit (*.net *.split)
06:31:34*smt` quit (*.net *.split)
06:31:34*StarBrilliant quit (*.net *.split)
06:31:34*huonw quit (*.net *.split)
06:31:34*EastByte quit (*.net *.split)
06:31:34*AlexMax quit (*.net *.split)
06:31:34*Jipok[m] quit (*.net *.split)
06:31:35*Shoozza quit (*.net *.split)
06:31:35*Amrykid quit (*.net *.split)
06:31:35*nsf quit (*.net *.split)
06:31:35*kunev quit (*.net *.split)
06:31:35*CcxWrk quit (*.net *.split)
06:31:35*Sentreen quit (*.net *.split)
06:31:35*chemist69 quit (*.net *.split)
06:31:35*Gertm quit (*.net *.split)
06:31:35*FromGitter quit (*.net *.split)
06:31:35*ketralni` quit (*.net *.split)
06:31:35*obadz quit (*.net *.split)
06:31:35*byte512 quit (*.net *.split)
06:31:35*beatmox quit (*.net *.split)
06:31:35*flyx quit (*.net *.split)
06:31:36*crem quit (*.net *.split)
06:31:36*jivank_ quit (*.net *.split)
06:31:36*pydsigner quit (*.net *.split)
06:31:36*adamchainz quit (*.net *.split)
06:31:37*derlafff quit (*.net *.split)
06:31:37*voice_ftp quit (*.net *.split)
06:31:37*literal quit (*.net *.split)
06:31:37*GitDisc quit (*.net *.split)
06:31:37*hogeland quit (*.net *.split)
06:31:37*allan0 quit (*.net *.split)
06:31:37*mal`` quit (*.net *.split)
06:31:37*acidx quit (*.net *.split)
06:31:37*jackv quit (*.net *.split)
06:31:37*Syneh_ quit (*.net *.split)
06:31:38*jivank[m] quit (*.net *.split)
06:31:38*byteflame quit (*.net *.split)
06:31:38*dyce[m] quit (*.net *.split)
06:31:38*Elronnd quit (*.net *.split)
06:31:38*subsetpark quit (*.net *.split)
06:31:38*arecaceae quit (*.net *.split)
06:31:38*tyler569 quit (*.net *.split)
06:31:38*livcd quit (*.net *.split)
06:31:38*Calinou quit (*.net *.split)
06:31:38*pleiosaur quit (*.net *.split)
06:31:38*Vladar quit (*.net *.split)
06:31:38*enthus1ast- quit (*.net *.split)
06:31:38*arnetheduck quit (*.net *.split)
06:31:38*mwbrown quit (*.net *.split)
06:31:39*cspar quit (*.net *.split)
06:31:39*SusWombat quit (*.net *.split)
06:31:39*Xe quit (*.net *.split)
06:31:39*niv quit (*.net *.split)
06:31:39*programisto quit (*.net *.split)
06:31:39*jsn- quit (*.net *.split)
06:31:39*zama quit (*.net *.split)
06:31:39*alexday quit (*.net *.split)
06:31:39*TheManiac quit (*.net *.split)
06:31:39*shashlick quit (*.net *.split)
06:31:39*MrAxilus[m] quit (*.net *.split)
06:31:39*unclechu quit (*.net *.split)
06:31:39*Nikky quit (*.net *.split)
06:31:39*gangstacat quit (*.net *.split)
06:31:39*vqrs quit (*.net *.split)
06:31:39*askatasuna quit (*.net *.split)
06:31:40*msmorgan quit (*.net *.split)
06:31:40*JStoker quit (*.net *.split)
06:31:40*exit70 quit (*.net *.split)
06:31:40*SenasOzys quit (*.net *.split)
06:31:40*SunDwarf quit (*.net *.split)
06:31:40*rauss quit (*.net *.split)
06:31:40*kier quit (*.net *.split)
06:31:40*Senketsu quit (*.net *.split)
06:31:40*joshbaptiste quit (*.net *.split)
06:31:40*onionhammer1 quit (*.net *.split)
06:31:40*Araq quit (*.net *.split)
06:31:40*yaiyan quit (*.net *.split)
06:31:40*kalkin-- quit (*.net *.split)
06:31:40*Guest2656 quit (*.net *.split)
06:31:41*Amun_Ra quit (*.net *.split)
06:31:41*Tanger quit (*.net *.split)
06:31:41*wishi quit (*.net *.split)
06:31:41*awal quit (*.net *.split)
06:31:41*ftsf quit (*.net *.split)
06:31:41*federico3 quit (*.net *.split)
06:31:41*ldlework quit (*.net *.split)
06:31:41*def- quit (*.net *.split)
06:31:41*shodan45 quit (*.net *.split)
06:31:41*bodie_ quit (*.net *.split)
06:31:41*pigmej quit (*.net *.split)
07:12:50*FromGitter joined #nim
07:12:50*rauss joined #nim
07:12:50*SenasOzys joined #nim
07:12:50*zama joined #nim
07:12:50*Lord_Nightmare joined #nim
07:12:50*redlegion joined #nim
07:12:50*alexday joined #nim
07:12:50*Amrykid joined #nim
07:12:50*qwertfisch joined #nim
07:12:50*Vladar joined #nim
07:12:50*nsf joined #nim
07:12:50*chemist69 joined #nim
07:12:50*kalkin-- joined #nim
07:12:50*enthus1ast- joined #nim
07:12:50*arnetheduck joined #nim
07:12:50*mwbrown joined #nim
07:12:50*planetis[m] joined #nim
07:12:50*hohlerde joined #nim
07:12:50*notdekka[m] joined #nim
07:12:50*jivank[m] joined #nim
07:12:50*TheManiac joined #nim
07:12:50*Demos[m] joined #nim
07:12:50*ehmry joined #nim
07:12:50*watzon joined #nim
07:12:50*MrAxilus[m] joined #nim
07:12:50*mindB joined #nim
07:12:50*unclechu joined #nim
07:12:50*dyce[m] joined #nim
07:12:50*byteflame joined #nim
07:12:50*shashlick joined #nim
07:12:50*Jipok[m] joined #nim
07:12:50*tyler569 joined #nim
07:12:50*kunev joined #nim
07:12:50*zielmicha_ joined #nim
07:12:50*euantor joined #nim
07:12:50*xet7 joined #nim
07:12:50*CcxWrk joined #nim
07:12:50*Sentreen joined #nim
07:12:50*SunDwarf joined #nim
07:12:50*Gertm joined #nim
07:12:50*cspar joined #nim
07:12:50*kier joined #nim
07:12:50*adamchainz joined #nim
07:12:50*derlafff joined #nim
07:12:50*arecaceae joined #nim
07:12:50*smt` joined #nim
07:12:50*StarBrilliant joined #nim
07:12:50*ketralni` joined #nim
07:12:50*Guest2656 joined #nim
07:12:50*SusWombat joined #nim
07:12:50*voice_ftp joined #nim
07:12:50*Senketsu joined #nim
07:12:50*joshbaptiste joined #nim
07:12:50*Amun_Ra joined #nim
07:12:50*Xe joined #nim
07:12:50*allan0 joined #nim
07:12:50*literal joined #nim
07:12:50*pwntus joined #nim
07:12:50*m712 joined #nim
07:12:50*Tanger joined #nim
07:12:50*avsej joined #nim
07:12:50*demi- joined #nim
07:12:50*d10n joined #nim
07:12:50*jackv joined #nim
07:12:50*obadz joined #nim
07:12:50*Nikky joined #nim
07:12:50*byte512 joined #nim
07:12:50*wishi joined #nim
07:12:50*gangstacat joined #nim
07:12:50*craigger joined #nim
07:12:50*vqrs joined #nim
07:12:50*huonw joined #nim
07:12:50*GitDisc joined #nim
07:12:50*onionhammer1 joined #nim
07:12:50*nathanj joined #nim
07:12:50*exit70 joined #nim
07:12:50*hogeland joined #nim
07:12:50*AlexMax joined #nim
07:12:50*cyraxjoe joined #nim
07:12:50*beatmox joined #nim
07:12:50*awal joined #nim
07:12:50*abeaumont joined #nim
07:12:50*flyx joined #nim
07:12:50*EastByte joined #nim
07:12:50*Araq joined #nim
07:12:50*yaiyan joined #nim
07:12:50*niv joined #nim
07:12:50*RushPL joined #nim
07:12:50*livcd joined #nim
07:12:50*Elronnd joined #nim
07:12:50*odc joined #nim
07:12:50*Syneh_ joined #nim
07:12:50*ftsf joined #nim
07:12:50*crem joined #nim
07:12:50*federico3 joined #nim
07:12:50*mal`` joined #nim
07:12:51*ldlework joined #nim
07:12:51*jivank_ joined #nim
07:12:51*pydsigner joined #nim
07:12:51*def- joined #nim
07:12:51*shodan45 joined #nim
07:12:51*dashed joined #nim
07:12:51*jsn- joined #nim
07:12:51*askatasuna joined #nim
07:12:51*programisto joined #nim
07:12:51*msmorgan joined #nim
07:12:51*LyndsySimon joined #nim
07:12:51*surma joined #nim
07:12:51*JStoker joined #nim
07:12:51*bodie_ joined #nim
07:12:51*Calinou joined #nim
07:12:51*pigmej joined #nim
07:12:51*pleiosaur joined #nim
07:12:51*Shoozza joined #nim
07:12:51*subsetpark joined #nim
07:12:51*acidx joined #nim
07:12:51*koppeh joined #nim
07:12:51*joebo joined #nim
07:12:51*benoliver999 joined #nim
07:12:51*MonsterAbyss joined #nim
07:12:51*gsingh93 joined #nim
07:12:51*r4vi joined #nim
07:12:57*oprypin quit (Max SendQ exceeded)
07:12:57*heinrich5991 quit (Max SendQ exceeded)
07:13:03*Sembei quit (Max SendQ exceeded)
07:14:17*oprypin joined #nim
07:14:18*Sembei joined #nim
07:18:58*sz0 joined #nim
07:19:26*heinrich5991 joined #nim
07:19:56livcdare the default settings for nim emacs mode good ? or something with my setup ? when i try to build something with C-c C-c it compiles the code but i get no output in the buffer
07:21:52*Jipok[m] quit (Ping timeout: 240 seconds)
07:21:58*Demos[m] quit (Ping timeout: 246 seconds)
07:22:09*watzon quit (Ping timeout: 240 seconds)
07:22:24*planetis[m] quit (Ping timeout: 248 seconds)
07:22:26*dyce[m] quit (Ping timeout: 276 seconds)
07:22:30*notdekka[m] quit (Ping timeout: 255 seconds)
07:22:30*hohlerde quit (Ping timeout: 255 seconds)
07:22:34*TheManiac quit (Ping timeout: 264 seconds)
07:22:34*MrAxilus[m] quit (Ping timeout: 264 seconds)
07:22:35*unclechu quit (Ping timeout: 264 seconds)
07:22:39*ehmry quit (Ping timeout: 246 seconds)
07:22:57*mindB quit (Ping timeout: 255 seconds)
07:23:04*jivank[m] quit (Ping timeout: 276 seconds)
07:23:05*byteflame quit (Ping timeout: 276 seconds)
07:23:10*shashlick quit (Ping timeout: 264 seconds)
07:36:51*PMunch joined #nim
07:59:34Araqvarriount: they are undocumented experiments for moving the implementation of .closure iterators and closures into macros
08:07:11FromGitter<alehander42> GooRoo: eh, so did slack lift the 10k limit for free groups too? I also think the current situation is fine (and about slack: I certainly would prefer even riot/matrix to slack)
08:09:34*yglukhov joined #nim
08:13:39*yglukhov quit (Remote host closed the connection)
08:14:19*rauss quit (Quit: WeeChat 1.9.1)
08:18:49FromGitter<mratsim> I’m fine with slack but the reminder when we have no space in the group and the 10k limit are a pain (though neither Gitter nor IRC offer search so ...)
08:19:38FromGitter<mratsim> also it’s easy to setup Gitter when you have a github account, and Slack syntax highlighting is weak
08:20:05*claudiuinberlin joined #nim
08:22:11FromGitter<mratsim> (https://files.gitter.im/nim-lang/Nim/VQqa/Pasted-image-at-2017_11_04-11_37-PM.png)
08:22:49*arecaceae quit (Remote host closed the connection)
08:23:07*arecaceae joined #nim
08:23:32FromGitter<mratsim> And taking my libman hat, I don’t think an opensource community should go on a closed source channel.
08:25:47FromGitter<alehander42> exactly, adding code snippets to slack is so absurdly awkward if you want highlighting
08:31:54*vlad1777d joined #nim
08:32:58*arnetheduck quit (Remote host closed the connection)
08:34:04*MyMind joined #nim
08:34:41*Sembei quit (Ping timeout: 240 seconds)
08:41:14*gokr joined #nim
08:41:21*Arrrr joined #nim
08:41:21*Arrrr quit (Changing host)
08:41:22*Arrrr joined #nim
08:43:55GitDisc<GooRoo> @mratsim not sure what you are talking about: I'm an admin of three Slack teams and have no “painful” reminders
08:45:11FromGitter<mratsim> every time a post an image, I get a reminder in my slack teams that I ran out of space
08:45:45GitDisc<GooRoo> This is weird.
08:45:47FromGitter<mratsim> same thing when I search for anything
08:49:20GitDisc<GooRoo> And I think that “open source” should never be the only reason to prefer something. I would never use OpenOffice/Libre Office instead of MS Office if I could.
08:49:20GitDisc<GooRoo> There are cases when “open source” really matters. This is not the one.
08:50:09Arrrrhttps://github.com/nim-lang/Nim/pull/6695 ++
08:55:55*claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
09:00:11*floppydh joined #nim
09:09:53avsejis it forbidden for scripts to download releases from nim-lang.org? I'm getting 403 when downloading archive with python urllib: https://gist.github.com/avsej/ed743e5c001652fc79d334449bbf3c6b
09:09:56FromGitter<alehander42> GooRoo: so slack has some pro-s and some con-s compared to the current situation and that's why a whole community should move there?
09:13:42*byteflame joined #nim
09:15:20*yglukhov joined #nim
09:18:53GitDisc<GooRoo> @alehander42 Once again: I don't tell anyone to move anywhere. I guess no one can decide for the whole community. I just said that there is a problem with current approach with bridges.
09:19:46GitDisc<GooRoo> For example, I can't edit my messages. Or rather I can, but you won't see any changes.
09:20:54PMunchavsej, it appears that is was blocked because of your browsers signature
09:21:46PMunchTry to set a proper User-Agent
09:21:49avsejas I said I don't use browser
09:21:54avsejwhat is proper?
09:22:19avsejurllib used by RPM development tools, and I cannot override it
09:22:48PMunchYou can't override the User-Agent?
09:22:58avsejI'm curious why the site should block release downloads and limit requests for the tarball, is nim become upstream already? :)
09:23:13GitDisc<GooRoo> @alehander42 And BTW it's easier for *the whole community* to migrate somewhere, when this “whole” is around 50 people and not 500. But I do not insist – I've just put the problem on a table.
09:23:55PMunchGooRoo, are you trying to migrate us off-of IRC?
09:23:56*dyce[m] joined #nim
09:23:56*jivank[m] joined #nim
09:23:56avsejI mean I can change it in the sources, but it is not part of my scripts, it is in the system packages, and will be reset when they will be updated
09:23:56*watzon joined #nim
09:23:57*Demos[m] joined #nim
09:23:57*ehmry joined #nim
09:23:57*unclechu joined #nim
09:24:02*MrAxilus[m] joined #nim
09:24:03*mindB joined #nim
09:24:03*shashlick joined #nim
09:24:03*notdekka[m] joined #nim
09:24:03*hohlerde joined #nim
09:24:04*planetis[m] joined #nim
09:24:04*TheManiac joined #nim
09:24:04*Jipok[m] joined #nim
09:24:25avsejis IRC broken or something? why migrate from here?
09:24:47PMunchIt's not broken per se. It's just some people like new shiny things
09:25:45FromGitter<Yardanico> Well I agree that IRC misses some useful features
09:25:52FromGitter<Yardanico> E.g. messages editing
09:26:04PMunchWhy would you want messages editing?
09:26:13FromGitter<Yardanico> To edit messages?
09:26:22avsejlooks like censorship
09:26:29FromGitter<Yardanico> No more "*correction" messages
09:26:35avsejyou cannot edit what you said
09:26:42PMunchWell of course, but what's wrong with just *corrections?
09:27:32PMunchIMHO they make the conversation better. I'm not going to re-read your message if you edit it
09:28:33PMunchSo throwing in a *correction is better for the general flow
09:30:15FromGitter<Yardanico> Well what about built-in logs? IRC doesn't have them, and or
09:30:25FromGitter<Yardanico> Our irc logs
09:30:37FromGitter<Yardanico> Website doesn't support search
09:30:52euantorWIth IRC I can choose whichever client I want rather than being forced to use some rubbish Electron app that eats RAM for breakfast
09:31:17euantorSo I __really__ hope IRC doesn't die
09:31:46FromGitter<alehander42> well slack builtin logs are very limited for free groups, 10k is nothing for a chat like the nim's one
09:32:32FromGitter<Yardanico> Well I didn't say that we need to move to slack
09:33:20FromGitter<alehander42> slack is not bad, I just think that those kind of changes need to bring big improvements to justify them
09:35:58euantorWe already have th Gitter chat which was meant to solve all of the supposed problems anyway - is that now not the case?
09:37:22FromGitter<Yardanico> yes, but it's not good then you have bridge between two different platforms with different features
09:37:38*planetis[m] quit (Remote host closed the connection)
09:37:38*mindB quit (Remote host closed the connection)
09:37:38*MrAxilus[m] quit (Remote host closed the connection)
09:37:38*shashlick quit (Remote host closed the connection)
09:37:38*jivank[m] quit (Remote host closed the connection)
09:37:38*byteflame quit (Remote host closed the connection)
09:37:39*TheManiac quit (Remote host closed the connection)
09:37:40*Jipok[m] quit (Remote host closed the connection)
09:37:40*unclechu quit (Read error: Connection reset by peer)
09:37:40*ehmry quit (Remote host closed the connection)
09:37:40*hohlerde quit (Remote host closed the connection)
09:37:40*Demos[m] quit (Read error: Connection reset by peer)
09:37:40*dyce[m] quit (Read error: Connection reset by peer)
09:37:40*watzon quit (Read error: Connection reset by peer)
09:37:40*notdekka[m] quit (Remote host closed the connection)
09:37:45FromGitter<Yardanico> e.g. if someone edits a message on gitter - it wouldn't be sent to IRC again
09:38:42FromGitter<alehander42> but wouldn't people just use irc/discord/etc bridges to slack instead
09:41:58*Jipok[m] joined #nim
09:45:40*yglukhov quit (Ping timeout: 255 seconds)
09:48:17FromGitter<mratsim> Gitter has no search as well but with IRC logs I can google-fu anyway
09:48:29*shashlick joined #nim
09:48:29shashlickcan you download and extract external payloads as part of a nimble install without having to depend on external curl/zip being present or having to bundle a program that will get built and use httpclient, etc?
09:49:25FromGitter<mratsim> You would have to recode curl/whether/unzip in Nim
09:49:32FromGitter<mratsim> Wget
09:50:33*yglukhov joined #nim
09:52:26*jivank[m] joined #nim
09:52:26*mindB joined #nim
09:52:26*ehmry joined #nim
09:52:26*unclechu joined #nim
09:52:26*dyce[m] joined #nim
09:52:26*Demos[m] joined #nim
09:52:27*watzon joined #nim
09:52:33*MrAxilus[m] joined #nim
09:52:33*notdekka[m] joined #nim
09:52:33*planetis[m] joined #nim
09:52:34*TheManiac joined #nim
09:52:34*byteflame joined #nim
09:52:34*hohlerde joined #nim
09:55:36*yglukhov quit (Ping timeout: 246 seconds)
09:56:19*yglukhov joined #nim
09:58:09GitDisc<GooRoo> @PMunch and rest, what's wrong with you, guys? I repeated like five times already that I do not try to force you to leave IRC
10:01:14GitDisc<GooRoo> Moreover, when I mentioned Slack above, I also mentioned its integrated IRC support
10:03:29GitDisc<GooRoo> Anyway, just forget it. I'm already tired to repeat the same again and again. If you don't see any problems with bridges, I can't make you see them.
10:06:11ArrrrIRC is the C of communitacion protocols.
10:06:28FromGitter<mratsim> Isn't it Usenet?
10:06:32FromGitter<mratsim> :P
10:06:48GitDisc<GooRoo> Right. And no one uses plain C nowadays
10:06:59GitDisc<GooRoo> Unless it's really needed
10:07:28FromGitter<mratsim> In my area "no one" is everyone ... Because the next best thing is Fortran or Python
10:08:02GitDisc<GooRoo> Or Nim :)
10:08:44Arrrrgitdisc
10:08:52Arrrrwhat is that
10:08:54FromGitter<mratsim> C is the lowest common denominator for fast file processing, graphics, mobile device support, etc
10:09:15Arrrrfromgitter
10:09:16FromGitter<mratsim> It's the Discord bridge, brought 2 weeks ago for Araq stream
10:09:20ArrrrFromGitter
10:09:54FromGitter<Yardanico> @mratsim nah
10:09:58FromGitter<Yardanico> not for araq stream :)
10:10:05*yglukhov quit (Ping timeout: 268 seconds)
10:10:31FromGitter<Yardanico> in fact I can also enable IRC - Gitter bridge with it
10:10:32ArrrrFromGitter used to tell you that it is a bot
10:10:50FromGitter<Yardanico> so it would support Gitter-Discord without issues
10:15:12*yglukhov joined #nim
10:21:18GitDisc<GooRoo> @mratsim What is your area by the way?
10:22:12FromGitter<mratsim> Well I don't know about you but it's been 8 hours that this has been discussed. I'd rather continue in a single forum thread.
10:22:36FromGitter<mratsim> Data Science and machine learning
10:23:10*SenasOzys quit (Ping timeout: 264 seconds)
10:23:42FromGitter<mratsim> Most libraries are built upon C (for Python), C++ (for R and Python) or Fortran (for Julia)
10:24:14FromGitter<mratsim> Mmh actually there are a lot of Fortran <-> Python bindings as well
10:25:25GitDisc<GooRoo> I see. And what about Haskell?
10:26:14FromGitter<mratsim> You can't control memory layout of your arrays/multidimensional arrays so it's too slow
10:27:32FromGitter<mratsim> There are some 4-5 libraries though, but it's monolithic while for research you need small easy to assemble Lego and for production you need performance Haskell can't provide
10:29:31GitDisc<GooRoo> Right. And Nim should be a good fit for this, shouldn't it?
10:31:25FromGitter<mratsim> Here is a link where I discuss Haskell in data science. https://www.reddit.com/r/rust/comments/76olo3/comment/dojrtq2
10:32:44FromGitter<mratsim> Yes it is, syntax is familiar, it's fast, and there is no need to learn Python + C + Cython (+statistics/math) when developing in Nim. And then no need to recode in C++ later when you want to go in production
10:33:19FromGitter<mratsim> The main issues are libraries to build and data visualization.
10:33:49FromGitter<mratsim> Oh and a REPL
10:34:11Araqouch :-)
10:34:34FromGitter<mratsim> Also a very good thing for Nim is the compilation time. Building a C++ lib is so slow
10:42:05GitDisc<GooRoo> It reminds me the time when my teacher from university wrote his doctoral dissertation. He used Wolfram Mathematica first for playing with algorithms, then ported it to Haskell to test algorithms on bigger amount of data, then ported it to C++ for memory management, and then used CUDA to gain performance boost with parallelism.
10:43:10*SenasOzys joined #nim
10:43:45Araqsounds quite reasonable but maybe he could have gone from Wolfram to CUDA directly :-)
10:44:11PMunchGooRoo, haha I was just dropping by and didn't read the previous conversations. Didn't mean to make you repeat something :P
10:46:08GitDisc<GooRoo> Maybe he could :) but he did some additional optimizations on each step. So, who knows
10:46:56FromGitter<mratsim> Apparently there is money and interest to solve this (Julia raised $8M in June with this pitch from investors).
10:47:22FromGitter<alehander42> btw it would be cool to have a jupyter kernel for nim talking about repl-s
10:47:52FromGitter<mratsim> Oh 4.6M sorry not 8
10:48:01PMunchThere were some attemps at a REPL for Nim at some point
10:48:19*Ven joined #nim
10:48:29PMunchBasically using a hidden text file and TinyCC to append a line and recompile with each step
10:48:39FromGitter<alehander42> are there any showstoppers? a repl would be extremely nice (I know about nim secret but it's limited)
10:48:43*Ven is now known as Guest53102
10:49:04PMunchProblem was just that if you made a bug it would still get added to the file and crash the program every time :P
10:49:15PMunchBut it should be possible to do a workaround of that
10:50:13FromGitter<mratsim> Wasn't there an issue with "import" ?
10:50:22FromGitter<alehander42> one can detect lines with exceptions and quarantine them , I think I did something like that years ago with another static lang
10:51:53PMunchYeah, there are definitely ways to work around it
10:52:11PMunchmratsim, was there? I can't remember anything like that
10:52:28oprypinIMHO it's better to just have an easy way to write a program and iterate on running it with changes
10:52:29dom96The fact that edits are not sent to IRC from Gitter isn't an IRC problem
10:53:29FromGitter<alehander42> was https://github.com/wheineman/nrpl the tcc based repl ?
10:53:34FromGitter<mratsim> A lot of people are addicted to jupyter/repl + it's nicer on live demos ;)
10:53:45oprypinit's mainly a gitter API problem. there's the simple API that doesnt send edits at all and waaay overcomplicated api that can take ages to implement
10:54:09oprypinCrystal has a nice code editor that also annotates each line with what it would have output https://crystal-lang.org/2016/03/21/crystal-0.14.1-released.html#the-playground
10:54:20PMunchI just use vim on a file in /tmp and Ctrl+Z and fg to jump in and out of vim and nim c -r test.nim as the previously run command
10:54:23dom96@GooRoo your main problem with bridges is that edits are not sent?
10:54:28oprypinand then there's the "REPL" with aforementioned hacks https://github.com/crystal-community/icr
10:55:11oprypinhttps://github.com/crystal-community/icr/commit/960fe907e6f14821561d4ed275800a8122d9000d#diff-3cbb46ce8a052efc2f1c5d9e6d6cb7baR19
10:55:18FromGitter<alehander42> and it's just nice to experiment with stuff in repl-s, e.g. import a library, look at its functions, try the functions with different inputs etc
10:55:55FromGitter<alehander42> I know you can do this with quickly editing a file and rerunning it, but a repl is way more ergonomic
10:56:02oprypin"the playground" solves that problem without making a messy commandline REPL
10:56:04PMunchalehander42, this is the one I used I think: https://github.com/jlp765/tnim
10:56:32PMunchoprypin, hmm maybe an offline version of the playground could be cool
10:56:40oprypinwell it is offline
10:56:55PMunchIsn't it compiling somewhere else?
10:56:57oprypinlocal web server. also, in fact, nobody hosts it online cuz that's a bit crazy :p
10:57:38Araqso give Nim a REPL, it's "easy" now that I thought about it again...
10:58:27Araqwe need to patch the allocator so that its mmap() memory is shared and backed up by a temporary file
10:58:30dom96Araq: back to this: https://irclogs.nim-lang.org/05-11-2017.html#23:11:24
10:58:35oprypinthe interpreter is limited, and surely you're not suggesting a REPL using the compiler?
10:59:07Araqand then all that is required is to patch the codegen so that global variables go through an indirection
10:59:26AraqI can guide you but won't do it myself
10:59:29PMunchOoh, that's another way to do it
10:59:43FromGitter<mratsim> I remember Araq (maybe wrongly) suggesting people to contribute to nlvm (LLVM backend) and then we can use LLVM JIT to get a REPL
10:59:47PMunchWell, that's the proper way to do it :P
11:00:02Araqmratsim: I changed my mind. happens often :P
11:01:35Araqdom96: I don't understand your remark, but bbs
11:02:27dom96$pkg/foo will search for `pkg` in `..` (won't find it, because 'src' is there), then `../..` (nope, that's already too far)
11:02:43FromGitter<alehander42> if nobody else is interested, I can try that approach for a repl in the weekend
11:02:49dom96bbl
11:03:04FromGitter<alehander42> (the Araq idea)
11:03:32oprypinbut then you still have https://github.com/crystal-community/icr/commit/960fe907e6f14821561d4ed275800a8122d9000d#diff-3cbb46ce8a052efc2f1c5d9e6d6cb7baR19
11:04:41PMunchalehander42, that would be really cool!
11:10:51*claudiuinberlin joined #nim
11:12:20FromGitter<mratsim> I agree with dom the import package when you have a src directory is non-trivial because the src gets remove when brought by nimble. There is a hack "when GitHub: else:" done by yglughov in Nimble I saw when I was figuring that out.
11:13:01FromGitter<mratsim> This: https://github.com/nim-lang/nimble/blob/master/nimble.nimble#L5
11:22:00*Guest53102 quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:27:55dom96mratsim: yes, but this is only an issue for .nimble files
11:28:13dom96we are discussing Araq's new `import $p` feature
11:28:24dom96Which has no reason to exist IMO
11:28:27FromGitter<mratsim> Oh
11:30:18FromGitter<alehander42> ok, when I have more time, I'll look into the the allocator and generation and ask araq if I can't get something
11:36:27Araqoprypin: "Files and network/database connections are reopened on every run" yup, I've been thinking about this too
11:37:56Araqit's a tough problem, stdlib patches can help but it remains fragile
11:38:17Araqit's however not that essential for scientific computing (I guess)
11:42:32*StarBrilliant quit (Quit: ZNC - http://znc.in)
11:43:48dom96I wonder if we could create a self-rewriting binary that would act as a REPL
11:44:14dom96Where each new line is compiled and appended to the binary then executed
11:44:14FromGitter<Yardanico> wat
11:44:24dom96Just a crazy idea :)
11:44:54dom96bbl
11:45:19FromGitter<alehander42> I wondered if things like file/db connections can be marked as special (at least in stdlib) and opened in a long running process when in REPL
11:45:46*sz0 quit (Quit: Connection closed for inactivity)
11:46:13Araqwell the JIT solution via nlvm is the only option if we're after a 100% solution
11:46:32Araqnot every piece of memory goes through Nim's allocator either
11:47:47*StarBrilliant joined #nim
11:47:51Araqor try to embrace "TinyC as a library" again
11:48:13yglukhovAraq: $package doesn't work. doesn't crash now. just Error: cannot open '$package / font'
11:48:27yglukhovI wonder what $package means
11:48:37yglukhovis it the dir where nimble file resides?
11:48:39FromGitter<alehander42> on the other hand, how far is the compiletime interpreter from supporting e.g. 95% of the language ?
11:48:44Araqyglukhov: works for me :P
11:49:12Araqalehander42: it's a dead end, the FFI would change semantics
11:49:55Araqwhat is currently "got a pointer from C, I can write to it" becomes a marshalling operation with all its traps
11:50:16Araqlook at compiler/evalffi.nim
11:52:37Araqyou could use vmgen.nim and rewrite it to be a x86_64 JIT but that's much work :-)
11:57:32FromGitter<Yardanico> Araq: what is "liftLocals"?
11:57:47FromGitter<alehander42> :D yeah, it doesn't seem too promising
11:58:05FromGitter<Yardanico> ah I see
11:58:06FromGitter<Yardanico> hmm
11:58:13FromGitter<Yardanico> can it support inheritance?
11:58:29FromGitter<Yardanico> (well I think it doesn't)
11:58:39FromGitter<Yardanico> it would be very useful for nimpylib :D
11:59:24FromGitter<alehander42> so how complete is nlvm then?
11:59:25yglukhovAraq: ahh, so i need to import $nimx / font, not $package / font
11:59:25yglukhov=)
11:59:47FromGitter<Yardanico> @alehander42 most of it is complete, but it's being developed by only one developer :)
12:00:00FromGitter<Yardanico> and nobody seems to be interested in it (no PRs or issues for example)
12:00:29FromGitter<Yardanico> @alehander42 https://github.com/arnetheduck/nlvm#status
12:00:34FromGitter<Yardanico> pass ~90% of all upstream test cases - many failures can be traced to the standard library and compiler relying on C implementation details
12:00:39AraqI am interested and offered to make it part of the core eventually
12:00:52FromGitter<Yardanico> oh, that would be great
12:01:11Araqbut as long as it's just another backend it's work without payoff
12:01:35*SenasOzys_ joined #nim
12:01:55Araqturn it into a REPL or JIT so that it actually gives us added value
12:01:58yglukhovAraq: so to clear things up a bit. in `import $smth / ...` the dollar strictly denotes that this is an absolute import from package `smth`, right?
12:02:12*SenasOzys quit (Remote host closed the connection)
12:02:12*SenasOzys_ quit (Remote host closed the connection)
12:02:20Araqor give it much better debugging support
12:02:21yglukhovbecause i thought that `$package` would expand to whichever package is "current"
12:02:23*SenasOzys joined #nim
12:02:30*Snircle joined #nim
12:02:42Araqyglukhov: we're still discussing its semantics and wether it should be a thing
12:02:58Araqbut current you can read the $foo as "search for foo"
12:03:07yglukhovAraq: can i participate?
12:03:09yglukhov=)
12:03:16Araq$stdlib is special cased
12:03:32Araqand $root means what you think $package means, I think
12:03:33yglukhovthats cool! although i would just name it "std"
12:04:04yglukhovnice, i really like that.
12:04:07Araqof course you can participate
12:04:18yglukhovwhere is the discussion?
12:04:42Araqin yesterday's logs :D
12:05:48FromGitter<data-man> And system/debugger and system/endb can help with a REPL?
12:06:48*dddddd joined #nim
12:08:54yglukhovok, went through the logs
12:09:45yglukhovAraq, dom96: i'm seeing the dollar as a clear distinction for absolute vs relative imports.
12:10:13yglukhovso we could introduce the dollar as absolute imports.
12:11:02yglukhovkeep the old behavior for now, which is kinda flaky and undefined. the old behavior is (as i understand it) - prefer relative, fallback to absolute (with some pitfalls).
12:11:22yglukhovthis stage of "fallback to absolute" can be deprecated and emit warnings
12:11:50yglukhovAraq: do i understand it correctly?
12:12:21Araqer no? it's like this
12:13:12Araqx / y # x, y are paths, 'x' is relative (use --path, --nimblePath if it can't be resolved)
12:14:00Araq$x / y # x is a "package", y is a path, 'x' is searched in ../, ../../ etc, uses --nimblePath if it can't be resolved
12:14:51Araqabsolute paths start with "/" or "C:\" and are supposed to work
12:15:11FromGitter<alehander42> thanks @Yardanico , nlvm seems pretty good, I thought it's way less developed
12:15:26Araqimport "/home/araq/x.nim" is clearly an absolute path
12:15:48federico3Araq: how is the compiler able to distinguish packages by directories?
12:15:55FromGitter<alehander42> I'll try to play with fixing stuff in it instead
12:18:19Araqfederico3: I don't understand your question
12:20:54federico3given "$x / y", is the compiler going to walk backwards up to / looking for any directory name "x" with a file named "y" in it or it's looking for .nimble files?
12:23:14Araqit goes up in the file tree, currently ignoring .nimble files.
12:23:49yglukhovok, sorry, by "absolute" i mean the c #include <smth>. so my "absolute" is relative to search paths roots
12:24:11Araqyglukhov: that explains a whole lot :P
12:25:48yglukhovso what youre saying aligns a lot with what i said. except you don't want to admit that current import (prefer relative, fallback to absolute) is flaky
12:26:29Araq"flaky"? it works as designed
12:27:16Araqit's just that import "$lib/pure/strutils" is not widely known
12:27:45federico3Araq: that's risky. If you have multiple projects checked out under <myprojects>, when building in myprojects/foo you'll import from ../x/y
12:28:39Araqthe idea is that your <myprojects> is your workspace
12:28:41yglukhovwell i've told you about my pitfall
12:28:57Araqnever met a developer who doesn't have a setup like that anyway
12:29:37Araqyglukhov: I don't remember
12:31:49federico3myprojects is a parent directory, the git repos exist at myprojects/foo myprojects/x etc and they should ignore each other at build time unless myprojects is flagged as an "environment"
12:32:55yglukhovgot a big lib project, lets say nimx. it imports its own modules as "import nimx.blabla" all over the place. now i want to add a binary to my project that imports some of nimx modules. and nimble cannot install those.
12:33:01federico3(essentially that becomes similar to nimbledir or python virtualenv / rbenv...)
12:33:21yglukhovAraq: my first comment in https://github.com/nim-lang/nimble/pull/401
12:36:31ArrrrDoesn't $projectDir work for nimble projects?
12:37:36yglukhovnimble doesn't add currently being compiled-and-installed project to paths
12:39:20Araqwhy would a module in nimx import others via nimx.?
12:39:42Araqthat's not how it works, inside a package you use "relative" imports
12:39:59Araqbbl
12:43:50*SenasOzys quit (Remote host closed the connection)
12:44:03*SenasOzys joined #nim
12:47:44FromGitter<mratsim> (https://files.gitter.im/nim-lang/Nim/XbEQ/5_stages_of_debugging.jpg)
12:49:02FromGitter<mratsim> I’m trying to get GPU convolution working in Arraymancer, and Nvidia cudnn is just putting 1e-44 in my result value whatever I’m trying >_> and it happily says “SUCCESS”… welcome to blackbox programming.
12:49:47yglukhovAraq: various reasons. 1. clarity. 2. willingness to not depend on file relative placement. e.g. module foo resides in nimx/private/windows/android/foo. wants to import nimx/types. how will it look like? import ../../../../types? then i want to move this module to a subdir. change the import?
12:54:23*elrood joined #nim
13:03:40*couven92 joined #nim
13:13:36couven92Araq, regarding my asarray macro: why call instead of dot expression for converting between types in the AST?
13:14:11couven92I am just curious, I have not opinion on the subject :P
13:23:20*Syneh_ quit (Read error: Connection reset by peer)
13:24:20*Syneh_ joined #nim
13:27:29yglukhovcouven92: calls are easier to resolve. ".smth" could be a member.
13:27:44couven92ah, makes sense
13:29:29*kobi7 joined #nim
13:29:42kobi7hey guys
13:30:33kobi7when I run nim c, it seems to always recompile, even when I haven't made any changes. I thought the nimcache is a cache for that?
13:30:56kobi7I'm not sure I'm right. it could be skipping it, but it takes 2 seconds to build.
13:31:17kobi7and the drive is SSD, so I assume it tries to recompile?
13:31:26*Senketsu quit (Remote host closed the connection)
13:31:39kobi7of course not a big deal, just wondering if I'm not missing anything
13:32:07*sz0 joined #nim
13:33:14dom96yglukhov: Araq: If the Nim issue I describe in that GitHub issue you've linked is fixed then I am happy to allow you to merge that PR
13:33:17FromGitter<jdhorwitz> Hey all, just got the Nim book and I am looking to contribute to the language asap. Coming from React, Javascript, Go sort of land
13:33:23dom96But I'm not sure whether fixing it is that simple
13:33:46dom96As for the new `import $blah`, it's far too magical
13:34:29dom96Someone will run into a case where there is a foo/module.nim somewhere in ../../../../../ and they'll be confused as to where it's coming from
13:34:48yglukhovdom96: should not be there a way to distinguish absolute vs relative imports?
13:35:20FromGitter<Yardanico> kobi7: do you see "CC" entries?
13:35:29FromGitter<Yardanico> in compilation log
13:35:35yglukhovthe "$" introduces this distinction imo
13:35:35dom96I'm not sure what you mean by "absolute"
13:35:37FromGitter<Yardanico> e.g. "CC: mymodulename"
13:35:51yglukhovby absolute i mean relative to search paths roots
13:36:03dom96but if we do add support for it then `$` isn't the best symbol to use for it IMO
13:36:28dom96isn't import already relative to search path roots?
13:38:20Araqit is.
13:38:40Araqit's "relative to the current file, if nothing there, consider --path"
13:39:12Araqdom96: pure conjecture. that's how git determines its root too.
13:39:20FromGitter<mratsim> Agree with dom, it would be strange to overload $
13:39:45FromGitter<mratsim> "import relative ../../foo"
13:39:54Araqit's the old "I can imagine problems" argument, totally shallow by now
13:40:05dom96yglukhov: what would be useful for you is a `$root` directive
13:40:14FromGitter<mratsim> Or just plain ./
13:40:17Araqyou can't design a single thing with that mindset
13:40:27dom96Which points to where the .nimble file is
13:40:53dom96Araq: My main argument is still regarding `src/`
13:41:04dom96This isn't something I am imagining
13:41:05kobi7Yardanico: I see CC for stdlib
13:41:06dom96It's a real problem
13:41:13FromGitter<Yardanico> kobi7: strange
13:41:13livcddo i need to do something extra to be able to build nim in Atom ?
13:41:30AraqI imagined lots of problems for Nimble, all of which actually happened. Yet I'm not here deprecating nimble even you think that I'm after that.
13:42:29dom96What problems?
13:42:36dom96We designed Nimble together
13:42:47kobi7Yardanico: my mistake, I only see the hints - on repeated tries
13:43:21Araqdom96: "nimble used some outdated package for building things"
13:43:39Araq"nimble update doesn't do what I thought"
13:43:42kobi7it still does Processing, but shouldn't it just check the datetime against the last compilation?
13:43:51dom96Araq: Can you elaborate on the first one?
13:44:00dom96The second one is an issue in the repo!
13:44:07FromGitter<Yardanico> kobi7: it always does Processing
13:44:15Araqnot my point
13:44:28FromGitter<Yardanico> there's no incremental cache for nim files (well there is, but it's very unstable)
13:44:43kobi7Yardanico: isn't there something like 'lastbuild' file that we check its last mtime?
13:44:53AraqI don't want to criticize Nimble anyway, the development mode is awesome
13:45:02FromGitter<Yardanico> kobi7: I don't think so
13:45:10FromGitter<Yardanico> Nim compiler will always compile Nim files and check if it should recompile C files
13:45:32FromGitter<Yardanico> so if you didn't modify nim files - it won't recompile C files
13:45:40dom96You were one of the people that encouraged me to change the behaviour of 'update'
13:45:55dom96so you can't say that you didn't want to deprecate that
13:46:10kobi7well, this lastbuild can have the previous command parameters and if they match, only compile/process the files which were updated since.
13:46:42kobi7actually, then it would have to save ast etc. maybe complicates too much.
13:47:16kobi7nevermind. it's just two seconds after all
13:47:35Araqdom96: it was a problem of the duplication that Nimble introduces, I had ./nimble/pkgs/foo-1.0 and a local variant of 'foo'
13:48:39kobi7I'm trying out nimx, looks pretty cool
13:49:10FromGitter<Yardanico> ah yes, nimx has a lot of modules
13:49:17FromGitter<Yardanico> nim compilation is a bit slower than usual for it :)
13:49:24yglukhovdom96: you're right. $root directive sounds good to me
13:49:51dom96btw I'm beginning to dislike your stance against "imaginary" issues. By the time we all have a chance to use this new "$pkg" feature and find out whether it causes problems we won't be able to remove it because many code bases will be using it...
13:50:08yglukhovnimble file location is not equal to that, because nimble file allows overriding the src "root"
13:50:39yglukhovso if nim cares about nimble it should parse/evaluate nimble files
13:50:52dom96yeah, that's something we want to avoid
13:51:43dom96btw, didn't we discuss allowing compile-time function calls inside import statements?
13:51:45yglukhovthe "package/src", "package/package", "package/src/package" probes seem like a good enough solution to me.
13:51:48kobi7Yardanico, I can't have private msgs with you on irc right?
13:51:50dom96Wouldn't this solve all our problems? (tm)
13:52:05dom96import findPkg("nimx") / "types"
13:53:05kobi7dom96: if the docs state clearly what is the resolution order, it's not really a problem, imho
13:53:41kobi7dom96: the build can even state it, with hints, like it does for nim.cfg
13:54:31kobi7my 2c aint worth much :)
13:55:00yglukhovbtw, how should we call package-relative imports? my "absolute" term appeared to be ambiguous. "package imports"?
13:55:08kobi7yglukhov: where are the docs for nimx?
13:55:22yglukhovkobi7: in the future
13:55:25yglukhov=)
13:55:41kobi7can I generate them somehow, or is it just reading samples and figuring it out
13:56:38yglukhovkobi7: i think samples is the only thing i cared about for now. and even they are not complete. sorry.
13:57:08dom96kobi7: yes, and Nim should do that. But that doesn't change the fact that it won't work for packages with a 'src' dir
13:57:18kobi7it's fine. I didn't pay you to write them after all
13:57:25Araqdom96: so use it already and report real problems.
13:57:27yglukhovalso i'm switching nimx towards a constraint-based layout system, so autoresizing masks will get deprecated soon.
13:58:01dom96Araq: I have no use for it. Everything that is worth depending on is already a nimble package
13:58:13kobi7yglukhov: I saw a gui dsl the other day, I think it was gen-ui. does nimx support it?
13:58:16dom96and I've spent a considerable amount of time implementing `nimble develop` for that
13:59:56yglukhovkobi7: nimx supports layout dsl with constraints, but it is still under development. some container views (like TableView) are still unaware of the constraint system and will not work properly with it.
14:00:10dom96The thought of explaining the difference between `import pkg/foo` and `import $pkg/foo` makes me cringe
14:00:25dom96(to newbies)
14:01:14Araq*shrug* pkg vs $earch(pkg)
14:01:34kobi7:>
14:01:37yglukhovkobi7: here's a peek at how it will look like: https://gist.github.com/yglukhov/c840026f18cff11da3824e61f1f8a99f
14:01:56yglukhovactually those tests already work
14:02:11dom96No, i'll be saying "Don't use that. Just use `nimble develop` and `import pkg`"
14:02:20FromGitter<Yardanico> yglukhov: that's very nice
14:02:49FromGitter<Yardanico> I suppose it's a macro?
14:03:05yglukhovyes, a very simplistic one. see nimx/layout.nim
14:03:34kobi7yglukhov: very nice
14:03:37yglukhovthe coolest part is the kiwi-based constraint system
14:03:49Araqwell I could return this compliment ... "don't use nimble, git clone the dependency"
14:04:10dom96Can you not see that discouraging Nimble packages is not in your best interest?
14:04:24Araq*I could*
14:04:34AraqI'm not doing that.
14:04:34kobi7yglukhov: the UI looks the same on all systems, right?
14:04:40dom96Your feature does that
14:05:00yglukhovkobi7: yep. everything is opengl
14:05:35yglukhovi think stylesheets might be implemented eventually
14:05:37kobi7awesome. everything I've seen so far in nim is superb to be honest.
14:06:59dom96Araq: Sorry, but you said yourself that this feature is for those that aren't using Nimble.
14:07:02kobi7yglukhov: in the haxe language, there is a project called haxeui, they have implemented css parsing, and generate the gui sources after calculating it
14:07:10dom96So another reason why I dislike this feature is because it discourages Nimble's usage
14:07:57Araqyes I can see it offends you.
14:08:15dom96I wouldn't say it offends me
14:08:24federico3perhaps documenting all the features required around imports and packaging in an issue can help prevent unnecessary changes.
14:08:50dom96I'm simply arguing against the inclusion of this feature
14:08:58federico3(changing packaging practices has an impact on the community)
14:09:21*couven92 quit (Ping timeout: 268 seconds)
14:10:06FromGitter<Yardanico> yglukhov: nimx still uses sdl2, right?
14:10:59Araqfederico3: that's what dom96 did and a slightly different topic
14:11:16yglukhovYardanico: yup (
14:11:29yglukhovnot the js/emscripten version though )
14:11:52Araqhttps://travis-ci.org/nim-lang/Nim/jobs/297977127
14:12:07Araq$ nimble install opengl
14:12:07AraqDownloading https://github.com/nim-lang/opengl using git
14:12:07Araq Warning: Package 'opengl' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'opengl.nim', but a file named 'glu.nim' was found. This will be an error in the future.
14:12:17AraqDownloading https://github.com/nim-lang/x11 using git
14:12:17Araq Warning: Package 'x11' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'x11.nim', but a file named 'cursorfont.nim' was found. This will be an error in the future.
14:12:30Araqnimble install sdl1
14:12:30AraqDownloading https://github.com/nim-lang/sdl1 using git
14:12:30Araq Warning: Package 'sdl1' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'sdl1.nim', but a file named 'sdl.nim' was found. This will be an error in the future.
14:12:44Araqnimble install niminst
14:12:44AraqDownloading https://github.com/nim-lang/niminst using git
14:12:44Araq Warning: Package 'niminst' has an incorrect structure. The top level of the package source directory should contain at most one module, named 'niminst.nim', but a file named 'debcreation.nim' was found. This will be an error in the future.
14:12:48FromGitter<Yardanico> :D
14:13:41FromGitter<mratsim> For what's worth arraymancer also has an incorrect structure :p
14:14:08yglukhovand almost all of my packages =)
14:14:10federico3Araq: introducing another import / pkg management system is even more change
14:14:35dom96yeah, it's a PITA to change
14:14:36AraqI'm really willing to sort this one out
14:14:45federico3I suggest removing this warnings and making nimble more lenient
14:14:52Araq^
14:14:55Araqexactly.
14:15:01yglukhov+1
14:15:04Araqand $package is my attempt at helping Nimble with that
14:15:11FromGitter<mratsim> Is there a RFC we can refer to? Or just IRC logs?
14:15:19yglukhovi like $package a lot!
14:15:24Araqthat it also works for "git clone" is a nice benefit
14:15:25yglukhovlets bring it in
14:15:57FromGitter<mratsim> Relative is good in my opinion but the symbol $ is not
14:15:58Araqand if you want to critic the feature say something like
14:16:04Araq- $ is ugly
14:16:17federico3Araq: that requires changes in all existing code to add that $ - it's really invasive. I'm not saying it's bad but if fixing nimble is easier it makes sense to do the latter
14:16:19dom96I've given multiple reasons why this feature should be removed.
14:16:20Araq- it pretends to be about packages but it's really just about paths. again.
14:16:50dom96What's everyone's reasoning for making Nimble more lenient?
14:16:54dom96And what does "more lenient" mean?
14:17:14yglukhovdon't claim a pkg has "incorrect" structure? =)
14:17:21federico3dom96: it's the "strictest" packaging tool I've ever used (and I used many)
14:17:24FromGitter<mratsim> Or introduce "import_path" bonus points if all files in that location are imported
14:17:36dom96Do you understand why it's incorrect?
14:18:04Araqdom96: yes but I don't want people to have to understand it
14:18:07federico3dom96: in short: allow multiple files and directories without complaining (and let user whitelist/blacklist files/dirs if so they want)
14:19:00federico3dom96: being able to create arbitrary directories and files in a development repo is a reasonable requirement
14:19:06FromGitter<mratsim> When you have src/package, src/package.nim, src/another_module, src/another_module.nim Nimble shouldn't complain about "another_module" otherwise it's too much directory nesting
14:20:03dom96You'll get conflicts between packages, very soon
14:20:09dom96If Nimble is more lenient
14:20:28federico3how so?
14:20:31Araqdom96: not if imports become package specific
14:20:35dom96Most packages will reuse module names, like for example: utils.nim
14:20:42yglukhovfederico3: i'm not sure i get your point regarding "$". why would it need changes?
14:20:58dom96Araq: Is this some other proposition?
14:21:14dom96or are you referring to the way `$` works now?
14:21:33dom96Because I don't see how `$` can help with that
14:21:50Araqlook, I want import $stdlib / [foo]; import $karax / [stuff]; import $jester / [a, b, c]
14:22:12Araqimport xyz # ok, part of the current nimble package I'm in
14:22:22Araqwhether with dollars or without
14:22:25federico3dom96: having a local utils.nim should not expose "utils" as an importable module unless the .nimble file specifically exports it
14:22:45AraqI want grouping by package
14:22:46dom96federico3: Ahh, so then Nim needs to evaluate the .nimble file of each package every time a compilation happens
14:22:55dom96Which will be slow
14:22:59dom96But it's a nice idea
14:23:21Araqand $foo is my first proposal at getting there.
14:23:21federico3Nimble, not Nim - and not necessarily
14:23:26dom96So there are definitely multiple solutions to this problem
14:23:42dom96And each has its cons. It would be good to evaluate each and every single proposal
14:23:50dom96and whether it's worth the disruption
14:24:07FromGitter<mratsim> Open a RFC on GitHub?
14:24:22*kobi7 quit (Quit: Leaving)
14:24:23FromGitter<mratsim> This way you have votes
14:24:29federico3I still think there has been too many changes so far and one of the reasons is that there isn't a spec with a list of requirements
14:24:29dom96Yes, that would be nice.
14:25:59FromGitter<mratsim> It should have a bold disclaimer if the "Nim imports everything in global namescope" is part of the discussion or not otherwise I foresee the thread derailing in that direction
14:26:24dom96Okay, so Araq I guess it's up to you to write an RFC :)
14:27:11federico3there's documentation from other projects with extensive lists of requirements
14:28:04euantorSo long as we don't end up having to specify external packages and then explicitely import them like `extern crate jester; use jester;`
14:28:31euantorOverall I like Rust's module approach, but having to use `extern crate` and `use` is repetitive
14:29:30federico3euantor: we are already declaring the module[s] in the .nimble file (and this should be enough if speed issues are solved)
14:29:36dom96euantor: Do you also dislike the current approach?
14:29:47euantorI don't mind the current approach
14:30:15euantorfederico3: In Rust you specify external dependencies ina `cargo.toml` file, to pull the crates, then in your code you use `extern crate`
14:30:47federico3euantor: yes, and I'm saying the equivalent of "extern" should not be required :)
14:31:07euantorI don't mind `import jester/routing`, as we currently do things
14:31:23euantorfederico3: Yeah, which is how things are now, or am I missing something?
14:32:00federico3euantor: almost
14:32:14euantorI do like the approach of `maintainer/packagename` like things are done in PHP's composer (eg: `import dom96/jester`)
14:32:16dom96actually
14:32:30dom96federico3: You can specify explicitly which modules are "exported" in the .nimble file already :)
14:32:37livcdyglukhov: do you use Atom with nim ? i saw you commited to the nim pkg for atom long time ago :D
14:32:45dom96But actually you're specifying which modules are installed
14:32:49dom96but this has the same meaning
14:32:52federico3yes dom96, I wrote it above
14:33:19yglukhovlivcd: nope, vscode. i found atom extremely laggy long time ago. never went back.
14:33:39dom96federico3: oh, keep in mind that this isn't always the case though
14:33:48federico3dom96: unfortunately Nim does not have a concept of source modules but when Nimble is pulling a pkg it can filter out files/dires based on whitelist
14:33:49euantorI also like to put my code inside a `src/` dir, and always do so. I like the idea of strict structure personally
14:33:59livcdyglukhov: ah ok different pkg ?
14:34:28livcdah i see
14:34:28livcdok
14:34:32dom96one problem that I just realised is that this whitelisting doesn't work for `nimble develop`
14:35:34federico3dom96: that's why I'm saying Nimble could be lenient by installing mypgk/myrealmodule.nim and ignoring mypkg/just_a_test.nim and mypkg/other_tests/...
14:36:11Araqnimble has more than one problem ;-)
14:36:28PMunchAraq, any particular reason ormin_mysql hasn't been implemented yet?
14:36:38dom96Araq: Feel free to take over its development ;)
14:36:56dom96There is always another project I could be working on
14:37:52AraqI'm the wrong guy to write/maintain a package manager
14:38:40dom96federico3: Nimble cannot make these guesses
14:39:26dom96If we just ignore the problematic modules then most packages won't have any installed files
14:39:32federico3dom96: and it shouldn't. Exploring filesystems and guessing stuff caused a lot of bugs in a lot of pkg managers. That's why there's white/blacklisting
14:39:34dom96At that point it's simply better to give an error
14:39:42*sleepyqt joined #nim
14:39:59dom96So you're suggesting Nimble should force people to specify every single module that should be installed?
14:40:18*kobi7 joined #nim
14:40:34*vlad1777d quit (Ping timeout: 264 seconds)
14:40:46*arnetheduck joined #nim
14:40:56dom96Araq: Why's that?
14:41:15federico3The module being installed is already being specified. Extra files/dirs that are not part of the module will be ignored unless whitelisted
14:42:01federico3and Nimble con simply print "including x y z .... ignoring k " during upload
14:42:14Araqdom96: because I don't believe in versioning
14:42:16dom96What do you mean "The module being installed is already being specified"
14:42:17dom96?
14:42:17federico3(and say nothing during install: the pkg user is not the author)
14:42:33dom96Do you mean implicitly (based on the package name)?
14:42:46dom96If so, take a look at this package: https://github.com/nim-lang/sdl1
14:42:50dom96What should happen?
14:42:55dom96There is no `sdl1.nim` module there
14:43:55federico3dom96: either the .nimble filename or srcDir
14:43:56euantorRust's approach is actually not too bad. A `crate` (`package`) is just a bunch of files. In a `crate` is a selection of `modules`, with an explicit root `module`. Every `crate` (`package`) contains a `cargo.toml` (`x.nimble`), and a root module `src/lib.rs` (`src/lib.nim`). In Rust, the root module then exports any other modules, and can be referenced using something like`crate::mod::mod_function`
14:44:13euantorReference: https://doc.rust-lang.org/1.1.0/book/crates-and-modules.html
14:44:24livcdyglukhov: VScode looks slick
14:44:48euantorThey also allow `module {}` blocks, which I don't like particularly - I prefer one module per file
14:44:50federico3dom96: e.g. if the module matches the nimble filename you are essentially done (and it works already)
14:44:50dom96euantor: Whereas in Nimble you simply have src/mod.nim and src/mod/other_module
14:44:56livcdthough kinda bad that I need to switch editor because everyone seems to be using vscode
14:45:08dom96And Nimble verifies that you abide by this structure, it's beautiful!
14:45:25dom96federico3: What should happen in the case of the package I sent you?
14:45:27PMunchlivcd, join the dark side. Switch to Vim :)
14:45:42euantordom96: Yes. Having it always in a `src/` dir and that it follows a partcular naming style (either always `lib.nim` or always `<pkg_name>.nim`) is my preferred approach
14:46:14dom96euantor: Nimble gives a bit more choice. Perhaps it shouldn't.
14:46:32federico3dom96: name = "sdl1", srcDir = "src" but there is no src/sdl1.nim - in this case Nimble could complain
14:46:41euantordom96: Yep, having one true way probably makes sense
14:46:45dom96federico3: heh, that's what it does right now!
14:46:53dom96hence the warning
14:47:08livcdPMunch: my main is emacs but i did not want to spend too much time with the setup
14:47:25AraqI don't one true way, I want "just works without me having to read docs" :-)
14:47:29euantorOne thing I do like in Rust is that modules withina crate are private, unless explicitly marked as `pub mod`
14:47:32PMunchBefore any changes to nimble is made there should really be some proper thought put into it as it would probably be the last big change of structure to packages before 1.0
14:47:44dom96Araq: You know that's unrealistic
14:47:51federico3dom96: but now it's complaining at any other dir and file - that's the issue. Complaining about a "missing" module is ok (and should even refuse to run)
14:47:55euantorAraq: If `nimble init` created your directory structure and the files for you, would that be useful?
14:48:10euantor`cargo` (Rust) does that and probably helps people get started
14:48:23FromGitter<mratsim> Since we are on the package management topic, it might be good to have optional dependencies. Currently you can have a package and not actually importing it with a "when not defined(optdependency), but an "official" solution (even just documentation) would be great
14:48:24dom96federico3: yes, but it's something that should be corrected anyway
14:48:40Araqeuantor: not really.
14:48:51dom96It's incredibly likely that the user is intending for those .nim files to be installed
14:49:00dom96The only other case is a `tests` dir
14:49:00federico3dom96: the lib1 name issue? Sure but it's a corner case
14:49:02dom96Which we can special case
14:49:10euantorI also like Composer's "dev dependencies", with dependencies only used in development cases
14:49:15Araqthe existing packages don't adhere to the new rules that nimble suddenly imposed on us
14:49:41federico3having special cases for directory names is really uncommon
14:49:55dom96This is a side-effect of how Nim handles imports
14:50:04Araq"from now on, every package should be xyz"
14:50:06dom96this directory structure was always there
14:50:10dom96but people just ignored it
14:50:22dom96it was always in the docs, so you can't say it was imposed
14:50:28Araqis just unrealistic and it means we need to get this structure right
14:50:35FromGitter<mratsim> @dom96 one of the current warning is this: - rootdir is as suggested by nimble : https://github.com/mratsim/Arraymancer/tree/master/src
14:50:37Araqsuper right.
14:50:57Araqthat's hostile to any evolutionary process.
14:51:07FromGitter<mratsim> But in a subdir I get warnings all over the place: https://github.com/mratsim/Arraymancer/tree/master/src/nn_primitives
14:51:39federico3(and that's why people invented source packages...)
14:51:40livcdAraq: yeah that's a good requirement: "i want it to work without reading docs" :) +1
14:51:54dom96mratsim: so if I install your package I should write `import nn_primitives/nnp_linear`?
14:52:01dom96(to import that module for example)
14:52:04FromGitter<mratsim> But then Araq says "Read the manual"
14:52:07dom96Can you see the problem?
14:52:23FromGitter<mratsim> I'd like to do arraymancer/nn_primitives
14:52:25federico3yes, packaging and installation should be usable by reading very little
14:52:31dom96yeah, so move that into an arraymancer directory
14:52:35dom96That's what Nimble is complaining about
14:52:46FromGitter<mratsim> But I don't want to have 3/4 nesting
14:53:01FromGitter<mratsim> If I move it at the top nimble will complains as well
14:53:06Araqmratsim: a programming language unfortunately needs to have a manual but I strive to make docs superfluous for other things. like package management.
14:53:16dom96mratsim: you can get rid of the 'src' dir if you want
14:53:38dom96federico3: There isn't a single package manager that is usable without reading its docs
14:53:50FromGitter<mratsim> I don't want to clutter the base dir
14:53:55dom96(Unless you have knowledge of similar package managers)
14:54:39dom96mratsim: Nimble simply copies your src dir
14:54:39federico3(actually I do but it's proprietary)
14:55:16dom96mratsim: so you have to add this extra directory
14:55:24federico3yet, commands like nimble install and upgrade are obvious
14:55:37dom96If you have any better ideas on how to solve this problem then I am happy to hear about it
14:55:49federico3nimble init could ask more questions and prepare the pkg layout (as I suggested in a bug report)
14:55:59dom96yep, it will do that.
14:56:13dom96IMO it should just run without asking any questions
14:56:32FromGitter<mratsim> One layout to rule them all :p
14:56:49dom96mratsim: elaborate?
14:56:57federico3and give hints like "I'm ignoring foo/ bar.nim baz.nim - if you want to install them, add them to someThing in foo.nimble"
14:57:06FromGitter<mratsim> Reference to Lord of the rings
14:57:22dom96mratsim: I thought that was your suggestion on how to solve this problem another way :)
14:58:26*rauss joined #nim
14:58:28dom96As far as docs go, you don't even need to read that much: https://github.com/nim-lang/nimble#libraries
14:59:17kobi7dom96: another option is to define the source dirs in .nimble
14:59:46kobi7then the structure isn't so important
14:59:51Araqdom96: exactly, it copies the "src" dir, missing the documentation and examples, it needs to default to "git clone", and actually with the option to "fork" instead of clone ;-)
15:00:10FromGitter<mratsim> Lol now, basically what I want is packagename/src/module/now_its_my_space. And being able to do import packagename/module (implicitly calling packagename/src/module/module.nim or packagename/src/module/lib.nim or packagename/src/module/mod.nim your call)
15:00:53kobi7mratsim, I think explicit is better than implicit when doing non-default stuff
15:01:14*Jesin joined #nim
15:01:28dom96Araq: The documentation predates the 'srcDir' directive ;)
15:01:33federico3dom96: forcing users to pick between arbitrary categories of library/binary/hybrid is "unexpected" and limiting. Very often one wants to ship a library and later add a binary or ship a binary and later turn it into a library
15:01:42dom96and I did check, it's more than 2 years old, so it was definitely always this way
15:02:05FromGitter<mratsim> Make some filename.nim that explains the module layout the default: Rust has mod.rs, Python has *init*.py, some languages have lib.language
15:02:51dom96mratsim: you mean a repo that shows an example layout?
15:02:54euantorRust also has `src/lib.rs` for a crate
15:02:57kobi7What is the command to update all local packages?
15:02:57federico3mratsim you mean __init__.py or gitter replaced the underscores?
15:03:05euantorthen other modules within that caret have a `mod.rs`
15:03:11FromGitter<mratsim> Gitter replaced the underscore
15:03:12dom96I'm fairly sure most package managers have different instructions for libraries and binaries
15:03:24federico3dom96: no
15:03:25dom96Sure, hybrid is a special thing
15:03:29dom96and I asked how to better solve it
15:03:39dom96but people just said "oh no, I think it's fine the way it is, carry on"
15:04:18dom96ok, not people, one person: https://github.com/nim-lang/nimble/issues/308
15:04:19dom96:)
15:04:49federico3(for example in Python everything is "hybrid")
15:04:56FromGitter<mratsim> I like this rust layout with lib.rs/mod.rs (though I don't see why the distinction) https://github.com/autumnai/collenchyma/tree/master/src
15:05:24dom96federico3: http://pkg-go.alioth.debian.org/packaging.html
15:05:38dom96"Binary-only packages"
15:05:43dom96"Library packages"
15:06:05federico3and that's Go
15:06:28dom96and Python is significantly different from Nim
15:06:31yglukhovAraq: looks like import $package/some/path/module has a bug. it doesn't even try to find "module.nim", it tries to find "path.nim"
15:06:35dom96You don't compile it
15:07:56*SenasOzys quit (Ping timeout: 268 seconds)
15:08:01federico3sure but that's not a reason for requiring users to choose between 3 structures and then have to rename directories & so on to change it
15:08:25dom96yes, like I said, I dislike the hybrid convention
15:08:28dom96and wanted more ideas
15:08:37dom96I'm still waiting
15:08:37Araqyglukhov: maybe, I only tested $package / [...]
15:08:48FromGitter<mratsim> Example on Python init.py file https://github.com/kennethreitz/samplemod/tree/master/sample
15:09:18dom96For Nim, the init.py equivalent is a .nimble file
15:09:32dom96(You can have an empty .nimble file and Nim treats it in a special way)
15:09:55yglukhovAraq: can you fix it pls? =)
15:10:15dom96Nimble currently doesn't support multiple Nimble packages in a single repo (although I would like to change that)
15:10:15federico3dom96: an directory for the main module. If it's there, it's published as a librery? A bin/ dir for binaries. If it's there, and whitelisted, those are exposed by nimble install. If you have both a module and bin/ you are equivalent to a hybrid
15:10:46Araqdom96: nimble shouldn't even have to know lib vs app vs hybrid
15:11:00FromGitter<mratsim> So one idea would be to have a dir.nimble that tells nim what packages are to be exported or imported when we do import package/modulefoo
15:11:28dom96federico3: So you'd have a bin/myapp.nim and a src/mylibrary.nim?
15:11:35dom96How would myapp.nim import mylibrary.nim?
15:12:12federico3dom96: is src listed in srcDir I assume?
15:12:15dom96mratsim: Okay, that's one idea. Main disadvantage is the need for Nim to read .nimble files
15:12:22FromGitter<mratsim> package/modulefoo/dir.nimble, package/modulebar/dit.nimble and call package/modulefoo or package/modulebar
15:12:25dom96federico3: yep
15:12:41federico3that's up to Nimble to set the search path when building myapp.nim
15:12:55dom96(IMO srcDir then doesn't make sense in that case, and it should really be bin/myapp.nim and lib/mylibrary.nim but whatever)
15:13:13dom96federico3: Okay, so you're assuming that everyone will use Nimble to build their software
15:13:16FromGitter<alehander42> is there any way to somehow hint that you want a seq field to be init with @[] instead of nil
15:13:20federico3you could also support a "binary" in the root dir of the pkg if whitelisted
15:13:21dom96My solution supports the use of Nim on its own
15:14:07federico3dom96: if you are building a *Nimble* package I assume you'll use *some* functions of Nimble to find out where is installed or how to start building it
15:14:35Araqalehander42: mark it as 'not nil' but beware of the dragons
15:14:48federico3I'm not assuming you use all functions from Nimble because there are use-cases where people use other build tools
15:16:24federico3dom96: but I suppose, perhaps, nimble can insert a shim in the right place to allow Nim to build the files in bin/
15:17:04dom96yes, if you're using Nimble then there is no problem
15:17:06FromGitter<mratsim> @alehander42 you can use setLen too.
15:17:11dom96you can put your binary nim source wherever you please
15:17:25federico3dom96: what's the use case you have in mind?
15:17:44FromGitter<alehander42> not nil is actually nice, but I wondered if there is a way to say "I want this object to automatically put a @[] in this field when I construct it"
15:18:13FromGitter<mratsim> @alehander42 https://github.com/mratsim/Arraymancer/blob/master/src/private/sequninit.nim
15:18:43dom96federico3: Developing the package. In that case I probably just want to use 'nim'
15:18:49FromGitter<mratsim> Or use a "constructor" helper
15:19:07FromGitter<alehander42> @mratsim I have a diff thing in mind e.g. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a007d6a976e63937e3389cf]
15:19:21FromGitter<alehander42> but no prob, I'll init it myself
15:19:34FromGitter<mratsim> Instead of dir.nimble just use dir.nim
15:19:43dom96I feel like this discussion isn't going to get anywhere. We should all participate in an RFC and voice our ideas there.
15:20:43federico3dom96: if you want to check out from GH and build stuff in bin/ (or any other dir outside of the pkg) without Nimble it's reasonable to set the path
15:20:46*dyce[m] quit (Ping timeout: 264 seconds)
15:21:20*Senketsu joined #nim
15:21:50dom96So what do we think, shall I create an RFC on the Nim repo?
15:22:03*Senketsu quit (Remote host closed the connection)
15:22:08federico3yes please - an issue or a wiki page?
15:22:25dom96Issue
15:23:49FromGitter<Gooseus> @Varriount been traveling (NYC this week), but I did see your message last week about the names for nimaws and was going to fix to match stdlib conventions
15:23:57*dyce[m] joined #nim
15:24:16Araqsure, go ahead but please understand that Rust's Cargo makes more mistakes than today's Nimble, in my humble opinion.
15:24:36FromGitter<mratsim> Offtopic: Official Intel + AMD partnership for integrated Intel CPU+Radeon GPU https://newsroom.intel.com/editorials/new-intel-core-processor-combine-high-performance-cpu-discrete-graphics-sleek-thin-devices/
15:24:44dom96Araq: oh? how so?
15:29:32*PMunch quit (Quit: Leaving)
15:29:56Araqit's more complex and thinks semantic versioning is the solution. it thinks not being able to script things is an advantage. it ignores that packages are in git repositories these days. it thinks a "single directory layout to rule them all" is a good idea.
15:35:31FromGitter<alehander42> why is a single directory layout a bad idea ? I can see how in certain cases people will have a good reason for something different, but every library with its own custom structure is a very bad thing (I love how easy is for me to jump into a gem/python lib or even rust lib)
15:38:44*kobi7 quit (Quit: Leaving)
15:42:13yglukhovAraq: dom96: btw $root doesn't work the way i want it to. if i compile nimx/tools/mybin, the $root would be tools, not nimx.
15:42:57dom96https://github.com/nim-lang/Nim/issues/6700
15:44:27Araqalehander42: it doesn't work for big projects and is just annoying ceremony for small projects.
15:44:40*nsf quit (Quit: WeeChat 1.9.1)
15:45:18Araqit also has lots of hidden costs like
15:45:25Araq- you need to enforce it somehow
15:45:27euantordom96: Regarding the case of `bin` packages, Rust and others solve this by writing the results of `cargo build` into a dedicated directory, rather than the current directory or the directory where the code lives
15:45:49euantorI'm not sure if I like that, but it's one solution I've seen
15:45:53dom96yeah, that would be a good solution
15:46:09Araq- you need to get it right
15:46:19Araq- you can't really evolve it
15:46:24dom96It again assumes that everyone builds with Nimble (which might be a fair assumption nowadays)
15:46:28Araq- people will fight over it
15:46:30dom96I think Nimble is powerful enough to handle that now
15:46:43Araq- people might actually leave if it's too restrictive
15:47:48Araqit's like saying "ok now, everybody should live in this single type of house we designed"
15:48:30Araqand when you visit a friend you can say "wow, this is really helpful, now that we're living in the same type of house I feel at home everywhere immediately"
15:49:13*SenasOzys joined #nim
15:49:40Araqand all we had to do to get there was to destroy and rebuild every house
15:53:57FromGitter<alehander42> well that's just a metaphor, you can also compare libraries to cars like ⏎ cars are different, but the main parts are always in the same place, you don't have the wheel in 5 different possible places, the engine on the ceiling or something else ⏎ yeah in a sports car the engine *might be* in a bizarre place and stuff, but people that use/drive sports cars know how to deal with it
15:56:57FromGitter<alehander42> I agree that current libraries shouldn't be broken, but that doesn't mean a somewhat standard layout can't be introduced for the future ones: if people can still opt-out of it, they'll probably do it if the layout limits them, but at least all those smaller libraries with 2-3 files would follow a convention instead of reinventing stuff every time
15:58:04Araqif you have a solution that works with variations already there is little reason to enforce more things.
15:59:58federico3alehander42 FYI: https://github.com/nim-lang/nimble/issues/413
16:00:17FromGitter<alehander42> sorry, I don't know in details what nimble enforces (but if it suggests a certain layout, without enforcing it, that would be nice for me)
16:00:41*Jesin quit (Ping timeout: 240 seconds)
16:01:45*Jesin joined #nim
16:04:12*Senketsu joined #nim
16:06:20*Jesin quit (Remote host closed the connection)
16:09:49*arnetheduck quit (Ping timeout: 250 seconds)
16:13:52*PMunch joined #nim
16:20:48*Jesin joined #nim
16:21:40FromGitter<mratsim> It puts 6 lines of warning during CI or on import when dir structure is unexpected
16:23:48yglukhovAraq: dom96: hey, pls see the end of my comment https://github.com/nim-lang/Nim/issues/6700 which is kinda derived from first 2 sections. What do you think? =)
16:23:54*Ven joined #nim
16:24:18*Ven is now known as Guest53864
16:25:55dom96Araq: That's an SSL error, it's not Nimble's fault :(
16:26:06AraqI know!
16:26:29Araqit's hard to get these things right, so workaround always need to be possible
16:27:19dom96Araq: can you run with --verbose?
16:27:25dom96`nimble refresh --verbose`
16:27:30dom96I'm curious what it's trying to request
16:28:48FromGitter<Araq> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a008dc0f7299e8f537bbf47]
16:29:59dom96rm ~/.config/nimble/nimble.ini
16:30:05*sz0 quit (Quit: Connection closed for inactivity)
16:31:23dom96Come on, you've got to admit
16:31:30dom96Nimble's messages are wonderful
16:32:22dom96Firstly, the "tip" suggested --verbose
16:32:39dom96and then --verbose tells you that the config file is being read
16:32:54dom96as well as the URLs that are being requested (which is obviously wrong)
16:33:01FromGitter<krux02> does nim have an isNan function?
16:33:16FromGitter<Yardanico> @krux02 well, kinda
16:33:42FromGitter<Yardanico> @krux02 use classify from math
16:33:43FromGitter<Yardanico> https://nim-lang.org/docs/math.html
16:33:55FromGitter<Yardanico> and check if it's fcNan
16:33:59dom96pretty sure you can just do: x == NaN
16:34:05FromGitter<krux02> well there is isNan in dom
16:34:11FromGitter<krux02> that is weird
16:34:17dom96!eval echo(1.0 == NaN)
16:34:19NimBotfalse
16:34:19FromGitter<krux02> dom06: no you can't
16:34:34dom96!eval echo(NaN == NaN)
16:34:36NimBotfalse
16:34:39FromGitter<Yardanico> dom96: you can't
16:34:41FromGitter<Yardanico> :D
16:34:55dom96wut
16:34:58FromGitter<krux02> well you can still do the old trick x != x
16:34:59dom96why?
16:35:01FromGitter<Yardanico> !eval import math; classify(NaN)
16:35:03NimBotCompile failed: in.nim(1, 22) Error: expression 'classify(NaN)' is of type 'FloatClass' and has to be discarded
16:35:09FromGitter<Yardanico> !eval import math; echo classify(NaN)
16:35:11NimBotfcNan
16:35:12FromGitter<krux02> nan is always not equal to anything
16:35:22FromGitter<krux02> so it is also not equal to nan
16:35:26FromGitter<Yardanico> !eval import math; classify(1 ^ 0)
16:35:27NimBotCompile failed: in.nim(1, 22) Error: type mismatch: got (int)
16:35:30FromGitter<Yardanico> !eval import math; classify(1/0)
16:35:31NimBotCompile failed: in.nim(1, 22) Error: expression 'classify(1 / 0)' is of type 'FloatClass' and has to be discarded
16:35:36dom96Why?
16:35:37FromGitter<Yardanico> !eval import math; echo classify(1/0)
16:35:39NimBotfcInf
16:35:40FromGitter<krux02> so therefor when x != x is true then it is nan
16:35:54FromGitter<krux02> but that is ugly and normally there is some sort of isnan
16:36:02FromGitter<Yardanico> !echo 1.05 == 1.05; echo NaN == NaN
16:36:08FromGitter<krux02> 1/0 should be inf
16:36:13FromGitter<Yardanico> !eval echo 1.05 == 1.05; echo NaN == NaN
16:36:16NimBottrue↵false
16:36:18FromGitter<krux02> !eval 1.0/0.0
16:36:19NimBotCompile failed: in.nim(1, 4) Error: expression 'inf' is of type 'float' and has to be discarded
16:36:27FromGitter<Yardanico> expression "inf"
16:36:34FromGitter<Yardanico> so nim already knows that this is an inifity :)
16:36:42FromGitter<krux02> !eval echo 1.0/0.0
16:36:44NimBotinf
16:37:01FromGitter<krux02> !eval echo 0.0/0.0
16:37:04NimBotnan
16:37:11dom96!eval var x: array[1.0/0.0, float]
16:37:13NimBotCompile failed: in.nim(1, 17) Error: ordinal type expected
16:37:18dom96aww
16:37:32FromGitter<Yardanico> !echo inf
16:37:37FromGitter<Yardanico> !eval echo inf
16:37:38NimBotCompile failed: in.nim(1, 6) Error: undeclared identifier: 'inf'
16:37:40FromGitter<krux02> !eval let x = 0.0/0.0; echo x == x
16:37:42NimBotfalse
16:39:59*yglukhov quit (Remote host closed the connection)
16:41:28FromGitter<krux02> well thanks classify works
16:45:46*yglukhov joined #nim
16:48:02*yglukhov quit (Read error: Connection reset by peer)
16:48:10*yglukhov joined #nim
16:48:20*vlad1777d joined #nim
16:52:08*yglukhov quit (Ping timeout: 240 seconds)
16:53:20*Trustable joined #nim
16:55:39*chemist69 quit (Ping timeout: 258 seconds)
16:56:02*chemist69 joined #nim
17:03:57*claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com)
17:10:06Araq!eval import strutils; echo formatFloat(4.5)
17:10:09NimBot4.500000000000000
17:13:28*nsf joined #nim
17:13:46elroodhow does the bot handle eval import os; removeDir("/") ? ;)
17:14:14federico3it does not
17:14:35FromGitter<krux02> !eval removeDir("/")
17:14:37NimBotCompile failed: in.nim(1, 1) Error: undeclared identifier: 'removeDir'
17:15:00federico3it's running in a container, isn't it?
17:15:01FromGitter<krux02> !eval import os; removeDir("/")
17:15:05NimBot<no output>
17:15:41dom96yep
17:31:14*yglukhov joined #nim
17:34:44enthus1ast-can i get the value of FOO with 'nim c --define:FOO:baa t.nim' in code somehow?
17:35:56*yglukhov quit (Ping timeout: 268 seconds)
17:37:15elroodenthus1ast-, yes, you can, and it's even in the manual. see compile time define pragma
17:38:44enthus1ast-i was searching nearly half an hour ....
17:38:57enthus1ast-ty i'll try that :)
17:43:58elroodnp. was an almost instant nim:define search for me thanks to zeal, and devdocs probably has the same functionality
17:44:58FromGitter<Yardanico> yes
17:45:07FromGitter<Yardanico> http://devdocs.io/nim/system#defined,untyped
17:45:18FromGitter<Yardanico> you just search "define"
17:45:43FromGitter<Yardanico> also devdocs can be saved (to browser cache) to work offline
17:49:04*floppydh quit (Quit: WeeChat 1.9.1)
17:51:53*claudiuinberlin joined #nim
17:52:39*Arrrr quit (Ping timeout: 246 seconds)
17:55:57*Arrrr joined #nim
17:55:57*Arrrr quit (Changing host)
17:55:57*Arrrr joined #nim
17:55:59*yglukhov joined #nim
17:59:49*Ven joined #nim
17:59:59*Guest53864 quit (Ping timeout: 268 seconds)
18:00:13*Ven is now known as Guest72122
18:00:36*yglukhov quit (Ping timeout: 268 seconds)
18:04:12shashlickI tried devdocs for a while but really miss the links to the source code
18:04:38shashlickright now, my start page is theindex.html and CTRL-F
18:09:27*nsf quit (Quit: WeeChat 1.9.1)
18:10:09*TjYoco joined #nim
18:17:26enthus1ast-ah zeal nearly forgot about this, which docset do you use elrood?
18:20:57*TjYoco quit (Ping timeout: 268 seconds)
18:21:07elroodenthus1ast-, my own. https://www.dropbox.com/sh/7jdv2e8zdr03dfz/AADlSvHZ5IRehieM--J1c4Dxa?dl=0
18:22:57elroodin theory it should be somewhere in the wiki, but it's probably quite well hidden in there
18:24:06*TjYoco joined #nim
18:44:06shashlickelrood: Zeal looks interesting, does it have the links to source code retained?
18:44:55*TjYoco quit (Remote host closed the connection)
18:45:21*TjYoco joined #nim
18:49:50*couven92 joined #nim
18:51:48*rauss quit (Read error: Connection reset by peer)
18:53:51*rauss joined #nim
18:55:16elroodshashlick, yes, the docset basically contains nim's documentation as is
18:56:30shashlickIs it the latest? How did you generate it?
18:59:11*yglukhov joined #nim
18:59:49*nsf joined #nim
19:00:32*yglukhov quit (Read error: Connection reset by peer)
19:01:06*yglukhov joined #nim
19:05:52elroodshashlick, up to date as of oct 27. homegrown tool. nim's generated docs with some transformations and an index, nothing special
19:06:47shashlickelrood: nice, will be cool to get it onto Zeal, Dash and other places officially if possible
19:08:57*TjYoco quit (Ping timeout: 240 seconds)
19:11:05elroodperhaps, however it's just for personal use, not sure how regularly or for how long it's going to be updated
19:19:57shashlickis the code online?
19:22:08shashlickthis is working very nicely with Zeal
19:28:20elroodno intentions to publish the code or to undertake responsibility or support for the docset on a long-term basis, to be frank
19:29:09elroodfeel free to use it, and if it works for you and you like it, great
19:30:44*TjYoco joined #nim
19:38:52*vivus joined #nim
19:49:22*jhorwitz joined #nim
19:49:29jhorwitzHey everyone
19:49:54Araqwelcome jhorwitz
19:50:36jhorwitzThanks! Just making it through Nim in Action currently, excited to contribute soon
19:55:54dom96o/
20:02:59*TjYoco quit (Quit: Leaving)
20:06:17*nsf quit (Quit: WeeChat 1.9.1)
20:08:42*cspar quit (Ping timeout: 260 seconds)
20:10:11*mindB quit (Ping timeout: 240 seconds)
20:10:12*watzon quit (Ping timeout: 240 seconds)
20:10:12*ehmry quit (Ping timeout: 240 seconds)
20:12:47*mwbrown quit (Ping timeout: 260 seconds)
20:14:46*planetis[m] quit (Ping timeout: 246 seconds)
20:15:06*Demos[m] quit (Ping timeout: 250 seconds)
20:15:07*unclechu quit (Ping timeout: 246 seconds)
20:15:11*TheManiac quit (Ping timeout: 252 seconds)
20:15:11*byteflame quit (Ping timeout: 252 seconds)
20:15:11*hohlerde quit (Ping timeout: 252 seconds)
20:15:15*dyce[m] quit (Ping timeout: 248 seconds)
20:15:16*jivank[m] quit (Ping timeout: 248 seconds)
20:15:16*Jipok[m] quit (Ping timeout: 248 seconds)
20:15:17*notdekka[m] quit (Ping timeout: 276 seconds)
20:15:19*mwbrown joined #nim
20:15:28*MrAxilus[m] quit (Ping timeout: 240 seconds)
20:15:47*shashlick quit (Ping timeout: 248 seconds)
20:18:27FromGitter<mratsim> @jhorwitz Did you know Nim before reading Nim in Action?
20:18:27*Guest72122 quit (Ping timeout: 240 seconds)
20:20:36*Ven joined #nim
20:21:00*Ven is now known as Guest66292
20:23:59*SenasOzys_ joined #nim
20:24:35*SenasOzys quit (Read error: Connection reset by peer)
20:33:49*claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com)
20:35:33*nhywyll joined #nim
20:36:50*cspar joined #nim
20:41:02*SenasOzys_ quit (Ping timeout: 252 seconds)
20:47:33*Trustable quit (Remote host closed the connection)
20:55:10*smt_ joined #nim
20:55:24*smt_ quit (Remote host closed the connection)
20:58:38*smt` quit (Ping timeout: 252 seconds)
21:06:55*nsf joined #nim
21:11:01*Vladar quit (Remote host closed the connection)
21:27:43*Guest66292 quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:30:24*jhorwitz_ joined #nim
21:32:46*jhorwitz quit (Ping timeout: 264 seconds)
21:34:49*jhorwitz_ quit (Ping timeout: 250 seconds)
21:37:18*vlad1777d quit (Remote host closed the connection)
21:42:38*xet7 quit (Ping timeout: 252 seconds)
21:46:24*xet7 joined #nim
21:57:59*Jipok[m] joined #nim
21:58:00*SenasOzys_ joined #nim
22:00:46*Jesin quit (Quit: Leaving)
22:08:01*mindB joined #nim
22:08:01*Demos[m] joined #nim
22:08:01*unclechu joined #nim
22:08:01*dyce[m] joined #nim
22:08:02*ehmry joined #nim
22:08:02*watzon joined #nim
22:08:07*jivank[m] joined #nim
22:08:07*TheManiac joined #nim
22:08:08*MrAxilus[m] joined #nim
22:08:08*hohlerde joined #nim
22:08:08*notdekka[m] joined #nim
22:08:08*byteflame joined #nim
22:08:08*planetis[m] joined #nim
22:08:08*shashlick joined #nim
22:16:43*PMunch quit (Quit: leaving)
22:20:02*nhywyll quit (Quit: nhywyll)
22:20:48*vivus quit (Quit: Leaving)
22:24:25*zolk3ri joined #nim
22:27:19*couven92 quit (Quit: Client Disconnecting)
22:30:49*elrood quit (Quit: Leaving)
22:35:21*nsf quit (Quit: WeeChat 1.9.1)
22:43:58GitDisc<treeform> I have spent half a day on this, I think nim sockets are leaking some how. I don't know what to do. https://gist.github.com/treeform/c2bb86e8ef05838d3e73aaaac964ee37
22:44:14GitDisc<treeform> Can any one spot an error in my server or client?
22:44:42GitDisc<treeform> its very simple code
22:44:44*jhorwitz joined #nim
22:45:53*gokr quit (Ping timeout: 252 seconds)
22:48:57*jhorwitz quit (Ping timeout: 240 seconds)
22:54:03*marenz_ joined #nim
22:55:19*jhorwitz joined #nim
22:58:59*sleepyqt quit (Read error: Connection reset by peer)
23:00:02*jivank[m] quit (Remote host closed the connection)
23:00:02*planetis[m] quit (Remote host closed the connection)
23:00:02*Demos[m] quit (Remote host closed the connection)
23:00:03*TheManiac quit (Remote host closed the connection)
23:00:03*MrAxilus[m] quit (Remote host closed the connection)
23:00:03*shashlick quit (Remote host closed the connection)
23:00:03*ehmry quit (Remote host closed the connection)
23:00:03*dyce[m] quit (Read error: Connection reset by peer)
23:00:04*Jipok[m] quit (Read error: Connection reset by peer)
23:00:05*mindB quit (Remote host closed the connection)
23:00:05*notdekka[m] quit (Remote host closed the connection)
23:00:06*watzon quit (Read error: Connection reset by peer)
23:00:07*unclechu quit (Read error: Connection reset by peer)
23:00:07*byteflame quit (Remote host closed the connection)
23:00:07*hohlerde quit (Remote host closed the connection)
23:02:09*jhorwitz quit (Ping timeout: 268 seconds)
23:06:32Araqtreeform, post it on the forum please
23:09:49dom96treeform: newSocket and accept both create FDs
23:09:58dom96is my best guess
23:10:14dom96in fact, I'm 99% sure this is the problem
23:10:43dom96You should initialise client with 'new'
23:10:45dom96not 'newSocket'
23:11:52*yglukhov quit (Remote host closed the connection)
23:12:06*Jipok[m] joined #nim
23:17:22*def-pri-pub joined #nim
23:17:49*jhorwitz joined #nim
23:21:20*xkapastel joined #nim
23:21:39*MrAxilus[m] joined #nim
23:21:39*unclechu joined #nim
23:21:39*dyce[m] joined #nim
23:21:39*ehmry joined #nim
23:21:40*watzon joined #nim
23:21:40*Demos[m] joined #nim
23:21:46*jivank[m] joined #nim
23:21:46*notdekka[m] joined #nim
23:21:46*shashlick joined #nim
23:21:47*hohlerde joined #nim
23:21:47*TheManiac joined #nim
23:21:47*byteflame joined #nim
23:21:47*planetis[m] joined #nim
23:21:48*mindB joined #nim
23:22:09dom96Matrix sure seems flaky
23:23:44*jhorwitz quit (Ping timeout: 268 seconds)
23:23:53zolk3riYeah, but it makes you cool.
23:29:07FromGitter<mratsim> What will be the lifetime of tmp in this code? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a00f043df09362e67d7334e]
23:30:17FromGitter<mratsim> It will be called in another proc then the pointer is sent to an external C library.
23:32:38*Arrrr quit (Read error: Connection reset by peer)
23:35:56*shashlick quit (Remote host closed the connection)
23:35:57*jivank[m] quit (Remote host closed the connection)
23:35:57*unclechu quit (Write error: Connection reset by peer)
23:35:58*watzon quit (Remote host closed the connection)
23:35:58*notdekka[m] quit (Remote host closed the connection)
23:35:58*MrAxilus[m] quit (Remote host closed the connection)
23:35:58*Jipok[m] quit (Remote host closed the connection)
23:35:59*byteflame quit (Remote host closed the connection)
23:35:59*planetis[m] quit (Read error: Connection reset by peer)
23:35:59*dyce[m] quit (Read error: Connection reset by peer)
23:35:59*ehmry quit (Remote host closed the connection)
23:35:59*Demos[m] quit (Read error: Connection reset by peer)
23:35:59*hohlerde quit (Remote host closed the connection)
23:35:59*mindB quit (Remote host closed the connection)
23:35:59*TheManiac quit (Read error: Connection reset by peer)
23:36:11zolk3ri...
23:36:18zolk3riDear God.
23:37:34*SenasOzys_ quit (Ping timeout: 264 seconds)
23:41:26*jhorwitz joined #nim
23:42:20*yglukhov joined #nim
23:42:28*Jipok[m] joined #nim
23:43:33*Jipok[m] quit (Remote host closed the connection)
23:43:47*smt joined #nim
23:46:28*yglukhov quit (Ping timeout: 240 seconds)
23:53:13jhorwitzReally enjoyed the chat app written in the book
23:53:25jhorwitzAre there any companies using Nim in production?
23:53:53*Jipok[m] joined #nim
23:54:31FromGitter<mratsim> There are: https://yglukhov.github.io/Making-ReelValley-Overview/
23:54:47FromGitter<mratsim> https://github.com/nim-lang/Nim/wiki/Companies-using-Nim
23:55:04jhorwitzThanks! I've worked in a lot of languages, but for some reason Nim just clicked with me