00:02:30 | * | yglukhov quit (Ping timeout: 260 seconds) |
00:05:09 | FromGitter | <honewatson> talking about USP high performance garbage collection has been promoted as a selling point for the nim language |
00:05:16 | FromGitter | <honewatson> (https://files.gitter.im/nim-lang/Nim/2ptO/image.png) |
00:06:01 | FromGitter | <honewatson> (https://files.gitter.im/nim-lang/Nim/e3h5/image.png) |
00:13:03 | * | MJCaley quit (Quit: MJCaley) |
00:22:50 | * | MJCaley joined #nim |
00:33:23 | * | yglukhov joined #nim |
00:37:40 | * | yglukhov quit (Ping timeout: 240 seconds) |
00:47:52 | * | dddddd quit (Ping timeout: 256 seconds) |
00:49:55 | FromGitter | <zacharycarter> thank you skrylar for the blockchain info |
00:56:16 | skrylar | sure |
00:56:55 | skrylar | honewatson: it did when it was new |
00:58:01 | skrylar | when seaside first came out, many years ago, their "big thing" is that it made clever use of continuations so your web app was coded like a desktop; then it went behind the scenes and managed all the request/responses and the continuations |
00:58:50 | skrylar | so you could just write "i have these two buttons, if you push this button do this, if you push this counter do that, blah blah" and it wasn't like NodeJS where you had to write a ton of onerror or whatever |
00:59:13 | skrylar | now that nodejs is out, sure, you could argue that its just a syntactically cleaner version of that. but it predates nodejs fame |
00:59:50 | skrylar | what makes seaside (and to a elsser extent aida/web) a nonstarter is that the only "fast" and "professional" smalltalks are pay-money, and not trivial monies, unlike ruby which is just free |
01:00:08 | * | ipjk quit (Read error: Connection reset by peer) |
01:00:13 | skrylar | CogVM is their luajit, but it came way after seaside was hot |
01:08:17 | * | huonw quit (Ping timeout: 276 seconds) |
01:08:32 | * | huonw joined #nim |
01:09:05 | * | yglukhov joined #nim |
01:10:16 | * | dddddd joined #nim |
01:13:40 | * | yglukhov quit (Ping timeout: 260 seconds) |
01:19:55 | * | MJCaley quit (Quit: MJCaley) |
01:28:12 | * | MJCaley joined #nim |
01:43:38 | FromGitter | <honewatson> ok thanks for the info. Often the best thing never wins in Software. Its all about promotion and build community. |
01:44:47 | FromGitter | <honewatson> Seems as though productivity in of itself is not really a strong selling point |
01:44:48 | FromGitter | <honewatson> https://medium.com/smalltalk-talk/smalltalk-s-proven-productivity-fe7cbd99c061 |
01:47:44 | FromGitter | <honewatson> Once you get leads you need to get converts |
01:53:59 | skrylar | neolangs often have difficulty understanding people's objections IMO |
01:54:21 | skrylar | SBCL people were telling me off when i suggested being able to embed with C might be an advantage |
01:54:34 | skrylar | lo and behold, being able to embed with C is why Unity and Mono are a couple |
01:55:16 | skrylar | Pharo is trying to handle the "user prism" with books, but then they are releasing "stable" versions that invalidate their supporting materials |
01:56:15 | skrylar | haven't run in to that with nim yet, but admittedly i don't do anything too weird or rely on blogs |
01:56:43 | * | yglukhov joined #nim |
01:58:02 | skrylar | there is also an issue where many times people would like to use a neolang but can't because they also need to use some framework that demands control over the runtime; for instance OGRE p(in 2012 when I used it) was extremely demanding in that it wanted to create and manage windows for you, and took a lot of effort if you wanted to use your own hrefs |
01:58:19 | skrylar | this tends to screw up when you get ex. Go or Squeak which also want to control the runtime |
01:58:31 | skrylar | i think nim does have a nim_init or such though |
02:01:05 | * | yglukhov quit (Ping timeout: 248 seconds) |
02:03:30 | FromGitter | <jamesalbert> @Varriount I haven't inspected the packets exactly, more so just the headers being sent. ⏎ ⏎ @Araq the strange this is that every other wss:// works fine with websocket.nim (the ones I tried) except for gdax, but I'm able to connect to gdax with other libraries |
02:23:48 | * | S1tiSchu joined #nim |
02:26:57 | * | S1t1Schu quit (Ping timeout: 240 seconds) |
02:28:10 | * | skelett quit (Ping timeout: 256 seconds) |
02:30:18 | * | chemist69 quit (Ping timeout: 240 seconds) |
02:31:30 | * | xkapastel quit (Quit: Connection closed for inactivity) |
02:43:08 | * | MJCaley quit (Quit: MJCaley) |
02:44:24 | * | chemist69 joined #nim |
02:47:50 | shashlick | honewatson: I'll really vouch for Nim productivity - started a console text editor 1/2 a month ago (spent 3 of those days scavenging for info on keymaps). It's already quite feature rich. |
02:48:29 | shashlick | first time I decided to use channels between threads and it took 15 minutes and compiled and worked the first time I tried |
02:50:26 | shashlick | i've been using Nim for 10 months now so it's not like I have years of experience with the ecosystem or something |
03:01:24 | * | icebattle quit (Remote host closed the connection) |
03:09:12 | FromGitter | <honewatson> @shashlick yeah Nim is very productive. The point of the article is that productivity has no correlation to popularity. The least productive languages C and JS are two of the most popular while a bunch of highly productive languages are not very popular at all. |
03:10:06 | FromGitter | <honewatson> Productivity is definitely a strong selling point for me but doesn't seem to be for plenty of other people/businesses. |
03:11:06 | shashlick | well, I feel a lot of companies forced to use C for performance or portability reasons can consider nim |
03:11:38 | shashlick | but given there's no stable release to build on, it's hard to bet your business on it |
03:14:14 | FromGitter | <honewatson> Yeah it is interesting though my feeling is that Nim generally is pretty stable. Seems there is some edge case issues with things like sockets. |
03:15:06 | FromGitter | <honewatson> Wallaroo labs used Pony to create their product. Pony is not yet v1. I investigated the language but hate slow compile times. There are much less libraries than Nim too. |
03:15:08 | FromGitter | <honewatson> https://www.wallaroolabs.com/ |
03:15:10 | shashlick | it's not that nim is unstable, every release is good but the thing is you need a long term commitment to a release branch |
03:15:37 | shashlick | like at my work, we do extensive embedded firmware in C |
03:15:56 | shashlick | nim would definitely speed up the turnaround and quality |
03:16:17 | shashlick | but it's not feasible to introduce since we can't pick 0.17.2 and expect bug fixes for the next 2 years |
03:16:53 | shashlick | if we come back after 6 months, nim may have released 0.17.3, or 0.18 who knows |
03:17:22 | shashlick | so a roadmap of stabilty is essential to any serious adoption |
03:17:43 | shashlick | there are always people willing to go bleeding edge, but most industries are hyper conservative for very sensible reasons |
03:17:51 | FromGitter | <honewatson> I think v1 is just around the corner but yeah the roadmap thing is all about public relations and promotion. |
03:17:58 | shashlick | yep |
03:18:04 | FromGitter | <honewatson> reelvalley used Nim and their team provided a lot of bug fixes |
03:18:07 | FromGitter | <honewatson> to Nim |
03:19:58 | FromGitter | <honewatson> I do feel that Nim is ideally suited to the Cloud/Web/Dev Ops too. Its easy to write testable code that fits easily into Continuous Integration and containerized deployment. |
03:28:32 | * | radagast quit (Quit: radagast) |
03:44:47 | * | endragor joined #nim |
04:06:48 | * | tinAndi joined #nim |
04:12:18 | * | tinAndi quit (Ping timeout: 240 seconds) |
04:19:28 | * | yglukhov joined #nim |
04:23:59 | * | yglukhov quit (Ping timeout: 248 seconds) |
04:27:06 | * | dddddd quit (Remote host closed the connection) |
04:35:09 | skrylar | shashlick, a lot of companies are "forced to use C" because the people deciding the tooling have no qualifications to be doing so |
04:35:31 | skrylar | they just go "i hear there's a lot of PHP devs" and then that suddenly becomes the requirementt |
04:36:29 | skrylar | there is a perverse inversion involved; the more jobs a person needs to fill for a tech, perhaps the worse that technology is. yet people see jobs available and decide it is desirable. so the lack of quality in a product, in turn reinforces that people should use it because bad quality = more jobs = better marketshare |
04:55:03 | * | yglukhov joined #nim |
04:59:45 | * | yglukhov quit (Ping timeout: 248 seconds) |
05:07:05 | * | scriptum quit (Ping timeout: 256 seconds) |
05:11:54 | * | scriptum joined #nim |
05:34:31 | * | radagast joined #nim |
05:50:58 | radagast | Are non Nim related questions welcome? If so, why use priority queue? If I feed a stream of samples to a PQ, it's not guaranteed that the queue will return N max/min items of the stream, right? |
05:55:33 | FromGitter | <matrixbot> `petersjt014` well I don't speak nim and nobody else is awake, so yes |
05:56:10 | FromGitter | <matrixbot> `petersjt014` A PQ has a pretty specific use case |
05:56:49 | FromGitter | <matrixbot> `petersjt014` https://en.wikipedia.org/wiki/Priority_queue |
05:58:43 | FromGitter | <matrixbot> `petersjt014` And the rank assignment is extra overhead--if retrieving min/max items was a main priority, you might consider a Fibonacci heap or something instead |
06:00:43 | FromGitter | <Varriount> I'm awake |
06:02:32 | FromGitter | <matrixbot> `petersjt014` Ah. Hi. |
06:04:48 | FromGitter | <matrixbot> `petersjt014` I'm here because I was maybe going to try installing/running the language for the first time (If I can stay awake) |
06:05:03 | FromGitter | <matrixbot> `petersjt014` But in the mean time I can nerd out about data structures a bit |
06:07:28 | FromGitter | <matrixbot> `petersjt014` From IRC (bridge bot) (Gitter): also: https://en.wikipedia.org/wiki/Binary_heap#Summary_of_running_times |
06:07:50 | FromGitter | <matrixbot> `petersjt014` Time compexities are nice to know if you feel like optimizing |
06:09:14 | FromGitter | <matrixbot> `petersjt014` But back to Priority Queues: |
06:11:11 | FromGitter | <matrixbot> `petersjt014` IF it helps, you can sort of think of them as a set of *m* individual queues, one per priority |
06:12:43 | FromGitter | <matrixbot> `petersjt014` Each one Behaves As a normal queue, FIFO style |
06:14:20 | FromGitter | <matrixbot> `petersjt014` One really fitting use case is network connection managment |
06:16:13 | FromGitter | <matrixbot> `petersjt014` packets are ordered, *and* some are more important than others (i.e. NTP vs web page request vs voip) |
06:17:29 | * | nsf joined #nim |
06:18:20 | * | yglukhov joined #nim |
06:20:14 | FromGitter | <matrixbot> `petersjt014` Also: the set of individual queues (lanes/channels might be a better term) are separate enough that multithreaded versions aren't too hard to write |
06:22:00 | FromGitter | <matrixbot> `petersjt014` I'm not sure if that answers your question, but I hope that example helps! :) |
06:22:35 | * | yglukhov quit (Ping timeout: 240 seconds) |
06:27:14 | radagast | Thanks, it was informative. |
06:28:56 | FromGitter | <matrixbot> `petersjt014` you're welcome. also the wiki page (https://en.wikipedia.org/wiki/Priority_queue#Applications) has several more practical applications. |
06:31:39 | FromGitter | <matrixbot> `petersjt014` And one last tip: the best way to learn new data structures/algorithims well is to write one yourself, preferably in several languages for good measure. |
06:32:24 | FromGitter | <matrixbot> `petersjt014` You won't need to know how the hell a ctrie works most days of your life, but when you do it'll pay off |
06:32:53 | * | Yardanico joined #nim |
06:42:33 | * | yglukhov joined #nim |
06:46:35 | * | yglukhov quit (Ping timeout: 240 seconds) |
06:55:13 | * | Yardanico quit (Read error: Connection reset by peer) |
06:56:05 | FromGitter | <survivorm> @petersjt014 - how are you connecting to nim channel via matrix? |
06:56:13 | * | solitudesf joined #nim |
06:56:25 | * | radagast quit (Remote host closed the connection) |
06:56:35 | FromGitter | <matrixbot> `petersjt014` https://riot.im/app/#/room/#gitter_nim-lang=2Fnim:matrix.org |
07:01:02 | FromGitter | <matrixbot> `survivorm` Thanks |
07:01:52 | FromGitter | <matrixbot> `survivorm` Gitter app in linux is "not so good", so, i'm trying to find something else |
07:02:56 | FromGitter | <matrixbot> `petersjt014` stuff like this (https://stackoverflow.com/questions/32490505/weechat-and-gitter) is a thing |
07:03:38 | FromGitter | <matrixbot> `petersjt014` and any room with a matrix bot will work with the matrix client |
07:06:10 | FromGitter | <matrixbot> `survivorm` Good. Personally, i've been a big fan of jabber in icq era. As far as i can see, matrix is a development of jabber idea |
07:17:54 | * | yglukhov joined #nim |
07:20:01 | * | MJCaley joined #nim |
07:22:07 | * | yglukhov quit (Ping timeout: 248 seconds) |
07:24:17 | * | MJCaley quit (Ping timeout: 248 seconds) |
07:25:59 | * | gangstacat quit (Quit: Ĝis!) |
07:31:38 | * | gangstacat joined #nim |
07:47:29 | * | brainacid joined #nim |
07:47:37 | brainacid | Hello |
07:48:02 | * | yglukhov joined #nim |
07:48:05 | FromGitter | <matrixbot> `petersjt014` Hi |
07:48:24 | FromGitter | <matrixbot> `petersjt014` fyi I have literally just started with the language |
07:48:33 | FromGitter | <matrixbot> `petersjt014` so might not be able to answer |
07:48:58 | FromGitter | <matrixbot> `petersjt014` but I can offer help on other things (see the above chatlogs) |
07:50:26 | brainacid | I havent started yet in any language in specific, I dab into all as I need to. Some how I cant commit to a project idea to see the fruition of the model. Im self-taught in tech and formal training would be cool. Im here to try and connect with someone and actually talk about coding and stuff. Not very good networker so to speack, and I aint shy, lol...so hows it going for u with Nim? |
07:50:47 | * | radagast joined #nim |
07:51:40 | FromGitter | <matrixbot> `survivorm` It's... interesting, as i can say |
07:52:12 | brainacid | I mean we can code in one language and transpile to others. We have come quite a ways |
07:52:27 | * | yglukhov quit (Ping timeout: 246 seconds) |
07:52:37 | FromGitter | <matrixbot> `petersjt014` I got interested in it because it's low-ish level (most of my preferred languages aren't) while still having the stuff I like--mostly Functional Programming constructs |
07:53:06 | brainacid | The generation now hasnt really seen what it was 1996, 28.8kbps, singel core cpus, gpus were haha, and so on |
07:53:25 | FromGitter | <matrixbot> `survivorm` For me - it's familiar syntax in many ways (i came from python), high portability, good language flexibility |
07:53:37 | brainacid | What other languages, that are high-ish, you work with? |
07:54:06 | FromGitter | <matrixbot> `survivorm` @brainacid - Why not? I've started with ZX Spectrum, so i remember it well |
07:54:53 | FromGitter | <matrixbot> `survivorm` I've coded in python, perl, mathlab, a little in java |
07:55:02 | brainacid | Well I mean the overall attitude is one of 'taken for granted', so much work to get her you know |
07:55:05 | FromGitter | <matrixbot> `petersjt014` For one: python for a lot of general stuff. For me This (https://www.xkcd.com/353/) strip could not be more accurate |
07:55:23 | brainacid | Oh nice lets see it |
07:55:45 | FromGitter | <matrixbot> `petersjt014` does the link not work? |
07:56:22 | FromGitter | <matrixbot> `survivorm` in gitter and matrix it does |
07:56:34 | brainacid | lol |
07:56:44 | FromGitter | <matrixbot> `petersjt014` yup |
07:56:45 | brainacid | yes it sure does |
07:57:18 | brainacid | See im on plain ol' irssi IRC on lxterminal...u know...yank & paste... ;) |
07:57:24 | FromGitter | <matrixbot> `petersjt014` For another: Scala. I don't think it makes a good intro to FP like some people say, but I do think it beats haskell in that dept |
07:57:34 | FromGitter | <matrixbot> `petersjt014` ah |
07:57:45 | brainacid | I liked Haskell |
07:57:51 | brainacid | I like C |
07:58:03 | brainacid | Lisp is Python! |
07:58:22 | brainacid | But how am I breathing underwater? Lisp! Come join me! |
07:58:24 | FromGitter | <matrixbot> `survivorm` @brainacid - for me, nim is elegant and simple, as python, but more strict and fast as low-level |
07:58:27 | brainacid | hahah |
07:58:38 | FromGitter | <matrixbot> `survivorm` And it's marvellous |
07:58:50 | FromGitter | <matrixbot> `survivorm` and lisp is not python |
07:58:56 | brainacid | I would like to make a terminal text editor that has very basic features |
07:58:58 | FromGitter | <matrixbot> `survivorm` nonsense! |
07:59:10 | FromGitter | <matrixbot> `survivorm` look at qnim |
07:59:11 | brainacid | Like the strip |
07:59:33 | FromGitter | <matrixbot> `petersjt014` I mean, except when it is (http://docs.hylang.org/en/stable/)... |
07:59:39 | brainacid | Thanks. Gonna download the source and look at the code |
07:59:40 | FromGitter | <matrixbot> `survivorm` it is terminal, it is very basic, it's written in 2 weeks |
08:00:14 | brainacid | Thats something I do more than type and model problems with code, I read and reverse-understand |
08:00:30 | FromGitter | <matrixbot> `survivorm` Same |
08:01:01 | FromGitter | <matrixbot> `survivorm` One of the best ways to get to know the language or the project in particular |
08:01:13 | FromGitter | <matrixbot> `petersjt014` You know what another good way is? |
08:01:30 | FromGitter | <matrixbot> `survivorm` Write something yourself, of cause |
08:01:57 | FromGitter | <matrixbot> `petersjt014` But there is one specific way |
08:02:23 | brainacid | Hey so...whats qnim? a typo? |
08:03:06 | brainacid | I dont know tell us |
08:03:52 | FromGitter | <matrixbot> `survivorm` That's a little complicated, but i'll try to dig the link |
08:04:09 | FromGitter | <matrixbot> `survivorm` Author is a frequent user of this channel |
08:04:40 | FromGitter | <matrixbot> `survivorm` and he was going to upload in on github, but not sure he done it yet |
08:04:58 | FromGitter | <matrixbot> `survivorm` so, best way is to browse the history |
08:06:29 | brainacid | sounds good |
08:07:15 | brainacid | Anyone have an idea if I can help with NimEdit? |
08:07:40 | FromGitter | <matrixbot> `survivorm` I think you do |
08:07:43 | brainacid | It be a good way for me to learn. I cant see it on the site when its going to be available |
08:08:16 | FromGitter | <matrixbot> `survivorm` it's the @Araq's project AFAIR |
08:08:24 | FromGitter | <matrixbot> `petersjt014` I can't help with lang-specific features, but I will say not to forget to memoize if possible |
08:08:59 | FromGitter | <matrixbot> `survivorm` @shashlick You're here? |
08:09:07 | FromGitter | <matrixbot> `survivorm` He's qnim author |
08:09:14 | FromGitter | <matrixbot> `petersjt014` It is a semi-functional language after all |
08:09:46 | Araq | brainacid: nimedit uses github's issue tracker |
08:10:51 | FromGitter | <matrixbot> `survivorm` dropbox link to qnim is dead, unfortunately |
08:11:08 | FromGitter | <matrixbot> `survivorm` i may repost it here, if you wan |
08:11:10 | FromGitter | <matrixbot> `survivorm` i may repost it here, if you want |
08:11:11 | * | couven92 joined #nim |
08:11:45 | FromGitter | <matrixbot> `survivorm` but all copyrights are to shashlick, of cause |
08:13:17 | FromGitter | <matrixbot> `petersjt014` One quick thing from the conversation earlier that I didn't get to mention and wanted to before I forget: ⏎ ⏎ what I like to do sometimes is find a unique or exotic data structure that has not been written in the language yet and make an implementation. You can then test to see if it conforms to expected time complexities, and learning why it does/doesn't reveals a lot about the guts of language |
08:13:17 | FromGitter | ... itself. |
08:13:50 | FromGitter | <matrixbot> `petersjt014` there are some really neat (https://en.wikipedia.org/wiki/Ctrie) ones for challenges |
08:14:00 | brainacid | Just helping here as advice, in English its 'of course' |
08:14:12 | brainacid | Thanks Araq |
08:15:27 | FromGitter | <matrixbot> `petersjt014` Though a bloom filter might be a bit better for this purpose as a mid~high level challenge |
08:17:04 | brainacid | Araq: I cant see it anywhere on github |
08:18:04 | FromGitter | <nitely> @jamesalbert here https://github.com/niv/websocket.nim/pull/28 I fixed it for you |
08:18:31 | FromGitter | <nitely> (I don't even use websockets btw) |
08:23:04 | brainacid | Oops |
08:23:18 | * | solitudesf quit (Ping timeout: 240 seconds) |
08:27:11 | * | solitudesf joined #nim |
08:27:13 | * | PMunch joined #nim |
08:49:40 | brainacid | Araq: Cant compile on my i386 |
08:50:30 | brainacid | Araq: Debian and I get : nimedit.nim(9, 8) Error: cannot open 'sdl2' |
08:50:49 | brainacid | When I do nim c nimedit.nim |
08:54:23 | PMunch | brainacid, seems like you're missing sdl2 |
08:54:28 | PMunch | Have you tried nimble install sdl2? |
08:55:29 | * | brainacid quit (Ping timeout: 248 seconds) |
09:02:57 | * | gmpreussner quit (Ping timeout: 240 seconds) |
09:05:40 | * | gmpreussner joined #nim |
09:10:14 | * | Vladar joined #nim |
09:14:58 | * | yglukhov joined #nim |
09:20:12 | * | MJCaley joined #nim |
09:24:47 | * | MJCaley quit (Ping timeout: 248 seconds) |
09:41:13 | * | Arrrr joined #nim |
09:41:13 | * | Arrrr quit (Changing host) |
09:41:13 | * | Arrrr joined #nim |
09:43:48 | * | gangstacat quit (Ping timeout: 240 seconds) |
09:45:24 | * | gangstacat joined #nim |
10:18:02 | * | Vladar quit (Quit: Leaving) |
10:46:43 | FromGitter | <jamesalbert> @nitely showing that it's all in the details 👏 I thought it was a missing header somewhere, but turns out to be a bad key. Thanks a lot for the commit! But right after I decided to write that piece in c and compile it in :) |
10:52:36 | * | vlad1777d joined #nim |
11:02:39 | FromGitter | <nitely> lol, I guess that may be fairly common theme until libraries mature |
11:03:09 | Araq | can't use Nim's syntax to write the C? |
11:03:20 | Araq | you need to learn more Nim then. ;-) |
11:05:22 | FromGitter | <jamesalbert> I’m still nim padawan status 👶🏼 |
11:10:45 | GitDisc | <ZarsBranchkin> Several libraries are just wrappers for the C libraries, so you're pretty much already writing C in Nim syntax |
11:11:16 | * | GaveUp quit (Ping timeout: 276 seconds) |
11:11:17 | * | d10n_ quit (Ping timeout: 276 seconds) |
11:12:11 | * | GaveUp joined #nim |
11:12:46 | * | d10n joined #nim |
11:12:46 | * | d10n quit (Changing host) |
11:12:46 | * | d10n joined #nim |
11:16:29 | * | Arrrr quit (Ping timeout: 265 seconds) |
11:18:55 | * | Arrrr joined #nim |
11:18:55 | * | Arrrr quit (Changing host) |
11:18:55 | * | Arrrr joined #nim |
11:20:43 | * | MJCaley joined #nim |
11:20:50 | * | tinAndi joined #nim |
11:23:33 | * | PMunch_ joined #nim |
11:23:45 | * | PMunch quit (Ping timeout: 248 seconds) |
11:25:28 | * | MJCaley quit (Ping timeout: 268 seconds) |
11:25:56 | FromGitter | <nitely> @Araq probably used a websocket lib in C that did the job, can't blame him |
11:26:25 | * | tinAndi quit (Ping timeout: 248 seconds) |
11:27:41 | Araq | lol that never occured to me |
11:27:55 | Araq | even though I have problems with websockets myself |
11:27:58 | FromGitter | <nitely> @ZarsBranchkin everything in Python stdlib is C. We are all writting C no matter what |
11:28:23 | Araq | not true, plenty of Python's lib is in Python |
11:28:34 | FromGitter | <nitely> almost nothing |
11:28:42 | Araq | come on |
11:28:58 | FromGitter | <nitely> you only read the asyncio lib |
11:29:22 | FromGitter | <nitely> well, at least half of it must be C |
11:30:37 | FromGitter | <nitely> asyncio is pretty much the only thing that it's purely python, for some reason |
11:31:40 | FromGitter | <nitely> and probably some other API that no one uses cause it's to slow cause of python :P |
11:32:39 | * | PMunch_ is now known as PMunch |
11:34:22 | * | Yardanico joined #nim |
11:34:32 | FromGitter | <ChristianWitts> https://github.com/python/cpython it is a fairly large portion of python code used |
11:36:37 | FromGitter | <nitely> yeah, I exaggerated |
11:37:54 | FromGitter | <ChristianWitts> sloc says 572567 for Python and 422832 for C, C++, C/C++ headers |
11:38:53 | FromGitter | <nitely> there is plenty of dummy Python glue there, though |
11:40:25 | PMunch | To be fair though, Python isn't the right language to write an efficient runtime in |
11:40:36 | PMunch | So it makes sense to write the Python runtime in something else |
11:41:01 | PMunch | But Nim touts itself as being efficient, so it would be bad if the compiler wasn't also written in Nim :) |
11:41:07 | * | dddddd joined #nim |
11:43:57 | FromGitter | <nitely> also all the tooling is likely python |
11:47:14 | * | Arrrr quit (Ping timeout: 276 seconds) |
11:52:21 | * | arnetheduck joined #nim |
12:06:26 | * | nsf quit (Quit: WeeChat 2.0.1) |
12:10:01 | * | Arrrr joined #nim |
12:10:01 | * | Arrrr quit (Changing host) |
12:10:01 | * | Arrrr joined #nim |
12:12:15 | * | vlad1777d quit (Ping timeout: 248 seconds) |
12:19:06 | * | Vladar joined #nim |
12:21:41 | * | floppydh joined #nim |
12:50:54 | * | defecator joined #nim |
12:58:57 | * | NimBot joined #nim |
13:06:12 | * | Arrrr quit (Quit: Leaving.) |
13:21:26 | * | MJCaley joined #nim |
13:26:41 | * | MJCaley quit (Ping timeout: 276 seconds) |
13:31:53 | FromGitter | <mratsim> Mandatory xkcd: https://xkcd.com/353/ |
13:41:37 | * | Snircle_ joined #nim |
13:41:48 | * | Snircle quit (Ping timeout: 240 seconds) |
13:49:54 | Yardanico | python 2 though :) |
13:50:00 | Yardanico | (I mean they can update it xD) |
13:50:51 | PMunch | Python is a pretty neat language though. When it came I can see why people were hyped for it |
13:51:16 | livcd | I am unhappy that Python fared better than Ruby |
13:51:35 | PMunch | Ruby has some very strange syntactic things though.. |
13:51:56 | PMunch | But yeah, Ruby is nice as well |
13:51:57 | livcd | Python does as well |
13:52:08 | PMunch | Well all languages have some strange things |
13:52:24 | PMunch | But I'd say Python is closer in syntax to C/Java than Ruby is |
14:12:55 | * | macsek1911[m] quit (Ping timeout: 248 seconds) |
14:14:09 | * | dddddd quit (Ping timeout: 264 seconds) |
14:15:14 | * | macsek1911[m] joined #nim |
14:15:18 | * | dddddd joined #nim |
14:17:49 | * | dddddd quit (Excess Flood) |
14:18:17 | * | dddddd joined #nim |
14:21:47 | FromGitter | <survivorm> btw, @PMunch, any comments on the article? |
14:22:49 | PMunch | Oh yeah, I tried to reach you the other day |
14:23:03 | PMunch | I don't have it in front of me right now though.. |
14:23:17 | PMunch | But it looks good |
14:24:08 | PMunch | It's legible in English as well, some things could be changed to make it flow a bit better. And there are some things I don't quite understand but other than that it looks good |
14:28:25 | * | fvs left #nim ("ERC (IRC client for Emacs 25.3.1)") |
14:29:52 | * | sz0 joined #nim |
14:30:16 | * | endragor quit (Remote host closed the connection) |
14:30:23 | FromGitter | <survivorm> the part there you don't understand something is not good at all |
14:31:26 | FromGitter | <survivorm> It has to be as clear as an open sky, so if i haven't clarified something enough, just point me and i'll try to |
14:32:45 | livcd | what article ? :) |
14:37:14 | PMunch | Do you have the link again survivorm? I only have it open on my home-machine |
14:37:21 | FromGitter | <survivorm> interested in parsers? |
14:37:43 | FromGitter | <survivorm> moment |
14:41:56 | FromGitter | <survivorm> translated https://docs.google.com/document/d/109ITPXUi1ywUHkEb7K_FMv6sMjBAXZgcrE2CuFPnWGA/edit?usp=sharing |
14:42:30 | PMunch | Did you translate it by the way or is Google Translate getting this good? |
14:42:46 | FromGitter | <survivorm> originalhttps://docs.google.com/document/d/1o20XXXBzR4_R81ihENVyAfACF7Vp599Kb90hR3JdewI/edit#heading=h.wkscvyygl2td |
14:43:43 | FromGitter | <survivorm> google translate patched by hands |
14:44:10 | FromGitter | <survivorm> got me couple of hours |
14:44:20 | PMunch | Oh wow |
14:44:42 | PMunch | I remember when Google translate would only give you a vague idea of what you were trying to convey |
14:45:00 | PMunch | I mean this is still not perfect, but it's gotten far since it's early days |
14:46:14 | FromGitter | <survivorm> yeah |
14:51:18 | FromGitter | <mratsim> Not sure if Ruby is the same but I really don't like the `end` statement in Crystal and Julia, it's worse than C/C++/Rust bracket. Please stop the arrow pattern |
14:52:04 | FromGitter | <survivorm> At least now Google |
14:53:51 | * | couven92 quit (Quit: Client disconnecting) |
14:54:26 | FromGitter | <survivorm> it's not clean, but at last it's understandable |
14:58:22 | floppydh | given a subdirectory where I git-clone various nim libraries, what can I set in nim.cfg in my project root that it can find those? |
14:58:28 | floppydh | I'm aware of nimble |
14:58:29 | FromGitter | <survivorm> btw, above links are shared to all. If You've got any comments, i'm eager to hear 'em |
14:58:54 | PMunch | --lib:PATH |
14:59:02 | PMunch | floppydh ^ |
14:59:11 | PMunch | According to this: https://nim-lang.org/docs/nimc.html |
14:59:13 | floppydh | PMunch: thanks |
14:59:48 | * | solitudesf quit (Ping timeout: 240 seconds) |
15:00:59 | floppydh | PMunch: whats the "current" lib path tho?, it overrides it, not extend |
15:01:48 | floppydh | also this is just for system libraries? |
15:01:58 | * | solitudesf joined #nim |
15:02:19 | PMunch | Oooh |
15:02:38 | PMunch | Hmm, maybe --import:PATH or --NimblePath:PATH are more correct? |
15:02:49 | floppydh | PMunch: yeah thanks |
15:05:28 | dom96 | what you want is --path |
15:05:35 | dom96 | for each library |
15:05:50 | dom96 | --nimblePath has some expectations |
15:07:48 | floppydh | dom96: ty |
15:08:02 | floppydh | flyx: I think yaml is broken again :/ - created an issue |
15:09:39 | * | Arrrr joined #nim |
15:09:39 | * | Arrrr quit (Changing host) |
15:09:39 | * | Arrrr joined #nim |
15:09:46 | flyx | floppydh: probably related by this broken attempt to fix it: https://github.com/flyx/NimYAML/pull/52 |
15:11:05 | floppydh | feelsbadman |
15:21:46 | * | MJCaley joined #nim |
15:24:48 | FromGitter | <zetashift> I kinda like the `end` statements now after working with Elixir |
15:24:50 | flyx | I suspect it's a compiler bug since this error seems to be based on line 1060 of serialization.nim; however, internalError() is called in several other places in that file which do not run into that error |
15:25:30 | flyx | and I suspect this happens because the call in line 1060 is inside a macro |
15:25:53 | flyx | but I don't really have an idea how to fix it |
15:26:56 | * | MJCaley quit (Ping timeout: 276 seconds) |
15:27:41 | shashlick | @survivorm: sorry was fast asleep, was 2am 🙂 qnim is now called snip, terminal text editor https://github.com/genotrance/snip - @brainacid, @petersjt014 |
15:28:35 | * | endragor joined #nim |
15:29:45 | * | arnetheduck quit (Ping timeout: 265 seconds) |
15:30:31 | shashlick | @survivorm, @petersjt014 - why not use matrix directly on IRC? else your messages come through matrixbot: https://riot.im/app/#/room/#nim:matrix.org |
15:33:40 | FromGitter | <survivorm> @shashlick - it's more the matter of what to call root channel? irc or gitter |
15:35:46 | shashlick | true but even on gitter it shows up as matrixbot |
15:35:59 | flyx | I am still waiting for a matrix client usable for a high-traffic channel like this one so that I can switch away from IRC. sadly, Riot is far too bloaty. |
15:36:49 | shashlick | flyx: i've been quite happy with riot in the browser |
15:37:23 | shashlick | of course, it does use a lot of ram |
15:37:57 | flyx | yeah and I miss the clean UI design Textual has |
15:38:40 | shashlick | xchat for me, but ya cannot connect from work then |
15:39:41 | flyx | at some point in time, when all other projects are finished, I will write a usable chat client. |
15:41:46 | shashlick | Does matrix allow an irc client to connect? |
15:45:41 | FromGitter | <survivorm> i doubt it |
15:46:09 | FromGitter | <survivorm> does irc support login/pass? |
15:47:23 | shashlick | https://matrix.org/docs/projects/try-matrix-now.html |
15:47:34 | shashlick | Variety of clients |
15:48:01 | shashlick | I'll be happy to start a CLI client in nim if anyone is interested in working together |
15:48:08 | FromGitter | <survivorm> i tried Quaternion |
15:48:09 | * | BitPuffin joined #nim |
15:48:25 | FromGitter | <survivorm> it's good, but features are lacking |
15:48:28 | * | endragor quit (Remote host closed the connection) |
15:48:47 | FromGitter | <survivorm> even reply-to autocomplete |
15:48:59 | FromGitter | <survivorm> even SETTINGS |
15:49:08 | FromGitter | <survivorm> very basic |
15:49:24 | FromGitter | <survivorm> but fast, as far as i've seen |
15:52:04 | * | defecato` joined #nim |
15:53:03 | * | dddddd quit (Ping timeout: 248 seconds) |
15:53:35 | * | PMunch quit (Ping timeout: 276 seconds) |
15:54:08 | * | Vladar quit (Quit: Leaving) |
15:54:21 | * | skelett joined #nim |
15:55:34 | shashlick | I'll check it out |
15:55:45 | * | defecator quit (Ping timeout: 248 seconds) |
15:55:47 | shashlick | Hope it has basic proxy support |
16:14:20 | * | xkapastel joined #nim |
16:20:30 | GitDisc | <treeform> wrapping C++ code in nim is hard, probably because C++ code is confusing. |
16:25:04 | * | miran joined #nim |
16:31:51 | * | chemist69 quit (Ping timeout: 246 seconds) |
16:35:13 | * | chemist69 joined #nim |
16:37:49 | * | floppydh quit (Quit: WeeChat 2.0.1) |
16:39:05 | * | skelett quit (Ping timeout: 276 seconds) |
16:39:31 | GitDisc | <treeform> i wish more people just made C apis they always seem to just work... |
16:41:28 | FromGitter | <survivorm> I think you probably mistake the reason and the result |
16:42:10 | FromGitter | <survivorm> That probably means that people making C apis are just more capable :) |
16:42:41 | GitDisc | <treeform> I think trying every possible combination is working |
16:43:09 | GitDisc | <treeform> I should automate this, like some sort of cpp wrapper safe cracker |
16:43:43 | FromGitter | <survivorm> What should it do |
16:43:52 | FromGitter | <survivorm> ? |
16:44:00 | GitDisc | <treeform> I am trying to wrap the steamworks sdk. |
16:44:31 | FromGitter | <survivorm> means nothing to me :P |
16:44:59 | GitDisc | <treeform> https://developer.valvesoftware.com/wiki/Steamworks |
16:45:00 | FromGitter | <survivorm> is this a toolset for integrating with valve's steam? |
16:45:17 | GitDisc | <treeform> yeah |
16:50:07 | GitDisc | <treeform> c2nim seems to have issue with it because its all virutal interfaces all the way down... |
16:50:49 | FromGitter | <survivorm> meaning the complexity |
16:51:32 | FromGitter | <survivorm> rarely used things? All-in-all I mean, not across the framework |
16:53:46 | GitDisc | <treeform> I think I just dont understand C++ well enough |
17:03:20 | * | yglukhov quit (Remote host closed the connection) |
17:04:20 | * | yglukhov joined #nim |
17:08:20 | * | tinAndi joined #nim |
17:09:10 | * | yglukhov quit (Ping timeout: 260 seconds) |
17:11:09 | * | yglukhov joined #nim |
17:12:44 | miran | https://news.ycombinator.com/item?id=16272012 |
17:12:53 | miran | nim is mentioned in one comment |
17:13:46 | dom96 | lol, really? Java as the first comment? |
17:14:18 | miran | nr of java upvoters >> nr of nim upvoters :P |
17:14:30 | * | tinAndi quit (Ping timeout: 268 seconds) |
17:15:30 | dom96 | "But, I've also come to the conclusion that the few libraries I've used that were written in nim are of poor quality." |
17:15:33 | dom96 | I agree with that :/ |
17:15:44 | * | yglukhov quit (Ping timeout: 268 seconds) |
17:15:59 | * | sz0 quit (Quit: Connection closed for inactivity) |
17:16:13 | FromGitter | <survivorm> little community, i suppose |
17:16:54 | FromGitter | <survivorm> most libraries are developed by single person :( |
17:17:58 | FromGitter | <survivorm> AND the language is young and "best practices" are not here yet |
17:18:18 | FromGitter | <survivorm> at least not in all language domain |
17:18:30 | federico3 | yep |
17:19:39 | * | Snircle_ quit (Quit: Textual IRC Client: www.textualapp.com) |
17:22:17 | * | MJCaley joined #nim |
17:22:42 | * | icebattle joined #nim |
17:25:54 | * | jxv joined #nim |
17:27:00 | FromGitter | <data-man> Young? This year is the 10th anniversary. ⏎ The party will be? :) |
17:27:11 | * | MJCaley quit (Ping timeout: 276 seconds) |
17:28:40 | dom96 | Soooo, who's coming to FOSDEM? :D |
17:32:10 | FromGitter | <data-man> I will have enough video and photos from FOSDEM. :) |
17:53:42 | * | stephen234 joined #nim |
17:54:24 | * | yglukhov joined #nim |
17:54:41 | * | stephen234 quit (Client Quit) |
17:55:36 | * | tinAndi joined #nim |
17:56:43 | * | jxv quit (Quit: zzz…) |
17:57:25 | * | jxv joined #nim |
17:59:20 | * | yglukhov quit (Ping timeout: 260 seconds) |
18:00:21 | * | yglukhov joined #nim |
18:01:09 | * | tinAndi quit (Ping timeout: 256 seconds) |
18:01:51 | Yardanico | data-man: I've asked dom96 and they won't do any special video recordings at FOSDEM |
18:01:58 | Yardanico | or you'll come by yourself? :) |
18:04:37 | * | yglukhov quit (Remote host closed the connection) |
18:04:41 | FromGitter | <data-man> As mentioned in a famous movie, "no, better you to us". :D |
18:04:49 | * | yglukhov joined #nim |
18:08:13 | FromGitter | <zetashift> Quite nice to see Nim mentioned twice! |
18:09:27 | * | Vladar joined #nim |
18:09:41 | * | yglukhov quit (Read error: Connection reset by peer) |
18:10:20 | * | yglukhov joined #nim |
18:10:46 | FromGitter | <zetashift> @dom96 maybe something like this for Nim: https://rust-lang-nursery.github.io/api-guidelines/ could help people new to Nim get around Nim's features and thus lower the overhead of 'language complexity' |
18:11:16 | dom96 | Definitely. Sounds like a great idea |
18:11:20 | dom96 | But someone has to write it :) |
18:12:01 | FromGitter | <mratsim> Coming to FOSDEM ! |
18:12:22 | FromGitter | <zetashift> Yes I'm wondering what the best way to go about it is, doing a seperate gitbook about it or just adding notes to the WIP Nim cookbook |
18:14:50 | dom96 | mratsim: awesome :D |
18:15:04 | dom96 | zetashift: separate gitbook seems like the way to go |
18:17:25 | FromGitter | <mratsim> And from today onwards I will be a full-time Nim dev. When I say full-time it will be work (on blockchain) and Hobby (Deep learning/data science) ;) |
18:24:38 | miran | mratsim - write (a lot) about the experience, might be interesting to read to lots of people |
18:26:27 | dom96 | +1 ^ |
18:26:31 | * | Snircle joined #nim |
18:27:54 | shashlick | @treeform check out nimgen |
18:28:35 | shashlick | If you need I can check out that API and see if nimgen can help wrap it quickly |
18:28:50 | * | BitPuffin quit (Remote host closed the connection) |
18:28:53 | * | stisa quit (Remote host closed the connection) |
18:32:48 | * | yglukhov quit (Remote host closed the connection) |
18:34:12 | FromGitter | <alehander42> I already managed to get dizzy on brussels beer. are there any pre-fosdem events? |
18:35:53 | shashlick | meh, need to sign up for the steamworks SDK zip |
18:37:58 | federico3 | alehander42 https://fosdem.org/2018/beerevent/ |
18:40:08 | FromGitter | <alehander42> if it continues after midnight, maybe we'll be able to hit it :D |
18:49:18 | * | yglukhov joined #nim |
18:51:10 | * | kunev quit (Ping timeout: 240 seconds) |
18:55:28 | GitDisc | <treeform> shashlick, yeah its a kind of private code base. But its pretty public. |
18:57:29 | GitDisc | <treeform> shashlick, if you are willing to work with me I can try it out. I have made some progress handrolling things. |
18:59:42 | * | kunev joined #nim |
19:00:52 | dom96 | alehander42: Are you in BRU already? |
19:02:59 | shashlick | Sure, can you send me the zip privately? |
19:04:41 | * | kunev quit (Ping timeout: 276 seconds) |
19:05:13 | * | kunev joined #nim |
19:15:11 | FromGitter | <tim-st> Is `strutils.split` only defined for returning a string and not for working in place (assuming it's possible to change the start and end index inside `string` )? |
19:15:22 | FromGitter | <tim-st> sry, I meant `strip` |
19:18:41 | GitDisc | <treeform> shashlick, email me at starplant at gmail.com |
19:22:44 | * | MJCaley joined #nim |
19:27:10 | * | MJCaley quit (Ping timeout: 240 seconds) |
19:29:03 | * | dada78641 joined #nim |
19:35:52 | * | couven92 joined #nim |
19:39:04 | FromGitter | <data-man> @tim-st: See https://github.com/nim-lang/Nim/pull/6473#discussion_r144104885 :) |
19:40:10 | * | chemist69 quit (Ping timeout: 240 seconds) |
19:40:33 | * | chemist69 joined #nim |
19:46:35 | * | mcc joined #nim |
19:50:15 | FromGitter | <tim-st> Perfect, thanks! I would call it rstrip and lstrip like in Python or make both versions an alias |
19:50:40 | * | jxv quit (Quit: zzz…) |
19:51:32 | FromGitter | <tim-st> there is also rsplit in nim, so the name would be intuitive |
19:51:49 | * | kunev quit (Quit: е те!) |
19:55:21 | FromGitter | <tim-st> For now I used `result.title.removeSuffix(Whitespace)` |
19:57:21 | * | kunev joined #nim |
20:06:53 | skrylar | @earlier i didn't realy think nim was "complex" although i might be used to dealing with c already |
20:17:50 | Yardanico | ehm... http://c2lang.org/ |
20:18:10 | Yardanico | http://c2lang.org/site/ |
20:22:51 | Araq | yay, more better C languages |
20:23:41 | skrylar | joy. |
20:24:06 | skrylar | i'm just going to go be in the corner with my nubile smalltalk compiler |
20:24:21 | Yardanico | Araq, apparently it was created in 2015 :D |
20:25:02 | skrylar | the issue with better-than-c is that it's hard to make platforms off of "we aren't that guy," and also C is wrong thinking anyway |
20:25:43 | Yardanico | skrylar, also this language uses LLVM :P |
20:25:49 | skrylar | llvms not so bad |
20:25:59 | Yardanico | yeah, I just mean that C is far more portable than LLVM |
20:26:04 | skrylar | apparently VisualWorks is now using llvm |
20:26:49 | shashlick | do we have a list of all platforms and devices that nim has successfully compiled down to? |
20:27:16 | shashlick | that would be a very interesting list and use case to document |
20:27:25 | skrylar | isn't it just "anywhere gcc is"? |
20:29:25 | Yardanico | almost |
20:30:17 | Yardanico | https://github.com/nim-lang/Nim/blob/c39e2029762387d05f7b3d81490c6129703c1b60/lib/system/platforms.nim |
20:30:26 | Yardanico | you can add new platforms pretty easily here though |
20:31:17 | skrylar | squeak is kind of like that |
20:31:24 | * | nsf joined #nim |
20:31:24 | skrylar | they have a DSL-to-C converter |
20:31:44 | shashlick | but do we have documentation on how to set nim up to work with a custom compiler? |
20:31:53 | skrylar | "no" |
20:32:04 | shashlick | like say I want to target a motorola chip or rasp pi or something |
20:32:19 | skrylar | well raspi is just ARM, so you use the existing gcc chains |
20:32:41 | skrylar | i suspect freescale is similar |
20:32:51 | Araq | skrylar, fyi, the Nim compiler heavily uses the GC, nimsuggest runs as a server relying on the GC and even if I throw away the GC tomorrow (and I won't), the GC is safe for at least 5 years |
20:33:10 | skrylar | Araq, yeah they're useful things |
20:33:19 | Araq | not sure why my talks scare you. |
20:33:34 | Araq | I don't recall butchering the language before. |
20:34:08 | skrylar | i think more or less all of my code broke in the case sensitivity debacle |
20:34:20 | Araq | oh sorry about that one. |
20:35:24 | skrylar | never really ran in to GC issues per se, although i didn't write "big data" apps. from when i poked around with C#/Java, it looked more like their GC was missing the knobs people needed more than GCs were bad |
20:35:48 | skrylar | like the constant complaint "oh noes it stops to collect" "so tell the fucking user a collection is nearby so they can flip a heartbeat flag" |
20:37:55 | shashlick | araq: I'm looking at your post here: https://nim-lang.org/araq/destructors.html |
20:37:59 | shashlick | not completely convinced the GC is such a big obstacle |
20:38:12 | skrylar | this is my uneducated opinion, but it seems to me that if finalizers are guaranteed (people seem not to want to make that a thing) then you can use shared memory for "big stuff" and then copying collectors just fine. |
20:38:15 | shashlick | interop with C is fantastic, and nim's super fast |
20:38:42 | shashlick | although this is completely layman conclusion |
20:38:42 | skrylar | in c# i remember having a caniption because strings and such had to be pinned and copied |
20:39:13 | shashlick | if nim language + stdlib was 100% gc independent, user could decide to use gc or not |
20:39:35 | shashlick | lib writers could also decide to support both approches |
20:39:41 | shodan45 | dom96: you know anything about manning's account creation? I'm starting to wonder if I typed my email wrong... |
20:39:58 | shashlick | i'm not sure I see the limitations today, since nim is soo capable, but maybe i've not hit that wall yet |
20:40:05 | skrylar | shashlick, it's just a hard thing to decide over, because the prevailing solutions are basically ARC or GC |
20:40:11 | dom96 | shodan45: sadly no |
20:40:23 | dom96 | contact their support though, they're pretty responsive |
20:41:04 | shodan45 | dom96: ok, I'll give it a few more minutes & try that |
20:41:23 | shashlick | => I have spent far more time now in fixing GC related bugs or optimizing the GC than I ever spent in hunting down memory leaks or corruptions. Memory safety is not negotiable but we should attempt to get it without a runtime that grows ever more complex - araq from blog |
20:41:43 | shashlick | that obviously stands out as a pain but your efforts have made nim super productive for the rest of us |
20:41:50 | Araq | yes, I stand by my words. :-) |
20:42:10 | shashlick | trying to understand your motivations, that's all |
20:42:27 | Araq | well I want to replace the GC with something better. |
20:42:30 | skrylar | oh, i used to be anti-gc :P |
20:42:41 | Araq | not go back to malloc+free. |
20:43:05 | Araq | Nim is also about pushing stuff from runtime to compile-time |
20:43:26 | Araq | and in this sense making the GC a "compile-time" one fits Nim perfectly. |
20:43:59 | skrylar | from what i have read so far, ARC tends to run a thinner memory profile but clogs up codegen. GC runs more memory and lets coegen be more aggressive, but the piper ends up paid at *some point* |
20:44:08 | shashlick | well, even though that sounds like a big effort/change, it doesn't seem like it will affect users of the language at all right? |
20:44:29 | skrylar | sadly i don't have the OCAML paper comparing boost pointer performance to the ocaml GC. They found that the payments for constant atomic inc/dec were higher than the GC time |
20:44:47 | Araq | it's not clear, shashlick. what is clear is that strings and seqs can easily be done without the GC |
20:45:13 | Araq | leaving only refs and closures. they can use an optimized variant of atomic RC |
20:45:15 | skrylar | exceptions and closures seem to get weird with arc |
20:45:17 | shodan45 | Araq: you give talks? |
20:45:23 | shashlick | we don't care right now with gc, we won't care tomorrow if it is mostly done at compile time |
20:45:28 | Araq | leaving us with the dreaded cycle problems |
20:45:35 | shashlick | that sounds like a non-breaking improvement to me - make strings and seqs non GC |
20:45:51 | skrylar | how many strong cycles actually need to exist though |
20:46:02 | Araq | skrylar, I know this "paper" |
20:46:06 | shashlick | my point is making all of nim stdlib non GC is the way to go, however it is accomplished |
20:46:15 | shashlick | then as a user, I can use a flag to turn off the gc altogether and be disciplined in my usage |
20:46:27 | * | Arrrr quit (Ping timeout: 240 seconds) |
20:46:54 | skrylar | it seems like most cycles are from 1) things not having properly functioning weak ref mechanics and 2) people not knowing they're there |
20:47:10 | * | dddddd joined #nim |
20:47:38 | skrylar | though i may be wrong and there's probably a use case somewhere that a guy actually needed two strong refs on one item |
20:48:06 | Araq | skrylar, for Nim 'async' introduces cycles everywhere, but these can be dealt with manual deallocs. well not "manual" but done in the poll loop |
20:48:52 | Araq | unfortunately there are no good typing rules for preventing cycles at compile-time |
20:49:08 | * | yglukhov quit (Remote host closed the connection) |
20:49:40 | skrylar | I never even used async :> |
20:49:54 | Araq | shodan45, sure. why? |
20:50:32 | * | defecato` quit (Remote host closed the connection) |
20:51:12 | shashlick | dom96: is it possible to use httpclient without all the async stuff getting pulled in? |
20:51:31 | * | yglukhov joined #nim |
20:53:17 | * | MJCaley joined #nim |
20:53:25 | Araq | shashlick, it's probably optimized away? |
20:53:29 | Yardanico | shashlick, yes |
20:53:45 | Yardanico | just don't use async procs and it will be fine |
20:53:56 | skrylar | To be honest my curiosity with async code was more in line with Promises/Futures like Io tinkered with, and having the runtime based around fibers. But that's more of an actor model or Self program than anything else, and i never got around to trying it :< |
20:54:20 | shashlick | I don't use any async but it all gets compiled and takes a while to go through |
20:54:47 | Yardanico | ehm, actually.. no |
20:54:58 | Yardanico | well maybe |
20:55:03 | Yardanico | because of multisync pragma? |
20:56:44 | FromGitter | <Bennyelg> https://github.com/Bennyelg/nimPresto/blob/refactoring/ver2/db_presto.nim ⏎ Any Review / suggestion and refactoring will be gladly welcome! |
20:57:37 | * | Trustable joined #nim |
20:58:29 | * | Vladar quit (Quit: Leaving) |
21:02:08 | shodan45 | Araq: are they online somewhere? |
21:02:21 | shodan45 | dom96: took like 30 minutes, but I got the email |
21:03:32 | shashlick | dom96: https://gist.github.com/anonymous/49ea7a43e85464d2e5d9444ba6c3f663 |
21:03:41 | * | stisa joined #nim |
21:06:33 | * | Yardanico quit (Remote host closed the connection) |
21:06:42 | dom96 | shashlick: ? |
21:18:28 | FromGitter | <mratsim> To avoid the GC stigma we need to get inspired by marketing people and find a new buzzword to replace GC |
21:18:56 | FromGitter | <mratsim> I propose “NBR” —> “nim-based reclamation" |
21:19:18 | * | couven92 quit (Ping timeout: 252 seconds) |
21:27:31 | FromGitter | <Quelklef> "NAG": "Not a Garbage Collector" |
21:30:26 | FromGitter | <data-man> GCC - Garbage Collectors Contestant |
21:32:39 | * | nsf quit (Quit: WeeChat 2.0.1) |
21:35:59 | Araq | mratsim: "scope based memory management" |
21:41:37 | * | yglukhov quit (Remote host closed the connection) |
21:42:56 | FromGitter | <mratsim> Well trademark that —> blog post —> Hacker news / Reddit #1 —> Get invited to speak to conference and write a book for $$$$ —> Get bounties to fix pesky Nim bugs :P |
21:48:34 | * | miran quit (Quit: Konversation terminated!) |
21:59:05 | * | jxv joined #nim |
22:03:23 | * | oom joined #nim |
22:03:46 | oom | Hi ! |
22:04:10 | oom | I'm trying to register to the forum but never recevied the email... |
22:04:49 | oom | i have trying a renew a password too.. no email.. i'm watting for >< |
22:11:07 | shashlick | dom96: was just wanting to show how httpclient is pulling in many modules like asyncdispatch, slowing down compile time |
22:12:00 | dom96 | oom: what's your profile? |
22:12:05 | dom96 | (profile name) |
22:13:01 | oom | dom96: oom |
22:13:13 | oom | ;) |
22:13:26 | dom96 | oom: heh, I should have guessed that |
22:13:32 | dom96 | Do you remember your password? |
22:13:38 | dom96 | I can just activate the account for you |
22:13:39 | skrylar | mratsim: is there actually a gc stigma going on right now? |
22:13:41 | oom | yes |
22:13:48 | dom96 | okay, activated |
22:13:50 | skrylar | i feel like i've artificially started some kind of gc v. non gc argument |
22:14:16 | oom | dom96: nice, thx :) |
22:15:40 | FromGitter | <mratsim> na there was a Quora thread about “Why D isn’t more mainstream” that reach first page on HN yesterday. Everyone on Quora was just saying “GC, GC, GC, low performance due to GC" |
22:17:54 | skrylar | D isn't more mainstream because they shot themselves in the feet. |
22:18:49 | skrylar | When they were gaining traction, they started making invite-only groups for the tangerine (i think that was it) runtime where only "some" people got in, and then at the same time the developers fractured the language |
22:19:13 | dom96 | huh, what was their reasoning for doing that? |
22:19:34 | skrylar | the D1 -> D2 reason was "oh no the stdlib uses too much GC guess we better take out the option to go GC-less" |
22:20:16 | skrylar | So instead of being able to just delete a thing, you now had to use malloc, "emplace", "destroy", free, so of course all the D1 code is now broken (-> all supporting materials ruined) |
22:20:40 | skrylar | D1 was built on the idea that you just did what you need and the GC was one such way to do it. D2 started imposing opinions on development |
22:21:49 | skrylar | I don't know what happened to the alt runtime. the community imploded. |
22:25:44 | shashlick | ugh, I had built nim without -d:release, so was taking double the time to compile |
22:25:48 | shashlick | 15.6 secs vs 8.8 secs |
22:25:58 | skrylar | ouch |
22:26:26 | skrylar | i noticed head was taking more and more time to build for a while; i had a local jenkins doing cross testing on stable/head |
22:27:37 | shashlick | ya, am looking into making my code backwards compatible - testing with 0.16.0, 0.17.0, 0.17.2 and head |
22:27:53 | shashlick | how do you do version specific code? |
22:30:16 | skrylar | you mean "if this version, do this thing"? |
22:30:24 | shashlick | yep |
22:30:24 | * | oom quit (Ping timeout: 260 seconds) |
22:30:50 | skrylar | the dumpy way is to use a define for each version and use when to check it |
22:31:04 | * | xet7 quit (Quit: Leaving) |
22:31:09 | skrylar | the smarter way that probably exists that i don't know the exact names for is the same but there's probably a version tag you can access with 'when' |
22:31:32 | shashlick | araq mentioned earlier that there's a way to make a template to do this |
22:31:52 | skrylar | although if you are on nimble you are possibly boned, because barring dom96 having something super clever i think nimble doesn't support range bands like that |
22:32:35 | shashlick | just choosenim 0.16.0 and it doesn't work |
22:32:41 | skrylar | https://nim-lang.org/docs/system.html#NimVersion |
22:32:42 | shashlick | Error: cannot open 'C:\Users\sh.nimble\lib\system.nim' |
22:32:51 | shashlick | why is it looking there for the nim library |
22:33:02 | skrylar | Nim{Major,Minor,Patch} are consts you can check |
22:33:17 | * | MJCaley quit (Quit: MJCaley) |
22:33:35 | dom96 | shashlick: is this Nim failing? |
22:33:47 | shashlick | neat! |
22:33:54 | shashlick | dom96: nimble |
22:34:35 | skrylar | i found it nifty to use a jenkins instance to do the testing, because you can either 1) use the multi-config plugin to handle the stable/head/whatever x win/mac/linux matrix testing, or 2) use pipelines to do it with pretty outputs |
22:34:36 | shashlick | nimble 0.8.6 per the version |
22:34:42 | dom96 | I guess because you've chosen 0.16.0 you got an old Nimble version |
22:34:58 | skrylar | debian stable uses that version |
22:35:03 | * | xet7 joined #nim |
22:36:28 | dom96 | You can run C:\Users\<user>\.choosenim\toolchains\nim-0.17.2\bin\nimble as a workaround |
22:36:30 | shashlick | shouldn't 0.16.0 just work as is? even if it were old, it should work as it would have back then |
22:36:42 | shashlick | is it because i installed via choosenim? |
22:36:49 | dom96 | yes, it doesn't support choosenim |
22:37:24 | skrylar | i didn't use choosenim either :< |
22:37:47 | skrylar | nim is unpicky as it turns out, you can just make .. well i would say /opt/version dirs but eys on windows |
22:37:52 | shashlick | choosenim is super easy |
22:38:09 | shashlick | 0.17.0 worked fine, even though nimble version is still 0.8.6 |
22:38:52 | * | solitudesf quit (Ping timeout: 268 seconds) |
22:39:05 | shashlick | although my code doesn't so need to fix it up to work correctly |
22:39:23 | dom96 | why are you adding support for those old versions? |
22:40:04 | shashlick | well, i've posted this editor online, not that there's many takers, if it is just code, i need to check what versions it actually works on |
22:40:08 | skrylar | <(o_o)>~ |
22:40:15 | shashlick | kind of a test bed of that whole stability discussion we had |
22:40:40 | shashlick | if I put in nimble that it needs v0.17.2 and run on head all the time, it may not compile for most folks |
22:41:21 | skrylar | a sane way to go is to support the oldest version native to the platforms you support |
22:41:37 | skrylar | Assuming you want to be like, a deb package. Otherwise just stable. |
22:41:50 | skrylar | testing against head is mostly an early warning if araq decides to bomb the language again lol |
22:42:45 | shashlick | ya that's why i'm doing this, it's in reverse, i built on head and now thinking of a sustainable method of support |
22:43:05 | skrylar | anyway if you really must do weird things, you can always install different versions to different folders and shimmy environment vars around in your CI framework |
22:43:27 | shashlick | if you release a tool or package (especially a package), it should build on the stable versions - at least the last year of stable releases |
22:43:33 | shashlick | skrylar: choosenim makes this very easy |
22:43:43 | skrylar | yes but as dom just said, choosenim doesn't work on the version you were trying to use |
22:43:49 | shashlick | choosenim 0.17.0; nimble test; choosenim 0.17.2; nimble test |
22:44:54 | shashlick | that's true, but now that it does work, I can say the tool is supported from 0.17.0 onwards and test those versions |
22:45:13 | shashlick | could always install 0.16.0 separately or hack it to work, but can draw the line somewhere |
22:45:35 | * | Senketsu quit (Ping timeout: 240 seconds) |
22:45:42 | skrylar | reminds me that i still need to bother with vagrant at some point |
22:45:59 | shashlick | do we post older versions of nim docs? |
22:46:14 | skrylar | "no" but they are part of git, so you can go mint them |
22:46:43 | skrylar | i have previously suggested a dual-stage wiki setup, where one is an officially blessed set of pages and the other is the usual free for all, but people keep laughing at me for it |
22:47:26 | skrylar | although we don't use a wiki so meh |
22:47:39 | shashlick | ugh, trySend() in channels isn't in 0.17.0 |
22:48:30 | shashlick | links in older docs still point to master, so they don't work anymore |
22:49:04 | * | Senketsu joined #nim |
22:51:04 | skrylar | the joys of release management? |
22:51:07 | shashlick | looks like trySend() was added in head, not in 0.17.2 either - so I'm happily using a feature that's not in stable |
22:51:08 | skrylar | weird to think that's actually a job |
22:51:34 | shashlick | is a royal pain but it pays the bills really well |
22:52:04 | skrylar | it's funny when you find jobs where managers are actually useful and not just middling meeting causers |
22:52:41 | skrylar | anyway doc version management isn't important until 1.0 is actually a thing |
22:53:23 | dom96 | shashlick: we do have older versions of Nim docs, just s/docs/0.13.0/ or whatever version you want |
22:53:51 | dom96 | for example: https://nim-lang.org/0.13.0/net.html |
22:54:26 | shashlick | dom96: excellent, but like i said, the github links are broken |
22:54:47 | * | jxv quit (Quit: zzz…) |
22:56:20 | skrylar | is that a problem |
22:57:14 | shashlick | well, the convenience of having links to source is great |
22:57:25 | skrylar | only tag releases would have a "correct" place to point to, anything else would just point to master because the docs aren't archived in lockstep |
22:59:34 | dom96 | You can probably just s/master/v0.13.0/ in those links |
22:59:42 | shashlick | well, docs are generated, so the ones posted online should point to the right place |
23:00:39 | shashlick | dom96: you need to check NimVersion and find the correct hash for that tag if it is present |
23:00:48 | shashlick | else point to master since it's basically head |
23:01:54 | shashlick | actually this works: https://github.com/nim-lang/Nim/tree/v0.17.2/ |
23:02:18 | skrylar | tag releases get special names ;) |
23:02:33 | shashlick | https://github.com/nim-lang/Nim/blob/v0.17.2/lib/system/channels.nim |
23:02:38 | skrylar | this feels like the kind of thing there is probably a book about ~hmm~ |
23:03:18 | shashlick | yep |
23:04:36 | shashlick | i think I need to stop working on my tools and spend some time adding value to nim |
23:04:55 | shashlick | dom96: is there any motivation to close on the forum replacement topic? |
23:05:01 | skrylar | well that's the curse of developers over a certain level of knowledge :P |
23:05:14 | skrylar | "sharpening the saw" is useful but then you get in to "where do you stop and do something else" |
23:06:48 | * | jxv joined #nim |
23:06:56 | dom96 | it should be linking to the tag instead of 'master' |
23:07:10 | dom96 | we'd have to grep replace the older docs |
23:07:22 | dom96 | I'm curious what Araq thinks about replacing the forum |
23:07:28 | dom96 | I bet he is opposed though :) |
23:07:40 | shashlick | dom96: I can look into setting up and maintaining discourse or anything else if that's what we want to do |
23:08:42 | shashlick | dom96: where is nim-lang.org hosted? I could help with some of these things |
23:08:56 | dom96 | on two DO VPS' |
23:09:04 | dom96 | Digital Ocean I should write |
23:09:38 | skrylar | i happen to know of a firebird finding if you write a new forum =p |
23:09:39 | dom96 | I'm happy to let the community use the second VPS |
23:09:58 | skrylar | *binding |
23:11:08 | shashlick | okay, so how do you typically decide direction and stuff? cause I can ask all sorts of questions but there needs to be some mechanism to take decisions |
23:11:35 | shashlick | if it is put to a vote, etc. or if our BDFL waves the flag or whatever |
23:12:22 | skrylar | well. you tell dom96 or Araq and if they feel like it then it happens. lol |
23:12:33 | skrylar | isn't that how it always works |
23:12:43 | shashlick | where are such things tracked - nim wiki somewhere? |
23:12:58 | dom96 | Not much hurry with getting rid of the forum |
23:13:09 | dom96 | and right now my focus is on FOSDEM :) |
23:15:06 | shashlick | right but if a decision is made, the community can start aligning and chip in accordingly |
23:15:53 | dom96 | Unfortunately I cannot easily delegate switching from the NimForum to Discourse |
23:16:08 | dom96 | I'd have to do it |
23:16:24 | skrylar | discourse/nodebb are a little.. biggish |
23:16:28 | skrylar | is nimforum broken? |
23:17:25 | dom96 | Not at all |
23:17:32 | dom96 | been working fine for years :) |
23:17:38 | dom96 | just needs a little redesign |
23:17:58 | shashlick | skrylar: no, just feedback from people that it's limited comparatively |
23:18:40 | shashlick | dom96: obviously you might want to control production, but if there's a place to stage, I can help with that |
23:19:36 | skrylar | limited in comparison to what |
23:19:42 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
23:19:47 | skrylar | 8chan has virtually zero features and it works |
23:20:18 | dom96 | There is a lot of features that would be nice |
23:20:28 | dom96 | but I keep coming back to Hacker News which has none of those features |
23:21:13 | skrylar | i would perhaps advocate not using captchas, for they are hopelessly broken (https://arstechnica.com/science/2017/10/inspired-by-brains-visual-cortex-new-ai-utterly-wrecks-captcha-security/) and hashcashes instead, but eh |
23:22:49 | skrylar | in my limited experience the users often don't need so many features, although moderators are often flooded in a need of them |
23:23:26 | FromGitter | <data-man> Why not use other engines for the forum? Simple Machines Forum is cool, FluxBB is small & fast. (PHP engines) |
23:23:49 | skrylar | its a point of pride to use your own thing for your community forums |
23:23:59 | skrylar | pharo uses seaside running on pharo, etc |
23:25:10 | FromGitter | <data-man> Your own things are not always the most convenient :) |
23:25:42 | skrylar | If you do the work correctly, they become implicit proof of capability. And if you do it very well, they become part of your ecosystem |
23:25:52 | shashlick | here's some more hard feedback - https://www.reddit.com/r/nim/comments/7smw81/nim_future/dt7xmab/ |
23:26:56 | dom96 | 'night |
23:27:02 | shashlick | i'm not quite so frustrated with the forum, mobile view would be great |
23:27:07 | skrylar | ex. they extracted Pillar from Pier, and now use Pillar to write their doc books, so they have dogfooding (to find bugs and get practical feedback) and also a utility so now theres a markup processor. Go does kind of the same, although Google doesn't. Hugo and such make use of Blackfriday, so the markup handler just becomes a thing for the community to use, but you needed it for the forum, etc |
23:27:17 | skrylar | night dom96 |
23:27:30 | shashlick | l8r |
23:27:54 | skrylar | When i poked nodebb and i think discourse, i was not imprssed |
23:28:06 | shashlick | my only thought is that at this point, there's no bandwidth to maintain and improve the forum, so better to use some standard product |
23:28:07 | skrylar | they have that 'web 2.0' flair but don't actually make my life easier as an admin |
23:29:11 | shashlick | if there's commitment to improve it, sure but do we have the time to focus on that at this point |
23:29:36 | skrylar | are people actually refusing to use the product because the forum doesn't have ajax badges |
23:29:47 | shashlick | or just backlog the feedback and come back to it at some point |
23:30:29 | shashlick | ya, talking first impressions and stuff - I'm not quite on board with that logic |
23:31:15 | skrylar | reading the thread |
23:31:16 | shashlick | i don't have very strong opinions on stuff, but am keen on deciding and proceeding |
23:31:24 | skrylar | it looks like the usual case of the CSS is bad so therefore the code must be bad |
23:32:12 | * | Trustable quit (Remote host closed the connection) |
23:32:45 | shashlick | it would be nice to have a community voting mechanism to collect feedback and decide but I'm fine with the BDFL format too |
23:32:59 | skrylar | Mmm. Democracy is hard |
23:33:40 | shashlick | araq's very active and accessible here so that's fun but need to decide in some consistent way |
23:33:44 | shashlick | i'm new here so trying to figure out the model in place for the last decade |
23:34:42 | shashlick | well, if nim wants to mature, it needs to get these things in place - nothing to do with technical merit, just how to deal with day to day stuff |
23:36:25 | skrylar | Walter's forum software for D had a network news protocol adapter :D |
23:40:13 | skrylar | ok. finished reading the link |
23:48:05 | * | chemist69 quit (Ping timeout: 276 seconds) |
23:52:51 | * | chemist69 joined #nim |