00:03:42 | * | d10n-work quit (Quit: Connection closed for inactivity) |
00:03:58 | * | JappleAck joined #nim |
00:07:19 | * | ryanhowe joined #nim |
00:18:32 | * | Nobabs27 quit (Quit: Leaving) |
00:21:21 | * | dhalinar quit (Ping timeout: 248 seconds) |
00:31:55 | * | ryanhowe quit (Ping timeout: 252 seconds) |
00:33:06 | * | kafke_ quit (Remote host closed the connection) |
00:36:27 | * | vlad1777d quit (Ping timeout: 240 seconds) |
00:38:58 | * | rauss quit (Read error: Connection reset by peer) |
00:40:53 | * | rauss joined #nim |
00:53:13 | * | def-pri-pub joined #nim |
00:58:19 | * | ryanhowe joined #nim |
01:12:44 | * | Jesin quit (Quit: Leaving) |
01:20:14 | * | Jesin joined #nim |
01:23:23 | * | libman quit (Quit: Connection closed for inactivity) |
01:24:10 | * | dhalinar joined #nim |
01:26:15 | * | user0 quit (Quit: user0) |
01:26:50 | FromGitter | <zacharycarter> (https://files.gitter.im/nim-lang/Nim/z5Fq/Render2.png) |
01:28:41 | * | user0 joined #nim |
01:30:46 | * | user0 quit (Client Quit) |
01:33:13 | * | user0 joined #nim |
01:33:54 | * | kafke joined #nim |
01:37:27 | * | chemist69 quit (Disconnected by services) |
01:37:32 | * | chemist69_ joined #nim |
01:38:19 | * | Jesin quit (Ping timeout: 255 seconds) |
01:38:28 | * | kafke quit (Ping timeout: 252 seconds) |
01:42:24 | * | yglukhov joined #nim |
01:43:52 | * | Jesin joined #nim |
01:45:47 | * | dhalinar quit (Ping timeout: 258 seconds) |
01:46:35 | * | yglukhov quit (Ping timeout: 240 seconds) |
01:49:28 | * | dhalinar joined #nim |
01:49:54 | * | SusWombat joined #nim |
01:50:20 | SusWombat | Anyone here using nim in vscode and has a idea why i dont get autocompletion for nimble modules? |
01:58:48 | SusWombat | oh ... nvm i should try installing nimsuggest first |
01:59:56 | SusWombat | the aur package (arch) for nimsuggest says "This is now part of Nim itself." |
02:00:00 | SusWombat | is this true? |
02:02:47 | * | JappleAck quit (Quit: Leaving) |
02:12:43 | FromGitter | <zacharycarter> SusWombat: I think you have to install it with koch tools |
02:12:47 | FromGitter | <zacharycarter> but I could be wrong |
02:13:01 | SusWombat | yeah |
02:13:19 | SusWombat | im currently trying to decide if i should just compile nim on my own or use choosenim |
02:14:05 | FromGitter | <zacharycarter> I do the former on my osx machine |
02:14:13 | FromGitter | <zacharycarter> I've used choosenim on other operating systems |
02:18:02 | SusWombat | im going to try choosenim |
02:19:37 | shashlick | I was building myself on Windows until recently when I moved to choosenim. It can pull from head so might as will leverage it instead of diy |
02:31:18 | * | def-pri-pub quit (Quit: Leaving.) |
02:32:05 | * | SusWombat quit (Remote host closed the connection) |
02:32:55 | * | dhalinar quit (Ping timeout: 252 seconds) |
02:33:14 | * | SusWombat joined #nim |
02:34:57 | * | stisa quit (Ping timeout: 240 seconds) |
02:44:06 | * | rauss quit (Quit: WeeChat 1.9.1) |
02:44:15 | * | rauss joined #nim |
02:44:29 | * | dddddd quit (Remote host closed the connection) |
02:44:29 | rauss | I love the tensor lib blog post. Great read |
02:44:58 | * | dmu quit (Quit: leaving) |
02:45:11 | FromGitter | <zacharycarter> @mratsim wrote it |
02:52:26 | * | smt quit (Ping timeout: 246 seconds) |
02:53:41 | FromGitter | <zacharycarter> I think I should start a stream - for 3d modeling and programming Nim |
02:53:56 | FromGitter | <zacharycarter> dom96 gave me the idea but I think it's a good one |
02:54:06 | rauss | I've often considered starting to stream my programming and gamedev stuff |
02:54:27 | rauss | it would almost certainly motivate me to do it more frequently, if it worked out |
02:55:23 | rauss | The only reason I haven't is laziness. We should each go for it |
02:56:29 | FromGitter | <zacharycarter> yeah it might get me more focused to work on specific things and get things done faster |
02:57:43 | * | endragor joined #nim |
03:05:07 | SusWombat | Im trying to learn opengl a bit. As there are no glew buinings what would i use instead? |
03:05:18 | SusWombat | @zacharycarter maybe? |
03:09:39 | FromGitter | <zacharycarter> SusWombat you don't need glew if you use the Nim opengl bindings |
03:09:48 | SusWombat | oh ok |
03:09:51 | FromGitter | <zacharycarter> the extensions are available via the function loadExtensions |
03:10:57 | SusWombat | thanks |
03:11:32 | SusWombat | Im probably going to give anyways. But i atleast want to try :D |
03:12:07 | FromGitter | <zacharycarter> I recommend https://learnopengl.com/ |
03:12:26 | SusWombat | Hm ok |
03:12:39 | SusWombat | im currently started open.gl as it offers sdl as a option |
03:13:20 | SusWombat | but i guess for learning it wouldnt matter if id use glfw instead of sdl right? |
03:34:08 | FromGitter | <zacharycarter> nope |
03:34:30 | FromGitter | <zacharycarter> whether you choose sdl2 or glfw3 should have little impact suswombat |
03:34:38 | SusWombat | ok |
03:34:49 | FromGitter | <zacharycarter> I recommend sdl2 |
03:34:59 | FromGitter | <zacharycarter> esp if you want to get into things like webassembly eventually |
03:35:06 | SusWombat | yeah but the tutorial uses glfw so wouldnt it be easier to just use that? |
03:35:25 | SusWombat | if i would actually use opengl for something real id use sdl anyway |
03:36:08 | SusWombat | Only thing that worrys me a bit that i have to learn 3d stuff when learning opengl. And im not intrested in 3d at aöö |
03:36:09 | SusWombat | all* |
03:43:35 | FromGitter | <zacharycarter> you don't HAVE to learn 3d |
03:43:44 | FromGitter | <zacharycarter> but you need to know linear algebra |
03:44:18 | FromGitter | <zacharycarter> I'd go through learning opengl - they even have an example for building a 2d game |
03:44:39 | * | yglukhov joined #nim |
03:44:44 | FromGitter | <zacharycarter> glfw3 / sdl2 are just the windowing library - but sure you could start with glfw3 if you're not familiar with either library |
03:48:41 | * | yglukhov quit (Ping timeout: 240 seconds) |
04:00:43 | * | Elronnd quit (Ping timeout: 276 seconds) |
04:03:03 | UxerUospr | What's the fastest way to check if a string is in a sequence? |
04:05:20 | * | Elronnd joined #nim |
04:30:04 | FromGitter | <TheSuspiciousWombat> @zacharycarter Do you have any idea if there is a site which translates glfw call to sdl? like not automaticly but some kind of documentation/ressource |
05:19:57 | FromGitter | <x86128> Hello! Newbie question. ⏎ Trying to compile this simple code: ⏎ https://gist.github.com/x86128/645835a3f876625ce022fb5283428813 ⏎ ⏎ and got compile time error: ... [https://gitter.im/nim-lang/Nim?at=59e592fde44c43700a41530a] |
05:35:18 | * | kafke joined #nim |
05:37:41 | * | UxerUospr quit (Quit: Lost terminal) |
05:39:41 | * | kafke quit (Ping timeout: 240 seconds) |
05:41:33 | FromGitter | <Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59e5980c210ac26920f632d0] |
05:41:43 | FromGitter | <Bennyelg> you should await you response since it's Async. |
05:41:52 | FromGitter | <Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59e5981fbbbf9f1a386e1c93] |
05:46:54 | * | yglukhov joined #nim |
05:47:23 | FromGitter | <x86128> waitFor definition: |
05:47:26 | FromGitter | <x86128> proc waitFor*T (fut: Future[T]): T = ⏎ ## *Blocks* the current thread until the specified future completes. ⏎ while not fut.finished: ⏎ ⏎ ```poll()``` ... [https://gitter.im/nim-lang/Nim?at=59e5996df7299e8f53f820c2] |
05:48:14 | FromGitter | <x86128> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59e5999ef7299e8f53f82153] |
05:48:28 | * | retropikzel joined #nim |
05:49:06 | FromGitter | <x86128> So actually await perform resolve of Future? |
05:51:30 | * | yglukhov quit (Ping timeout: 258 seconds) |
05:56:49 | FromGitter | <Bennyelg> Yea |
05:58:03 | * | retropikzel left #nim (#nim) |
06:04:25 | * | kobi7 joined #nim |
06:05:20 | kobi7 | hi guys, I was wondering if there is a way to define postfix procs - the arguments are to the left of the proc name |
06:05:39 | kobi7 | I'm just a beginner but I think I saw infix syntax for templates |
06:06:36 | kobi7 | or perhaps something like (a:2, b:"hello").args.callme |
06:06:47 | kobi7 | convert a tuple to proc arguments |
06:08:30 | kobi7 | no big deal - just wondering if I missed it, since nim is so flexible. |
06:09:51 | Araq | kobi7: there are no postfix procs |
06:10:05 | kobi7 | ok, np |
06:10:16 | Araq | so that we can parse a + + b unambiguously without symbol table |
06:10:31 | Araq | (that is parsed as (a + (+b) |
06:10:34 | Araq | ) |
06:14:15 | kobi7 | Are there data structures other than the ones in the stdlib/Collections? |
06:14:25 | * | PMunch joined #nim |
06:14:25 | kobi7 | specifically a dependency graph |
06:15:06 | kobi7 | hi PMunch |
06:16:27 | kobi7 | That's weird: all the nimble package definitions are in one json file? not very scalable... |
06:17:03 | kobi7 | (multiple pull requests) |
06:18:01 | PMunch | Hi kobi7 |
06:18:45 | Araq | kobi7: yeah I argued for a database back in the days |
06:19:02 | Araq | eventually we'll need to patch it |
06:19:16 | Araq | but for now it suffices |
06:20:12 | Araq | oh also nimble supports multiple packages.json files |
06:20:21 | kobi7 | multiple files would be fine. I just saw that now so commented. |
06:21:11 | kobi7 | db actually has benefits that it's easier/faster to download |
06:21:21 | kobi7 | brb |
06:22:36 | PMunch | But that would mean it would have to be stored and managed somewhere else. Git and GitHub are good tools for managing a shared resource. |
06:22:47 | Araq | DBs can also be queried and don't have ascii alignment / whitespace problems, missing commas, missing }'s |
06:23:20 | * | nsf joined #nim |
06:23:27 | Araq | and are not under the "git diff" oppression |
06:24:31 | kobi7 | you can have both world: build a binary out of the github resources. |
06:24:48 | kobi7 | nimble can then work with the binary to do most things. |
06:24:57 | Araq | that doesn't solve much |
06:25:10 | Araq | people would still need to make PRs against the packages.json |
06:25:28 | kobi7 | to tell the truth I prefer simple solutions. multiple files is just fine imo. |
06:26:43 | PMunch | We could have just a folder of .nimble files in a folder on GitHub then a server somewhere that hooks into the repo and builds a DB from that automatically |
06:27:22 | PMunch | Best of both worlds, you get Git/GitHub as an easy and familiar front-end, and a DB for ease of access for tools. |
06:27:35 | kobi7 | from optimization perspective, every "release" the information is already known, that's why a database, or a binary representing dependency graph and other relevant structures is fastest for nimble to have at its disposal. That would mean generating binaries every "release" - but the dynamic way is fine in my opinion. it's not that there are millions of packages... |
06:27:57 | Araq | a folder of .nimble files is already a much better database than json |
06:28:13 | Araq | nice idea, never really occured to me |
06:28:28 | PMunch | There might be some speed issues with lots of small files though.. |
06:29:06 | PMunch | But I guess nimble itself could download and build them into one db for local usage |
06:29:10 | Araq | yup |
06:29:14 | kobi7 | someone once said premature optimization is the root of all evil |
06:29:21 | PMunch | That would actually make a lot more sense :P |
06:29:59 | kobi7 | yes, that is a good idea. adding to an existing db when new packages change. |
06:30:17 | kobi7 | git is already very good at giving us only the deltas |
06:30:47 | kobi7 | but you would have to hold all the files locally. |
06:31:52 | PMunch | I don't think the overhead of that would be too bad |
06:32:34 | kobi7 | can github hold a zip file? |
06:32:51 | kobi7 | nevermind, that has no benefit |
06:32:56 | FromGitter | <gokr> I built a similar solution years ago actually.For Squeak. |
06:32:57 | PMunch | It can, but then you loose all of gits capabilities |
06:33:29 | PMunch | You could zip up all the files locally and simply unpack them before a pull if it's a problem |
06:33:36 | FromGitter | <gokr> Clients downloaded a complete snapshot, sing fkle. |
06:33:59 | FromGitter | <gokr> A serialized model. |
06:34:05 | PMunch | https://stackoverflow.com/questions/8522619/how-do-i-get-the-list-of-files-about-to-be-updated-by-git-pull-without-knowing |
06:34:13 | PMunch | You could of course also do that |
06:34:50 | PMunch | So download a full copy once, then run that command to look for new/changed files and selectively pull only those, storing them in a db and then deleting them |
06:35:07 | PMunch | Oh wait, git would see them as deleted though.. |
06:35:11 | FromGitter | <gokr> The idea with the model was of course to open up tool crafting. |
06:36:07 | * | kafke joined #nim |
06:36:08 | PMunch | Or would it if they are not checked in? |
06:36:10 | kobi7 | ok ok this is already over engineering for mostly a non-issue |
06:36:30 | Araq | quick, what is -1.#IND ? |
06:36:30 | PMunch | gokr, Squeak |
06:36:32 | PMunch | ? |
06:36:42 | FromGitter | <gokr> Www.squeanr |
06:36:44 | PMunch | What is #IND? |
06:36:50 | FromGitter | <gokr> Www.squeak.org |
06:37:01 | Araq | PMunch, it's Windows lingo for NaN (omg) |
06:37:11 | kobi7 | hehe |
06:37:22 | kobi7 | Indecisive :-) |
06:37:45 | PMunch | Oh cool, gokr |
06:38:14 | PMunch | Ah right, been a while since I've done anything with Windows :P |
06:39:08 | kobi7 | Araq: say I wanted to port some code over to nim. Say also that I want to be adventurous and not do it manually. But still not tackle the whole thing. What are some good ideas for that? |
06:40:04 | FromGitter | <Varriount> kobi7: You could try using C2Nim |
06:40:05 | kobi7 | Is there something like a frontend feature in nim? someLang -> NimAST -> Nim text ? |
06:40:40 | kobi7 | thanks Varriount |
06:40:41 | FromGitter | <Varriount> Depending on how complex the code in question is, it can transform logic and such |
06:40:57 | * | kafke quit (Ping timeout: 258 seconds) |
06:41:08 | kobi7 | it wasn't written in c though. |
06:41:32 | kobi7 | I think I will use your suggestion for missing functionality like data structures etc. |
06:41:43 | Araq | patch c2nim to do it, every curly braced language is close enough :P |
06:42:42 | * | kafke joined #nim |
06:42:47 | kobi7 | i'll take a look at the sources. |
06:43:18 | Araq | what language are we talking about? |
06:43:37 | * | gokr joined #nim |
06:44:20 | FromGitter | <Varriount> Araq: Regarding Nimble files, what Package Control (sublime's plugin manager) does is group the files in folders, organized alphabetically. |
06:44:50 | gokr | PMunch: I was heavily involved in Squeak, even led the project for some time. So me being here in Nim is... kinda weird. Smalltalk and Nim are quite far from each other. |
06:46:02 | Araq | varriount: I have no idea how to cut vids with HandBrake |
06:46:16 | Araq | isn't there a tool for idiots like me? |
06:46:30 | PMunch | Well gokr, they do share some ideas |
06:46:41 | PMunch | In a roundabout way |
06:46:43 | Araq | show the timeline, let me move sections, cut and paste |
06:46:48 | gokr | The idea with SqueakMap (the package manager I built, still operational btw) was that since Squeakers all run the same "IDE", and it's also fully live and programmable - the meta model should also cover packages, but also developers etc. |
06:46:55 | Araq | what's so hard about that, UI-wise? |
06:46:58 | PMunch | Araq, use kdenlive :) |
06:47:04 | PMunch | It's pretty easy to use |
06:47:15 | FromGitter | <Varriount> Araq: Hm, handbrake does encoding only. |
06:47:25 | * | kobi7 quit (Quit: Leaving) |
06:47:28 | * | kafke quit (Ping timeout: 255 seconds) |
06:47:33 | gokr | So you could trivially in a Smalltalk textspace type things like "SqueakMap allPackages select: [:each | each canBeUpdated]" - or things like that. |
06:47:41 | FromGitter | <Varriount> Windows Movie Maker? |
06:47:44 | PMunch | Araq, or you could try Windows Movie maker :P |
06:47:53 | PMunch | Haha, nice one Varriount |
06:48:12 | FromGitter | <Varriount> I mean, if you want simple... |
06:48:14 | gokr | Araq: I use OpenShot, very nice to do things like that. |
06:48:22 | PMunch | Has it gotten any better in post XP versions of Windows? |
06:48:24 | gokr | Not sure if it runs on your platform though. |
06:49:23 | gokr | Araq: http://www.openshot.org/download/ |
06:49:25 | PMunch | Yeah OpenShot seems like a good alternative |
06:49:44 | gokr | It's very nice, I have "produced" several videos of my daughter's figure skating competitions with that. |
06:50:08 | gokr | And it has nice trivial profiles for encoding in the end for youtube etc |
06:50:54 | FromGitter | <Varriount> gokr: Neat! I'd like to go skating (or for preference, skiing) at some point |
06:51:26 | PMunch | I've used lots of different editing software, and kdenlive is the one which hits closest to the "big boys" like Adobe Premiere and Sony Vegas |
06:51:26 | FromGitter | <Varriount> Not much chance to do it here on the east coast, despite all the hills. |
06:51:40 | PMunch | Both of which are great tools by the way, but boy do they cost a pretty penny |
06:54:38 | gokr | Varriount: We go up north each year to ski, for about 1 week. It's a swedish thing - the "sport week" - all kids are on school leave. Me and Maya snowboard though. |
06:55:09 | PMunch | Araq, is there a way to disable an event handler in Karax? |
06:55:17 | Araq | I don't get OpenShot lol |
06:55:25 | gokr | Araq: ? |
06:55:27 | Araq | PMunch: don't add it after a refresh? |
06:55:30 | PMunch | gokr, nice snowboarding! |
06:55:39 | Araq | why are there 5 tracks? |
06:55:48 | Araq | why doesn't it run my video? |
06:56:02 | gokr | Araq: It's a two step thing - you need to to first "import" - then drag down onto the timeline. |
06:56:05 | PMunch | Araq, oh right Karax is completely redrawn after each thing |
06:56:05 | Araq | it says "preview" it's all black |
06:56:07 | gokr | IIRC |
06:56:23 | gokr | Drag your movie down onto the timeline. |
06:56:35 | PMunch | Araq, missing a codec or something perhaps? |
06:57:04 | gokr | I have version 1.4.3 though, not sure what you have. |
06:57:21 | Araq | it's a flv file |
06:57:26 | Araq | could that cause problems? |
06:57:37 | gokr | No |
06:57:41 | gokr | Don't think so. |
06:57:48 | gokr | So you have it in the "Project Files" list? |
06:57:53 | PMunch | Can flv files cause anything but problems? |
06:58:01 | gokr | What about dragging it down onto the "Track 1" or "Track 2"? |
06:58:03 | Araq | gokr: yes |
06:58:22 | Araq | I did drag it |
06:58:29 | Araq | preview is black |
06:58:37 | gokr | So you got an "orange plate" on the track? |
06:58:38 | * | Laon joined #nim |
06:58:52 | gokr | Representing the clip I mean. |
06:58:57 | Araq | no a black rectangle |
06:59:07 | Araq | that said, my firewall prevented some things |
06:59:14 | Araq | let me try disabled |
06:59:15 | gokr | hmm. |
06:59:41 | PMunch | Your firewall prevented video playback? What kind of firewall do you have? |
07:00:34 | gokr | Araq: Just tried with an flv too - works just fine. |
07:00:44 | gokr | But I get an orange "plate" on the Track, not a black one. |
07:01:22 | gokr | Araq: And if you right click on it, pick "Properties", you should see a bunch of meta data of the clip. |
07:02:00 | gokr | Oh, wow. I use an ancient version :) |
07:02:12 | * | lastjedi joined #nim |
07:03:03 | * | Arrrr joined #nim |
07:05:47 | * | Yardanico joined #nim |
07:07:12 | Yardanico | hi everyone! |
07:07:34 | Yardanico | dom96, it seems you've already reported an issue with concepts in your book - https://github.com/nim-lang/Nim/issues/6108 |
07:11:05 | PMunch | Hmm, is there a way to forcibly override something? |
07:11:40 | PMunch | ie. module 1 imports a proc helloWorld, I want to allow that as default but hove proc helloWorld from module 2 override it if it's loaded |
07:12:26 | Yardanico | well simplest solution - you can do that with closures :) |
07:12:40 | PMunch | Hmm, how so? |
07:13:06 | Yardanico | PMunch, in the first module you have "var myproc* = proc ...", and in the second file you do "myproc = proc ..." |
07:13:13 | * | yglukhov joined #nim |
07:13:13 | * | claudiuinberlin joined #nim |
07:13:14 | Yardanico | but maybe this is a little bit hacky |
07:13:33 | PMunch | Aah, that would actually work well enough |
07:15:04 | * | yglukhov_ joined #nim |
07:15:09 | * | yglukhov quit (Read error: Connection reset by peer) |
07:15:10 | * | yglukhov_ quit (Remote host closed the connection) |
07:15:23 | * | yglukhov joined #nim |
07:15:25 | PMunch | Oh wait, this is a macro.. |
07:15:35 | Araq | ok kdenlive works |
07:15:46 | Araq | nice |
07:15:52 | PMunch | Nice Araq |
07:16:01 | Yardanico | Araq, yay, will you upload your recording today? |
07:16:04 | PMunch | Are you editing your previous stream? |
07:16:16 | Yardanico | yeah, he said he'll remove swear words & bad jokes :P |
07:16:26 | PMunch | Boooo |
07:16:37 | PMunch | Much more fun with them :P |
07:17:20 | PMunch | But I guess it gives me an incentive to look at the stream :P |
07:21:31 | FromGitter | <mratsim> So people start to notice my “Why rust fails hard at scientific computing” post: https://andre-ratsimbazafy.com/why-rust-fails-hard-at-scientific-computing/#comments |
07:22:13 | * | Vladar joined #nim |
07:22:49 | Yardanico | mratsim: btw, about arrays - you can any size array with third-party module :P |
07:22:54 | Yardanico | (in rust) |
07:23:22 | FromGitter | <mratsim> 2 years ago I couldn't |
07:23:34 | Yardanico | lol, https://andre-ratsimbazafy.com/why-rust-fails-hard-at-scientific-computing/#comment-3570217857 |
07:23:43 | Yardanico | his second point is not true because nim has arrays |
07:23:50 | Yardanico | and they can be of (almost) any size :P |
07:23:59 | Yardanico | and they don't need GC afaik |
07:24:22 | Araq | ok, let's cut here within the sentence. there is no better solution. nobody will notice |
07:24:29 | FromGitter | <Bennyelg> hey anyone here worked with pandads before? |
07:24:32 | FromGitter | <Bennyelg> pandas* |
07:25:31 | FromGitter | <mratsim> yes |
07:25:33 | FromGitter | <mratsim> a lot |
07:25:49 | FromGitter | <mratsim> I breath pandas :P |
07:25:50 | FromGitter | <Bennyelg> My friend have an issue he has some dataframe with some field which is very long field |
07:26:08 | FromGitter | <Bennyelg> he gets it with yada yada and after 50 chars it gets ... dots |
07:26:11 | FromGitter | <Bennyelg> (3 dots) |
07:26:28 | FromGitter | <mratsim> it’s just display then no? |
07:26:45 | FromGitter | <mratsim> maybe PM me |
07:27:00 | FromGitter | <Bennyelg> how do I pm |
07:27:44 | Yardanico | click on mratsim's avatar |
07:27:51 | Yardanico | and then click "chat privately" |
07:30:40 | FromGitter | <mratsim> done, problem solved :) |
07:30:57 | FromGitter | <mratsim> (it was a display option) |
07:32:47 | SusWombat | Anyone a idea why this code fails when i have gl.loadExtensions() in it? https://hastebin.com/otuzurexap.js |
07:33:18 | SusWombat | i get https://gist.github.com/TheSuspiciousWombat/cc71c52335e61417d027587c8b9c9054 |
07:33:36 | PMunch | Can I use "when defined" to check if a macro exists? |
07:33:51 | Yardanico | you can use when compiles probably |
07:34:05 | Yardanico | "when compiles(mymacro(stuff)):" |
07:35:02 | * | Arrrr quit (Quit: Leaving.) |
07:35:16 | FromGitter | <mratsim> wow this thread is depressing: https://www.reddit.com/r/programming/comments/76uk7a/you_fired_your_top_talent_i_hope_youre_happy/ |
07:36:16 | * | user0 quit (Remote host closed the connection) |
07:36:39 | * | user0 joined #nim |
07:37:17 | PMunch | Thanks Yardanico, works like a charm :) |
07:38:45 | PMunch | Fun-fact, the font used in the "Medium" title is about 2000 euros for a high-traffic site |
07:38:57 | * | flyx quit (Quit: ZNC - http://znc.in) |
07:39:31 | * | flyx joined #nim |
07:41:27 | * | claudiuinberlin quit (Ping timeout: 240 seconds) |
07:45:22 | miran | Bennyelg - your friend uses Jupyter Notebook? it is just a display |
07:51:09 | SusWombat | ok got my problem resolved |
07:59:14 | * | jjido joined #nim |
08:06:44 | Araq | PMunch, when declared(mymacro) |
08:07:28 | Yardanico | oh |
08:09:56 | PMunch | Ah, declared |
08:10:05 | PMunch | I knew there was some way to do it |
08:10:14 | PMunch | But I found out there was a better awy |
08:10:16 | PMunch | way* |
08:11:01 | Yardanico | btw, this is list comprehension from nimboost library (I "improved" it a bit) - https://gist.github.com/Yardanico/c37bf2236ce5665aba6fea3af6c82802 |
08:11:21 | Yardanico | yeah, code generated by macro is a bit horrible |
08:11:32 | Yardanico | because you don't need to specify types :P |
08:16:51 | Araq | ok I still fail at Kdenlive |
08:17:17 | Araq | I want to *type* the start and the end of the video, before that and after that should be removed |
08:17:46 | Araq | it's too long for this pixel based cut nonsense |
08:20:32 | euantor | I don't know if there is a way to do that in kdenlive, though it's been a while since I had to use it |
08:20:55 | euantor | I believe you can jus use the mouse or the arrow keys to move the cursor to a start/top position and set a slice marker |
08:21:33 | jjido | Doesn't it "zoom in" on your drag position? |
08:22:52 | PMunch | You can zoom |
08:23:09 | PMunch | But I think there is a way to split at a specific point |
08:23:45 | PMunch | Of course you can also use the frame by frame stepping buttons to position yourself and then cut |
08:26:08 | gokr | Hum, 95 comments: https://www.reddit.com/r/rust/comments/76olo3/why_rust_fails_hard_at_scientific_computing/ |
08:27:19 | Yardanico | and 60 upvotes :) |
08:27:53 | Yardanico | so they generally agree |
08:29:32 | * | jjido quit (Ping timeout: 260 seconds) |
08:29:56 | * | jjido joined #nim |
08:30:53 | Yardanico | "Personally i don't know of a language that has statically typed stack allocated arbitrary sized arrays. " does nim have that? |
08:33:06 | euantor | If by arbitrary sized arrays they mean that they resize dynamically, no. Arrays are fixed size |
08:35:00 | Araq | yardanico: no but C99 and Ada come to mind |
08:35:06 | Araq | and Fortran too iirc |
08:35:37 | Araq | it's not that useful though, you cannot move things around when it's on the stack |
08:35:53 | Araq | so most languages use the heap for that. |
08:36:08 | * | lastjedi quit (Ping timeout: 246 seconds) |
08:36:09 | Araq | that doesn't mean it has to be GC'ed though, C++ destructors work fine for this too |
08:36:37 | Araq | and Nim is getting better destructors ... :P |
08:42:25 | gokr | Araq: IIRC you said something about a new story on concurrency (or such) last week. In the parasail context. Anything to spill? |
08:43:34 | * | kafke joined #nim |
08:45:33 | PMunch | When you get a redefinition error it should really tell you were the last definition was |
08:46:53 | PMunch | Right now I'm getting a redefinition error for procedure that has a type named by a symbol from "genSym(nskType)" which should mean that it should never collide.. |
08:48:22 | * | kafke quit (Ping timeout: 264 seconds) |
09:00:21 | Calinou | hi :) I compiled latest Nim HEAD, and I'm getting this when compiling a godot-nim project: |
09:00:45 | Calinou | https://paste.ee/p/zIk2S |
09:00:45 | PMunch | Please use pastebin if it's a long output |
09:00:51 | Calinou | it's only 2 lines, but hastebin was failing me |
09:00:57 | PMunch | Okay good :P |
09:01:16 | PMunch | I was afraid you were about to paste in a whole compile-output |
09:01:37 | PMunch | Hmm, that site is blocked by wy firewall.. |
09:01:42 | Calinou | compiling Nim itself works, same for a very simple program |
09:01:48 | Yardanico | C:\Users\hugol\.nimble\pkgs\compiler-#head\compiler\rodutils.nim(25, 14) Error: type mismatch: got (array[0..80, char], string, BiggestFloat) |
09:01:53 | Calinou | yeah, that |
09:02:14 | Yardanico | Calinou, did you compile against nim master or devel? |
09:02:15 | Calinou | this is godot-nim by the way, https://github.com/pragmagic/godot-nim |
09:02:19 | Calinou | I'm on the master branch |
09:02:19 | Yardanico | yeah, I know it :) |
09:02:27 | Yardanico | try to compile nim from devel |
09:02:28 | Yardanico | https://github.com/nim-lang/Nim/commit/3308d265816b342a842e7cabef492a54ea722e74 |
09:02:34 | Calinou | I'll try that |
09:04:13 | Yardanico | the thing is |
09:04:28 | Yardanico | if you've compiled nim from master branch, you should install "compiler" package from master branch too |
09:04:32 | Yardanico | not from "head" |
09:04:44 | Yardanico | because otherwise they would have different versions |
09:05:01 | Araq | gokr: experiments are on-going, I don't want release something that is completely unfinished |
09:05:21 | gokr | And the oneliner hint on what it is? :) |
09:05:38 | gokr | I gather you are working on removing GC need for string, seq and... something. |
09:05:51 | gokr | But ... not sure how that relates to concurrency. |
09:06:26 | gokr | But oh, ok, yeah, I guess non-GC thingies are more easily shared of course. |
09:09:58 | Calinou | Yardanico: how do I install that package from master branch? using Nimble, or…? |
09:10:37 | Yardanico | Calinou, probably "nimble install compiler@#master" |
09:11:00 | Calinou | alright |
09:11:07 | Calinou | doesn't that just install the compiler using Nimble? rather than a manual Git clone |
09:11:24 | Yardanico | Calinou, yes, it just installs the compiler using Nimble |
09:11:41 | Calinou | I already have it installed, though |
09:11:47 | Yardanico | well you have head version |
09:11:57 | Calinou | yeah, but I switched to the devel branch |
09:13:04 | Calinou | https://hastebin.com/elusazegoj.txt |
09:13:05 | Calinou | :( |
09:13:12 | Calinou | I get this with the #master compiler I just installed |
09:13:22 | Calinou | but yeah, that's not the devel branch |
09:18:28 | PMunch | Hmm, for genui I currently have three kinds of widgets "show" to show information, "edit" to have an editable field, and "call" to call procedures (typically a button). I now also want to add support for a selections, but I'm unsure if they should be a separate type or a special case of edit. They would work pretty much like an edit in that you change some variable, but only a set of options would be allowed. |
09:30:14 | * | Vladar quit (Quit: Leaving) |
09:33:13 | Calinou | endragor: oh, you're around, you might know the solution to this problem :P |
09:33:15 | Calinou | I thought you weren't on IRC |
09:36:07 | Yardanico | Calinou, you can also find him in godot discord |
09:42:02 | Araq | PMunch, can't export my video :-) 'melt.exe' not found |
09:42:15 | Araq | and then I copied that into shared/ and every DLL it might need |
09:42:26 | Araq | and it reports "success in 0s" |
09:42:34 | Araq | having done nothing whatsoever |
09:42:49 | Calinou | Yardanico: oh, yeah |
09:42:51 | Yardanico | Araq, maybe you need to choose different type of export? |
09:43:26 | Yardanico | but I worked with kdenlive only on linux :P |
09:43:42 | Yardanico | so package manager installs everything beforehand |
09:44:44 | Araq | Yardanico, no export type works |
09:44:51 | Yardanico | oh |
09:45:59 | Araq | Yardanico, cannot use it on Linux my Linux package manager decided somebody has its lock and I cannot be bothered to fix it |
09:46:21 | * | Vladar joined #nim |
09:46:47 | Araq | since everything else hardly works anyway |
09:48:15 | Yardanico | Araq, found on reddit: |
09:48:15 | Yardanico | They misplaced the melt.exe. It is in the main directory when it should be in the share directory. Cut and past melt.exe into the share folder. That should fix that problem. |
09:48:25 | Yardanico | ten days ago |
09:49:08 | Araq | did that, changed things from "cannot find melt.exe" to "lying" |
10:05:12 | Araq | Yardanico, where are the poll results again? |
10:05:24 | Yardanico | Araq, http://www.strawpoll.me/14163114/r |
10:06:49 | FromGitter | <edubart> @Araq suggested an use case for the new destructors https://github.com/nim-lang/Nim/issues/6524 |
10:08:29 | Araq | "reading and writing to stack memory is much faster" ... have CPU caches stopped working for heap memory? ;-) |
10:10:44 | FromGitter | <edubart> the first read/write can be slow, but the major slowdown is allocation/deallocation |
10:11:06 | Araq | that's not how the hardware works, the cache is cacheline based and memory prefetchers do not look for specific address regions either. it's all about keeping things contiguous in memory |
10:12:48 | Araq | you're right about the allocations |
10:13:55 | FromGitter | <edubart> in arraymancer we have gained speed ups by allocating on the stack, but we had to work with fixed lengths arrays atm |
10:14:37 | FromGitter | <edubart> I want to change later to variable length arrays in some hot areas to makes things more flexible |
10:14:41 | endragor | Calinou: try to remove all compiler packages from your nimble repo and build again. I guess this is the problem: https://github.com/nim-lang/nimble/issues/318 . You had older compiler#head trying to be compiled with newer Nim. |
10:16:56 | Calinou | endragor: done that, installed compiler#head, now I get https://hastebin.com/ibanupunuw.txt |
10:16:58 | * | JappleAck joined #nim |
10:17:06 | Calinou | (I did "nimble install godot") |
10:25:37 | dom96 | yay, got my SNES classic edition finally |
10:25:44 | endragor | ugh... try either using released Nim version without manually installing `compiler` package (just `nimble install godot`) or changeset eeb2661a28069c94b44cf965817709b0cd9886d7 (does work for me). There are several breaking changes in devel and I'll need to adjust godot-nim for them. |
10:25:49 | endragor | Calinou |
10:27:35 | Yardanico | dom96, nice! |
10:28:01 | dom96 | Sadly my stock notifier didn't help me at all |
10:28:35 | FromGitter | <edubart> @Araq if the array is on the stack together with all the local variables on the stack too, means that everything is on the same contiguously memory region, potentially in the same cacheline, so reading/writing to stack memory could be faster than accessing and writing to distinct regions (if the array was on the heap) |
10:29:48 | dom96 | Araq: At least enable archiving on twitch if it's going to take you this long to upload the videos |
10:29:58 | Yardanico | yeah |
10:30:06 | Yardanico | you can export them directly from twitch btw |
10:30:09 | Yardanico | to youtube |
10:30:15 | dom96 | oh really? nice |
10:30:26 | dom96 | I made this a showstopper https://github.com/nim-lang/Nim/issues/6108 |
10:30:43 | Yardanico | it's fixed in zahary branch |
10:30:53 | dom96 | still deserves a showstopper label |
10:30:59 | dom96 | it needs to be fixed in the next release |
10:31:07 | Yardanico | it probably would |
10:31:52 | Yardanico | dom96, https://www.youtube.com/watch?v=7yBivc8DOus a video tutorial for exporting :) |
10:34:23 | Yardanico | I'm excited because @zahary also fixed concepts matching for arrays :) |
10:34:43 | Yardanico | so we can have proper iterable concept working for all iterable-like types |
10:36:20 | * | sleepyqt joined #nim |
10:44:26 | * | kafke joined #nim |
10:47:50 | Araq | edubart: that only applies when the arrays are small |
10:49:01 | * | kafke quit (Ping timeout: 252 seconds) |
10:49:55 | FromGitter | <edubart> and that's my use case, usually use arrays of the size 4 or 2 ints, but want to be able to use with larger sizes |
10:50:27 | Araq | oh sorry |
10:51:04 | Yardanico | Araq, wait, is https://github.com/nim-lang/Nim/commit/ce2c795379c6b2101a28c5dc1f66dfda35858cbe a proper fix? I thought it should be fixed somewhere in the compiler, and not in the cgen/jsgen |
10:51:16 | Yardanico | because js would still have the same issue (however it can be fixed easily too) |
10:51:58 | Araq | zahary knows what he's doing |
10:52:22 | Araq | you're right that JS could be affected too |
10:52:33 | Yardanico | Araq, it's easy to fix too - jsgen.nim line 1078 |
10:52:44 | Yardanico | add tyUserTypeClasses here and done |
10:53:36 | Calinou | C:\Users\hugol\.nimble\pkgs\godot-0.6.1\godotapigen.nim(5, 17) Error: cannot open 'compiler\ast' |
10:53:49 | Calinou | I get this after deleting compiler#head from .nimble/pkgs, then compiling Nim at the commit endragor mentioned |
10:54:02 | Calinou | I'm a bit confused with the relationship between Nimble and the compiler, sorry |
10:54:29 | Yardanico | Calinou, well you don't neccesarily need to have compiler source with nim |
10:54:40 | Yardanico | so you need to install it through nimble to allow packages to import compiler modules |
10:54:57 | endragor | Calinou: do `nimble install godot -d` |
10:55:25 | Calinou | what does -d do? |
10:55:50 | Calinou | looks like it works! thanks |
10:58:24 | endragor | installs dependencies of the package - you had to reinstall them after deleting `compiler` package, because it's a dependency |
11:10:47 | * | livcd quit (Quit: Changing server) |
11:14:51 | * | livcd joined #nim |
11:15:31 | * | vlad1777d joined #nim |
11:16:08 | Calinou | endragor: might be more of a Nim question, but how do I use a setter that's in a node? such as `text` in label |
11:16:22 | endragor | label.text = "hello" |
11:17:21 | Yardanico | Calinou, any proc with the name like `somename=` is a setter |
11:17:31 | Calinou | what about getters? just "label.text"? |
11:17:36 | Yardanico | yes |
11:17:59 | Yardanico | if label.text is a proc, you can also call it like label.text() |
11:18:02 | Yardanico | but label.text would work too |
11:19:30 | Calinou | also, how does type conversion work? I have a proc which returns an int, and neither `myProc(40).string` or `string(myProc(40))` work, for concatenating with other strings |
11:20:48 | Yardanico | Calinou, $myvar |
11:21:12 | Yardanico | it's conventional to name a procedure which converts your type to string as $ |
11:21:20 | Yardanico | also it allows "echo" to work on your type |
11:21:20 | dom96 | Nimble still depends on the compiler at runtime |
11:21:33 | dom96 | or sorry, no, it depends on the stdlib |
11:21:34 | dom96 | never mind |
11:23:35 | Calinou | with this code, I'm getting an error on lines 14/16: https://hastebin.com/adunagopon.nim |
11:23:45 | Calinou | https://hastebin.com/isawofuzet.txt |
11:24:33 | dom96 | I guess you need to create a Label somehow |
11:24:44 | dom96 | Search for procedures/methods that return a Label |
11:25:14 | Yardanico | well it's a method |
11:25:20 | Calinou | that .nim file is attached to a Label node, so I shouldn't need to create any object |
11:25:22 | Yardanico | an gdobj is a macro which generates godot type |
11:25:50 | endragor | Calinou: self.text = "Fibonacci(40) result: " & $fibo(40) & "\n" |
11:25:52 | dom96 | oh right, so maybe you need to assign to .text? |
11:26:22 | endragor | or just `text = "blabla"` should also work I guess |
11:26:45 | Calinou | this works :) sorry, I'm still a Nim beginner :P |
11:26:58 | Calinou | "self" isn't highlighted in VS Code, so I was confused |
11:26:58 | dom96 | Calinou: Nice to see you getting into it again :) |
11:27:08 | endragor | also better make those `proc` and not `method`. you only need `method` for what you override (like `ready`, `process`, etc) |
11:27:15 | Calinou | (also, I thought Nim didn't feature OOP?) |
11:27:27 | Calinou | last time I checked, the features comparison page said it only had minimal OOP support |
11:27:47 | endragor | `gdobj` is a macro, it does stuff behind the scenes |
11:28:20 | Yardanico | Calinou, it does |
11:28:31 | Yardanico | method is a nim keyword |
11:28:31 | Araq | hmmm can we deprecate .this again? :P |
11:29:04 | Yardanico | Araq, why? :) |
11:29:26 | dom96 | Calinou: What do you consider OOP? |
11:29:34 | Araq | it's implemented as a func/proc call rewrite rule |
11:29:36 | dom96 | Nim supports inheritance and dynamic dispatch |
11:29:50 | Araq | and I'd like a different unrelated rewrite rule |
11:30:07 | Yardanico | well you're free to do everything you want, I don't think this is used very often |
11:30:14 | Yardanico | but it allows to type less code :D |
11:30:19 | crem | I'm totally fine with python's explicit 'self' approach, let's deprecate .this! |
11:30:19 | Yardanico | 5 chars less lol |
11:30:33 | Yardanico | btw, if someone didn't vote yet - http://www.strawpoll.me/14163114 |
11:30:41 | Yardanico | (for araq's live stream) |
11:30:47 | crem | Live stream?? |
11:30:51 | Yardanico | yes |
11:30:56 | Araq | "introduce yet another rewrite rule, take one away" seems fair to me |
11:31:00 | crem | Never heard of those. |
11:31:06 | Araq | considering language complexity |
11:31:21 | Yardanico | crem, two streams by dom96 - https://www.youtube.com/user/d0m96 |
11:31:27 | Yardanico | and also Araq has already streamed twice |
11:31:27 | dom96 | crem: https://www.youtube.com/watch?v=583BwZ7uSro&index=1&list=PLm-fq5xBdPkrMuVkPWuho7XzszB6kJ2My :) |
11:31:31 | Yardanico | but his videos are not yet uploaded |
11:31:57 | FromGitter | <Bennyelg> I need to think about the next package for nim |
11:32:13 | Araq | Bennyelg: do you work on improving the forum? |
11:32:29 | crem | uh, 3 hours.. |
11:32:38 | Yardanico | crem, well like any other programming stream :P |
11:33:03 | Yardanico | yeah, I would like to see forum in the new design |
11:33:14 | Yardanico | because it may be confusing that the forum has old design, while website has a new one |
11:33:19 | dom96 | crem: Check the description for some timestamps |
11:33:33 | crem | Yeah, I don't know in which mode I should be to watch it. It's probably not very entertaining to listen it audio-only while travelling in a train. |
11:33:50 | FromGitter | <Bennyelg> @Araq I would love to try |
11:34:24 | FromGitter | <Bennyelg> I can do some bootstraping it |
11:34:49 | Yardanico | I think nim forum mostly needs design improvements |
11:35:02 | Yardanico | server part is (almost) ok |
11:35:11 | Araq | yes. well |
11:35:23 | Araq | design improvements are most important IMO. |
11:35:31 | FromGitter | <Bennyelg> I can do that I guess |
11:35:34 | Yardanico | btw nim forum has more than 20,000 posts |
11:35:45 | Yardanico | and more than 3k posts :P |
11:35:46 | Araq | whatever else you improve, do not touch the database model |
11:35:54 | FromGitter | <Bennyelg> Did you saw the forum I created with nim? |
11:36:01 | FromGitter | <Bennyelg> I posted some pictures few days ago |
11:36:09 | Araq | yeah that's why I'm asking |
11:36:12 | FromGitter | <Bennyelg> still need more adjustments but its pure nim + jester |
11:36:27 | Araq | I thought it were about improving Nim's forum :P |
11:36:45 | FromGitter | <Bennyelg> :D nah I did it fresh to learn nim along the way |
11:37:15 | FromGitter | <Bennyelg> I must improve in-order to start fixing bugs |
11:37:20 | dom96 | Please use something like Bulma for the new design |
11:37:26 | Araq | but yes, do not touch the DB model or the data itself. |
11:37:49 | FromGitter | <Bennyelg> No of course, I'll fork the project and touch the design here and there and lets see |
11:38:01 | Araq | great, thanks |
11:47:11 | Araq | dom96: ah great idea with the timestamps |
11:47:26 | FromGitter | <Bennyelg> @Araq @dom96 I ran createdb which went fine |
11:47:39 | FromGitter | <Bennyelg> I can't run forums, I need to compile it right? |
11:47:51 | Araq | bennyelg: I think you also need to run editdb |
11:48:32 | FromGitter | <Bennyelg> @Araq No I dont, ( unhandled exception: index PersonStatusIdx already exists) if I try to run it. |
11:48:43 | FromGitter | <Bennyelg> too bad, I implemented to my forums a small migration system |
11:50:39 | euantor | I started looking at the forum, but ran out of time to do much |
11:50:59 | euantor | I also implemented a migration system for work, but need to clean it up and make it work with DBs other than db_mysql |
11:51:40 | Araq | bennyelg well then you need to create an admin or something and start posting things |
11:52:36 | FromGitter | <Bennyelg> @euantor how do you raise up the forums? |
11:52:57 | euantor | Do you mean get it running? |
11:53:05 | * | yglukhov quit (Remote host closed the connection) |
11:53:07 | FromGitter | <Bennyelg> Yes, I ran the createdb |
11:53:08 | FromGitter | <Bennyelg> now what? |
11:53:31 | euantor | So you did `nim c -r createdb`? |
11:53:36 | FromGitter | <Bennyelg> Yep |
11:53:43 | FromGitter | <Bennyelg> went fine but now what |
11:53:43 | euantor | Now do `nim c -r forum` |
11:53:47 | euantor | and it should work |
11:53:49 | FromGitter | <Bennyelg> I tried |
11:54:06 | FromGitter | <Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59e5ef5ebbbf9f1a386fe9dd] |
11:54:36 | euantor | hm |
11:54:55 | FromGitter | <zacharycarter> @TheSuspiciousWombat Sorry I missed your message - I am not aware of such a site. GLFW3 is callback based where as SDL2 is event based so their APIs differ a bit. I've been able to google most discrepancies but at this point I'm pretty familiar with both APIs so if you ask in here I can most likely tell you |
11:54:56 | euantor | I haven't done any work on it in ages, it's possible there's been an update that's broken it |
11:55:13 | FromGitter | <Bennyelg> @ :( |
11:55:25 | FromGitter | <Bennyelg> Date: Sat Oct 7 16:38:59 2017 +0100 ⏎ ⏎ ```Merge pull request #107 from stisa/remove-cairo-dep ⏎ ⏎ Remove cairo from .nimble deps``` [https://gitter.im/nim-lang/Nim?at=59e5efad614889d475c5fa90] |
11:55:32 | FromGitter | <Bennyelg> my last commit |
11:55:37 | FromGitter | <Bennyelg> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59e5efb9210ac26920f8192d] |
11:56:55 | Yardanico | seems to be a gcsafe issue |
11:56:55 | * | yglukhov joined #nim |
11:57:00 | Yardanico | I bet it is 100% |
11:58:02 | Yardanico | oh wait it uses jester |
12:01:00 | Yardanico | well |
12:01:05 | * | yglukhov quit (Ping timeout: 240 seconds) |
12:01:08 | Yardanico | forum works for me |
12:01:10 | Yardanico | on nim devel :) |
12:01:19 | FromGitter | <Bennyelg> I'm using nim delvel |
12:01:21 | FromGitter | <Bennyelg> devel |
12:01:23 | FromGitter | <Bennyelg> 1) 7.13 |
12:01:29 | FromGitter | <Bennyelg> 1) 17.3 |
12:01:30 | FromGitter | <Bennyelg> * |
12:01:41 | FromGitter | <Bennyelg> post me the log of our commands |
12:01:46 | FromGitter | <Bennyelg> history | |
12:02:15 | Yardanico | I cloned it |
12:02:18 | Yardanico | did "nimble install" |
12:02:26 | Yardanico | then nim c -r createdb |
12:02:32 | Yardanico | and then ./forum to run the forum binary |
12:02:51 | FromGitter | <zacharycarter> @dom96 thanks for the kind words :D |
12:02:56 | Yardanico | LOL https://github.com/nim-lang/nimforum/blob/27a1305b2d669f69f5f3e4576c4051a7fecec244/ranks.nim#L5 |
12:03:02 | Yardanico | wtf |
12:03:28 | FromGitter | <Bennyelg> funny troll |
12:04:06 | FromGitter | <Bennyelg> done |
12:04:07 | FromGitter | <Bennyelg> work |
12:05:09 | Yardanico | http://178.205.91.184:5000/ if you want to see a fresh instance of nimforum :P |
12:05:28 | Yardanico | (my IP is dynamic anyways so I can just re-plug my ethernet cable and IP will change) |
12:05:28 | FromGitter | <Bennyelg> Yea i got it too |
12:07:17 | FromGitter | <Bennyelg> My Forums Is Much more Idiomatics :D But i''l work on it |
12:07:43 | FromGitter | <Bennyelg> Of Course the credit is to @dom96 and is book |
12:07:49 | Yardanico | what do you mean by "idiomatic" ? :) |
12:08:12 | FromGitter | <Bennyelg> Mean, designed better |
12:09:14 | Yardanico | btw http://reign-studios.net/philipwitte/ doesn't work |
12:11:52 | Yardanico | Bennyelg: nimforum is at least 5 years old |
12:11:59 | Yardanico | https://github.com/nim-lang/nimforum/commit/b82d2ea9a6ac8de69faa090d73e47cd570165f16 |
12:12:07 | Yardanico | https://github.com/nim-lang/nimforum/commit/6476dc7cbbe3f04f1b818fb4a71053342bd4f512 |
12:12:52 | Yardanico | btw, how does "0 of 2155 users online" work? |
12:13:10 | Yardanico | I keep refreshing the page while being logged in, but it's still 0 |
12:15:43 | Araq | Yardanico: it doesn't work for the live version either :-) |
12:15:59 | Yardanico | well I was talking about live version :P |
12:18:27 | * | dddddd joined #nim |
12:18:44 | PMunch | Sorry Araq, I was AFK. Never had any problems like that with kdenlive, so can't really help with a fix. But then again as Yardanico said I've only been using it on Linux where the package manager does everything in order to make the program work. Package lock is probably caused by something not exiting properly and can usually be fixed by simply deleting the lock file :) |
12:18:59 | Yardanico | yeah |
12:19:24 | Araq | I know but I couldn't bothered to google where it resides in |
12:19:49 | * | yglukhov joined #nim |
12:20:36 | Araq | my default is /etc/bananajoe/local/share/usr/opt/liblibbin |
12:21:24 | Araq | but unfortunately nothing uses that path |
12:22:44 | Yardanico | Araq, what is your linux distro? |
12:23:05 | * | ShalokShalom_ joined #nim |
12:23:47 | Araq | BizzaroLinux version 0xFAC :D |
12:24:02 | Araq | (Ubuntu) |
12:26:00 | Yardanico | use your force :P |
12:26:00 | Yardanico | sudo rm /var/lib/dpkg/lock |
12:26:01 | * | ShalokShalom quit (Ping timeout: 240 seconds) |
12:26:27 | Yardanico | or sudo rm /var/lib/apt/lists/lock |
12:26:37 | * | koranza joined #nim |
12:27:01 | Araq | see? I was close |
12:29:25 | Yardanico | usually if you have a lock file it means that you've shut down your pc while running dpkg or apt-get |
12:29:29 | Yardanico | or you Ctrl+C'ed it |
12:30:15 | * | PMunch_ joined #nim |
12:31:19 | * | PMunch quit (Ping timeout: 252 seconds) |
12:36:26 | Araq | well it's in a VM, it can crash all it wants to |
12:37:19 | Demos[m] | God ubuntu is so annoying |
12:38:35 | Demos[m] | Everyone uses it because it’s “compatible” which means I have to dive through 1000 lines of bash to figure out how to do anything |
12:41:46 | Yardanico | ubuntu is falling |
12:41:52 | Yardanico | it's no longer the most popular linux distro |
12:42:41 | Yardanico | http://distrowatch.com/dwres.php?resource=popularity |
12:44:07 | koranza | Hey @Araq, idk how much editing you want to do, but if you just want to trim a video, the easiest software to use imho is avidemux. https://www.howtogeek.com/howto/42107/how-to-quickly-cut-a-clip-from-a-video-file-with-avidemux/ |
12:44:20 | koranza | Bonus: it's cross platform so you can avoid linux if you want |
12:44:35 | * | PMunch__ joined #nim |
12:44:51 | * | PMunch__ is now known as PMunch |
12:45:15 | * | kafke joined #nim |
12:47:05 | * | PMunch_ quit (Ping timeout: 246 seconds) |
12:50:10 | * | kafke quit (Ping timeout: 264 seconds) |
12:50:21 | Araq | koranza: thanks will give it a try |
12:50:56 | Demos[m] | Isn’t mint ubuntu based? |
12:52:00 | crem | It is. |
12:53:10 | Yardanico | also for some reason manjaro is gaining popularity |
12:53:24 | Yardanico | (it's an arch-based distro with it's own arch-based repos) |
12:54:03 | Yardanico | but I just use antergos so you get hassle-free install and all arch repos :P |
12:54:27 | crem | Arch is suprisingly good. Takes time during first week to set everything up, but after that everything is under control and rarely breaks. On other hand ubuntu broke quite regularly for me after update, with whole weekend spent to recover. |
12:54:51 | Yardanico | well antergos didn't break for me |
12:55:17 | Yardanico | crem, how many packages you have installed ? :) |
12:55:35 | Demos[m] | I like arch for dev systems |
12:55:43 | Demos[m] | I like fedora/rhel/suse for headless boxes |
12:56:05 | crem | I don't know. Individual packages do break, especially as it's not tested for stability, but that's ok. |
12:56:19 | Yardanico | crem, I mean try to run "screenfetch" :) |
12:56:44 | crem | I'm not at home now, so cannot. |
12:57:23 | crem | There was that buggy libsdl 2.0.6 released recently, buggy as hell, broke many things. Their release procedure is weird. |
12:57:53 | Araq | crem: they also introduce new major features in a point release :-) |
12:58:30 | crem | They have yearly releases, and no QA. Just "if anyone sees any bugs, please report it before release" approach. And as noone uses new lib version before release, noone sees bugs. |
12:58:53 | crem | yes |
12:59:41 | Araq | huh that problem sounds familiar |
13:00:09 | Araq | it's why I like a tick-tock model for development. |
13:00:23 | FromGitter | <Bennyelg> anyone watching this? ⏎ https://github.com/kostya/benchmarks |
13:00:26 | dom96 | FWIW I used avidemux |
13:00:43 | Yardanico | Bennyelg: microbenchmarks? :) nah |
13:01:12 | Yardanico | but nim is nice there |
13:01:13 | euantor | OpenShot has a Windows verison too and has been pretty good in my experience |
13:01:14 | crem | They actually going to make an exception and release bugfix 2.0.7. But during first few weeks after 2.0.6 release they said that ok, there are bugs, they will be fixed in 2.0.7 in a year. |
13:02:10 | FromGitter | <Bennyelg> I'm wondering how we "lossing" for rust and crystal all the way |
13:02:46 | Yardanico | well rust maybe is a little bit faster |
13:02:53 | Yardanico | because it requires you to write a LOT of additional things |
13:03:47 | Araq | Bennyelg: mostly because nobody cares I think |
13:03:54 | Yardanico | it's not fair also: |
13:03:54 | Yardanico | https://github.com/kostya/benchmarks/blob/master/brainfuck2/bf.cr |
13:03:57 | Yardanico | https://github.com/kostya/benchmarks/blob/master/brainfuck2/bf.nim |
13:04:20 | Yardanico | why the hell would you do a StringIterator in nim? |
13:05:41 | FromGitter | <Bennyelg> interesting |
13:05:44 | Yardanico | omg crystal is so slow at compiling |
13:05:54 | FromGitter | <Bennyelg> you got crystal installed? |
13:05:57 | Yardanico | yep |
13:06:01 | FromGitter | <Bennyelg> hehe |
13:06:04 | Yardanico | but from package manager :) |
13:06:07 | FromGitter | <Bennyelg> so modify the bf and run it |
13:06:11 | Yardanico | yeah |
13:06:20 | FromGitter | <Bennyelg> let win this ":P |
13:06:34 | Araq | yeah well it's nice if somebody can look into these |
13:06:58 | Araq | that said, I'm still looking for benchmarks that make sense |
13:07:02 | * | lastjedi joined #nim |
13:07:28 | * | firstjedi joined #nim |
13:07:30 | Yardanico | well IDK |
13:07:34 | Yardanico | ah wait |
13:07:40 | Yardanico | in brainfuck2 nim is already faster than crystal |
13:08:36 | FromGitter | <Bennyelg> @Araq if you see benchmarks and you don't like the nim code posted , dont care about how legit the benchmark just lets be sure we provide the best nim code exists for the benchmark case |
13:08:52 | FromGitter | <Bennyelg> @Yardanico post me the times |
13:09:04 | Yardanico | well it's as in the main repo |
13:09:09 | Yardanico | nim is ~2 sec for me |
13:09:12 | Yardanico | crystal is ~2.4 sec |
13:09:36 | FromGitter | <Bennyelg> you modifed the nim code |
13:09:37 | FromGitter | <Bennyelg> ? |
13:09:41 | Yardanico | not yetg |
13:09:55 | FromGitter | <Bennyelg> lol, maybe he ran it without -d:release ? |
13:09:59 | euantor | The abse 64 one is easy to fix |
13:10:05 | Yardanico | Bennyelg: no |
13:10:10 | Yardanico | it's the same as in kostya benchmarks |
13:10:15 | euantor | Add a version that doesn't split the encoded data into lines and you immediately see an improvement |
13:10:19 | Yardanico | yeah |
13:10:46 | miran | Araq: i know i've seen that benchmarks repo and it was one (more) reason to try nim, so - even if those "doesn't make sense", it might be good to provide them with as-fast-as-possible versions |
13:11:05 | * | lastjedi quit (Ping timeout: 240 seconds) |
13:11:25 | miran | for newcomers like me who are gathering information about which language to try out nex |
13:11:35 | Araq | point taken. |
13:11:52 | Araq | but that's one reason I'm looking for a decent one |
13:12:04 | Araq | not to win it |
13:12:35 | Araq | to see performance regressions |
13:13:33 | miran | there is also http://benchmarksgame.alioth.debian.org/ which is quite popular (often mentioned), but has no nim examples |
13:13:41 | Yardanico | yes |
13:13:43 | Yardanico | and they won't add it |
13:14:01 | dom96 | maybe it's time we create our own benchmarks... kostya is a crystal user AFAIK, wouldn't be surprised if there is some bias ;) |
13:14:34 | Araq | we can easily host some benchmark site, I think. |
13:14:50 | Araq | the problem is you'll be overwhelmed with PRs you need to carefully review all the time |
13:15:03 | Araq | and every benchmark needs clear rules |
13:15:30 | def- | miran: https://github.com/def-/nim-benchmarksgame |
13:15:30 | miran | i'll take a look at kostya's nim examples, but i'm just a nim beginner so most probably won't be able to provide any better versions than those already there |
13:15:43 | def- | miran: and I also improved the one in kostya's repo |
13:16:16 | Araq | I have a string concat benchmark where Nim beats C++. Now what? :P |
13:16:40 | def- | but like Araq said, benchmarks are not so useful |
13:16:56 | Araq | gcbench is useful |
13:17:01 | miran | the reason to post to already published benchmark repos (instead of hosting nim's own) is higher visibility for people outside of nim world (potential new users) |
13:17:27 | Araq | miran: you don't need to host it on Nim's own site |
13:17:39 | def- | Araq: sure, but comparing C, D, C++, Nim, Crystal in micro-benchmarks mostly isn't. If one of them gets faster, you can take their idea and implement it in the other language and end up with the same performance usually |
13:17:52 | Yardanico | btw, maybe these benchmarks will improve after destructors and moving instead of copying |
13:17:56 | dom96 | Problem is that people look at kostya's repo and think "omg Nim is actually slower than these languages" |
13:18:06 | Araq | the problem is not hosting, the problem is it quickly becomes a fulltime job |
13:18:47 | FromGitter | <Bennyelg> Hehe well I drop a bomb , nice conversation |
13:18:53 | Yardanico | for some reason D is the fastest at JSON benchmark |
13:19:26 | def- | heh, last time I looked at kostya benchmarks Nim was around the top in most |
13:19:36 | Araq | we need to fix Nim's memory consumption for some of these benchmarks |
13:19:49 | Araq | that's concerning me. |
13:20:01 | Yardanico | yeah, json benchmarks takes 1.3gb of RAM |
13:20:01 | Araq | 1GB where others only use 300MB |
13:20:07 | FromGitter | <Bennyelg> I also looked at the memory consumption |
13:20:11 | Yardanico | Araq, but sometimes nim takes less than others :) |
13:20:23 | Yardanico | https://github.com/kostya/benchmarks#brainfuck-v20 nim is slower than top 3, but takes less RAM |
13:20:30 | FromGitter | <Bennyelg> looks like the json library needs refactoring |
13:20:42 | Yardanico | refactoring? |
13:20:45 | Yardanico | maybe optimizing? :) |
13:20:50 | Araq | the json library uses OrderedTables which need to be improved |
13:20:53 | def- | for json: needs an iterator instead of loading the whole data structure into memory |
13:21:06 | Araq | oh yeah! good point |
13:21:13 | def- | at least that's how the ones with 1-3 MB did it |
13:21:18 | Yardanico | how does D work then? |
13:21:31 | Yardanico | ah yes |
13:21:34 | Araq | when your working set is only 1-3MB it's no wonder you win |
13:21:43 | Yardanico | it probably loads json data on request |
13:21:43 | Araq | memory usage often equals speed |
13:22:03 | miran | makes sense |
13:22:11 | Yardanico | well for some strange reason kotlin is the best(!) at brainfuck 2.0 with 28mb memory consumption |
13:22:22 | Yardanico | maybe cpu speed vs ram tradeoff |
13:23:18 | * | couven92 joined #nim |
13:24:12 | Araq | native kotlin or jvm kotlin? |
13:24:41 | miran | Yardanico: you said "why the hell would you do a StringIterator in nim?" - could this benchmark be improved or is it just cosmetics? |
13:25:15 | Yardanico | miran, well I don't really know, it seems it's useful there |
13:25:24 | Yardanico | or not |
13:25:28 | Yardanico | I'll try to remove it |
13:25:51 | Yardanico | Araq, seems to be JVM kotlin |
13:26:13 | Araq | well bbl |
13:26:15 | FromGitter | <Bennyelg> as @Yardanico the one who catch my eyes were kotlin |
13:26:23 | FromGitter | <Bennyelg> bbl = ? |
13:26:49 | def- | "be back later" |
13:27:06 | FromGitter | <Bennyelg> go improve it :D |
13:27:07 | FromGitter | <Bennyelg> hehe |
13:28:03 | FromGitter | <Bennyelg> this benchmark also catch my eyes. ⏎ https://github.com/kostya/benchmarks/blob/master/matmul/matmul.nim |
13:29:23 | miran | what about it Bennyelg? |
13:29:48 | * | ShalokShalom_ is now known as ShalokShalom |
13:30:41 | FromGitter | <Bennyelg> How can Interpreted language does that on 0.11 seconds |
13:31:15 | Yardanico | "Julia Native Thr" |
13:31:27 | Yardanico | firstly - julia is meant for scientific computations |
13:32:30 | * | UxerUospr joined #nim |
13:34:43 | miran | def-: just took a time to look at your benchmark repo - nice collection there! |
13:35:29 | * | jjido quit (Ping timeout: 248 seconds) |
13:35:35 | * | Laon quit (Ping timeout: 240 seconds) |
13:39:50 | Yardanico | oh wait lol |
13:39:58 | Yardanico | I found a compiler crash |
13:40:29 | Yardanico | seems to be a stack overflow |
13:57:46 | * | PMunch quit (Quit: Leaving) |
14:15:48 | * | user0 quit (Remote host closed the connection) |
14:16:16 | * | user0 joined #nim |
14:17:54 | * | couven92 quit (Quit: Client disconnecting) |
14:27:25 | * | miran left #nim (#nim) |
14:28:10 | * | endragor quit (Remote host closed the connection) |
14:28:36 | * | endragor joined #nim |
14:32:48 | * | endragor quit (Ping timeout: 240 seconds) |
14:40:31 | * | sleepyqt quit (Quit: Leaving) |
14:43:38 | * | sleepyqt joined #nim |
15:11:59 | enthus1ast | hi guys, we've written a small SOCKS5 server and client. Check it out :) https://github.com/enthus1ast/nimSocks |
15:12:19 | federico3 | oh nice |
15:13:41 | Yardanico | enthus1ast, yeah, I saw it :) nice |
15:14:10 | Yardanico | https://github.com/search?q=language%3ANim+created%3A2017-10-17 |
15:15:01 | * | nsf quit (Quit: WeeChat 1.9) |
15:15:19 | enthus1ast | ah nice to bookmark Yardanico |
15:16:57 | enthus1ast | to use the client with httpclient oa. the socket must be exported i think |
15:21:19 | Araq | when isBlob(T) |
15:21:20 | Araq | vs |
15:21:25 | Araq | when isPod(T) |
15:21:30 | Araq | which name is better? |
15:21:48 | enthus1ast | what is pod? |
15:21:59 | * | d10n-work joined #nim |
15:22:04 | Araq | "plain old data" iirc |
15:22:16 | crem | What's the difference of blob/pod vs non-blob/pod? |
15:22:32 | crem | Can be memcopied safely? |
15:23:16 | Araq | https://stackoverflow.com/questions/4178175/what-are-aggregates-and-pods-and-how-why-are-they-special/7189821#7189821 |
15:23:25 | Araq | exactly, crem nails it |
15:23:40 | Araq | maybe it should be memCopyable(T) ? |
15:24:47 | crem | I think that "pod" is C++-specific name. "Old" there means "something from old C, not modern C++". |
15:24:58 | crem | On the other hand, I don't like blob either. :) |
15:25:20 | crem | blob means "chunk of bytes without structure" for me. |
15:25:52 | Araq | that's quite on point though |
15:26:19 | Araq | you can only do the required type erasure for copyMem if they have no structure |
15:26:33 | crem | What is blob/pod in nim? Doesn't have refs/ptrs in it? Doesn't have refs/ptrs into it? |
15:26:51 | Araq | well Nim has no such concept yet |
15:26:59 | Araq | there is "contains GC'ed data" |
15:27:23 | Araq | with affects closures, refs, seqs, strings and their transitive closure |
15:27:58 | Araq | I think I'll go with memCopyable for now |
15:28:28 | Araq | or maybe allowsCopyMem |
15:30:30 | FromGitter | <Varriount> Araq: "supportsMemcopy"? |
15:30:56 | FromGitter | <Varriount> Or "canMemcopy" |
15:31:04 | Araq | it's system.copyMem |
15:31:10 | Araq | canCopyMem ? |
15:31:32 | Araq | supportsCopyMem(), no need to keep it short, it's rarely used |
15:32:03 | enthus1ast | i can copy mem when its in the same thread? |
15:32:07 | Yardanico | Araq, sorry for me being annoying, but when your next stream will be ? :) we have 24 votes here - http://www.strawpoll.me/14163114/r it's 4% of people who did nim community survey :P |
15:32:10 | * | gokr quit (Ping timeout: 255 seconds) |
15:33:04 | * | sleepyqt quit (Ping timeout: 255 seconds) |
15:33:15 | Araq | Yardanico: I dunno if I'll do it tonight or on Thursday night |
15:34:05 | FromGitter | <Varriount> Araq: It might be best to use the term which could be grouped with other, similar classifications |
15:34:07 | * | sleepyqt joined #nim |
15:34:34 | Araq | when supportsCopyMem(T): copyMem(x, y, sizeof(T)) # obviously correct code |
15:34:41 | FromGitter | <Varriount> If you need to add other classifications (deletable, etc) |
15:50:53 | Yardanico | Araq, wait, if we will have destructors for every type, we don't need GC? except for cyclic data? |
15:55:09 | Yardanico | or GC will run only for user types if user didn't provide a destructor? |
15:55:42 | * | flyx quit (Quit: ZNC - http://znc.in) |
15:56:10 | euantor | GC will call the destructor I would think |
15:56:37 | euantor | if it's anything like destructors from any other language |
15:56:41 | * | flyx joined #nim |
15:57:48 | Yardanico | euantor, but it seems that destroyer compiler pass will inject destructor calls in the code |
15:57:54 | Yardanico | https://github.com/nim-lang/Nim/blob/devel/compiler/destroyer.nim |
15:58:02 | Yardanico | "Injects destructor calls into Nim code " |
15:58:07 | * | JappleAck quit (Ping timeout: 260 seconds) |
15:58:24 | euantor | I've not been following it, but that would make sense when the lifetime of an object can be worked out at compile time |
15:58:45 | Yardanico | well this is probably what araq is doing :) |
15:58:55 | euantor | looks like it |
15:59:32 | euantor | I was guessing it was more like C#'s destructors which are functions called when an object is cleaned up by the GC. The function would then close file handles etc. |
16:00:08 | euantor | And Nim already has destructors that are similar: https://nim-lang.org/docs/manual.html#type-bound-operations-destructors |
16:00:20 | Yardanico | yeah |
16:00:37 | * | flyx quit (Client Quit) |
16:00:46 | * | flyx joined #nim |
16:00:57 | euantor | And when it's a ref object you use a finalizer. I guess the new destroyer will call those finalizers too |
16:01:24 | euantor | pretty cool :D |
16:01:30 | Yardanico | euantor, well firstly Araq wants to implement GC-free strings and sequences :) |
16:01:46 | Yardanico | he already tried it for strings, but he said that his gc-free strings were a bit slower than current nim strings |
16:02:25 | Yardanico | euantor, the example of new destructors - https://github.com/nim-lang/Nim/blob/devel/tests/destructor/tcustomstrings.nim |
16:02:27 | euantor | I don't do much low level stuff at all, but I honestly haven't encountered any GC issues in Nim yet. SO long as that doesn't change I'm happy ;) |
16:02:41 | Yardanico | compile with nim c --newruntime tcustomstrings.nim |
16:02:48 | Yardanico | if you have a devel version |
16:02:54 | euantor | I'm at work, so can't |
16:03:02 | euantor | will try and remember to look at it later |
16:05:34 | Yardanico | and also it's already cool that nim allows you to use whole stdlib even if you've disabled GC |
16:05:38 | Yardanico | but memory will just leak :) |
16:06:11 | Yardanico | so it would be useful for this use-case: https://groups.google.com/forum/message/raw?msg=comp.lang.ada/E9bNCvDQ12k/1tezW24ZxdAJ |
16:07:12 | Araq | Yardanico: lol yeah I read that one before, super interesting use case |
16:08:29 | * | kafke joined #nim |
16:08:48 | * | Trustable joined #nim |
16:13:26 | Yardanico | also I really like that we can still access all these emails through google |
16:15:17 | * | JappleAck joined #nim |
16:16:15 | * | user0 quit (Quit: user0) |
16:18:13 | UxerUospr | how should I include a type for use in multiple files in a module without causing a recursive module depency? Should I split it out into a separate file and import it into every other or is there a better way? |
16:18:22 | * | gokr joined #nim |
16:18:48 | * | user0 joined #nim |
16:19:42 | Yardanico | UxerUospr, the simplest way would be to split this type into a separate file |
16:20:08 | Yardanico | nim supports recursive module dependency |
16:20:11 | Yardanico | but it can break |
16:20:46 | UxerUospr | Yardanico: Thanks! That's what I'll do |
16:20:52 | FromGitter | <mratsim> @BennyElg for the Kostya matmul benchmark, Julia Native Thread is calling Fortran behind the scene |
16:21:24 | FromGitter | <mratsim> Arraymancer also has the same speed if I call the Fortran lib |
16:22:08 | FromGitter | <mratsim> They have been tuned for 20 years and were the work of many PhDs (aka BLAS, Basic Linear Algebra Subroutines) |
16:24:44 | * | smt joined #nim |
16:26:10 | * | vlad1777d quit (Ping timeout: 252 seconds) |
16:30:35 | * | JappleAck quit (Read error: Connection reset by peer) |
16:33:56 | shodan45 | oh look, another C replacement language.... http://ziglang.org/ |
16:34:21 | Yardanico | g competes with C instead of depending on it. The Zig Standard Library does not depend on libc. |
16:34:23 | * | yglukhov quit (Remote host closed the connection) |
16:34:24 | Yardanico | that's nice |
16:34:30 | Yardanico | (does not depend on libc) |
16:34:38 | Yardanico | but otoh it's not nice |
16:35:23 | * | yglukhov joined #nim |
16:35:25 | shodan45 | Yardanico: make up your mind :P |
16:35:50 | Yardanico | I mean it's nice because it shows that language is quite capable of doing things |
16:36:00 | Yardanico | on the other hand it means that it probably would be slower and would have more bugs |
16:36:01 | Yardanico | than libc |
16:36:10 | shodan45 | "in a surprise move, instead of libc, zig depends on ruby!" |
16:36:53 | shodan45 | sorry, I'm in a goofy mood |
16:39:14 | Yardanico | also it has ReleaseSafe and ReleaseFast |
16:39:37 | * | NimBot joined #nim |
16:39:50 | * | yglukhov quit (Ping timeout: 246 seconds) |
16:40:47 | * | vlad1777d joined #nim |
16:42:41 | * | user0_ joined #nim |
16:42:42 | * | user0 quit (Read error: Connection reset by peer) |
16:42:45 | * | user0_ is now known as user0 |
16:43:17 | Yardanico | looks a bit weird :) http://ziglang.org/documentation/master/#case-study-printf |
16:45:04 | FromGitter | <BigEpsilon> Hi, I get this error when trying to compile c2nim (master branch) : .nimble/pkgs/compiler-#head/compiler/rodutils.nim(25, 14) Error: type mismatch: got (array[0..80, char], string, BiggestFloat) ⏎ ⏎ ``` ... but expected one of: ⏎ ... proc c_sprintf(buf, frmt: cstring)``` ⏎ ⏎ Any idea ? [https://gitter.im/nim-lang/Nim?at=59e63390f7299e8f53fba522] |
16:45:44 | Yardanico | yeah |
16:45:46 | * | dhalinar joined #nim |
16:45:48 | Yardanico | update your compiler package :) |
16:45:52 | Yardanico | from nimble |
16:46:00 | FromGitter | <BigEpsilon> nimble update ? |
16:46:04 | Yardanico | probably |
16:46:12 | Yardanico | ah, no |
16:46:25 | Yardanico | try "nimble install compiler@#head" |
16:46:36 | Yardanico | or "nimble uninstall compiler", "nimble install compiler@#head" |
16:46:57 | Yardanico | In recent nim devel implicit array[char] -> cstring conversion was removed, that's why |
16:49:23 | FromGitter | <BigEpsilon> thanks ! |
16:49:26 | FromGitter | <BigEpsilon> it works |
16:49:30 | FromGitter | <BigEpsilon> well almost |
16:49:34 | FromGitter | <BigEpsilon> c2nim.nim(87, 17) Error: type mismatch: got (PNode, string) ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59e6349ed6c36fca31628b47] |
16:50:05 | FromGitter | <BigEpsilon> but that in c2nim so I will try to correct it |
16:50:13 | FromGitter | <Yardanico> hmm, what's your compiler version? |
16:50:32 | FromGitter | <BigEpsilon> I'm on head |
16:51:03 | FromGitter | <BigEpsilon> Nim Compiler Version 0.17.3 (2017-10-11) [Linux: amd64] ⏎ Copyright (c) 2006-2017 by Andreas Rumpf ⏎ ⏎ git hash: bedc9e4e6de3c536c6ef6b7ff6b1874aac5b29ba [https://gitter.im/nim-lang/Nim?at=59e634f65c40c1ba79b1582c] |
16:51:21 | FromGitter | <BigEpsilon> and the compiler as lib is also on head |
16:51:39 | FromGitter | <BigEpsilon> just updated it with the help of Yardanico |
16:52:12 | Yardanico | I'm the same Yardanico :P |
16:52:38 | FromGitter | <BigEpsilon> oh .... |
16:52:43 | * | gokr quit (Ping timeout: 255 seconds) |
16:52:55 | FromGitter | <BigEpsilon> the gitter ghost of him :) |
17:04:17 | FromGitter | <BigEpsilon> ok found the problem, will do a PR tomorow |
17:05:50 | * | nsf joined #nim |
17:07:05 | * | firstjedi quit (Ping timeout: 240 seconds) |
17:09:03 | * | koranza quit (Remote host closed the connection) |
17:09:11 | * | lastjedi joined #nim |
17:09:42 | * | firstjedi joined #nim |
17:09:55 | * | firstjedi quit (Max SendQ exceeded) |
17:10:26 | * | firstjedi joined #nim |
17:13:26 | * | lastjedi quit (Ping timeout: 246 seconds) |
17:18:12 | * | gangstacat quit (Quit: Ĝis!) |
17:18:34 | * | yglukhov joined #nim |
17:23:02 | UxerUospr | Using db_postgres getValue(...) I get "row number 0 is out of range 0..-1 |
17:23:11 | * | yglukhov quit (Ping timeout: 248 seconds) |
17:23:12 | UxerUospr | when there isn't a value |
17:23:15 | UxerUospr | in the table |
17:23:23 | UxerUospr | How should I handle that? |
17:26:17 | Calinou | <dom96> Calinou: What do you consider OOP? |
17:26:25 | Calinou | classes (with methods/attributes) and the like |
17:26:34 | Calinou | with inheritance (at least) |
17:26:59 | Calinou | I know I'm following a Java course at uni (we'll probably end up writing another https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition :D), but Nim not supporting full-blown OOP is fine to me |
17:27:05 | FromGitter | <BigEpsilon> @Araq , a little fix for c2nim https://github.com/nim-lang/c2nim/pull/113 |
17:28:54 | * | user0 quit (Quit: user0) |
17:28:56 | * | rauss quit (Quit: WeeChat 1.9.1) |
17:29:01 | * | dhalinar quit (Ping timeout: 240 seconds) |
17:29:09 | * | user0 joined #nim |
17:29:13 | Yardanico | Calinou, nim has that |
17:32:45 | * | rauss joined #nim |
17:33:48 | Calinou | ok :) |
17:34:01 | Calinou | what's the equivalent of Python's "pass" in Nim? so that I can define a method without any code inside |
17:34:47 | Yardanico | Calinou, discard |
17:36:28 | * | gangstacat joined #nim |
17:42:31 | Yardanico | Calinou, nim has single-inheritance, but multiple dispatch |
17:42:42 | Yardanico | but really methods are not really needed in most of the cases :) |
17:43:09 | * | jjido joined #nim |
17:43:15 | Calinou | why not? |
17:44:05 | Yardanico | Calinou, for example instead of different AST node types inherited from Node you can have one object variant |
17:44:42 | Yardanico | and methods are always slower than simple functions/procedures |
17:44:45 | Calinou | the Godot Nim stub doesn't make use of getNode at all, that doesn't help me :'( |
17:44:55 | Calinou | since I need it to connect signals, the GUI doesn't seem to work |
17:45:00 | Calinou | (it doesn't find the method in the NativeScript) |
17:47:07 | * | yglukhov joined #nim |
17:52:19 | * | cscs joined #nim |
17:52:34 | * | cscs quit (Client Quit) |
17:54:32 | * | Trustable quit (Remote host closed the connection) |
17:56:41 | FromGitter | <mratsim> methods are actually not that slow surprisingly, only 3x slower than procs: https://github.com/mratsim/Arraymancer/blob/master/benchmarks/implementation/proc_method_closure_bench.nim |
17:57:20 | * | user0 quit (Quit: user0) |
17:59:22 | * | claudiuinberlin joined #nim |
17:59:40 | FromGitter | <mratsim> Celebrating Christmas, the Nim way |
17:59:49 | FromGitter | <mratsim> (https://files.gitter.im/nim-lang/Nim/JPoP/2017-10-17_19-59-27.png) |
18:06:37 | Calinou | oh, that's why my benchmark took 5600 ms to complete |
18:06:42 | Calinou | godot-nim uses methods, not procs, though |
18:07:02 | Calinou | (Mono without optimizations takes 2200 ms, 1800 ms with optimizations) |
18:07:11 | Calinou | (GDScript takes 48000 ms in release mode, 75000 ms in debug mode :P) |
18:08:18 | * | sz0 quit (Quit: Connection closed for inactivity) |
18:08:19 | Araq | BigEpsilon: Er, sorry, these new newlines shouldn't really be there though |
18:08:29 | Araq | I need to patch the renderer again :-) |
18:08:40 | Araq | regression caused by live coding, yay |
18:09:34 | livcd | ah smh dom did ? |
18:09:45 | shodan45 | Araq: renderer? nim renders things now, too? :D |
18:10:06 | Araq | livcd: no, me. |
18:10:22 | livcd | ah ok i thought about his twitch |
18:10:23 | Araq | shodan45: that's the term I use for AST -> string pretty printing |
18:10:47 | shodan45 | Araq: oh lol |
18:11:16 | shodan45 | so then yes, nim renders things :) |
18:11:34 | * | nsf quit (Quit: WeeChat 1.9) |
18:14:58 | Yardanico | mratsim: it's because of me :P |
18:15:09 | Yardanico | almost half of all labels were of the same color |
18:15:52 | FromGitter | <mratsim> ^^ |
18:16:19 | Araq | mratsim: that benchmark is flawed |
18:16:33 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:16:36 | FromGitter | <mratsim> epochTime? |
18:16:55 | Yardanico | try nimbench |
18:16:56 | Araq | no, you don't measure closures but GC allocations |
18:16:56 | Yardanico | it's the best |
18:17:25 | Araq | you should move the closure creation out of the loop |
18:17:42 | Araq | but ok, often that's not possible and then the benchmark is accurate |
18:18:34 | * | claudiuinberlin joined #nim |
18:19:34 | FromGitter | <mratsim> Well in my case I couldn’t this was previous implementation of my tensor operations before switching to injecting templates |
18:19:39 | Yardanico | mratsim: also I've added performance label - and guess who has report last 3 performance issues ? :) https://github.com/nim-lang/Nim/issues?q=is%3Aissue+is%3Aopen+label%3APerformance |
18:19:51 | Yardanico | edubart, so arraymancer :) |
18:28:18 | Calinou | how do I tell Nake to build a library (.dll) in release mode, rather than debug? |
18:28:21 | Calinou | (with optimizations enabled) |
18:28:50 | FromGitter | <mratsim> why are you still using make? |
18:28:57 | FromGitter | <mratsim> nake* |
18:29:12 | Yardanico | yeah |
18:29:21 | Yardanico | use nimble |
18:29:35 | Yardanico | Calinou, but generally you just add -d:release |
18:30:19 | Calinou | if I used "nimble build", it didn't find the classes I needed |
18:30:24 | Calinou | (which aren't part of the package) |
18:30:35 | Calinou | also, I didn't know Nake was obsolete |
18:30:46 | Calinou | the readme doesn't state it |
18:31:31 | Yardanico | well, it's not "obsolete" but WHY you use third-party program when you can use official package manager? |
18:33:26 | Araq | nake is more powerful than NimScript though since it's compiled :-) |
18:34:30 | Araq | hmm this destructor stuff is like crack |
18:34:52 | Araq | fits beautiful into Nim's design, better than the GC |
18:35:00 | Calinou | Yardanico: godot-nim told me to ¯\_(ツ)_/¯ |
18:35:19 | Calinou | oh, "nimble build" works now |
18:35:30 | Araq | Yardanico: and I told godot-nim's author to use 'nake' |
18:36:03 | Calinou | looks like it doesn't create a .dll, though, it creates an .exe instead |
18:36:11 | Calinou | (I'm calling the command directly) |
18:36:41 | Calinou | oh, "nimble make" did the job |
18:37:10 | livcd | Araq: oh so there might not be a GC if your experiments go well ? :) |
18:37:50 | Yardanico | but past 1.0 |
18:37:51 | Araq | the transition period will likely be measured in years, but yeah |
18:37:51 | Calinou | will we have to manage memory manually in the future? :( |
18:38:00 | Calinou | I mean, it's the reason I step away from C++ and the like |
18:38:27 | Calinou | Yardanico: "nimble make" ignores the "-d:release" I pass to it, i.e. the final .dll is the same size and has the same performance |
18:38:34 | Calinou | I'm pretty sure it's built in debug mode |
18:38:43 | Yardanico | Calinou, you should add custom commands probably |
18:39:06 | Araq | Calinou: usually you don't manage memory manually in C++ |
18:40:56 | Calinou | :| I added "-d:release" to the package's nim.cfg, it makes the .dll slightly smaller but not any faster |
18:41:15 | Araq | -d:release doesn't work in a .cfg file |
18:41:23 | Araq | pass it via command line |
18:41:37 | Calinou | yes, but "nimble make" ignores it, it outputs the same .dll regardless of what I put |
18:46:45 | * | miran joined #nim |
18:47:44 | FromGitter | <zetashift> godot-nim is slower than the godot-mono module? :O |
18:58:22 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:58:41 | * | neikeq joined #nim |
18:59:41 | UxerUospr | I'm not getting anywhere. getValue and getRow in db_postgres both echo/print out "row number 0 is out of range 0..-1" when the query returns no result |
19:00:07 | UxerUospr | I've grepped the nim codebase and I haven't found where it's coming from there |
19:00:38 | UxerUospr | I assume it's something in what the postgres.nim wrapper is wrapping |
19:01:11 | UxerUospr | How do I get to that code? |
19:01:26 | miran | range 0..-1? shouldn't that be 0..^1? (wild guessing here, i have no idea what i'm talking about) |
19:01:53 | Araq | miran: it's an empty range |
19:02:04 | UxerUospr | miran: I think the "row number 0 is out of range 0..-1" comes from postgres though I'm not sure |
19:02:13 | Araq | UxerUospr: the code is in lib/impure/db_postgres.nim |
19:03:43 | UxerUospr | Araq: I've looked there and it seems fine... doesn't have the string I'm trying to track down. I looked in /lib/wrappers/postgres.nim as well, since I think that's what db_postgres.nim is importing |
19:04:18 | UxerUospr | I'll admit, I don't fully understand the wrapper code so I could have missed something |
19:04:41 | UxerUospr | It's really odd to me that it's priting out this string, though |
19:04:53 | * | neikeq quit (Quit: gotta go!) |
19:05:01 | Araq | give me something I can run |
19:06:40 | * | claudiuinberlin joined #nim |
19:07:07 | UxerUospr | Araq: It'll require having postgres set up and able to communicate, with tables, etc. I can show you what I'm doing, at least... one sec. |
19:08:38 | * | Laon joined #nim |
19:09:25 | * | dddddd quit (Remote host closed the connection) |
19:12:00 | * | Laon89 joined #nim |
19:12:01 | UxerUospr | I don't imagine it's very helpful but here's where it happens in my code: https://gist.github.com/optik-aper/58c132a82e8be575d4bda318fcdf1032 |
19:13:08 | * | Laon quit (Ping timeout: 255 seconds) |
19:13:31 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
19:15:00 | * | ipjk joined #nim |
19:16:49 | miran | anything like python's `defaultdict` in nim? |
19:17:44 | miran | is there a way how to 'simulate' that without manually checking every time if table has a key, and then if not create for example an empty sequence? |
19:18:48 | UxerUospr | Araq: It looks like it might be coming from here: https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/libpq/fe-exec.c;hb=6ecabead4b5993c42745f2802d857b1a79f48bf9 |
19:21:54 | * | gokr joined #nim |
19:22:49 | dom96 | Calinou: modify the .nimble file then |
19:23:03 | dom96 | 'make' is a task that is most definitely defined in your .nimble file |
19:26:40 | FromGitter | <zacharycarter> @zetashift - what makes you say that? |
19:28:24 | * | claudiuinberlin joined #nim |
19:30:41 | Araq | miran: getOrDefault |
19:32:50 | miran | Araq: will try it, but i'm not sure that's it... |
19:32:51 | Araq | UxerUospr: well you don't have any value for this title |
19:35:47 | UxerUospr | Araq: I pass in "title" in the proc |
19:37:07 | * | Laon joined #nim |
19:37:09 | * | user0 joined #nim |
19:39:21 | * | Laon89 quit (Ping timeout: 240 seconds) |
19:39:48 | UxerUospr | Araq: Also, I should mention that the value does get assigned by getValue as "" when the result isNil |
19:40:02 | * | jjido quit (Ping timeout: 255 seconds) |
19:40:37 | UxerUospr | It just seems weird that it would also print out this range error message |
19:41:26 | * | Laon quit (Ping timeout: 252 seconds) |
19:43:27 | Araq | does it raise an exception with this error? |
19:45:12 | UxerUospr | Araq: Would that stop execution if it was unhandled? I don't have it handled and it doesn't stop execution. It moves on to the next one happily (I call it about 300 times in a loop) |
19:45:36 | Araq | it should die with a stacktrace |
19:45:47 | Araq | probably some error handling is wrong here |
19:45:50 | UxerUospr | No, it doesn't die for that reason |
19:51:34 | miran | Araq: i have `var nodes = initTable[string, newSeq[Route]()]()`, and i want to do `nodes[node].add(Route(dest: neighbour, cost: cost))`. i've tried with `getordefault` but i got sigsegv error.... |
19:52:27 | Araq | that's not how to call initTable |
19:54:17 | miran | no? what's wrong and how do i fix it? |
19:55:43 | Calinou | <FromGitter> <zetashift> godot-nim is slower than the godot-mono module? :O |
19:55:44 | Araq | initTable[string, seq[Route]]() |
19:55:45 | Calinou | right now, yes |
19:56:01 | Calinou | note that if I use a proc instead of a method (for the fibo() recursive function), it's quite faster, 3400 ms instead of 5600 ms |
19:56:11 | miran | Araq: oh, i thought so after i asked :) sorry for noob mistakes |
19:56:13 | Calinou | still 1200 ms slower than Mono without optimizations, though |
19:56:19 | Calinou | this is why I'm trying to compile the .dll in release mode :) |
19:56:21 | Yardanico | Calinou, why do you have fibo as a recursive function? |
19:56:28 | Yardanico | it's pointless |
19:56:29 | Calinou | Yardanico: because it's a simple way to benchmark things :P |
19:56:43 | Calinou | honestly, it could be anything |
19:56:53 | Calinou | benchmarks don't reflect real use cases by definition |
19:57:01 | Calinou | but they let you know if something is wrong or slow |
19:57:34 | Araq | ok but coming up with a representative benchmark for a realworld problem is not that hard either |
19:57:46 | Calinou | but it's more code to write :P |
19:57:48 | Calinou | this one is 5 lines or so |
19:58:20 | miran | even with the correct initTable, i don't seem to get `getOrDefault` to work - sigsegv again.... |
19:59:06 | Calinou | anyway, still can't get it to compile in release mode :( |
20:03:14 | Yardanico | miran, getOrDefault will return nil |
20:03:17 | Yardanico | for a seq |
20:03:23 | Yardanico | because default value for seq is nil |
20:03:28 | miran | damn |
20:03:36 | Yardanico | so after you "var mything = table.getOrDefault(key" |
20:03:37 | Yardanico | check |
20:03:42 | Yardanico | "if mything.isNil: ..." |
20:03:57 | Yardanico | Calinou, can you compile it with nim compiler? |
20:04:00 | Yardanico | without nake or nimble |
20:04:34 | miran | so i need to revert to `if not table.hasKey(key): ...`? |
20:05:22 | Yardanico | miran, you can even do "if key notin table:" |
20:05:39 | Calinou | whoa… |
20:05:40 | Calinou | https://media.hugo.pro/godot_2017-10-17_22-05-37.png |
20:05:44 | Calinou | this is hyperspeed compared to anything else :P |
20:06:00 | dom96 | Calinou: benchmarking non-release mode code doesn't really have much importance. |
20:06:10 | Calinou | dom96: yes, this is why I was attempting to compile it in release mode |
20:06:18 | Calinou | but I couldn't do it without calling nim manually :( |
20:06:28 | dom96 | did you try what I suggested? |
20:06:43 | dom96 | what's your .nimble file's contents? |
20:07:02 | miran | Yardanico: ok, it might be more readable. but whatever i choose, i need to initialize the sequence there. there's no 'cure' for that, right? |
20:07:31 | Calinou | https://hastebin.com/cizuhilazu.nim |
20:07:34 | Calinou | this is the .nimble file |
20:07:49 | Calinou | (I didn't touch the code from the Nim stub, only changed some things at the top) |
20:07:59 | dom96 | ooh, fancy |
20:08:09 | miran | for nested sequences, there would be `newSeqWith`, but when it comes to tables with sequnces, i need to do manual checking? |
20:08:28 | dom96 | have you tried: exec "nimble build -y" -> exec "nimble build -y -d:release" |
20:08:28 | dom96 | ? |
20:09:12 | Yardanico | miran, yes |
20:09:20 | Yardanico | but in the future seq will be non-nil by default |
20:09:24 | Yardanico | string is already not nil BTW |
20:09:28 | miran | really? |
20:09:30 | Yardanico | yes |
20:09:38 | dom96 | is it? |
20:09:42 | Yardanico | yes |
20:09:45 | dom96 | since when? |
20:09:55 | miran | that's something in 0.17.2 or just in devel? (string not nil) |
20:10:02 | Yardanico | in devel |
20:10:12 | * | Jesin quit (Quit: Leaving) |
20:10:17 | Calinou | this is with fibo() as a method, it's slower but still pretty fast: https://media.hugo.pro/godot_2017-10-17_22-09-54.png |
20:10:22 | miran | and when will that not-nil-seq future be present? soon? |
20:10:24 | Calinou | dom96: no, I haven't… I'll try |
20:10:27 | Yardanico | miran, yeah, probably |
20:10:39 | Calinou | I'd like to be able to quickly switch between debug and release, though |
20:10:46 | miran | seems like a bright future to me :) |
20:11:07 | dom96 | Calinou: so create another task called 'makeR' or something :) |
20:11:20 | dom96 | (assuming this works) |
20:11:44 | Calinou | yeah, sounds hacky, but that would work :P |
20:11:54 | Araq | Yardanico: 'nil' is still a thing for strings and seqs, but len(x) == 0 for x.isNil |
20:11:58 | Calinou | anyway, thanks for helping me with this :) |
20:12:03 | Araq | and that has been the case for quite some time now |
20:12:23 | Yardanico | Araq, well at least we can echo empty strings now :) |
20:12:37 | Yardanico | and not initialized ones too |
20:12:39 | Araq | more changes related to 'nil' caused mysterious compiler crashes |
20:12:58 | Yardanico | ohh |
20:13:00 | Araq | which is one more reason I'm going after destructors |
20:13:09 | Yardanico | https://github.com/nim-lang/Nim/commit/35c8b5e3bcc13ade6441f1b53ee8d3acacffded3 |
20:14:13 | Calinou | sorry for being annoying, I just wanted to get this working to show off :P |
20:14:38 | dom96 | Calinou: Eventually .nimble files will have more power and get access to arguments |
20:14:51 | dom96 | Araq: So what happened to the stream? |
20:15:26 | Yardanico | dom96, he'll do it tomorrow probably |
20:15:37 | * | Jesin joined #nim |
20:15:43 | Araq | no, Thursday night, 21:00 |
20:15:57 | Yardanico | 21:00 UTC? |
20:16:01 | Araq | I should probably announce this on Twitch somehow |
20:16:04 | miran | the topic? |
20:16:08 | Araq | 21:00 my time |
20:16:11 | miran | 19:00 UTC |
20:16:19 | Yardanico | Araq, ah, 22:00 for me |
20:16:23 | dom96 | Araq: No, you should get a Twitter account and announce it there. |
20:16:27 | Yardanico | miran, vote here - http://www.strawpoll.me/14163114 |
20:16:35 | Yardanico | Araq, we can announce it on reddit too |
20:16:41 | Araq | omg |
20:16:54 | Araq | then it has to be awesome... |
20:17:13 | dom96 | I tweeted about your previous livestreams on Nim's twitter |
20:17:26 | Yardanico | Araq, it has to be "nimasome"! |
20:17:34 | miran | Yardanico: voted for destructors, hoping to see the glimpse of that bright future :) |
20:17:54 | Araq | it helps when I don't know I'm being watched |
20:18:14 | Yardanico | well your previous streams were watched by ~10 people |
20:18:40 | Araq | that poll ... so surprising how stable the results are, it feels like 100 more votes wouldn't change the outcome |
20:18:55 | Yardanico | it just changed |
20:19:04 | Yardanico | maybe people from twitter/reddit will vote for karax |
20:19:10 | Yardanico | dom96, share this link too then - http://www.strawpoll.me/14163114 |
20:19:14 | Yardanico | so people will vote :) |
20:19:40 | Araq | Yardanico: "destructors for Nim" is still first |
20:19:46 | Yardanico | Araq, yes |
20:20:39 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
20:23:02 | Yardanico | Araq, everything can still change because we shared the link on twitter & reddit |
20:23:10 | Yardanico | people there are usually more high-level oriented |
20:23:40 | dom96 | Araq: Shall I tweet about it? |
20:23:51 | Araq | sure, I can stand the pressure |
20:25:14 | dom96 | now |
20:25:16 | dom96 | ... |
20:25:23 | Araq | :P |
20:25:25 | dom96 | when a copy and paste fails |
20:25:26 | dom96 | https://twitter.com/nim_lang/status/920385204686073858 |
20:25:27 | Yardanico | oh, destructors got one more vote |
20:25:29 | Yardanico | we have 30 votes |
20:26:03 | dom96 | ooh, cool, 20 likes on this tweet of mine https://twitter.com/d0m96/status/919857258191818752 |
20:26:56 | Yardanico | maybe we need to cross-post it on /r/programming on thursday ? :) |
20:26:59 | dom96 | Twitter is a powerful thing |
20:27:04 | dom96 | We've got 1.1k followers now :) |
20:27:24 | dom96 | I think it would be better to submit some pre-recorded livestreams |
20:27:27 | dom96 | *hint hint* |
20:28:44 | Yardanico | Btw, strawpoll is updated in real-time |
20:28:57 | Yardanico | so if you're very popular, you can literally see how results change |
20:29:05 | * | smt` joined #nim |
20:29:13 | dom96 | would be cool to recreate strawpoll in Nim :P |
20:29:24 | Yardanico | Araq, btw |
20:29:24 | Araq | oh! |
20:29:35 | Araq | dom96: that's a great idea |
20:29:37 | federico3 | dom96: or a better doodle.com |
20:29:41 | Araq | can do that with karax+ormin |
20:29:44 | Yardanico | Araq, dom96, https://marketplace.visualstudio.com/items?itemName=irth.twitchlint |
20:29:50 | Yardanico | Twitchlint is an extension for Visual Studio Code that allows your Twitch viewers sent you suggestions for your code via the chat. |
20:29:51 | Yardanico | :P |
20:29:57 | dom96 | Araq: Awesome :D |
20:29:58 | dom96 | Do it :) |
20:30:14 | dom96 | Using web sockets for that would make sense |
20:30:23 | Araq | ok, tests are green, time for another try to cut my video lol |
20:30:28 | Araq | dom96: exactly! |
20:30:47 | Yardanico | Araq, try to use avidemux |
20:31:27 | * | miran quit (Ping timeout: 240 seconds) |
20:33:22 | * | smt quit (Ping timeout: 264 seconds) |
20:39:58 | FromGitter | <pacopa> Hi. While compiling koch, I got the following error: |
20:40:01 | FromGitter | <pacopa> Hint: dynlib [Processing] ⏎ lib/wrappers/openssl.nim(617, 18) Error: type mismatch: got (ptr array[0..511, char]) ⏎ but expected one of: ⏎ proc hexStr(buf: cstring): string [https://gitter.im/nim-lang/Nim?at=59e66aa001110b7231cad029] |
20:40:35 | Yardanico | hmm |
20:40:48 | Yardanico | Araq, take my words back :P http://www.strawpoll.me/14163114/r |
20:40:53 | Yardanico | 19 votes for destructors |
20:42:07 | SunDwarf | Yardanico, that extension sounds like hell |
20:42:13 | Yardanico | SunDwarf, why ? :) |
20:42:18 | Yardanico | if your stream has only 10-15 people |
20:42:28 | Yardanico | but surely Araq's stream will have more |
20:42:53 | SunDwarf | gonna love the 1000 lint requests with twitch emotes |
20:43:00 | Yardanico | SunDwarf, lol |
20:43:32 | SunDwarf | or the inevitable zalgo lint |
20:43:44 | Yardanico | but yeah, this wouldn't help much for araq |
20:43:58 | Yardanico | because we don't have big experience in destructors :P |
20:44:05 | Yardanico | it would be useful for dom though |
20:44:29 | * | firstjedi quit (Ping timeout: 246 seconds) |
20:47:17 | Araq | pacopa: koch doesn't use openssl.nim |
20:47:20 | FromGitter | <pacopa> Sorry. I was running ./koch tools |
20:47:33 | Araq | ./koch boot -d:release |
20:47:37 | Araq | before that then |
20:47:53 | Araq | but yeah, I could improve backwards compat for this |
20:50:32 | FromGitter | <pacopa> Ahhh, ok! That was the problem :-) Thanks, @Araq |
20:51:26 | Yardanico | Araq, is there something about rodfiles in your todo? :) |
20:52:10 | Araq | yardanico: I have new ideas of how to implement these |
20:52:22 | Yardanico | Araq, that's always good to hear |
20:52:30 | Yardanico | they'll be a killer feature |
20:52:37 | Yardanico | nim is already fast at compilation |
20:53:02 | Araq | I don't have good ideas that are not much work though, but I'm getting there |
20:56:13 | * | lastjedi joined #nim |
20:57:05 | Yardanico | this is why reddit/github community is not very serious sometimes: https://github.com/Property404/fetlang |
20:57:11 | Yardanico | this repo has almost 1k stars :P |
20:59:10 | FromGitter | <Varriount> Yardanico: Truly, that is the programming language of the future. |
21:00:37 | * | Yardanico quit (Remote host closed the connection) |
21:14:32 | * | d10n-work quit (Quit: Connection closed for inactivity) |
21:15:21 | * | firstjedi joined #nim |
21:25:01 | * | lastjedi quit (Ping timeout: 240 seconds) |
21:25:57 | * | firstjedi quit (Ping timeout: 260 seconds) |
21:27:29 | * | gokr quit (Ping timeout: 248 seconds) |
21:29:27 | * | endragor joined #nim |
21:31:15 | * | couven92 joined #nim |
21:34:23 | * | endragor quit (Ping timeout: 248 seconds) |
21:35:33 | Calinou | my favorite joke repo is https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition |
21:36:05 | Calinou | although for esolangs, I'd go for https://github.com/avian2/fimpp |
21:36:37 | Calinou | it doesn't work on PonyOS, though :'( that's no fun |
21:43:42 | FromGitter | <Varriount> Calinou: I'm trying to decide which is better - the java programmers who want 15 layers of abstraction and indirection, or the general programmers who lump everything into one monolithic function. |
21:44:08 | FromGitter | <Varriount> Though, I'll admit to sometimes being part of the latter category |
21:49:24 | Calinou | I try to find a middle ground :P |
21:49:30 | Calinou | overengineering definitely isn't a good thing, but underengineering also sin't |
21:49:32 | Calinou | isn't* |
21:53:32 | * | nsf joined #nim |
21:59:13 | Araq | have yet to find an underengineered codebase that is as bad as overengineered ones |
22:00:19 | * | nsf quit (Quit: WeeChat 1.9) |
22:08:56 | * | JappleAck joined #nim |
22:18:54 | FromGitter | <mratsim> Somehow a lot of Nim code I write is 2-7 lines of stuff and 5-15 lines of comment |
22:23:23 | FromGitter | <mratsim> There was this Terraria clone which made Reddit HN 5 days ago and was the first programming/game attempt of someone https://github.com/raxod502/TerrariaClone/blob/master/src/TerrariaClone.java#L1868 |
22:23:24 | * | Vladar quit (Quit: Leaving) |
22:25:08 | FromGitter | <Yardanico> Araq: 47 votes! http://www.strawpoll.me/14163114/r |
22:26:45 | * | yglukhov quit (Remote host closed the connection) |
22:44:17 | Araq | ugh we actually have a test that tests 'echo' is required to lock the stdout stream |
22:44:36 | Araq | and that's currently not true for windows and so appveyor is red |
22:48:52 | * | sleepyqt quit (Quit: WeeChat 1.9.1) |
22:51:02 | * | def-pri-pub joined #nim |
23:33:55 | * | def-pri-pub quit (Quit: Leaving.) |
23:48:42 | * | Nobabs27 joined #nim |
23:51:16 | * | Nobabs25 joined #nim |
23:51:34 | * | Nobabs27 quit (Client Quit) |
23:59:27 | * | couven92 quit (Quit: Client Disconnecting) |