00:00:10 | dom96 | yep |
00:03:53 | GitDisc | <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:03 | GitDisc | <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:23 | GitDisc | <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:09 | FromGitter | <zacharycarter> ugh more slack channels :/ |
00:32:32 | FromGitter | <zacharycarter> please don't make slack mandatory / the only option |
00:32:52 | GitDisc | <GooRoo> @dom96 |
00:32:53 | GitDisc | <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:54 | GitDisc | <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:55 | GitDisc | <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:56 | GitDisc | <GooRoo> - all messages from gitter and irc are shown as being sent by one bot |
00:32:58 | GitDisc | <GooRoo> - some messages synced from gitter or irc look like corrupted |
00:32:59 | GitDisc | <GooRoo> - etc. |
00:33:00 | GitDisc | <GooRoo> |
00:33:02 | GitDisc | <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:02 | FromGitter | <zacharycarter> whoa |
00:33:03 | GitDisc | <GooRoo> |
00:33:04 | GitDisc | <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:19 | FromGitter | <zacharycarter> I don't disagree that one place to chat would be advantageous but it's also unrealistic |
00:34:44 | GitDisc | <GooRoo> it's quite realistic |
00:35:43 | FromGitter | <zacharycarter> I don't think all these bridges are a great idea |
00:35:50 | FromGitter | <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:30 | FromGitter | <zacharycarter> give folks a thin and thick client option |
00:37:04 | FromGitter | <zacharycarter> and I think that was already accomplished |
00:38:24 | GitDisc | <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:37 | FromGitter | <zacharycarter> that's fine and your opinion you could find and use an IRC client |
00:39:13 | FromGitter | <zacharycarter> the community has existed for close to 10 years with IRC and gitter more recently |
00:41:55 | FromGitter | <zacharycarter> I know I'd be turned off if I had to use slack to talk to folks about Nim |
00:41:57 | GitDisc | <GooRoo> I understand and respect this. But adding a bridge to Gitter was a mistake IMHO. |
00:44:27 | FromGitter | <zacharycarter> I understand why the gitter bridge is problematic - but it's historically proven to be not THAT problematic |
00:44:41 | FromGitter | <zacharycarter> which IMO is why the IRC / gitter mechanism we currently have is worth sticking with |
00:44:41 | GitDisc | <GooRoo> @zacharycarter As I mentioned before, with Slack you're still able to use IRC. The only difference is server |
00:44:55 | FromGitter | <zacharycarter> and then I'd have to start using IRC :/ |
00:45:50 | GitDisc | <GooRoo> so you are using gitter now? |
00:45:51 | FromGitter | <zacharycarter> I don't see why we need to introduce slack |
00:45:58 | FromGitter | <zacharycarter> or discord |
00:46:08 | FromGitter | <zacharycarter> or anything beyond what we already had going |
00:46:44 | FromGitter | <zacharycarter> yes I'm on gitter currently |
00:51:04 | GitDisc | <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:34 | GitDisc | <GooRoo> and I don't say we have to introduce Slack |
00:52:56 | FromGitter | <zacharycarter> the whole <GitDisc> thing I don't think existed until another bridge was introduced |
00:53:26 | GitDisc | <GooRoo> it was there before Discord definitely |
00:53:54 | FromGitter | <zacharycarter> I'm pretty sure that's what it's for |
00:53:57 | FromGitter | <zacharycarter> is the discord bridge |
00:54:14 | FromGitter | <zacharycarter> and I'm almost certain it wasn't |
00:54:26 | FromGitter | <zacharycarter> at least I didn't see it in gitter |
00:55:07 | enthus1ast- | maybe bundle the bridges in one "bridge" bot |
00:56:11 | GitDisc | <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:16 | GitDisc | <GooRoo> the same shit |
00:56:35 | GitDisc | <GooRoo> all messages from IRC are just reposted in Gitter by bot |
00:57:36 | FromGitter | <zacharycarter> sorry, I wasn't trying to say it was any different, just that it was new |
00:57:51 | FromGitter | <zacharycarter> before it was just the IRC | GItter communication |
00:58:22 | enthus1ast- | which already breaks auto name completion btw |
00:58:36 | FromGitter | <zacharycarter> I maintain my stance though that things were fine before with the integration we had |
00:59:11 | FromGitter | <zacharycarter> I generally see most of the more active #nim users having gitter accounts or IRC accounts and some use both |
00:59:37 | FromGitter | <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:46 | GitDisc | <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:10 | FromGitter | <zacharycarter> it wasn't a mess until recently |
01:00:17 | FromGitter | <zacharycarter> it was working fine up until a few weeks ago |
01:00:59 | GitDisc | <GooRoo> dude, it was the same. No difference if the bot was called "From IRC" or "GitDisc" |
01:02:03 | FromGitter | <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:42 | GitDisc | <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:59 | GitDisc | <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:03 | FromGitter | <zacharycarter> it's been this way since the bridge existed |
01:05:32 | FromGitter | <zacharycarter> right and we shouldn't just jump to some other chat service because the community is growing and someone wants it |
01:05:45 | FromGitter | <zacharycarter> we should take a step back and figure out what is best for the community |
01:06:40 | FromGitter | <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:33 | GitDisc | <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:40 | FromGitter | <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:22 | FromGitter | <zacharycarter> and I think it's a good topic to bring up to the community |
01:09:41 | FromGitter | <zacharycarter> but I think it needs broader discussion |
01:09:42 | GitDisc | <GooRoo> from what I can see, it seemed for me that everyone uses IRC mostly |
01:10:04 | FromGitter | <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:09 | FromGitter | <zacharycarter> I avoid slack - I already have to use it for work. The less I'm on the app the better IMO |
01:12:42 | FromGitter | <zacharycarter> discord I'm totally impartial to and have very little experience using |
01:13:17 | GitDisc | <GooRoo> Discord's target audience is gamers |
01:13:43 | FromGitter | <zacharycarter> yeah from my understanding it's a new vent / teamspeak etc |
01:13:53 | GitDisc | <GooRoo> exactly |
01:14:00 | GitDisc | <GooRoo> and it has an impact on the features they are working on and releasing |
01:14:03 | FromGitter | <zacharycarter> I do think a Nim gaming community would be beneficial to the language |
01:14:26 | FromGitter | <zacharycarter> well a Nim gamedev community anyway |
01:14:39 | FromGitter | <zacharycarter> there are quite a few folks working on gamdev related projects with Nim |
01:15:24 | * | enthus1ast- joined #nim |
01:15:37 | GitDisc | <GooRoo> come on, Nim's compiler crashes every 3rd run Does anyone really use Nim for gamedev except enthusiasts? |
01:16:14 | FromGitter | <zacharycarter> haha wait what? |
01:18:37 | FromGitter | <zacharycarter> elaborate ass troll |
01:19:00 | GitDisc | <GooRoo> nothing personal I believe Nim will become a great language. But currently it has some doubtful things |
01:19:15 | FromGitter | <zacharycarter> it's compiler definitely doesn't crash on every 3rd run |
01:19:47 | GitDisc | <GooRoo> Probably I'm just not lucky enough |
01:20:42 | FromGitter | <zacharycarter> well the language certainly isn't perfect, no programming language is, it's also very niche, but it's certainly capable |
01:20:50 | FromGitter | <zacharycarter> I don't think luck has much to do with it |
01:21:13 | GitDisc | <GooRoo> I've exaggerated a little bit |
01:22:52 | FromGitter | <zacharycarter> https://www.facebook.com/reelvalley/ |
01:22:54 | FromGitter | <zacharycarter> that was made with Nim |
01:24:58 | enthus1ast- | oh wow |
01:25:08 | GitDisc | <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:49 | GitDisc | <GooRoo> Okay, back to previous topic: not sure if there will be a discussion, but want to summarize my thoughts: |
01:40:49 | GitDisc | <GooRoo> |
01:40:51 | GitDisc | <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:52 | GitDisc | <GooRoo> |
01:40:53 | GitDisc | <GooRoo> And now my humble and subjective addition. Personally, I prefer Slack because: |
01:40:55 | GitDisc | <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:56 | GitDisc | <GooRoo> - some other communities also use Slack. For example, C++ and JetBrains MPS |
01:40:57 | GitDisc | <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:59 | GitDisc | <GooRoo> - it has an application that works equally good on all platforms including mobile ones |
01:41:00 | GitDisc | <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:01 | GitDisc | <GooRoo> Why I don't like Slack: |
01:41:02 | GitDisc | <GooRoo> - on a "free" account they show you only last 10k of messages in history log |
01:43:00 | GitDisc | <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:58 | GitDisc | <GooRoo> shiii~~ TIL: GitDisc bridge syncronizes messages line by line... In gitter it looks even worse than I assumed |
01:53:19 | GitDisc | <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:25 | FromGitter | <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:22 | shashlick | just caught up with that discussion |
02:32:12 | shashlick | I 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:08 | FromGitter | <Varriount> Anyone know what these new "liftLocal" and "partial" pragmas are? |
03:36:41 | FromGitter | <data-man> @Varriount: https://github.com/nim-lang/Nim/blob/devel/tests/fields/timplicitfieldswithpartial.nim |
03:37:57 | FromGitter | <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:05 | FromGitter | <data-man> @Varriount: wait when Araq wakes up :) |
03:41:39 | * | dddddd quit (Remote host closed the connection) |
03:42:59 | FromGitter | <Varriount> Looks like partial might be for some dynamic type generation. Huh |
03:43:41 | FromGitter | <Varriount> Like, the compiler will define the body of the type based |
03:43:55 | FromGitter | <Varriount> On what fields are used in code |
03:44:04 | FromGitter | <Varriount> Might be useful for macros. |
03:46:14 | FromGitter | <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:56 | livcd | are 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:34 | Araq | varriount: they are undocumented experiments for moving the implementation of .closure iterators and closures into macros |
08:07:11 | FromGitter | <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:49 | FromGitter | <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:38 | FromGitter | <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:11 | FromGitter | <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:32 | FromGitter | <mratsim> And taking my libman hat, I don’t think an opensource community should go on a closed source channel. |
08:25:47 | FromGitter | <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:55 | GitDisc | <GooRoo> @mratsim not sure what you are talking about: I'm an admin of three Slack teams and have no “painful” reminders |
08:45:11 | FromGitter | <mratsim> every time a post an image, I get a reminder in my slack teams that I ran out of space |
08:45:45 | GitDisc | <GooRoo> This is weird. |
08:45:47 | FromGitter | <mratsim> same thing when I search for anything |
08:49:20 | GitDisc | <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:20 | GitDisc | <GooRoo> There are cases when “open source” really matters. This is not the one. |
08:50:09 | Arrrr | https://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:53 | avsej | is 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:56 | FromGitter | <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:53 | GitDisc | <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:46 | GitDisc | <GooRoo> For example, I can't edit my messages. Or rather I can, but you won't see any changes. |
09:20:54 | PMunch | avsej, it appears that is was blocked because of your browsers signature |
09:21:46 | PMunch | Try to set a proper User-Agent |
09:21:49 | avsej | as I said I don't use browser |
09:21:54 | avsej | what is proper? |
09:22:19 | avsej | urllib used by RPM development tools, and I cannot override it |
09:22:48 | PMunch | You can't override the User-Agent? |
09:22:58 | avsej | I'm curious why the site should block release downloads and limit requests for the tarball, is nim become upstream already? :) |
09:23:13 | GitDisc | <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:55 | PMunch | GooRoo, 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:56 | avsej | I 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:25 | avsej | is IRC broken or something? why migrate from here? |
09:24:47 | PMunch | It's not broken per se. It's just some people like new shiny things |
09:25:45 | FromGitter | <Yardanico> Well I agree that IRC misses some useful features |
09:25:52 | FromGitter | <Yardanico> E.g. messages editing |
09:26:04 | PMunch | Why would you want messages editing? |
09:26:13 | FromGitter | <Yardanico> To edit messages? |
09:26:22 | avsej | looks like censorship |
09:26:29 | FromGitter | <Yardanico> No more "*correction" messages |
09:26:35 | avsej | you cannot edit what you said |
09:26:42 | PMunch | Well of course, but what's wrong with just *corrections? |
09:27:32 | PMunch | IMHO they make the conversation better. I'm not going to re-read your message if you edit it |
09:28:33 | PMunch | So throwing in a *correction is better for the general flow |
09:30:15 | FromGitter | <Yardanico> Well what about built-in logs? IRC doesn't have them, and or |
09:30:25 | FromGitter | <Yardanico> Our irc logs |
09:30:37 | FromGitter | <Yardanico> Website doesn't support search |
09:30:52 | euantor | WIth 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:17 | euantor | So I __really__ hope IRC doesn't die |
09:31:46 | FromGitter | <alehander42> well slack builtin logs are very limited for free groups, 10k is nothing for a chat like the nim's one |
09:32:32 | FromGitter | <Yardanico> Well I didn't say that we need to move to slack |
09:33:20 | FromGitter | <alehander42> slack is not bad, I just think that those kind of changes need to bring big improvements to justify them |
09:35:58 | euantor | We already have th Gitter chat which was meant to solve all of the supposed problems anyway - is that now not the case? |
09:37:22 | FromGitter | <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:45 | FromGitter | <Yardanico> e.g. if someone edits a message on gitter - it wouldn't be sent to IRC again |
09:38:42 | FromGitter | <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:17 | FromGitter | <mratsim> Gitter has no search as well but with IRC logs I can google-fu anyway |
09:48:29 | * | shashlick joined #nim |
09:48:29 | shashlick | can 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:25 | FromGitter | <mratsim> You would have to recode curl/whether/unzip in Nim |
09:49:32 | FromGitter | <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:09 | GitDisc | <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:14 | GitDisc | <GooRoo> Moreover, when I mentioned Slack above, I also mentioned its integrated IRC support |
10:03:29 | GitDisc | <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:11 | Arrrr | IRC is the C of communitacion protocols. |
10:06:28 | FromGitter | <mratsim> Isn't it Usenet? |
10:06:32 | FromGitter | <mratsim> :P |
10:06:48 | GitDisc | <GooRoo> Right. And no one uses plain C nowadays |
10:06:59 | GitDisc | <GooRoo> Unless it's really needed |
10:07:28 | FromGitter | <mratsim> In my area "no one" is everyone ... Because the next best thing is Fortran or Python |
10:08:02 | GitDisc | <GooRoo> Or Nim :) |
10:08:44 | Arrrr | gitdisc |
10:08:52 | Arrrr | what is that |
10:08:54 | FromGitter | <mratsim> C is the lowest common denominator for fast file processing, graphics, mobile device support, etc |
10:09:15 | Arrrr | fromgitter |
10:09:16 | FromGitter | <mratsim> It's the Discord bridge, brought 2 weeks ago for Araq stream |
10:09:20 | Arrrr | FromGitter |
10:09:54 | FromGitter | <Yardanico> @mratsim nah |
10:09:58 | FromGitter | <Yardanico> not for araq stream :) |
10:10:05 | * | yglukhov quit (Ping timeout: 268 seconds) |
10:10:31 | FromGitter | <Yardanico> in fact I can also enable IRC - Gitter bridge with it |
10:10:32 | Arrrr | FromGitter used to tell you that it is a bot |
10:10:50 | FromGitter | <Yardanico> so it would support Gitter-Discord without issues |
10:15:12 | * | yglukhov joined #nim |
10:21:18 | GitDisc | <GooRoo> @mratsim What is your area by the way? |
10:22:12 | FromGitter | <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:36 | FromGitter | <mratsim> Data Science and machine learning |
10:23:10 | * | SenasOzys quit (Ping timeout: 264 seconds) |
10:23:42 | FromGitter | <mratsim> Most libraries are built upon C (for Python), C++ (for R and Python) or Fortran (for Julia) |
10:24:14 | FromGitter | <mratsim> Mmh actually there are a lot of Fortran <-> Python bindings as well |
10:25:25 | GitDisc | <GooRoo> I see. And what about Haskell? |
10:26:14 | FromGitter | <mratsim> You can't control memory layout of your arrays/multidimensional arrays so it's too slow |
10:27:32 | FromGitter | <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:31 | GitDisc | <GooRoo> Right. And Nim should be a good fit for this, shouldn't it? |
10:31:25 | FromGitter | <mratsim> Here is a link where I discuss Haskell in data science. https://www.reddit.com/r/rust/comments/76olo3/comment/dojrtq2 |
10:32:44 | FromGitter | <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:19 | FromGitter | <mratsim> The main issues are libraries to build and data visualization. |
10:33:49 | FromGitter | <mratsim> Oh and a REPL |
10:34:11 | Araq | ouch :-) |
10:34:34 | FromGitter | <mratsim> Also a very good thing for Nim is the compilation time. Building a C++ lib is so slow |
10:42:05 | GitDisc | <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:45 | Araq | sounds quite reasonable but maybe he could have gone from Wolfram to CUDA directly :-) |
10:44:11 | PMunch | GooRoo, haha I was just dropping by and didn't read the previous conversations. Didn't mean to make you repeat something :P |
10:46:08 | GitDisc | <GooRoo> Maybe he could :) but he did some additional optimizations on each step. So, who knows |
10:46:56 | FromGitter | <mratsim> Apparently there is money and interest to solve this (Julia raised $8M in June with this pitch from investors). |
10:47:22 | FromGitter | <alehander42> btw it would be cool to have a jupyter kernel for nim talking about repl-s |
10:47:52 | FromGitter | <mratsim> Oh 4.6M sorry not 8 |
10:48:01 | PMunch | There were some attemps at a REPL for Nim at some point |
10:48:19 | * | Ven joined #nim |
10:48:29 | PMunch | Basically using a hidden text file and TinyCC to append a line and recompile with each step |
10:48:39 | FromGitter | <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:04 | PMunch | Problem 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:15 | PMunch | But it should be possible to do a workaround of that |
10:50:13 | FromGitter | <mratsim> Wasn't there an issue with "import" ? |
10:50:22 | FromGitter | <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:53 | PMunch | Yeah, there are definitely ways to work around it |
10:52:11 | PMunch | mratsim, was there? I can't remember anything like that |
10:52:28 | oprypin | IMHO it's better to just have an easy way to write a program and iterate on running it with changes |
10:52:29 | dom96 | The fact that edits are not sent to IRC from Gitter isn't an IRC problem |
10:53:29 | FromGitter | <alehander42> was https://github.com/wheineman/nrpl the tcc based repl ? |
10:53:34 | FromGitter | <mratsim> A lot of people are addicted to jupyter/repl + it's nicer on live demos ;) |
10:53:45 | oprypin | it'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:09 | oprypin | Crystal 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:20 | PMunch | I 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:23 | dom96 | @GooRoo your main problem with bridges is that edits are not sent? |
10:54:28 | oprypin | and then there's the "REPL" with aforementioned hacks https://github.com/crystal-community/icr |
10:55:11 | oprypin | https://github.com/crystal-community/icr/commit/960fe907e6f14821561d4ed275800a8122d9000d#diff-3cbb46ce8a052efc2f1c5d9e6d6cb7baR19 |
10:55:18 | FromGitter | <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:55 | FromGitter | <alehander42> I know you can do this with quickly editing a file and rerunning it, but a repl is way more ergonomic |
10:56:02 | oprypin | "the playground" solves that problem without making a messy commandline REPL |
10:56:04 | PMunch | alehander42, this is the one I used I think: https://github.com/jlp765/tnim |
10:56:32 | PMunch | oprypin, hmm maybe an offline version of the playground could be cool |
10:56:40 | oprypin | well it is offline |
10:56:55 | PMunch | Isn't it compiling somewhere else? |
10:56:57 | oprypin | local web server. also, in fact, nobody hosts it online cuz that's a bit crazy :p |
10:57:38 | Araq | so give Nim a REPL, it's "easy" now that I thought about it again... |
10:58:27 | Araq | we need to patch the allocator so that its mmap() memory is shared and backed up by a temporary file |
10:58:30 | dom96 | Araq: back to this: https://irclogs.nim-lang.org/05-11-2017.html#23:11:24 |
10:58:35 | oprypin | the interpreter is limited, and surely you're not suggesting a REPL using the compiler? |
10:59:07 | Araq | and then all that is required is to patch the codegen so that global variables go through an indirection |
10:59:26 | Araq | I can guide you but won't do it myself |
10:59:29 | PMunch | Ooh, that's another way to do it |
10:59:43 | FromGitter | <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:47 | PMunch | Well, that's the proper way to do it :P |
11:00:02 | Araq | mratsim: I changed my mind. happens often :P |
11:01:35 | Araq | dom96: I don't understand your remark, but bbs |
11:02:27 | dom96 | $pkg/foo will search for `pkg` in `..` (won't find it, because 'src' is there), then `../..` (nope, that's already too far) |
11:02:43 | FromGitter | <alehander42> if nobody else is interested, I can try that approach for a repl in the weekend |
11:02:49 | dom96 | bbl |
11:03:04 | FromGitter | <alehander42> (the Araq idea) |
11:03:32 | oprypin | but then you still have https://github.com/crystal-community/icr/commit/960fe907e6f14821561d4ed275800a8122d9000d#diff-3cbb46ce8a052efc2f1c5d9e6d6cb7baR19 |
11:04:41 | PMunch | alehander42, that would be really cool! |
11:10:51 | * | claudiuinberlin joined #nim |
11:12:20 | FromGitter | <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:01 | FromGitter | <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:55 | dom96 | mratsim: yes, but this is only an issue for .nimble files |
11:28:13 | dom96 | we are discussing Araq's new `import $p` feature |
11:28:24 | dom96 | Which has no reason to exist IMO |
11:28:27 | FromGitter | <mratsim> Oh |
11:30:18 | FromGitter | <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:27 | Araq | oprypin: "Files and network/database connections are reopened on every run" yup, I've been thinking about this too |
11:37:56 | Araq | it's a tough problem, stdlib patches can help but it remains fragile |
11:38:17 | Araq | it's however not that essential for scientific computing (I guess) |
11:42:32 | * | StarBrilliant quit (Quit: ZNC - http://znc.in) |
11:43:48 | dom96 | I wonder if we could create a self-rewriting binary that would act as a REPL |
11:44:14 | dom96 | Where each new line is compiled and appended to the binary then executed |
11:44:14 | FromGitter | <Yardanico> wat |
11:44:24 | dom96 | Just a crazy idea :) |
11:44:54 | dom96 | bbl |
11:45:19 | FromGitter | <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:13 | Araq | well the JIT solution via nlvm is the only option if we're after a 100% solution |
11:46:32 | Araq | not every piece of memory goes through Nim's allocator either |
11:47:47 | * | StarBrilliant joined #nim |
11:47:51 | Araq | or try to embrace "TinyC as a library" again |
11:48:13 | yglukhov | Araq: $package doesn't work. doesn't crash now. just Error: cannot open '$package / font' |
11:48:27 | yglukhov | I wonder what $package means |
11:48:37 | yglukhov | is it the dir where nimble file resides? |
11:48:39 | FromGitter | <alehander42> on the other hand, how far is the compiletime interpreter from supporting e.g. 95% of the language ? |
11:48:44 | Araq | yglukhov: works for me :P |
11:49:12 | Araq | alehander42: it's a dead end, the FFI would change semantics |
11:49:55 | Araq | what is currently "got a pointer from C, I can write to it" becomes a marshalling operation with all its traps |
11:50:16 | Araq | look at compiler/evalffi.nim |
11:52:37 | Araq | you could use vmgen.nim and rewrite it to be a x86_64 JIT but that's much work :-) |
11:57:32 | FromGitter | <Yardanico> Araq: what is "liftLocals"? |
11:57:47 | FromGitter | <alehander42> :D yeah, it doesn't seem too promising |
11:58:05 | FromGitter | <Yardanico> ah I see |
11:58:06 | FromGitter | <Yardanico> hmm |
11:58:13 | FromGitter | <Yardanico> can it support inheritance? |
11:58:29 | FromGitter | <Yardanico> (well I think it doesn't) |
11:58:39 | FromGitter | <Yardanico> it would be very useful for nimpylib :D |
11:59:24 | FromGitter | <alehander42> so how complete is nlvm then? |
11:59:25 | yglukhov | Araq: ahh, so i need to import $nimx / font, not $package / font |
11:59:25 | yglukhov | =) |
11:59:47 | FromGitter | <Yardanico> @alehander42 most of it is complete, but it's being developed by only one developer :) |
12:00:00 | FromGitter | <Yardanico> and nobody seems to be interested in it (no PRs or issues for example) |
12:00:29 | FromGitter | <Yardanico> @alehander42 https://github.com/arnetheduck/nlvm#status |
12:00:34 | FromGitter | <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:39 | Araq | I am interested and offered to make it part of the core eventually |
12:00:52 | FromGitter | <Yardanico> oh, that would be great |
12:01:11 | Araq | but as long as it's just another backend it's work without payoff |
12:01:35 | * | SenasOzys_ joined #nim |
12:01:55 | Araq | turn it into a REPL or JIT so that it actually gives us added value |
12:01:58 | yglukhov | Araq: 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:20 | Araq | or give it much better debugging support |
12:02:21 | yglukhov | because 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:42 | Araq | yglukhov: we're still discussing its semantics and wether it should be a thing |
12:02:58 | Araq | but current you can read the $foo as "search for foo" |
12:03:07 | yglukhov | Araq: can i participate? |
12:03:09 | yglukhov | =) |
12:03:16 | Araq | $stdlib is special cased |
12:03:32 | Araq | and $root means what you think $package means, I think |
12:03:33 | yglukhov | thats cool! although i would just name it "std" |
12:04:04 | yglukhov | nice, i really like that. |
12:04:07 | Araq | of course you can participate |
12:04:18 | yglukhov | where is the discussion? |
12:04:42 | Araq | in yesterday's logs :D |
12:05:48 | FromGitter | <data-man> And system/debugger and system/endb can help with a REPL? |
12:06:48 | * | dddddd joined #nim |
12:08:54 | yglukhov | ok, went through the logs |
12:09:45 | yglukhov | Araq, dom96: i'm seeing the dollar as a clear distinction for absolute vs relative imports. |
12:10:13 | yglukhov | so we could introduce the dollar as absolute imports. |
12:11:02 | yglukhov | keep 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:22 | yglukhov | this stage of "fallback to absolute" can be deprecated and emit warnings |
12:11:50 | yglukhov | Araq: do i understand it correctly? |
12:12:21 | Araq | er no? it's like this |
12:13:12 | Araq | x / y # x, y are paths, 'x' is relative (use --path, --nimblePath if it can't be resolved) |
12:14:00 | Araq | $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:51 | Araq | absolute paths start with "/" or "C:\" and are supposed to work |
12:15:11 | FromGitter | <alehander42> thanks @Yardanico , nlvm seems pretty good, I thought it's way less developed |
12:15:26 | Araq | import "/home/araq/x.nim" is clearly an absolute path |
12:15:48 | federico3 | Araq: how is the compiler able to distinguish packages by directories? |
12:15:55 | FromGitter | <alehander42> I'll try to play with fixing stuff in it instead |
12:18:19 | Araq | federico3: I don't understand your question |
12:20:54 | federico3 | given "$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:14 | Araq | it goes up in the file tree, currently ignoring .nimble files. |
12:23:49 | yglukhov | ok, sorry, by "absolute" i mean the c #include <smth>. so my "absolute" is relative to search paths roots |
12:24:11 | Araq | yglukhov: that explains a whole lot :P |
12:25:48 | yglukhov | so 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:29 | Araq | "flaky"? it works as designed |
12:27:16 | Araq | it's just that import "$lib/pure/strutils" is not widely known |
12:27:45 | federico3 | Araq: 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:39 | Araq | the idea is that your <myprojects> is your workspace |
12:28:41 | yglukhov | well i've told you about my pitfall |
12:28:57 | Araq | never met a developer who doesn't have a setup like that anyway |
12:29:37 | Araq | yglukhov: I don't remember |
12:31:49 | federico3 | myprojects 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:55 | yglukhov | got 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:01 | federico3 | (essentially that becomes similar to nimbledir or python virtualenv / rbenv...) |
12:33:21 | yglukhov | Araq: my first comment in https://github.com/nim-lang/nimble/pull/401 |
12:36:31 | Arrrr | Doesn't $projectDir work for nimble projects? |
12:37:36 | yglukhov | nimble doesn't add currently being compiled-and-installed project to paths |
12:39:20 | Araq | why would a module in nimx import others via nimx.? |
12:39:42 | Araq | that's not how it works, inside a package you use "relative" imports |
12:39:59 | Araq | bbl |
12:43:50 | * | SenasOzys quit (Remote host closed the connection) |
12:44:03 | * | SenasOzys joined #nim |
12:47:44 | FromGitter | <mratsim> (https://files.gitter.im/nim-lang/Nim/XbEQ/5_stages_of_debugging.jpg) |
12:49:02 | FromGitter | <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:47 | yglukhov | Araq: 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:36 | couven92 | Araq, regarding my asarray macro: why call instead of dot expression for converting between types in the AST? |
13:14:11 | couven92 | I 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:29 | yglukhov | couven92: calls are easier to resolve. ".smth" could be a member. |
13:27:44 | couven92 | ah, makes sense |
13:29:29 | * | kobi7 joined #nim |
13:29:42 | kobi7 | hey guys |
13:30:33 | kobi7 | when 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:56 | kobi7 | I'm not sure I'm right. it could be skipping it, but it takes 2 seconds to build. |
13:31:17 | kobi7 | and the drive is SSD, so I assume it tries to recompile? |
13:31:26 | * | Senketsu quit (Remote host closed the connection) |
13:31:39 | kobi7 | of course not a big deal, just wondering if I'm not missing anything |
13:32:07 | * | sz0 joined #nim |
13:33:14 | dom96 | yglukhov: 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:17 | FromGitter | <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:23 | dom96 | But I'm not sure whether fixing it is that simple |
13:33:46 | dom96 | As for the new `import $blah`, it's far too magical |
13:34:29 | dom96 | Someone 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:48 | yglukhov | dom96: should not be there a way to distinguish absolute vs relative imports? |
13:35:20 | FromGitter | <Yardanico> kobi7: do you see "CC" entries? |
13:35:29 | FromGitter | <Yardanico> in compilation log |
13:35:35 | yglukhov | the "$" introduces this distinction imo |
13:35:35 | dom96 | I'm not sure what you mean by "absolute" |
13:35:37 | FromGitter | <Yardanico> e.g. "CC: mymodulename" |
13:35:51 | yglukhov | by absolute i mean relative to search paths roots |
13:36:03 | dom96 | but if we do add support for it then `$` isn't the best symbol to use for it IMO |
13:36:28 | dom96 | isn't import already relative to search path roots? |
13:38:20 | Araq | it is. |
13:38:40 | Araq | it's "relative to the current file, if nothing there, consider --path" |
13:39:12 | Araq | dom96: pure conjecture. that's how git determines its root too. |
13:39:20 | FromGitter | <mratsim> Agree with dom, it would be strange to overload $ |
13:39:45 | FromGitter | <mratsim> "import relative ../../foo" |
13:39:54 | Araq | it's the old "I can imagine problems" argument, totally shallow by now |
13:40:05 | dom96 | yglukhov: what would be useful for you is a `$root` directive |
13:40:14 | FromGitter | <mratsim> Or just plain ./ |
13:40:17 | Araq | you can't design a single thing with that mindset |
13:40:27 | dom96 | Which points to where the .nimble file is |
13:40:53 | dom96 | Araq: My main argument is still regarding `src/` |
13:41:04 | dom96 | This isn't something I am imagining |
13:41:05 | kobi7 | Yardanico: I see CC for stdlib |
13:41:06 | dom96 | It's a real problem |
13:41:13 | FromGitter | <Yardanico> kobi7: strange |
13:41:13 | livcd | do i need to do something extra to be able to build nim in Atom ? |
13:41:30 | Araq | I 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:29 | dom96 | What problems? |
13:42:36 | dom96 | We designed Nimble together |
13:42:47 | kobi7 | Yardanico: my mistake, I only see the hints - on repeated tries |
13:43:21 | Araq | dom96: "nimble used some outdated package for building things" |
13:43:39 | Araq | "nimble update doesn't do what I thought" |
13:43:42 | kobi7 | it still does Processing, but shouldn't it just check the datetime against the last compilation? |
13:43:51 | dom96 | Araq: Can you elaborate on the first one? |
13:44:00 | dom96 | The second one is an issue in the repo! |
13:44:07 | FromGitter | <Yardanico> kobi7: it always does Processing |
13:44:15 | Araq | not my point |
13:44:28 | FromGitter | <Yardanico> there's no incremental cache for nim files (well there is, but it's very unstable) |
13:44:43 | kobi7 | Yardanico: isn't there something like 'lastbuild' file that we check its last mtime? |
13:44:53 | Araq | I don't want to criticize Nimble anyway, the development mode is awesome |
13:45:02 | FromGitter | <Yardanico> kobi7: I don't think so |
13:45:10 | FromGitter | <Yardanico> Nim compiler will always compile Nim files and check if it should recompile C files |
13:45:32 | FromGitter | <Yardanico> so if you didn't modify nim files - it won't recompile C files |
13:45:40 | dom96 | You were one of the people that encouraged me to change the behaviour of 'update' |
13:45:55 | dom96 | so you can't say that you didn't want to deprecate that |
13:46:10 | kobi7 | well, this lastbuild can have the previous command parameters and if they match, only compile/process the files which were updated since. |
13:46:42 | kobi7 | actually, then it would have to save ast etc. maybe complicates too much. |
13:47:16 | kobi7 | nevermind. it's just two seconds after all |
13:47:35 | Araq | dom96: 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:39 | kobi7 | I'm trying out nimx, looks pretty cool |
13:49:10 | FromGitter | <Yardanico> ah yes, nimx has a lot of modules |
13:49:17 | FromGitter | <Yardanico> nim compilation is a bit slower than usual for it :) |
13:49:24 | yglukhov | dom96: you're right. $root directive sounds good to me |
13:49:51 | dom96 | btw 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:08 | yglukhov | nimble file location is not equal to that, because nimble file allows overriding the src "root" |
13:50:39 | yglukhov | so if nim cares about nimble it should parse/evaluate nimble files |
13:50:52 | dom96 | yeah, that's something we want to avoid |
13:51:43 | dom96 | btw, didn't we discuss allowing compile-time function calls inside import statements? |
13:51:45 | yglukhov | the "package/src", "package/package", "package/src/package" probes seem like a good enough solution to me. |
13:51:48 | kobi7 | Yardanico, I can't have private msgs with you on irc right? |
13:51:50 | dom96 | Wouldn't this solve all our problems? (tm) |
13:52:05 | dom96 | import findPkg("nimx") / "types" |
13:53:05 | kobi7 | dom96: if the docs state clearly what is the resolution order, it's not really a problem, imho |
13:53:41 | kobi7 | dom96: the build can even state it, with hints, like it does for nim.cfg |
13:54:31 | kobi7 | my 2c aint worth much :) |
13:55:00 | yglukhov | btw, how should we call package-relative imports? my "absolute" term appeared to be ambiguous. "package imports"? |
13:55:08 | kobi7 | yglukhov: where are the docs for nimx? |
13:55:22 | yglukhov | kobi7: in the future |
13:55:25 | yglukhov | =) |
13:55:41 | kobi7 | can I generate them somehow, or is it just reading samples and figuring it out |
13:56:38 | yglukhov | kobi7: i think samples is the only thing i cared about for now. and even they are not complete. sorry. |
13:57:08 | dom96 | kobi7: 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:18 | kobi7 | it's fine. I didn't pay you to write them after all |
13:57:25 | Araq | dom96: so use it already and report real problems. |
13:57:27 | yglukhov | also i'm switching nimx towards a constraint-based layout system, so autoresizing masks will get deprecated soon. |
13:58:01 | dom96 | Araq: I have no use for it. Everything that is worth depending on is already a nimble package |
13:58:13 | kobi7 | yglukhov: I saw a gui dsl the other day, I think it was gen-ui. does nimx support it? |
13:58:16 | dom96 | and I've spent a considerable amount of time implementing `nimble develop` for that |
13:59:56 | yglukhov | kobi7: 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:10 | dom96 | The thought of explaining the difference between `import pkg/foo` and `import $pkg/foo` makes me cringe |
14:00:25 | dom96 | (to newbies) |
14:01:14 | Araq | *shrug* pkg vs $earch(pkg) |
14:01:34 | kobi7 | :> |
14:01:37 | yglukhov | kobi7: here's a peek at how it will look like: https://gist.github.com/yglukhov/c840026f18cff11da3824e61f1f8a99f |
14:01:56 | yglukhov | actually those tests already work |
14:02:11 | dom96 | No, i'll be saying "Don't use that. Just use `nimble develop` and `import pkg`" |
14:02:20 | FromGitter | <Yardanico> yglukhov: that's very nice |
14:02:49 | FromGitter | <Yardanico> I suppose it's a macro? |
14:03:05 | yglukhov | yes, a very simplistic one. see nimx/layout.nim |
14:03:34 | kobi7 | yglukhov: very nice |
14:03:37 | yglukhov | the coolest part is the kiwi-based constraint system |
14:03:49 | Araq | well I could return this compliment ... "don't use nimble, git clone the dependency" |
14:04:10 | dom96 | Can you not see that discouraging Nimble packages is not in your best interest? |
14:04:24 | Araq | *I could* |
14:04:34 | Araq | I'm not doing that. |
14:04:34 | kobi7 | yglukhov: the UI looks the same on all systems, right? |
14:04:40 | dom96 | Your feature does that |
14:05:00 | yglukhov | kobi7: yep. everything is opengl |
14:05:35 | yglukhov | i think stylesheets might be implemented eventually |
14:05:37 | kobi7 | awesome. everything I've seen so far in nim is superb to be honest. |
14:06:59 | dom96 | Araq: Sorry, but you said yourself that this feature is for those that aren't using Nimble. |
14:07:02 | kobi7 | yglukhov: 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:10 | dom96 | So another reason why I dislike this feature is because it discourages Nimble's usage |
14:07:57 | Araq | yes I can see it offends you. |
14:08:15 | dom96 | I wouldn't say it offends me |
14:08:24 | federico3 | perhaps documenting all the features required around imports and packaging in an issue can help prevent unnecessary changes. |
14:08:50 | dom96 | I'm simply arguing against the inclusion of this feature |
14:08:58 | federico3 | (changing packaging practices has an impact on the community) |
14:09:21 | * | couven92 quit (Ping timeout: 268 seconds) |
14:10:06 | FromGitter | <Yardanico> yglukhov: nimx still uses sdl2, right? |
14:10:59 | Araq | federico3: that's what dom96 did and a slightly different topic |
14:11:16 | yglukhov | Yardanico: yup ( |
14:11:29 | yglukhov | not the js/emscripten version though ) |
14:11:52 | Araq | https://travis-ci.org/nim-lang/Nim/jobs/297977127 |
14:12:07 | Araq | $ nimble install opengl |
14:12:07 | Araq | Downloading https://github.com/nim-lang/opengl using git |
14:12:07 | Araq | 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:17 | Araq | Downloading https://github.com/nim-lang/x11 using git |
14:12:17 | Araq | 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:30 | Araq | nimble install sdl1 |
14:12:30 | Araq | Downloading https://github.com/nim-lang/sdl1 using git |
14:12:30 | Araq | 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:44 | Araq | nimble install niminst |
14:12:44 | Araq | Downloading https://github.com/nim-lang/niminst using git |
14:12:44 | Araq | 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:48 | FromGitter | <Yardanico> :D |
14:13:41 | FromGitter | <mratsim> For what's worth arraymancer also has an incorrect structure :p |
14:14:08 | yglukhov | and almost all of my packages =) |
14:14:10 | federico3 | Araq: introducing another import / pkg management system is even more change |
14:14:35 | dom96 | yeah, it's a PITA to change |
14:14:36 | Araq | I'm really willing to sort this one out |
14:14:45 | federico3 | I suggest removing this warnings and making nimble more lenient |
14:14:52 | Araq | ^ |
14:14:55 | Araq | exactly. |
14:15:01 | yglukhov | +1 |
14:15:04 | Araq | and $package is my attempt at helping Nimble with that |
14:15:11 | FromGitter | <mratsim> Is there a RFC we can refer to? Or just IRC logs? |
14:15:19 | yglukhov | i like $package a lot! |
14:15:24 | Araq | that it also works for "git clone" is a nice benefit |
14:15:25 | yglukhov | lets bring it in |
14:15:57 | FromGitter | <mratsim> Relative is good in my opinion but the symbol $ is not |
14:15:58 | Araq | and if you want to critic the feature say something like |
14:16:04 | Araq | - $ is ugly |
14:16:17 | federico3 | Araq: 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:19 | dom96 | I've given multiple reasons why this feature should be removed. |
14:16:20 | Araq | - it pretends to be about packages but it's really just about paths. again. |
14:16:50 | dom96 | What's everyone's reasoning for making Nimble more lenient? |
14:16:54 | dom96 | And what does "more lenient" mean? |
14:17:14 | yglukhov | don't claim a pkg has "incorrect" structure? =) |
14:17:21 | federico3 | dom96: it's the "strictest" packaging tool I've ever used (and I used many) |
14:17:24 | FromGitter | <mratsim> Or introduce "import_path" bonus points if all files in that location are imported |
14:17:36 | dom96 | Do you understand why it's incorrect? |
14:18:04 | Araq | dom96: yes but I don't want people to have to understand it |
14:18:07 | federico3 | dom96: in short: allow multiple files and directories without complaining (and let user whitelist/blacklist files/dirs if so they want) |
14:19:00 | federico3 | dom96: being able to create arbitrary directories and files in a development repo is a reasonable requirement |
14:19:06 | FromGitter | <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:03 | dom96 | You'll get conflicts between packages, very soon |
14:20:09 | dom96 | If Nimble is more lenient |
14:20:28 | federico3 | how so? |
14:20:31 | Araq | dom96: not if imports become package specific |
14:20:35 | dom96 | Most packages will reuse module names, like for example: utils.nim |
14:20:42 | yglukhov | federico3: i'm not sure i get your point regarding "$". why would it need changes? |
14:20:58 | dom96 | Araq: Is this some other proposition? |
14:21:14 | dom96 | or are you referring to the way `$` works now? |
14:21:33 | dom96 | Because I don't see how `$` can help with that |
14:21:50 | Araq | look, I want import $stdlib / [foo]; import $karax / [stuff]; import $jester / [a, b, c] |
14:22:12 | Araq | import xyz # ok, part of the current nimble package I'm in |
14:22:22 | Araq | whether with dollars or without |
14:22:25 | federico3 | dom96: having a local utils.nim should not expose "utils" as an importable module unless the .nimble file specifically exports it |
14:22:45 | Araq | I want grouping by package |
14:22:46 | dom96 | federico3: Ahh, so then Nim needs to evaluate the .nimble file of each package every time a compilation happens |
14:22:55 | dom96 | Which will be slow |
14:22:59 | dom96 | But it's a nice idea |
14:23:21 | Araq | and $foo is my first proposal at getting there. |
14:23:21 | federico3 | Nimble, not Nim - and not necessarily |
14:23:26 | dom96 | So there are definitely multiple solutions to this problem |
14:23:42 | dom96 | And each has its cons. It would be good to evaluate each and every single proposal |
14:23:50 | dom96 | and whether it's worth the disruption |
14:24:07 | FromGitter | <mratsim> Open a RFC on GitHub? |
14:24:22 | * | kobi7 quit (Quit: Leaving) |
14:24:23 | FromGitter | <mratsim> This way you have votes |
14:24:29 | federico3 | I 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:29 | dom96 | Yes, that would be nice. |
14:25:59 | FromGitter | <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:24 | dom96 | Okay, so Araq I guess it's up to you to write an RFC :) |
14:27:11 | federico3 | there's documentation from other projects with extensive lists of requirements |
14:28:04 | euantor | So 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:31 | euantor | Overall I like Rust's module approach, but having to use `extern crate` and `use` is repetitive |
14:29:30 | federico3 | euantor: we are already declaring the module[s] in the .nimble file (and this should be enough if speed issues are solved) |
14:29:36 | dom96 | euantor: Do you also dislike the current approach? |
14:29:47 | euantor | I don't mind the current approach |
14:30:15 | euantor | federico3: In Rust you specify external dependencies ina `cargo.toml` file, to pull the crates, then in your code you use `extern crate` |
14:30:47 | federico3 | euantor: yes, and I'm saying the equivalent of "extern" should not be required :) |
14:31:07 | euantor | I don't mind `import jester/routing`, as we currently do things |
14:31:23 | euantor | federico3: Yeah, which is how things are now, or am I missing something? |
14:32:00 | federico3 | euantor: almost |
14:32:14 | euantor | I do like the approach of `maintainer/packagename` like things are done in PHP's composer (eg: `import dom96/jester`) |
14:32:16 | dom96 | actually |
14:32:30 | dom96 | federico3: You can specify explicitly which modules are "exported" in the .nimble file already :) |
14:32:37 | livcd | yglukhov: do you use Atom with nim ? i saw you commited to the nim pkg for atom long time ago :D |
14:32:45 | dom96 | But actually you're specifying which modules are installed |
14:32:49 | dom96 | but this has the same meaning |
14:32:52 | federico3 | yes dom96, I wrote it above |
14:33:19 | yglukhov | livcd: nope, vscode. i found atom extremely laggy long time ago. never went back. |
14:33:39 | dom96 | federico3: oh, keep in mind that this isn't always the case though |
14:33:48 | federico3 | dom96: 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:49 | euantor | I also like to put my code inside a `src/` dir, and always do so. I like the idea of strict structure personally |
14:33:59 | livcd | yglukhov: ah ok different pkg ? |
14:34:28 | livcd | ah i see |
14:34:28 | livcd | ok |
14:34:32 | dom96 | one problem that I just realised is that this whitelisting doesn't work for `nimble develop` |
14:35:34 | federico3 | dom96: 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:11 | Araq | nimble has more than one problem ;-) |
14:36:28 | PMunch | Araq, any particular reason ormin_mysql hasn't been implemented yet? |
14:36:38 | dom96 | Araq: Feel free to take over its development ;) |
14:36:56 | dom96 | There is always another project I could be working on |
14:37:52 | Araq | I'm the wrong guy to write/maintain a package manager |
14:38:40 | dom96 | federico3: Nimble cannot make these guesses |
14:39:26 | dom96 | If we just ignore the problematic modules then most packages won't have any installed files |
14:39:32 | federico3 | dom96: 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:34 | dom96 | At that point it's simply better to give an error |
14:39:42 | * | sleepyqt joined #nim |
14:39:59 | dom96 | So 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:56 | dom96 | Araq: Why's that? |
14:41:15 | federico3 | The module being installed is already being specified. Extra files/dirs that are not part of the module will be ignored unless whitelisted |
14:42:01 | federico3 | and Nimble con simply print "including x y z .... ignoring k " during upload |
14:42:14 | Araq | dom96: because I don't believe in versioning |
14:42:16 | dom96 | What do you mean "The module being installed is already being specified" |
14:42:17 | dom96 | ? |
14:42:17 | federico3 | (and say nothing during install: the pkg user is not the author) |
14:42:33 | dom96 | Do you mean implicitly (based on the package name)? |
14:42:46 | dom96 | If so, take a look at this package: https://github.com/nim-lang/sdl1 |
14:42:50 | dom96 | What should happen? |
14:42:55 | dom96 | There is no `sdl1.nim` module there |
14:43:55 | federico3 | dom96: either the .nimble filename or srcDir |
14:43:56 | euantor | Rust'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:13 | euantor | Reference: https://doc.rust-lang.org/1.1.0/book/crates-and-modules.html |
14:44:24 | livcd | yglukhov: VScode looks slick |
14:44:48 | euantor | They also allow `module {}` blocks, which I don't like particularly - I prefer one module per file |
14:44:50 | federico3 | dom96: e.g. if the module matches the nimble filename you are essentially done (and it works already) |
14:44:50 | dom96 | euantor: Whereas in Nimble you simply have src/mod.nim and src/mod/other_module |
14:44:56 | livcd | though kinda bad that I need to switch editor because everyone seems to be using vscode |
14:45:08 | dom96 | And Nimble verifies that you abide by this structure, it's beautiful! |
14:45:25 | dom96 | federico3: What should happen in the case of the package I sent you? |
14:45:27 | PMunch | livcd, join the dark side. Switch to Vim :) |
14:45:42 | euantor | dom96: 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:14 | dom96 | euantor: Nimble gives a bit more choice. Perhaps it shouldn't. |
14:46:32 | federico3 | dom96: name = "sdl1", srcDir = "src" but there is no src/sdl1.nim - in this case Nimble could complain |
14:46:41 | euantor | dom96: Yep, having one true way probably makes sense |
14:46:45 | dom96 | federico3: heh, that's what it does right now! |
14:46:53 | dom96 | hence the warning |
14:47:08 | livcd | PMunch: my main is emacs but i did not want to spend too much time with the setup |
14:47:25 | Araq | I don't one true way, I want "just works without me having to read docs" :-) |
14:47:29 | euantor | One thing I do like in Rust is that modules withina crate are private, unless explicitly marked as `pub mod` |
14:47:32 | PMunch | Before 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:44 | dom96 | Araq: You know that's unrealistic |
14:47:51 | federico3 | dom96: 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:55 | euantor | Araq: If `nimble init` created your directory structure and the files for you, would that be useful? |
14:48:10 | euantor | `cargo` (Rust) does that and probably helps people get started |
14:48:23 | FromGitter | <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:24 | dom96 | federico3: yes, but it's something that should be corrected anyway |
14:48:40 | Araq | euantor: not really. |
14:48:51 | dom96 | It's incredibly likely that the user is intending for those .nim files to be installed |
14:49:00 | dom96 | The only other case is a `tests` dir |
14:49:00 | federico3 | dom96: the lib1 name issue? Sure but it's a corner case |
14:49:02 | dom96 | Which we can special case |
14:49:10 | euantor | I also like Composer's "dev dependencies", with dependencies only used in development cases |
14:49:15 | Araq | the existing packages don't adhere to the new rules that nimble suddenly imposed on us |
14:49:41 | federico3 | having special cases for directory names is really uncommon |
14:49:55 | dom96 | This is a side-effect of how Nim handles imports |
14:50:04 | Araq | "from now on, every package should be xyz" |
14:50:06 | dom96 | this directory structure was always there |
14:50:10 | dom96 | but people just ignored it |
14:50:22 | dom96 | it was always in the docs, so you can't say it was imposed |
14:50:28 | Araq | is just unrealistic and it means we need to get this structure right |
14:50:35 | FromGitter | <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:37 | Araq | super right. |
14:50:57 | Araq | that's hostile to any evolutionary process. |
14:51:07 | FromGitter | <mratsim> But in a subdir I get warnings all over the place: https://github.com/mratsim/Arraymancer/tree/master/src/nn_primitives |
14:51:39 | federico3 | (and that's why people invented source packages...) |
14:51:40 | livcd | Araq: yeah that's a good requirement: "i want it to work without reading docs" :) +1 |
14:51:54 | dom96 | mratsim: so if I install your package I should write `import nn_primitives/nnp_linear`? |
14:52:01 | dom96 | (to import that module for example) |
14:52:04 | FromGitter | <mratsim> But then Araq says "Read the manual" |
14:52:07 | dom96 | Can you see the problem? |
14:52:23 | FromGitter | <mratsim> I'd like to do arraymancer/nn_primitives |
14:52:25 | federico3 | yes, packaging and installation should be usable by reading very little |
14:52:31 | dom96 | yeah, so move that into an arraymancer directory |
14:52:35 | dom96 | That's what Nimble is complaining about |
14:52:46 | FromGitter | <mratsim> But I don't want to have 3/4 nesting |
14:53:01 | FromGitter | <mratsim> If I move it at the top nimble will complains as well |
14:53:06 | Araq | mratsim: a programming language unfortunately needs to have a manual but I strive to make docs superfluous for other things. like package management. |
14:53:16 | dom96 | mratsim: you can get rid of the 'src' dir if you want |
14:53:38 | dom96 | federico3: There isn't a single package manager that is usable without reading its docs |
14:53:50 | FromGitter | <mratsim> I don't want to clutter the base dir |
14:53:55 | dom96 | (Unless you have knowledge of similar package managers) |
14:54:39 | dom96 | mratsim: Nimble simply copies your src dir |
14:54:39 | federico3 | (actually I do but it's proprietary) |
14:55:16 | dom96 | mratsim: so you have to add this extra directory |
14:55:24 | federico3 | yet, commands like nimble install and upgrade are obvious |
14:55:37 | dom96 | If you have any better ideas on how to solve this problem then I am happy to hear about it |
14:55:49 | federico3 | nimble init could ask more questions and prepare the pkg layout (as I suggested in a bug report) |
14:55:59 | dom96 | yep, it will do that. |
14:56:13 | dom96 | IMO it should just run without asking any questions |
14:56:32 | FromGitter | <mratsim> One layout to rule them all :p |
14:56:49 | dom96 | mratsim: elaborate? |
14:56:57 | federico3 | and 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:06 | FromGitter | <mratsim> Reference to Lord of the rings |
14:57:22 | dom96 | mratsim: I thought that was your suggestion on how to solve this problem another way :) |
14:58:26 | * | rauss joined #nim |
14:58:28 | dom96 | As far as docs go, you don't even need to read that much: https://github.com/nim-lang/nimble#libraries |
14:59:17 | kobi7 | dom96: another option is to define the source dirs in .nimble |
14:59:46 | kobi7 | then the structure isn't so important |
14:59:51 | Araq | dom96: 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:10 | FromGitter | <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:53 | kobi7 | mratsim, I think explicit is better than implicit when doing non-default stuff |
15:01:14 | * | Jesin joined #nim |
15:01:28 | dom96 | Araq: The documentation predates the 'srcDir' directive ;) |
15:01:33 | federico3 | dom96: 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:42 | dom96 | and I did check, it's more than 2 years old, so it was definitely always this way |
15:02:05 | FromGitter | <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:51 | dom96 | mratsim: you mean a repo that shows an example layout? |
15:02:54 | euantor | Rust also has `src/lib.rs` for a crate |
15:02:57 | kobi7 | What is the command to update all local packages? |
15:02:57 | federico3 | mratsim you mean __init__.py or gitter replaced the underscores? |
15:03:05 | euantor | then other modules within that caret have a `mod.rs` |
15:03:11 | FromGitter | <mratsim> Gitter replaced the underscore |
15:03:12 | dom96 | I'm fairly sure most package managers have different instructions for libraries and binaries |
15:03:24 | federico3 | dom96: no |
15:03:25 | dom96 | Sure, hybrid is a special thing |
15:03:29 | dom96 | and I asked how to better solve it |
15:03:39 | dom96 | but people just said "oh no, I think it's fine the way it is, carry on" |
15:04:18 | dom96 | ok, not people, one person: https://github.com/nim-lang/nimble/issues/308 |
15:04:19 | dom96 | :) |
15:04:49 | federico3 | (for example in Python everything is "hybrid") |
15:04:56 | FromGitter | <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:24 | dom96 | federico3: http://pkg-go.alioth.debian.org/packaging.html |
15:05:38 | dom96 | "Binary-only packages" |
15:05:43 | dom96 | "Library packages" |
15:06:05 | federico3 | and that's Go |
15:06:28 | dom96 | and Python is significantly different from Nim |
15:06:31 | yglukhov | Araq: 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:35 | dom96 | You don't compile it |
15:07:56 | * | SenasOzys quit (Ping timeout: 268 seconds) |
15:08:01 | federico3 | sure 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:25 | dom96 | yes, like I said, I dislike the hybrid convention |
15:08:28 | dom96 | and wanted more ideas |
15:08:37 | dom96 | I'm still waiting |
15:08:37 | Araq | yglukhov: maybe, I only tested $package / [...] |
15:08:48 | FromGitter | <mratsim> Example on Python init.py file https://github.com/kennethreitz/samplemod/tree/master/sample |
15:09:18 | dom96 | For Nim, the init.py equivalent is a .nimble file |
15:09:32 | dom96 | (You can have an empty .nimble file and Nim treats it in a special way) |
15:09:55 | yglukhov | Araq: can you fix it pls? =) |
15:10:15 | dom96 | Nimble currently doesn't support multiple Nimble packages in a single repo (although I would like to change that) |
15:10:15 | federico3 | dom96: 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:46 | Araq | dom96: nimble shouldn't even have to know lib vs app vs hybrid |
15:11:00 | FromGitter | <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:28 | dom96 | federico3: So you'd have a bin/myapp.nim and a src/mylibrary.nim? |
15:11:35 | dom96 | How would myapp.nim import mylibrary.nim? |
15:12:12 | federico3 | dom96: is src listed in srcDir I assume? |
15:12:15 | dom96 | mratsim: Okay, that's one idea. Main disadvantage is the need for Nim to read .nimble files |
15:12:22 | FromGitter | <mratsim> package/modulefoo/dir.nimble, package/modulebar/dit.nimble and call package/modulefoo or package/modulebar |
15:12:25 | dom96 | federico3: yep |
15:12:41 | federico3 | that's up to Nimble to set the search path when building myapp.nim |
15:12:55 | dom96 | (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:13 | dom96 | federico3: Okay, so you're assuming that everyone will use Nimble to build their software |
15:13:16 | FromGitter | <alehander42> is there any way to somehow hint that you want a seq field to be init with @[] instead of nil |
15:13:20 | federico3 | you could also support a "binary" in the root dir of the pkg if whitelisted |
15:13:21 | dom96 | My solution supports the use of Nim on its own |
15:14:07 | federico3 | dom96: 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:35 | Araq | alehander42: mark it as 'not nil' but beware of the dragons |
15:14:48 | federico3 | I'm not assuming you use all functions from Nimble because there are use-cases where people use other build tools |
15:16:24 | federico3 | dom96: but I suppose, perhaps, nimble can insert a shim in the right place to allow Nim to build the files in bin/ |
15:17:04 | dom96 | yes, if you're using Nimble then there is no problem |
15:17:06 | FromGitter | <mratsim> @alehander42 you can use setLen too. |
15:17:11 | dom96 | you can put your binary nim source wherever you please |
15:17:25 | federico3 | dom96: what's the use case you have in mind? |
15:17:44 | FromGitter | <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:13 | FromGitter | <mratsim> @alehander42 https://github.com/mratsim/Arraymancer/blob/master/src/private/sequninit.nim |
15:18:43 | dom96 | federico3: Developing the package. In that case I probably just want to use 'nim' |
15:18:49 | FromGitter | <mratsim> Or use a "constructor" helper |
15:19:07 | FromGitter | <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:21 | FromGitter | <alehander42> but no prob, I'll init it myself |
15:19:34 | FromGitter | <mratsim> Instead of dir.nimble just use dir.nim |
15:19:43 | dom96 | I feel like this discussion isn't going to get anywhere. We should all participate in an RFC and voice our ideas there. |
15:20:43 | federico3 | dom96: 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:50 | dom96 | So 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:08 | federico3 | yes please - an issue or a wiki page? |
15:22:25 | dom96 | Issue |
15:23:49 | FromGitter | <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:16 | Araq | sure, go ahead but please understand that Rust's Cargo makes more mistakes than today's Nimble, in my humble opinion. |
15:24:36 | FromGitter | <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:44 | dom96 | Araq: oh? how so? |
15:29:32 | * | PMunch quit (Quit: Leaving) |
15:29:56 | Araq | it'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:31 | FromGitter | <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:13 | yglukhov | Araq: 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:57 | dom96 | https://github.com/nim-lang/Nim/issues/6700 |
15:44:27 | Araq | alehander42: 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:18 | Araq | it also has lots of hidden costs like |
15:45:25 | Araq | - you need to enforce it somehow |
15:45:27 | euantor | dom96: 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:49 | euantor | I'm not sure if I like that, but it's one solution I've seen |
15:45:53 | dom96 | yeah, that would be a good solution |
15:46:09 | Araq | - you need to get it right |
15:46:19 | Araq | - you can't really evolve it |
15:46:24 | dom96 | It again assumes that everyone builds with Nimble (which might be a fair assumption nowadays) |
15:46:28 | Araq | - people will fight over it |
15:46:30 | dom96 | I think Nimble is powerful enough to handle that now |
15:46:43 | Araq | - people might actually leave if it's too restrictive |
15:47:48 | Araq | it's like saying "ok now, everybody should live in this single type of house we designed" |
15:48:30 | Araq | and 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:40 | Araq | and all we had to do to get there was to destroy and rebuild every house |
15:53:57 | FromGitter | <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:57 | FromGitter | <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:04 | Araq | if you have a solution that works with variations already there is little reason to enforce more things. |
15:59:58 | federico3 | alehander42 FYI: https://github.com/nim-lang/nimble/issues/413 |
16:00:17 | FromGitter | <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:40 | FromGitter | <mratsim> It puts 6 lines of warning during CI or on import when dir structure is unexpected |
16:23:48 | yglukhov | Araq: 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:55 | dom96 | Araq: That's an SSL error, it's not Nimble's fault :( |
16:26:06 | Araq | I know! |
16:26:29 | Araq | it's hard to get these things right, so workaround always need to be possible |
16:27:19 | dom96 | Araq: can you run with --verbose? |
16:27:25 | dom96 | `nimble refresh --verbose` |
16:27:30 | dom96 | I'm curious what it's trying to request |
16:28:48 | FromGitter | <Araq> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a008dc0f7299e8f537bbf47] |
16:29:59 | dom96 | rm ~/.config/nimble/nimble.ini |
16:30:05 | * | sz0 quit (Quit: Connection closed for inactivity) |
16:31:23 | dom96 | Come on, you've got to admit |
16:31:30 | dom96 | Nimble's messages are wonderful |
16:32:22 | dom96 | Firstly, the "tip" suggested --verbose |
16:32:39 | dom96 | and then --verbose tells you that the config file is being read |
16:32:54 | dom96 | as well as the URLs that are being requested (which is obviously wrong) |
16:33:01 | FromGitter | <krux02> does nim have an isNan function? |
16:33:16 | FromGitter | <Yardanico> @krux02 well, kinda |
16:33:42 | FromGitter | <Yardanico> @krux02 use classify from math |
16:33:43 | FromGitter | <Yardanico> https://nim-lang.org/docs/math.html |
16:33:55 | FromGitter | <Yardanico> and check if it's fcNan |
16:33:59 | dom96 | pretty sure you can just do: x == NaN |
16:34:05 | FromGitter | <krux02> well there is isNan in dom |
16:34:11 | FromGitter | <krux02> that is weird |
16:34:17 | dom96 | !eval echo(1.0 == NaN) |
16:34:19 | NimBot | false |
16:34:19 | FromGitter | <krux02> dom06: no you can't |
16:34:34 | dom96 | !eval echo(NaN == NaN) |
16:34:36 | NimBot | false |
16:34:39 | FromGitter | <Yardanico> dom96: you can't |
16:34:41 | FromGitter | <Yardanico> :D |
16:34:55 | dom96 | wut |
16:34:58 | FromGitter | <krux02> well you can still do the old trick x != x |
16:34:59 | dom96 | why? |
16:35:01 | FromGitter | <Yardanico> !eval import math; classify(NaN) |
16:35:03 | NimBot | Compile failed: in.nim(1, 22) Error: expression 'classify(NaN)' is of type 'FloatClass' and has to be discarded |
16:35:09 | FromGitter | <Yardanico> !eval import math; echo classify(NaN) |
16:35:11 | NimBot | fcNan |
16:35:12 | FromGitter | <krux02> nan is always not equal to anything |
16:35:22 | FromGitter | <krux02> so it is also not equal to nan |
16:35:26 | FromGitter | <Yardanico> !eval import math; classify(1 ^ 0) |
16:35:27 | NimBot | Compile failed: in.nim(1, 22) Error: type mismatch: got (int) |
16:35:30 | FromGitter | <Yardanico> !eval import math; classify(1/0) |
16:35:31 | NimBot | Compile failed: in.nim(1, 22) Error: expression 'classify(1 / 0)' is of type 'FloatClass' and has to be discarded |
16:35:36 | dom96 | Why? |
16:35:37 | FromGitter | <Yardanico> !eval import math; echo classify(1/0) |
16:35:39 | NimBot | fcInf |
16:35:40 | FromGitter | <krux02> so therefor when x != x is true then it is nan |
16:35:54 | FromGitter | <krux02> but that is ugly and normally there is some sort of isnan |
16:36:02 | FromGitter | <Yardanico> !echo 1.05 == 1.05; echo NaN == NaN |
16:36:08 | FromGitter | <krux02> 1/0 should be inf |
16:36:13 | FromGitter | <Yardanico> !eval echo 1.05 == 1.05; echo NaN == NaN |
16:36:16 | NimBot | true↵false |
16:36:18 | FromGitter | <krux02> !eval 1.0/0.0 |
16:36:19 | NimBot | Compile failed: in.nim(1, 4) Error: expression 'inf' is of type 'float' and has to be discarded |
16:36:27 | FromGitter | <Yardanico> expression "inf" |
16:36:34 | FromGitter | <Yardanico> so nim already knows that this is an inifity :) |
16:36:42 | FromGitter | <krux02> !eval echo 1.0/0.0 |
16:36:44 | NimBot | inf |
16:37:01 | FromGitter | <krux02> !eval echo 0.0/0.0 |
16:37:04 | NimBot | nan |
16:37:11 | dom96 | !eval var x: array[1.0/0.0, float] |
16:37:13 | NimBot | Compile failed: in.nim(1, 17) Error: ordinal type expected |
16:37:18 | dom96 | aww |
16:37:32 | FromGitter | <Yardanico> !echo inf |
16:37:37 | FromGitter | <Yardanico> !eval echo inf |
16:37:38 | NimBot | Compile failed: in.nim(1, 6) Error: undeclared identifier: 'inf' |
16:37:40 | FromGitter | <krux02> !eval let x = 0.0/0.0; echo x == x |
16:37:42 | NimBot | false |
16:39:59 | * | yglukhov quit (Remote host closed the connection) |
16:41:28 | FromGitter | <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:06 | Araq | !eval import strutils; echo formatFloat(4.5) |
17:10:09 | NimBot | 4.500000000000000 |
17:13:28 | * | nsf joined #nim |
17:13:46 | elrood | how does the bot handle eval import os; removeDir("/") ? ;) |
17:14:14 | federico3 | it does not |
17:14:35 | FromGitter | <krux02> !eval removeDir("/") |
17:14:37 | NimBot | Compile failed: in.nim(1, 1) Error: undeclared identifier: 'removeDir' |
17:15:00 | federico3 | it's running in a container, isn't it? |
17:15:01 | FromGitter | <krux02> !eval import os; removeDir("/") |
17:15:05 | NimBot | <no output> |
17:15:41 | dom96 | yep |
17:31:14 | * | yglukhov joined #nim |
17:34:44 | enthus1ast- | 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:15 | elrood | enthus1ast-, yes, you can, and it's even in the manual. see compile time define pragma |
17:38:44 | enthus1ast- | i was searching nearly half an hour .... |
17:38:57 | enthus1ast- | ty i'll try that :) |
17:43:58 | elrood | np. was an almost instant nim:define search for me thanks to zeal, and devdocs probably has the same functionality |
17:44:58 | FromGitter | <Yardanico> yes |
17:45:07 | FromGitter | <Yardanico> http://devdocs.io/nim/system#defined,untyped |
17:45:18 | FromGitter | <Yardanico> you just search "define" |
17:45:43 | FromGitter | <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:12 | shashlick | I tried devdocs for a while but really miss the links to the source code |
18:04:38 | shashlick | right 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:26 | enthus1ast- | ah zeal nearly forgot about this, which docset do you use elrood? |
18:20:57 | * | TjYoco quit (Ping timeout: 268 seconds) |
18:21:07 | elrood | enthus1ast-, my own. https://www.dropbox.com/sh/7jdv2e8zdr03dfz/AADlSvHZ5IRehieM--J1c4Dxa?dl=0 |
18:22:57 | elrood | in 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:06 | shashlick | elrood: 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:16 | elrood | shashlick, yes, the docset basically contains nim's documentation as is |
18:56:30 | shashlick | Is 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:52 | elrood | shashlick, up to date as of oct 27. homegrown tool. nim's generated docs with some transformations and an index, nothing special |
19:06:47 | shashlick | elrood: 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:05 | elrood | perhaps, however it's just for personal use, not sure how regularly or for how long it's going to be updated |
19:19:57 | shashlick | is the code online? |
19:22:08 | shashlick | this is working very nicely with Zeal |
19:28:20 | elrood | no intentions to publish the code or to undertake responsibility or support for the docset on a long-term basis, to be frank |
19:29:09 | elrood | feel 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:29 | jhorwitz | Hey everyone |
19:49:54 | Araq | welcome jhorwitz |
19:50:36 | jhorwitz | Thanks! Just making it through Nim in Action currently, excited to contribute soon |
19:55:54 | dom96 | o/ |
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:27 | FromGitter | <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:58 | GitDisc | <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:14 | GitDisc | <treeform> Can any one spot an error in my server or client? |
22:44:42 | GitDisc | <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:32 | Araq | treeform, post it on the forum please |
23:09:49 | dom96 | treeform: newSocket and accept both create FDs |
23:09:58 | dom96 | is my best guess |
23:10:14 | dom96 | in fact, I'm 99% sure this is the problem |
23:10:43 | dom96 | You should initialise client with 'new' |
23:10:45 | dom96 | not '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:09 | dom96 | Matrix sure seems flaky |
23:23:44 | * | jhorwitz quit (Ping timeout: 268 seconds) |
23:23:53 | zolk3ri | Yeah, but it makes you cool. |
23:29:07 | FromGitter | <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:17 | FromGitter | <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:11 | zolk3ri | ... |
23:36:18 | zolk3ri | Dear 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:13 | jhorwitz | Really enjoyed the chat app written in the book |
23:53:25 | jhorwitz | Are there any companies using Nim in production? |
23:53:53 | * | Jipok[m] joined #nim |
23:54:31 | FromGitter | <mratsim> There are: https://yglukhov.github.io/Making-ReelValley-Overview/ |
23:54:47 | FromGitter | <mratsim> https://github.com/nim-lang/Nim/wiki/Companies-using-Nim |
23:55:04 | jhorwitz | Thanks! I've worked in a lot of languages, but for some reason Nim just clicked with me |