00:00:11 | krux02 | it is legally not possible to release a game on a console with gpl code in it. |
00:00:38 | nasusiro | why is that if I may ask? |
00:01:24 | krux02 | well on a game console, the user can't change the sourcecode of the program recompile it and run it. |
00:01:28 | FromGitter | <Varriount> I use linenoise. It's a bit unmaintained, but it generally works well. |
00:01:47 | krux02 | and under gpl it is a requirement to ensure the user is able to do that. |
00:01:56 | krux02 | not even lgpl can be used on a console. |
00:02:17 | krux02 | Varriount: I use linenoise as well, but I don't like it at all. |
00:02:33 | FromGitter | <Varriount> Why not? |
00:02:47 | nasusiro | krux02: what can't change the source code? what causes this kind of restriction? |
00:02:57 | krux02 | nothing at all, just raw input from stdin plus rlwrap would work better in my opinion. |
00:03:22 | nasusiro | I'm confused now... |
00:03:39 | krux02 | maybe I need to specify, with console I mean game console like play station and nintendo |
00:03:43 | nasusiro | can or cannot a change the source code of a console game? |
00:03:53 | krux02 | nasusiro, Have you ever compiled a program for Play Station? |
00:03:56 | nasusiro | that's more like it |
00:04:05 | nasusiro | they use BSD licenses |
00:04:15 | krux02 | BSD is the complete opposite of GPL |
00:04:35 | krux02 | BSD is basically do whatever you want. Copy it, modify it. Pretend it's yours. |
00:04:43 | krux02 | well I am not sure about the last one |
00:04:53 | krux02 | but BSD allows almost everything. |
00:04:56 | nasusiro | you are talking about companies that go after profitability |
00:05:11 | krux02 | I am not talking about companies. |
00:05:27 | nasusiro | you gave an example of PS |
00:05:42 | krux02 | ?? |
00:05:50 | nasusiro | you gave an example of PlayStation |
00:06:15 | nasusiro | these companies are not using GPL for multiple reasons |
00:06:24 | krux02 | yes |
00:06:47 | nasusiro | BSD is not a legal nightmare like GPL |
00:07:10 | krux02 | but I mean, even for the games that run on the Play Station it is not possible to use a GPL licenso even if they release the source code, because it would enable no end user to modify the program. |
00:07:26 | nasusiro | therefore, they use any source code that falls under the legal-to-use compatibility table of theirs and use those source codes instead |
00:07:34 | nasusiro | anything that is GPL-ed, they avoid it like the plague |
00:08:12 | krux02 | yes they avoi it because they have to. |
00:08:12 | nasusiro | they are not doing so because of modification. Yes, it's one of the main reasons |
00:08:22 | nasusiro | but they are doing so to avoid legal issues |
00:08:31 | krux02 | But gpl is not as horrible as you might think. It is just very very incompatible with commercial games. |
00:08:42 | krux02 | especially on consoles. |
00:09:12 | krux02 | There is no way to release a gpl licensed game on a game console legally. |
00:09:28 | nasusiro | I myself am not against GPL; on the contrary |
00:09:34 | krux02 | well GPL is quite easy to understand if you understand the concerns that Richard Stallman has. |
00:09:45 | krux02 | I like GPL for a lot of things. |
00:10:08 | krux02 | There are a lot of great products using the gpl licenso |
00:10:45 | krux02 | and it is possible to take a gpl licensed product, modify it, use it in house over years, and never release the source code. |
00:11:02 | krux02 | so gpl can be used commercially without relesing the source code. |
00:11:47 | nasusiro | yep |
00:11:50 | nasusiro | for in-house use |
00:11:53 | krux02 | but as soon as the the modified program changes the owner, it has to be gpl again. |
00:12:31 | nasusiro | it makes sure the program remains alive and accessible by those who are interested in its current and implementation and development |
00:13:10 | FromGitter | <Varriount> I like the GPL for applications. Libraries, not so much. |
00:13:50 | shashlick | araq: https://github.com/nim-lang/Nim/pull/8232 is now passing - can we pull it in? |
00:14:09 | shashlick | this is the testament fix to run all tests with no actions |
00:14:18 | * | find0x90 quit (Quit: find0x90) |
00:14:32 | krux02 | I wrote pretty printers for Nim that make debugging Nim a much better experience. |
00:15:04 | FromGitter | <Varriount> krux02, nasusiro: Keep in mind that even then, it's still a bit murky. For example, I work for a company who has a contract with the government - If I produce something, it might be considered to be owned by the government. |
00:15:17 | * | find0x90 joined #nim |
00:15:36 | nasusiro | that's another whole story Varriount |
00:15:47 | * | find0x90 quit (Client Quit) |
00:15:51 | FromGitter | <Varriount> It still invites complications. |
00:16:00 | krux02 | yea I would like to not dive into this topic any deeper |
00:16:14 | shashlick | varriount: appreciate a review and pull if you feel changes are acceptable |
00:17:06 | nasusiro | from the moment you work for a company, you have signed a contract that comes with terms and disclosures explaining thoroughly and accurately that whatever you implement either during your working hours or during your employment that may collide or contradict your company's policies, therefore it belongs to them |
00:17:30 | nasusiro | academia showed me its dark side and I know pretty well what it means to go unappreciated |
00:18:01 | krux02 | nasusiro, well there are contract terms that are void even if signed. |
00:18:10 | FromGitter | <Varriount> shashlick: Made comments. |
00:18:18 | nasusiro | krux02: such as? |
00:18:40 | FromGitter | <Varriount> shashlick: Also, keep in mind that I won't be notified of mentions unless they are prefixed with the '@' symbol, since I'm on gitter. |
00:18:53 | krux02 | and I have the sispicion that a term like that anything you write during your employment belongs to them is one of those terms that are void even if signed. |
00:19:13 | krux02 | that really seems like a slavery constract |
00:19:39 | shashlick | cool |
00:19:43 | krux02 | I am owned by the company and therefore everything I do belongs to the company. |
00:20:12 | CodeVance | nope Depending on the place. depending on what your company is working on |
00:20:17 | nasusiro | krux02: when you are a normal human being and they are a large private university that has a legal department of how many lawyers...meeeeeh it's something I would definitely want to avoid dealing with! |
00:20:24 | krux02 | No when I do things at home, I do those things at home and they are my personal stuff. Nobody can claim that. |
00:20:41 | nasusiro | yeah, that's another story |
00:20:46 | CodeVance | I think they call it no compitition |
00:20:55 | nasusiro | CodeVance: something like that |
00:21:02 | krux02 | nasusiro, well I would claim my human rights and dignity. |
00:21:08 | nasusiro | krux02: I did |
00:21:19 | nasusiro | I got laid off with the cover of redundancy |
00:21:31 | krux02 | what is that? |
00:21:38 | krux02 | cover of redundancy? |
00:21:55 | shashlick | @varriount: replied |
00:22:04 | nasusiro | if I was laid off for going "against" the system, I could have won any legal battle |
00:22:06 | nasusiro | BUT |
00:22:36 | nasusiro | they fired us, around the 80% of the entire sub-section of the private university with the excuse of redundancy |
00:22:50 | nasusiro | legally, they are allowed to do so as long as they reward you with your benefits |
00:23:07 | nasusiro | therefore we don't have a case |
00:23:09 | krux02 | nasusiro, where do you live? |
00:23:15 | nasusiro | EU |
00:28:11 | nasusiro | anyway, it's a deep and sad subject. it brings back painful memories... |
00:35:57 | * | thomasross quit (Read error: Connection reset by peer) |
00:37:46 | * | thomasross joined #nim |
00:37:55 | FromGitter | <Varriount> shashlick: Am I correct in assuming those other changed tests were also not run? |
00:37:55 | shashlick | yes, a whole bunch of stuff was never run |
00:38:01 | shashlick | that's how i found a bunch of JS issues which I reported |
00:39:47 | shashlick | thanks! i can move onto the next thing now 🙂 |
00:48:03 | nasusiro | krux02: since strings cannot be nil-ed, why do we have this? https://github.com/nim-lang/Nim/blob/master/lib/pure/strutils.nim#L467 |
00:53:02 | krux02 | nasusiro, old stuff from the time when string could be nil |
00:53:19 | nasusiro | bloody hell...I'm opening a ticket right now. |
00:53:24 | krux02 | nasusiro, make a pr to deprecate it. |
00:53:45 | krux02 | really make a PR that is just nicer. |
00:54:01 | krux02 | then you will even be a contributor to Nim. |
00:54:11 | krux02 | not just an issue reporter. |
00:54:17 | nasusiro | slowly-slowly |
00:54:30 | FromGitter | <Varriount> And if it's a simple PR, I can review and merge it in. |
00:54:51 | FromGitter | <Varriount> (As opposed to a PR that introduces major functionality, or touches the compiler) |
00:55:07 | nasusiro | for the moment I will open a ticket to let Araq and dom96 to know about it |
00:55:24 | nasusiro | eventually I will become a contributor and why not a future core member? |
00:55:39 | nasusiro | for now I'm familiarize myself with the language |
00:56:33 | krux02 | nasusiro, just that you know. I have lots of issues with the strutils package. I would really like to remove it from core Nim entirely. |
00:57:00 | nasusiro | as I already stated; slowly-slowly |
00:57:13 | FromGitter | <Varriount> krux02: And what would be it's replacement? |
00:57:22 | krux02 | nothing |
00:57:58 | krux02 | really the strutils package needs a complete overhaul in design. |
00:58:28 | krux02 | the current version really has too many contributors. Everybody has an opinion and made a pr and pulled it an a different direction. |
00:58:39 | krux02 | and then it became the horrible mess it is today. |
00:59:38 | krux02 | just put strutils as it is today in a nimble package. |
01:00:48 | nasusiro | isn't there a better methodology than giving access to anyone to submit a PR? |
01:00:58 | nasusiro | I mean, isn't there an evaluation method? |
01:01:12 | krux02 | well anybody can do a PR |
01:01:21 | krux02 | and I don't know who has rights to accept a PR. |
01:01:38 | nasusiro | btw, I opened a ticket: #8252 |
01:01:46 | krux02 | But my personal opinion is that the quality control on PR is not the best. |
01:01:57 | krux02 | nasusiro, thumbs up |
01:02:41 | FromGitter | <Varriount> krux02: It's generally been Araq and dom96. |
01:02:47 | nasusiro | I guess we need a group of advanced users that use or have been using Nim for a while now and have extensive experience to validate every code that gets PR-ed |
01:03:12 | FromGitter | <Varriount> I merge in bug fixes, however I wait for input from dom96 or Araq for feature additions. |
01:04:51 | krux02 | nasusiro, I am an advanced used, but I am certainly not qualified to validat PR's that are about the web technologies |
01:05:10 | nasusiro | you mean like jester? |
01:05:41 | krux02 | yes |
01:06:26 | krux02 | but that is not Nim standard library |
01:07:21 | FromGitter | <Varriount> krux02: My best advice is to write an improved version of the strutils library and present it as a replacement, stating it's merits and the flaws of the original. |
01:09:05 | krux02 | I was just looking for an example of what I could not maintain. |
01:09:11 | krux02 | I found the package punycode. |
01:09:25 | krux02 | wtf is that? What purpose does it have in the standard library? |
01:09:37 | nasusiro | maybe to first present a case study or let's call it a hypothesis you are trying to prove and demonstrate the current version's pros and cons and what is the actual alternative based on your own experience |
01:09:59 | FromGitter | <Varriount> punycode is an encoding. |
01:10:24 | * | dddddd quit (Remote host closed the connection) |
01:10:28 | krux02 | yea |
01:10:29 | * | chrismc joined #nim |
01:10:31 | krux02 | of what? |
01:10:32 | FromGitter | <Varriount> I know about it, because Python has support for punycode encoding. |
01:10:51 | FromGitter | <Varriount> https://en.wikipedia.org/wiki/Punycode |
01:11:35 | nasusiro | anyway guys, I'm off. Hopefully I will see you tomorrow |
01:11:40 | nasusiro | goodnight |
01:11:43 | * | nasusiro quit (Quit: Quitting for now...) |
01:11:46 | * | chrismc quit (Client Quit) |
01:12:51 | krux02 | sorry that is just bad |
01:16:48 | krux02 | Varriount: Punicode is just a bad encoding, even worse than the \xXXXX encoding |
01:24:43 | krux02 | there is no reason that this is standard libray |
01:50:49 | * | krux02 quit (Quit: Leaving) |
02:00:55 | * | donlzx joined #nim |
02:02:51 | * | brainproxy joined #nim |
02:45:48 | * | crem quit (Ping timeout: 256 seconds) |
02:47:49 | * | crem joined #nim |
03:23:04 | * | endragor joined #nim |
04:49:57 | * | miran joined #nim |
05:01:58 | FromGitter | <xDotDash> nim doesn't have built-in procs map/flatMap for seqs? |
05:02:20 | miran | import sequtils, and you have map |
05:03:30 | FromGitter | <xDotDash> ah thanks |
05:05:22 | * | lompik joined #nim |
05:05:43 | * | nsf joined #nim |
05:13:05 | * | fjvallarino quit (Remote host closed the connection) |
05:13:32 | * | fjvallarino joined #nim |
05:18:21 | * | fjvallarino quit (Ping timeout: 264 seconds) |
05:51:32 | * | xet7 joined #nim |
05:51:40 | * | fjvallarino joined #nim |
06:05:38 | * | yglukhov[i] joined #nim |
06:07:40 | * | crem quit (Ping timeout: 256 seconds) |
06:08:55 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
06:09:29 | * | yglukhov[i] joined #nim |
06:14:06 | * | crem joined #nim |
06:20:17 | * | miran quit (Ping timeout: 248 seconds) |
06:21:15 | * | Perkol joined #nim |
06:21:58 | * | yglukhov[i] quit (Remote host closed the connection) |
06:44:33 | * | nomenon joined #nim |
06:47:21 | * | arecaceae quit (Remote host closed the connection) |
06:47:52 | * | nomenon left #nim ("Leaving") |
06:48:04 | * | arecaceae joined #nim |
06:53:30 | * | yglukhov[i] joined #nim |
07:14:16 | * | yglukhov[i] quit (Remote host closed the connection) |
07:15:40 | * | crem quit (Ping timeout: 245 seconds) |
07:16:55 | * | yglukhov[i] joined #nim |
07:17:10 | * | crem joined #nim |
07:18:22 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
07:18:59 | * | yglukhov[i] joined #nim |
07:30:40 | FromGitter | <Varriount> @xDotDash I like your profile pic. |
07:31:54 | * | PMunch joined #nim |
07:32:39 | * | brainproxy quit (Ping timeout: 260 seconds) |
07:42:14 | * | NamPNQ joined #nim |
07:57:13 | PMunch | Araq, as requested yesterday, here is a forum post about my trouble with dynamic libraries |
07:57:34 | * | Perkol quit (Remote host closed the connection) |
08:03:03 | * | floppydh joined #nim |
08:04:48 | * | marszym[m] quit (Ping timeout: 255 seconds) |
08:04:51 | * | TheManiac quit (Ping timeout: 245 seconds) |
08:04:51 | * | hitchhooker[m] quit (Ping timeout: 245 seconds) |
08:04:52 | * | sroecker[m] quit (Ping timeout: 240 seconds) |
08:04:52 | * | sg-james[m] quit (Ping timeout: 240 seconds) |
08:04:53 | * | dyce[m] quit (Ping timeout: 240 seconds) |
08:05:15 | * | narimiran[m] quit (Ping timeout: 255 seconds) |
08:05:17 | * | yglukhov quit (Ping timeout: 245 seconds) |
08:07:53 | * | rokups joined #nim |
08:20:26 | * | marszym[m] joined #nim |
08:21:31 | * | dddddd joined #nim |
08:24:25 | PMunch | Forgot to actually give the link: https://forum.nim-lang.org/t/4029 |
08:25:12 | * | hitchhooker[m] joined #nim |
08:27:13 | * | TheManiac joined #nim |
08:28:24 | * | yglukhov[i] quit (Remote host closed the connection) |
08:28:35 | * | dyce[m] joined #nim |
08:29:46 | * | narimiran[m] joined #nim |
08:29:55 | * | tzekid joined #nim |
08:30:05 | * | yglukhov[i] joined #nim |
08:31:30 | * | sroecker[m] joined #nim |
08:31:44 | * | sg-james[m] joined #nim |
08:33:57 | * | yglukhov joined #nim |
08:40:46 | * | leorize quit (Quit: WeeChat 2.1) |
08:49:15 | FromGitter | <mratsim> @LyndsySimon, for your OpenGL aware GUI needs for Tetris also check Nuklear |
08:59:10 | FromGitter | <mratsim> @k0pernicus I spent a lot of time in Numpy, Scipy and Scikit-learn codebase, Python, Fortran, C, C++ and Cython. The algorithms are code, the way it’s written is bad, often slow and hard to maintain. They are not software engineers but academics and it shows. Thankfully they are often revisited but some areas are really poor (I remember struggling with scipy optimizers like L-BFGS). I think this applies perfectly even |
08:59:10 | FromGitter | ... though it’s regarding NLTK (NLP old guard) vs spaCy (rebuild from scratch approach): https://explosion.ai/blog/dead-code-should-be-buried |
08:59:21 | FromGitter | <mratsim> The algorithms are good* |
09:02:28 | * | rosshadden quit (Read error: Connection reset by peer) |
09:03:31 | * | rosshadden joined #nim |
09:14:24 | * | tzekid quit (Ping timeout: 252 seconds) |
09:15:20 | * | tzekid joined #nim |
09:15:49 | * | elrood joined #nim |
09:29:32 | PMunch | How can I get c2nim to understand this: http://ix.io/1gzR/ ? |
09:31:25 | FromGitter | <mratsim> pass the GCC preprocessor beforehand? |
09:34:39 | PMunch | Huh? |
09:34:53 | PMunch | I've never really tried to wrap anything with c2nim before (at least not successfully) |
09:35:57 | Araq | c2nim can process that one, no? |
09:36:02 | PMunch | home/peter/div/imlib2/Imlib2.h(33, 1) Error: identifier expected, but got: [NewLine] |
09:36:06 | PMunch | That's the error I get |
09:36:36 | PMunch | Line 31 is the second line of the paste |
09:36:49 | PMunch | Err 3rd |
09:37:20 | PMunch | Line 33 is the 3rd line |
09:37:41 | PMunch | No wait.. |
09:39:22 | * | Vladar joined #nim |
09:41:08 | PMunch | http://ix.io/1gzY/C |
09:41:13 | PMunch | That's the file I'm trying to wrap |
09:41:47 | FromGitter | <mratsim> windows vs unix carriage return issue? |
09:44:07 | PMunch | Appears to be only newlines |
09:44:44 | PMunch | Yeah, there are no carriage returns in that file |
09:46:47 | * | NamPNQ quit (Remote host closed the connection) |
09:48:04 | Araq | c2nim understands carriage returns anyway, that's not the problem here |
09:53:22 | * | Vladar quit (Quit: Leaving) |
10:04:32 | * | Vladar joined #nim |
10:36:22 | * | nasusiro joined #nim |
10:46:25 | federico3 | any tutorial on building for android and iOS? |
10:47:46 | FromGitter | <mratsim> Nimx readme? |
10:49:03 | federico3 | https://github.com/yglukhov/nimx ? |
10:49:08 | FromGitter | <mratsim> yes |
10:50:03 | FromGitter | <mratsim> strange I’m pretty sure I saw instruction for android for Nimx |
10:50:39 | yglukhov | it's just `nake droid` :) |
10:50:55 | yglukhov | nimx android build is slightly more complex than it should be though |
11:02:09 | FromGitter | <Vindaar> @PMunch: here's what I would do: from https://gist.github.com/Vindaar/c2fce49d574e420606f962ea06d23259 to https://gist.github.com/Vindaar/e518e310eb3a0a95bdda7bbe8e4341f8 |
11:02:23 | FromGitter | <Vindaar> not sure about windows in that case though :P |
11:05:01 | FromGitter | <mratsim> I just took an “if-arrow” in the knees |
11:05:23 | PMunch | Vindaar, looks promising |
11:05:48 | FromGitter | <Vindaar> this is basically how I handled it when wrapping HDF5 and it seems to work just fine |
11:09:51 | PMunch | Where does Nim know where to find those procedures though? |
11:10:00 | PMunch | I guess I must static link against imlib |
11:14:19 | FromGitter | <Vindaar> You can add an equivalent header like the one here: https://github.com/Vindaar/nimnlopt/blob/master/c_header/nlopt.h |
11:14:55 | FromGitter | <Vindaar> that will then insert the the `libname` and `importc` stuff like here https://github.com/Vindaar/nimnlopt/blob/master/src/nlopt/nlopt_wrapper.nim |
11:15:14 | FromGitter | <Vindaar> then you can just compile it like a normal nim program and it will link dynamically to you `.so` |
11:15:20 | FromGitter | <Vindaar> *your |
11:17:46 | PMunch | Ooh, that's nice |
11:19:02 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
11:19:38 | * | yglukhov[i] joined #nim |
11:20:18 | FromGitter | <mratsim> check how nimblas does it as well |
11:24:15 | dom96 | PMunch: If you still want to reset your password on the forum then try doing it again |
11:24:16 | PMunch | http://ix.io/1gAP/Nim |
11:24:18 | dom96 | I can send you the link |
11:24:18 | PMunch | It works! |
11:24:38 | PMunch | dom96, oh no. I found my password in the password store on my work machine |
11:24:49 | FromGitter | <Vindaar> nice to hear :) |
11:24:50 | PMunch | I really need to look into syncing these.. |
11:25:05 | dom96 | okay |
11:29:02 | PMunch | These dynlib errors are just bizarre.. https://forum.nim-lang.org/t/4029 |
11:49:53 | * | Trustable joined #nim |
12:08:30 | * | gangstacat quit (Ping timeout: 256 seconds) |
12:15:26 | FromDiscord | <2vg> ya, Is there an example of a server socket using SSL? |
12:15:26 | FromDiscord | <2vg> Does anyone know? |
12:17:00 | FromDiscord | <2vg> By the way @dom96, |
12:17:00 | FromDiscord | <2vg> since your http beast does not correspond to pipeline, techempower will not produce results properly… |
12:17:33 | * | fvs joined #nim |
12:19:01 | dom96 | huh, what do you mean? |
12:20:53 | FromDiscord | <2vg> In the techempower plaintext benchmark, HTTP pipeline is used. |
12:20:53 | FromDiscord | <2vg> I ran the techempower pipeline script with httpbeast, but the response did not return normally. |
12:21:10 | * | Vladar quit (Quit: Leaving) |
12:21:31 | dom96 | oh :/ |
12:21:40 | dom96 | Can you send me a link to the script? |
12:21:52 | dom96 | I assumed wrk enabled pipelining by default |
12:22:12 | FromDiscord | <2vg> However, in other benchmarks, do not use pineplane, it's okay |
12:22:13 | FromDiscord | <2vg> Only plaintext will be a bad result. |
12:22:24 | FromDiscord | <2vg> okey, wait |
12:26:08 | FromDiscord | <2vg> dom96: https://gist.github.com/2vg/1a683fa6a75ce166c206fe6348353050 |
12:27:06 | dom96 | Awesome, thanks |
12:27:14 | dom96 | I'll have to implement support for that then :( |
12:28:12 | * | Vladar joined #nim |
12:29:42 | FromDiscord | <2vg> Yes ... However, since the HTTP pipeline is defined in the HTTP RFC, it seems that it supports the normal HTTP server. |
12:33:04 | * | lompik quit (Ping timeout: 260 seconds) |
12:34:55 | FromDiscord | <2vg> To support pipelines, methods without body like GET and HEAD are sufficient. |
12:35:29 | * | Trustable quit (Remote host closed the connection) |
12:36:09 | FromDiscord | <2vg> easy pipeline script: |
12:36:09 | FromDiscord | <2vg> (echo -en "GET / HTTP/1.1\n\nGET / HTTP/1.1\n\n"; sleep 10) | telnet localhost 8080 |
12:37:13 | dom96 | so without headers? |
12:37:27 | dom96 | So I just need to support requests with no headers? |
12:40:17 | FromDiscord | <2vg> Usually you need Keep-Alive |
12:40:17 | FromDiscord | <2vg> However, in HTTP / 1.1, Keep - Alive is the default, so it is normal to work without it. |
12:40:17 | FromDiscord | <2vg> If want to explicitly close, the client should include a close in the header. |
12:40:28 | FromDiscord | <2vg> Usually you need Keep-Alive |
12:40:28 | FromDiscord | <2vg> However, in HTTP/1.1, Keep - Alive is the default, so it is normal to work without it. |
12:40:29 | FromDiscord | <2vg> If want to explicitly close, the client should include a close in the header. |
12:40:40 | FromDiscord | <2vg> Usually you need Keep-Alive |
12:40:40 | FromDiscord | <2vg> However, in HTTP/1.1, Keep-Alive is the default, so it is normal to work without it. |
12:40:41 | FromDiscord | <2vg> If want to explicitly close, the client should include a close in the header. |
12:41:09 | FromDiscord | <Yardanico> @2vg don't forget that IRC doesn't support edits |
12:41:20 | dom96 | FromDiscord sucks lol |
12:41:34 | Yardanico | dom96 at least it sends edits unlike FromGitter :) |
12:41:35 | FromDiscord | <2vg> omg x( |
12:41:44 | dom96 | I'd rather it just didn't |
12:49:23 | * | nsf quit (Quit: WeeChat 2.1) |
13:00:27 | * | tzekid quit (Ping timeout: 252 seconds) |
13:00:40 | FromGitter | <viniarck> Hi guys, looks like nvim-nim looks abandoned, If you use neovim is there any other fork more updated? |
13:01:09 | FromGitter | <viniarck> Or another neovim plugin that you'd recommend? |
13:02:00 | Araq | abandoned? are you sure? |
13:02:15 | Araq | dom96: can we merge this now? https://github.com/nim-lang/Nim/pull/8094 |
13:04:28 | dom96 | The code is still using seq[Byte] |
13:05:15 | FromGitter | <viniarck> Not entirely sure. Just asking, By looking at the issues it doesn't seem too active. |
13:05:27 | FromGitter | <viniarck> Anyone out there who's using neovim, which plugin are you using? |
13:06:43 | FromGitter | <tim-st> is `x.addr` the opposite of `x[]`? |
13:06:44 | dom96 | Araq: I would change it to an object variant: https://github.com/nim-lang/Nim/pull/8094#discussion_r200807369 |
13:08:01 | Araq | that would likely take more memory then and might also slow it down, just trust GULPF's implementation |
13:08:46 | Araq | we need a DSL for these packed representations, they are the future |
13:08:46 | * | endragor quit (Remote host closed the connection) |
13:09:14 | dom96 | okay, I commented |
13:09:17 | dom96 | tests are failing too |
13:10:33 | Araq | oh indeed |
13:10:55 | Araq | but probably still the old devel failures, let's see |
13:11:02 | dom96 | possibly |
13:11:19 | Araq | yeah it's just the methods regression |
13:13:48 | Yardanico | how do I pass nim's string as "void *pointer" in C? |
13:14:07 | Yardanico | (i'm interfacing with a dynamic library) |
13:14:26 | Araq | cast[pointer](addr s[0]) |
13:14:26 | dom96 | addr str[0] |
13:14:45 | Yardanico | Araq, dom96, thanks |
13:18:33 | FromGitter | <tim-st> can I create a finalizer for a wrapped c object? |
13:18:49 | FromGitter | <tim-st> I have result: ptr ptr T |
13:19:40 | * | brainproxy joined #nim |
13:27:44 | Araq | yeah you can. in fact, you can use a destructor |
13:30:39 | FromGitter | <tim-st> is this different from `new(result, procName)` ? |
13:30:49 | FromGitter | <tim-st> I found only this: https://github.com/nim-lang/Nim/wiki/Destructors |
13:40:25 | PMunch | Is there a better way to do this: https://www.reddit.com/r/nim/comments/8x9clc/using_a_table_to_store_a_map/e2230hg/ |
13:41:03 | Yardanico | PMunch, make a template to shorten the code? |
13:41:33 | Yardanico | or you can convert enum value to string and make a table "enum value": "image path" |
13:41:34 | PMunch | Oh yeah, I was specifically talking about the closureScope and copy of the hex and loc variables |
13:49:54 | federico3 | anybody using statsd? |
13:55:18 | * | opi quit (Quit: ZNC - http://znc.in) |
13:55:58 | * | opi joined #nim |
14:14:12 | dom96 | TIL about closureScope |
14:15:32 | FromGitter | <Varriount> dom96: Have you looked at its implementation? |
14:15:40 | dom96 | nope |
14:16:09 | Yardanico | dom96, it's "template closureScope*(body: untyped): untyped = (proc() = body)()" :D |
14:18:13 | * | lompik joined #nim |
14:19:13 | PMunch | Yardanico, haha really? |
14:19:18 | Yardanico | PMunch, https://github.com/nim-lang/Nim/blob/master/lib/system.nim#L4055 |
14:21:54 | PMunch | But wait, then why doesn't the actual closure capture variables? |
14:24:17 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
14:24:51 | * | yglukhov[i] joined #nim |
14:28:47 | * | PMunch quit (Quit: Leaving) |
14:33:20 | * | nasusiro is now known as stefanos82 |
14:34:06 | * | stefanos82 quit (Quit: Quitting for now...) |
14:34:39 | * | nasusiro joined #nim |
14:35:39 | * | nasusiro quit (Client Quit) |
14:36:12 | * | stefanos82 joined #nim |
14:37:27 | stefanos82 | Araq and dom96: I have now changed my nickname from nasusiro to stefanos82 to match that of my GitHub account. |
14:37:46 | stefanos82 | now things will make much more sense lol |
14:51:25 | * | miran joined #nim |
15:02:06 | * | nsf joined #nim |
15:04:09 | * | cryptocat1094 joined #nim |
15:05:30 | * | chemist69 joined #nim |
15:05:40 | * | brainproxy quit (Quit: WeeChat 2.1) |
15:07:24 | chemist69 | does someone have an idea, why the .pure. pragma does not work anymore for enums (https://github.com/nim-lang/Nim/issues/8066)? |
15:18:27 | * | NimBot joined #nim |
15:19:09 | * | natrys joined #nim |
15:19:38 | * | fjvallarino quit (Remote host closed the connection) |
15:19:44 | * | fjvallarino joined #nim |
15:23:58 | FromGitter | <mratsim> it was supposed to be removed iirc |
15:27:07 | chemist69 | Ah, ok. |
15:39:39 | shashlick | yay CI now in place for nimgen |
15:41:31 | * | chemist69 quit (Quit: WeeChat 1.9.1) |
15:47:15 | shashlick | @araq, @dom96: can we have a scheduled nightly build and save artifacts so that we can have a daily built snapshot instead of having to build csources and nim for every project? https://www.appveyor.com/docs/build-configuration/#scheduled-builds |
15:51:12 | * | natrys quit (Quit: natrys) |
15:53:41 | * | natrys joined #nim |
16:03:13 | * | natrys quit (Ping timeout: 248 seconds) |
16:05:45 | * | natrys joined #nim |
16:11:01 | * | fjvallarino quit (Remote host closed the connection) |
16:11:28 | * | fjvallarino joined #nim |
16:15:54 | * | fjvallarino quit (Ping timeout: 260 seconds) |
16:22:08 | * | Jesin quit (Quit: Leaving) |
16:25:35 | * | krux02 joined #nim |
16:37:34 | Yardanico | shashlick, we can also save artifacts for every commit |
16:37:47 | Yardanico | github releases for example |
16:38:34 | FromGitter | <tim-st> what does `undefined reference to ...` on gcc output mean? |
16:38:52 | FromGitter | <tim-st> when trying to compile wrapped header.h |
16:39:37 | * | donlzx quit (Quit: Leaving) |
16:46:06 | shashlick | yardanico: i think it will be great |
16:47:11 | * | fjvallarino joined #nim |
16:48:17 | FromGitter | <krux02> @tim-st it means that you compiled the header, but did not link the library. |
16:48:56 | FromGitter | <krux02> it is a linker error, not a compiler error. |
16:49:46 | FromGitter | <krux02> the header says "function int foo() exists" and then compiles the module. the linker says: "yea you are using this int foo() here, but I don't have it. " |
16:50:00 | FromGitter | <tim-st> @krux02 thanks, i have c files in the folder, which should I compile and how? |
16:50:31 | FromGitter | <tim-st> I think only one c file makes sense, I try with passL |
16:50:46 | FromGitter | <krux02> no |
16:51:00 | FromGitter | <krux02> you should probably tell the nim compiler to compile the c files |
16:51:07 | FromGitter | <tim-st> passC? |
16:51:13 | FromGitter | <krux02> no |
16:51:26 | FromGitter | <krux02> I think it is `compile` |
16:51:45 | FromGitter | <tim-st> thanks, I try^^ |
16:52:49 | FromGitter | <krux02> https://github.com/krux02/nimAntTweakBar/blob/master/AntTweakBar.nim |
16:52:58 | FromGitter | <krux02> this is how I did it. |
16:53:41 | FromGitter | <tim-st> thanks, so I have to pass release mode settings too? |
16:54:15 | shashlick | tim-st: are you wrapping something? |
16:54:22 | * | nsf quit (Quit: WeeChat 2.1) |
16:55:13 | dom96 | shashlick: Yes, I've wanted this for forever |
16:55:30 | dom96 | The problem is: where do the artifacts get stored? |
16:56:04 | FromGitter | <tim-st> yes, but dont succeed, I saw different lmdb implementations, none had a usable api, now there is, but cannot compile the c files... |
16:56:37 | FromGitter | <tim-st> there are files "lmdb.h" and "mdb.c" |
16:57:01 | FromGitter | <tim-st> and it looks like `MDB_envinfo* {.importc: "MDB_envinfo", header: headerPath.} = object` |
16:57:07 | FromGitter | <krux02> @tim-st have you looked at the example I posted? |
16:57:14 | FromGitter | <tim-st> yes... |
16:57:32 | FromGitter | <tim-st> I added `{.compile: "../liblmdb/mdb.c".}` |
16:57:41 | FromGitter | <krux02> and it doesn't help? |
16:57:44 | FromGitter | <tim-st> nope |
16:57:49 | FromGitter | <krux02> hmm |
16:58:03 | FromGitter | <tim-st> likely because there is no link between lmdb.h and mdb.c |
16:58:13 | FromGitter | <krux02> what do you mean? |
16:58:29 | FromGitter | <tim-st> I mean maybe mdb.c is compiled but not recognized |
16:58:55 | FromGitter | <tim-st> it is compiled as mdb.o in nimcache folder |
16:59:03 | FromGitter | <krux02> what do you mean with 'recognized? |
16:59:04 | shashlick | dom96: there's an API to download artifacts |
16:59:33 | FromGitter | <krux02> yes and when mdb.o is the nimcache it means basically that it works |
16:59:42 | shashlick | dom96: might be easier to simply HTTP post to somewhere |
16:59:58 | dom96 | Yes, it's a case of spending the time to implement this |
17:00:15 | dom96 | Security is something that needs a lot of consideration for this though |
17:00:51 | FromGitter | <krux02> @tim-st maybe you need to learn a bit more about the normal compilation process of a C project. |
17:01:13 | FromGitter | <tim-st> @krux02 I think I need to compile another file :\ |
17:01:31 | shashlick | dom96: right now, trying to get appveyor to do both win and lin builds |
17:01:55 | dom96 | travis can surely provide artifacts too |
17:02:28 | shashlick | ya, I'd like to test nimgen and wrappers on the last years worth of official releases and on #head |
17:03:34 | FromGitter | <tim-st> @krux02 thanks, it works now! but I'm not sure if the compiled files are in release mode e.g. if the release/debug mode is passed also to `compile` pragma |
17:04:58 | FromGitter | <krux02> I think those flags are passd to c files, but I am not sure. |
17:05:43 | FromGitter | <tim-st> ok, thanks |
17:07:09 | shashlick | --verbosity:2 |
17:15:39 | * | elrood quit (Remote host closed the connection) |
17:16:02 | * | elrood joined #nim |
17:16:15 | * | gsingh93_ joined #nim |
17:18:04 | * | gangstacat joined #nim |
17:30:10 | * | erratic joined #nim |
17:32:53 | * | gangstacat quit (Quit: Äśis!) |
17:48:21 | * | Vladar quit (Quit: Leaving) |
17:49:12 | * | gangstacat joined #nim |
17:56:47 | FromGitter | <xmonader> Is there special flags to compile app using UI ? ⏎ I did nimble install ui and I get lots of those ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b43a1df70efc60660b9eb26] |
18:47:32 | * | nsf joined #nim |
19:00:53 | * | PMunch joined #nim |
19:03:58 | * | yglukhov[i] quit (Remote host closed the connection) |
19:04:31 | * | yglukhov[i] joined #nim |
19:04:54 | * | yglukhov[i] quit (Remote host closed the connection) |
19:05:09 | * | yglukhov[i] joined #nim |
19:05:46 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
19:06:21 | * | yglukhov[i] joined #nim |
19:08:51 | * | lompik quit (Ping timeout: 240 seconds) |
19:18:00 | * | miran_ joined #nim |
19:18:21 | * | miran quit (Ping timeout: 240 seconds) |
19:26:51 | * | yglukhov[i] quit (Read error: Connection reset by peer) |
19:27:26 | * | yglukhov[i] joined #nim |
19:34:09 | * | beatmox quit (Remote host closed the connection) |
19:34:40 | * | beatmox joined #nim |
19:35:38 | * | gsingh93_ quit (Quit: Connection closed for inactivity) |
19:35:56 | FromGitter | <tim-st> when I have a c string address, how can I use it in nim as string without copy? |
19:37:51 | FromGitter | <tim-st> currently I'm using copyMem and it works, is there a more performant way? |
19:43:53 | CodeVance | just use it as a cstring? |
19:44:27 | FromGitter | <tim-st> I'm getting `type: pointer` |
19:48:33 | FromGitter | <tim-st> I see, I have to cast the pointer to cstring |
19:49:56 | PMunch | Aren't Nim strings just the length of the string and a pointer to the string? That should be possible to create from a cstring |
19:50:02 | PMunch | Don't think it is though |
19:50:53 | PMunch | Oh wait, that would probably mess with the GC.. |
19:50:55 | FromGitter | <tim-st> yes, it seems to work, but I need to set the len, I think |
19:51:13 | PMunch | cstrings are NULL delimited |
19:51:19 | PMunch | So you can't set a length |
19:51:40 | shashlick | cstrings != strings |
19:52:08 | FromGitter | <tim-st> the result is one byte too long |
19:52:28 | FromGitter | <tim-st> (extra letter) |
19:52:46 | PMunch | Then you have to either handle it, or copy it |
19:53:00 | PMunch | Unfortunately |
19:53:59 | FromGitter | <tim-st> hm :\ |
19:55:16 | FromGitter | <tim-st> now it seems to work, I have to test this |
19:59:31 | stefanos82 | Araq: when you have a couple of minutes available, can I ask you something about the channels algorithm? |
19:59:32 | * | Jesin joined #nim |
20:11:27 | FromGitter | <tim-st> I kept the old low performance way because e.g. for empty string it doesnt work and tells me str.len == 1 |
20:16:45 | stefanos82 | @tim-st: maybe this answers your question(s) more or less? https://forum.nim-lang.org/t/626 |
20:17:03 | * | nsf quit (Quit: WeeChat 2.1) |
20:17:45 | * | Jesin quit (Quit: Leaving) |
20:20:06 | FromGitter | <tim-st> I read this some minutes ago, I think the user wants to achieve the same, but I havent found a solution, for now I stay with the copy, maybe gcc gets it |
20:28:01 | Araq | stefanos82: what about it? |
20:28:51 | stefanos82 | Araq: today that I was in the bank, I was on a queue and wasted more than 15 minutes waiting for a job of 1 minute and 25 seconds. Yes I counted them |
20:29:23 | stefanos82 | why Nim (and Golang) use traditional FIFO queue for their channels' mechanism? |
20:30:28 | stefanos82 | even more, why people use FIFO as their task queue? Yes, it works but it's not really helpful with small-to-medium tasks that could get executed in no time. |
20:30:36 | stefanos82 | Why not go with priority queue? |
20:31:22 | Araq | FIFO is the "natural" way of doing things. |
20:31:38 | Araq | priority queue needs a more complex API but I wouldn't mind one. |
20:32:27 | stefanos82 | very well. I'm taking notes ^_^ |
20:33:02 | stefanos82 | so...shall I consider it as a plausible mechanism that could take place in the near future? I'm asking so I can refresh my knowledge around algorithms |
20:33:59 | shashlick | woohoo - both Windows and Linux CI setup on AppVeyor for nimgen |
20:34:28 | * | Jesin joined #nim |
20:34:29 | shashlick | all wrappers are tested so if you make one based on nimgen, let me know so that we can make sure it keeps working |
20:42:43 | * | miran_ quit (Ping timeout: 268 seconds) |
20:43:25 | * | fjvallarino quit (Remote host closed the connection) |
20:43:32 | * | fjvallarino joined #nim |
20:46:18 | * | PMunch quit (Quit: leaving) |
20:55:59 | Araq | stefanos82: well... this stuff predates system.deepCopy and should be moved out of system.nim |
20:56:13 | Araq | then it can also be easier to implement and tinker with |
20:56:25 | stefanos82 | I guess the docs are not fully updated then? |
20:56:39 | Araq | no, the docs reflect reality |
20:56:47 | Araq | but nowadays we can do much better |
20:57:01 | stefanos82 | I wish Nim had Python's help() |
20:57:44 | stefanos82 | like nim help <...> and should print your request. For instance, nim help string |
20:57:55 | stefanos82 | to provide me all the necessary documentation for string |
20:58:53 | stefanos82 | so far I'm more than impressed with Nim and feels really relaxing, yet challenging to code more and more on a daily basis |
20:59:14 | stefanos82 | this is a nice feeling that I haven't felt with any other language |
20:59:32 | stefanos82 | the language that gave me closest feeling to that of Nim is Go |
20:59:38 | stefanos82 | but not the same as Nim |
20:59:41 | * | cryptocat1094 quit (Quit: WeeChat 1.6) |
21:12:38 | FromGitter | <xDotDash> What would be the best way to get the fields of an object, inside a macro? |
21:13:49 | shashlick | https://nim-lang.org/docs/system.html#fieldPairs.i,T |
21:14:00 | Araq | stefanos82: https://nim-lang.org/docs/system.html "Group by type" |
21:14:15 | FromGitter | <xDotDash> Ah, thank you |
21:14:45 | stefanos82 | Araq: I know. Click on string |
21:14:55 | stefanos82 | "built-in string type" |
21:15:37 | stefanos82 | it doesn't say much, like so many options we see in so many source code samples out there |
21:16:17 | stefanos82 | so many .this() and .that() that I have no idea what they do to a string, to an integer, you name it |
21:17:43 | * | fjvallarino quit (Remote host closed the connection) |
21:22:12 | * | fjvallarino joined #nim |
21:26:12 | Araq | stefanos82: https://nim-lang.org/docs/system.html "Group by type" |
21:26:33 | Araq | --> under the "String" section it lists what you can do with strings |
21:27:05 | Araq | but it's pretty bad. get VS Code, type import strutils; "foo". and let the auto completion show you. |
21:27:16 | stefanos82 | lol...for heaven's sake, why did not see that yesterday?! |
21:27:24 | stefanos82 | thank you for the clarification Araq |
21:27:40 | stefanos82 | I use Vim |
21:28:42 | Araq | use a real tool instead. |
21:29:07 | stefanos82 | and Vim is not? |
21:31:19 | Araq | Vim predates monitors with VGA resolution |
21:31:27 | * | Jesin quit (Quit: Leaving) |
21:31:55 | Araq | you've been brainwashed into believing that mice make you unproductive. no studies ever backed it up, on the contrary. |
21:32:58 | shashlick | I was very pleased with vscode but it's too bloated for my VM |
21:32:59 | stefanos82 | so Nim that is using a CLI concept is useless too? |
21:33:14 | shashlick | and given I have to work across OS, vim is LCD |
21:33:48 | Araq | well let's not get into a fight. |
21:34:00 | * | ashleyk_ left #nim ("Leaving") |
21:34:23 | Araq | but CLIs and all this command line stuff is pathetic crap to me |
21:34:26 | stefanos82 | lol you started it with your "use a real tool instead". Let people use whatever they want lol |
21:34:54 | Araq | sure use what you want |
21:35:04 | Araq | but don't complain about your tooling then |
21:35:25 | stefanos82 | when did you hear me complaining about my tooling? O.o |
21:35:34 | shashlick | ale works well with nim for syntax checking |
21:35:53 | Araq | "I need Python's help()" is a complain about your tooling without you realizing that it is. |
21:36:03 | shashlick | but i don't have any completion |
21:36:24 | stefanos82 | Araq> no, the docs reflect reality |
21:36:24 | stefanos82 | <Araq> but nowadays we can do much better |
21:36:24 | stefanos82 | <stefanos82> I wish Nim had Python's help() |
21:36:46 | Araq | you don't want to read pages after pages of "help()". you want auto-completion. ;-) |
21:36:57 | Araq | you want it for Python too. |
21:37:10 | Araq | trust me. ;-) |
21:37:11 | stefanos82 | you don't want to admit you are tired. You NEED to get some proper sleep mate... |
21:37:56 | stefanos82 | btw Python has auto-completion even under terminal. Just type whatever you want and press the tab key |
21:38:18 | Araq | cool, I need to try that |
21:38:37 | stefanos82 | write dir and press tab key |
21:38:51 | Araq | doesn't work :-) |
21:39:00 | stefanos82 | which Python? 2 or 3? |
21:39:09 | Araq | 2.4.4 |
21:39:13 | stefanos82 | what -_- |
21:39:33 | stefanos82 | you remained back in the early '90s? |
21:39:42 | Araq | it's OSX, it always uses 2.4.4 no matter what I install via brew |
21:39:47 | Araq | :D |
21:39:50 | * | xet7 quit (Quit: Leaving) |
21:40:06 | stefanos82 | just install pyenv and you will find your inner peace in no time |
21:40:57 | Araq | nah, I'm fine. I don't use Python. |
21:42:44 | stefanos82 | don't you use brew? |
21:44:20 | Araq | brew install python2.7 |
21:44:25 | Araq | -- minutes later -- |
21:44:41 | Araq | Error: No formulae found in taps. |
21:44:53 | Araq | but I installed it once anyway, OSX uses 2.4.4 instead. |
21:45:04 | stefanos82 | replace 2.7 with 3 |
21:45:31 | Araq | and that's ok, it's a unix system. I expect it to ship with tens of different shitty scripting languages that cannot ever be uninstalled |
21:45:51 | stefanos82 | read this for its simple steps how to enable auto-completion under OSX https://nicolas.perriault.net/code/2010/python-tab-completion/ |
21:46:14 | stefanos82 | where's dom96? |
21:46:19 | stefanos82 | he got very quiet today |
21:47:01 | * | FromGitter quit (Remote host closed the connection) |
21:47:02 | * | oprypin quit (Quit: Bye) |
21:47:16 | Araq | he's fine. |
21:47:23 | * | FromGitter joined #nim |
21:47:25 | dom96 | I'm here |
21:47:34 | * | oprypin joined #nim |
21:48:40 | * | yglukhov[i] quit (Remote host closed the connection) |
21:50:55 | Araq | stefanos82: thanks, but I don't need auto-completion for Python as I don't use Python. |
21:51:46 | Araq | otherwise I would have managed to fix my setup |
21:51:51 | CodeVance | Isn't he talking about nim_magic |
21:52:28 | Araq | nevertheless it's surprising how bad it all works :-) |
21:53:42 | stefanos82 | there you are dom96 ^_^ |
21:53:46 | stefanos82 | listen mate, I wanted to ask you |
21:54:42 | stefanos82 | did you happen to read about Gorilla webkit, purely for academic / research purposes? http://www.gorillatoolkit.org/ |
21:54:54 | stefanos82 | I was thinking, why not have something like that for Nim? |
21:55:15 | stefanos82 | and some important parts that Jester might have to become part of Nim's standard |
21:56:11 | stefanos82 | I know Araq how much you hate other languages and adore yours, but let's be honest here lol, you borrowed multiple features from many languages to make Nim what it is today |
21:56:25 | stefanos82 | no need to sound so biased or mildly harsh with other languages |
21:57:15 | Araq | ok, fair. but I'm not harsh with other languages, I replaced them all. |
21:57:26 | * | rokups quit (Quit: Connection closed for inactivity) |
21:58:05 | dom96 | Never heard of Gorilla |
21:59:15 | stefanos82 | dom96: now you do then hehe :D |
22:00:00 | stefanos82 | it would be really useful to have a Nim webkit, because Jester is a Sinatra-based micro-framework which means the load goes developer's shoulders to implement missing feature |
22:00:28 | dom96 | when you say "webkit" I think of the rendering engine |
22:00:47 | dom96 | so I'm not sure what you mean |
22:00:52 | stefanos82 | true, I meant web toolkit |
22:00:55 | stefanos82 | my bad |
22:01:12 | dom96 | I think you mean a full web framework |
22:01:17 | * | natrys quit (Quit: natrys) |
22:01:21 | stefanos82 | well, Jester is a micro-framework, correct? |
22:01:28 | dom96 | yes |
22:01:36 | FromDiscord | <exelotl> nothing stopping people from using/creating other packages to go with jester, right? |
22:01:45 | stefanos82 | therefore it lacks important parts that users need to implement themselves, correct? |
22:01:59 | stefanos82 | @exelotl: exactly |
22:02:16 | stefanos82 | that's why I wanted to ask whether dom96 knows Gorilla |
22:02:31 | dom96 | yes |
22:03:46 | stefanos82 | to answer even further to you exelotl, by adding other packages to go with jester means jester is no longer a micro-framework; it will become a full-fledged framework, maybe the size of Django |
22:04:11 | stefanos82 | but that entails unnecessary restrictions |
22:04:30 | stefanos82 | think of those restrictions like "Hotel California": once you get in, there's no way out |
22:04:37 | dom96 | well no, jester would still be a micro-framework |
22:04:42 | stefanos82 | but with a web toolkit, anyone could use the features of their choice |
22:06:01 | CodeVance | jester addons |
22:06:35 | stefanos82 | oh? |
22:06:52 | stefanos82 | so we can think of it like "Jester on steroids"? |
22:07:47 | * | elrood quit (Quit: Leaving) |
22:07:58 | FromDiscord | <exelotl> jeroids |
22:08:06 | FromDiscord | <exelotl> I'll see myself out |
22:09:01 | stefanos82 | why not name it after In Flames' song, The Jester Race? |
22:09:07 | stefanos82 | what an amazing album... |
22:10:11 | stefanos82 | seriously now CodeVance, I cannot find jester addons. Any link please? |
22:10:47 | CodeVance | nim tinyc doesn't build |
22:11:35 | CodeVance | stefanos82: there are no jester addons |
22:11:35 | CodeVance | that I am aware |
22:11:45 | CodeVance | But I'm thinking of the jester packages like django packages |
22:11:46 | CodeVance | addons |
22:11:52 | CodeVance | not messing with the core |
22:12:13 | stefanos82 | that's why I suggested Gorilla as an example. |
22:16:29 | CodeVance | link man |
22:16:35 | CodeVance | nvm I see the link |
22:17:04 | stefanos82 | http://www.gorillatoolkit.org/ |
22:17:34 | shashlick | codevance: what issues you seeing with tcc |
22:18:24 | CodeVance | Isn't that already possible with nimble? |
22:18:31 | CodeVance | nimble install jester_bla |
22:19:38 | CodeVance | shashlick: |
22:20:11 | * | CodeVance sent a long message: < https://matrix.org/_matrix/media/v1/download/matrix.org/bitOCAzZiQkcaSEaPZzeUQJf > |
22:21:54 | * | yglukhov[i] joined #nim |
22:22:09 | shashlick | i just edited nim.cfg when I was playing with tcc |
22:22:20 | shashlick | do you have the latest release? |
22:23:27 | shashlick | https://savannah.nongnu.org/projects/tinycc |
22:24:23 | CodeVance | Do I have to build tinyc too? |
22:24:36 | * | erratic quit (Ping timeout: 256 seconds) |
22:25:25 | CodeVance | I thought tinyc is already included in nim's repo |
22:29:54 | stefanos82 | that tinyc is for REPL. it's a work-in-process |
22:29:57 | CodeVance | undeclared identifier errGenerated |
22:30:06 | stefanos82 | what system are you using, windows or Linux? |
22:30:12 | stefanos82 | or Mac? |
22:30:29 | CodeVance | win |
22:30:30 | CodeVance | win7 |
22:33:19 | CodeVance | 64bit |
22:33:32 | CodeVance | Am I supposed to take the latest tinyc? |
22:34:32 | stefanos82 | CodeVance: why not? Try this repo git://repo.or.cz/tinycc.git |
22:34:36 | stefanos82 | clone it and compile it |
22:34:50 | stefanos82 | last update was 8 days ago |
22:41:22 | CodeVance | Thx |
22:44:59 | stefanos82 | Araq: can you please explain to me how exactly the tinyc will be Nim's REPL? I'm asking because to be honest with you, I thought tinyc was to be an executable that comes with Nim that compiles code |
22:45:24 | Araq | tiny C also has an API |
22:45:53 | Araq | takes in C code, can compile the code and run it |
22:46:17 | stefanos82 | so are you working on bridging the generated C code with tinyc's API so it can compile in no time? |
22:46:32 | Araq | no, I did that. |
22:46:43 | Araq | then I couldn't get to work on Windows |
22:46:51 | Araq | and had problems with 64bit code on Linux |
22:47:11 | Araq | and stopped caring about Tiny C |
22:47:30 | stefanos82 | that's sad :( |
22:48:03 | stefanos82 | but they are working on it. you can see it for yourself here git://repo.or.cz/tinycc.git |
22:50:54 | stefanos82 | now if we could get tinyc to work with Nim's channels and concurrency would be more than great |
22:51:00 | stefanos82 | it throws errors |
22:53:30 | Araq | ;-) |
22:53:51 | stefanos82 | imagine though if it worked...people would go bananas with Nim! |
22:54:00 | Araq | it's not just threading. |
22:54:10 | stefanos82 | the majority fails, hm? |
22:54:27 | Araq | we also support "bitops" which use the C compiler's intrisics |
22:54:40 | Araq | (yes, I cannot write this word) |
22:55:05 | Araq | and we're flirting with C++'s zero overhead exceptions |
22:55:17 | Araq | all stuff Tiny C can't deliver. |
22:55:30 | stefanos82 | the word was 95% correct |
22:55:33 | Araq | and is outside of its scope |
22:55:42 | stefanos82 | you just missed an 'n' before sics |
22:56:06 | stefanos82 | train your brain to split it in two: intrin-sics |
22:56:57 | CodeVance | Would C++ be better , would it affect me at all? Would I need to change the packages I use to fit? |
22:56:57 | stefanos82 | so if you go with C++, will you stop working on tinyc support unless someone volunteers? |
22:57:17 | Araq | doesn't sound like me. instead I will go on a rant about the English language... |
22:57:23 | Araq | ;-) |
22:57:34 | stefanos82 | feel free |
22:57:52 | Araq | CodeVance: I don't think so. |
22:58:32 | Araq | stefanos82: your question is badly phrased. I stopped working on tinyC support long ago. I'm accepting PRs though. |
22:59:18 | stefanos82 | Araq: in your favorite language, "you" is for plural but they have unified singular with plural and everything sounds mixed |
22:59:51 | stefanos82 | when you say "you" it refers to plural as well, therefore the question was not referring to you individually, but to the whole core team |
23:00:22 | Araq | "will you stop working on tinyc support unless someone volunteers?" sounds pretty personal |
23:01:03 | shashlick | I had spent some time trying to get tinyc to pass nim tests |
23:01:04 | stefanos82 | let me rephrase it then: will you, the core team, stop working on tinyc support unless someone volunteers? |
23:01:14 | shashlick | latest version was hanging on some tests |
23:01:30 | stefanos82 | shashlick: I have noticed some peculiar behavior myself with tinyc |
23:01:43 | Araq | stefanos82: ok, so I let shashlick answer :-) |
23:02:23 | Araq | but TinyC is about the REPL, right? |
23:03:07 | shashlick | https://github.com/nim-lang/Nim/issues/7750 <= tcc related issue and PR |
23:03:19 | stefanos82 | Araq: if you mean by taking advantage its -run flag, then yes it should be the ideal tool for Nim |
23:03:25 | shashlick | my goal wasn't to get the repl working, it was more to see how much of nim was working with tcc |
23:04:49 | Araq | well the question is, where do you see TinyC's advantages for Nim, stefanos82 ? |
23:05:09 | stefanos82 | fast execution |
23:06:04 | Araq | with its non-existing optimizer? |
23:06:14 | stefanos82 | Araq: you didn't pay attention what I said before |
23:06:52 | stefanos82 | the users love speed. Give them that and make it clear for them that if they want optimization, they can switch their CC to gcc |
23:07:01 | stefanos82 | or the compiler of their choice |
23:07:27 | stefanos82 | think of tcc's behavior as Nim's sandbox for getting the first impression |
23:07:36 | Araq | what if my users have the same problem as I have? |
23:07:50 | stefanos82 | remind me which problems exactly and I forgot please? |
23:08:25 | Araq | the CC step is not on the critical path for development since "signature hashing" arrived |
23:08:48 | Araq | and now the time is spent in the Nim steps. |
23:08:59 | Araq | until we get IR (incremental compilation) production ready |
23:09:14 | Araq | er, *IC would be the correct abbrev |
23:09:28 | stefanos82 | you lost me at first |
23:09:38 | stefanos82 | I thought you meant Intermediate Representation |
23:10:54 | shashlick | araq: how's the newruntime coming? do you think it is for 1.0 or after? |
23:11:27 | * | krux02 quit (Remote host closed the connection) |
23:11:41 | stefanos82 | so basically Nim is considered by you "slow" during the parsing due to the missing incremental compilation mechanism? |
23:11:46 | Araq | well I'm a bit stuck in the implementation. |
23:11:47 | stefanos82 | I hope I got it wrong thogh |
23:11:53 | stefanos82 | *though |
23:12:50 | Araq | stefanos82: read this please https://github.com/nim-lang/Nim/issues/7874 |
23:13:03 | Araq | shashlick: it's scheduled for v1. |
23:13:29 | CodeVance | araq. sometimes nim spends so much time going over system modules. when the only thing changing is the project files. If you could fix that I think it would cut out a massive chunk of compilation time. |
23:14:53 | stefanos82 | Araq: did you happen to study C2lang? |
23:15:15 | stefanos82 | this guy does an incredible job with how fast it compiles |
23:15:15 | * | brainproxy joined #nim |
23:15:53 | * | vivus joined #nim |
23:16:00 | Araq | c2lang doesn't ring any bells |
23:16:15 | stefanos82 | "On my laptop C2 compiler parses around 1.5-1.8 million lines of C2 per second in a single thread!" |
23:16:23 | Araq | oh yeah |
23:16:27 | stefanos82 | that was one of his replies back to my comments about his language |
23:16:30 | Araq | I know this guy |
23:16:33 | Araq | I think. |
23:16:33 | stefanos82 | I lost my speech lol |
23:17:16 | Araq | well that's just what Delphi used to do, in the 90ies |
23:17:29 | stefanos82 | so basically when Nim compiles the code, does not it generates a hash key for each file so it can compare future changes? |
23:18:13 | Araq | but these numbers always come from a simple language. |
23:18:26 | FromGitter | <kaushalmodi> I think translating this to Nim would be a fun project: http://www.buildyourownlisp.com/contents |
23:18:27 | Araq | Nim has a macro system and all this compile-time voodoo. |
23:18:50 | Araq | and we would like to spend more time in checking your code, not less. |
23:18:59 | CodeVance | its not that simple apparently |
23:19:01 | stefanos82 | Araq: since I don't know Lisp, does this happen with Lisp too? |
23:19:05 | Araq | so we need something that works incrementally |
23:19:33 | * | rockcavera joined #nim |
23:19:58 | Araq | stefanos82: well the hash computation is the easy part |
23:20:11 | stefanos82 | what's painful part? |
23:20:16 | stefanos82 | *the |
23:20:32 | Araq | but you need to fill the RAM with what the compiler "would have done on a full recompile" |
23:22:43 | * | NimBot joined #nim |
23:22:55 | * | ketralni` joined #nim |
23:23:33 | * | ketralnis quit (Ping timeout: 240 seconds) |
23:23:57 | * | yglukhov[i] quit (Ping timeout: 240 seconds) |
23:24:41 | stefanos82 | so Araq, which parts do you want or think they need caching? |
23:24:59 | FromGitter | <kaushalmodi> I mentioned that link just to gage if anyone else is interested too, and probably willing to collaborate. |
23:25:36 | stefanos82 | I'm sure people will follow if you make the start and share it on HN |
23:25:45 | stefanos82 | that's where I read it either yesterday or today |
23:26:20 | stefanos82 | I wish I could support financially the author, but I'm complete broke |
23:26:25 | Araq | stefanos82: I wrote my thoughs in the https://github.com/nim-lang/Nim/issues/7874 |
23:26:47 | Araq | and now let me muse about the "new runtime" |
23:26:58 | stefanos82 | Araq: OK, I will finish it right way. I'm in "General Approach" part right now |
23:27:30 | Araq | shashlick: problem is that the current implementation has this split of string / NimString |
23:27:37 | FromGitter | <kaushalmodi> I learnt about that book there as well. Just that I've never had any luck posting interesting enough stuff to HN :P. In any case, I'll now step out of the ongoing conversation here. |
23:28:07 | Araq | (same for seqs) |
23:28:26 | Araq | and this split creates a messy situation. |
23:29:16 | Araq | but I don't think I can avoid it. |
23:29:16 | CodeVance | Force one or the other? |
23:30:09 | Araq | the implementations are easy enough but how to map string to NimString is unclear |
23:30:26 | * | krux02 joined #nim |
23:32:56 | Araq | also the destruction injection pass happens before C codegen |
23:33:24 | Araq | which is nice, except the C codegen knows about strings and how to map them to C |
23:34:13 | Araq | and so it needs to be taught to not do that |
23:35:48 | Araq | I played with the idea of rewriting the C codegen to be based on ASTs but that's a ton of a work and I could hack into the codegen instead... |
23:35:58 | stefanos82 | Araq: when Nim starts the compilation procedure, does it generate a specific type of AST syntax or a restricted version of Nim itself? |
23:36:58 | Araq | huh? |
23:37:23 | Araq | there is only one AST and it's used for everything and the macro system's AST is identical to what the compiler uses |
23:39:11 | stefanos82 | that is not what I meant |
23:39:22 | stefanos82 | let me share an article that demonstrates what I mean |
23:39:34 | stefanos82 | Araq: there you go https://perlgeek.de/blog-en/perl-6/2013-rakudos-abstract-syntax-tree.html |
23:40:38 | stefanos82 | is this the logic Nim is following or does it produce something complete different than this logic / concept? |
23:43:01 | Araq | yes and no. |
23:43:52 | Araq | https://nim-lang.org/docs/macros.html#the-ast-in-nim |
23:44:09 | stefanos82 | nice, thanks Araq. |
23:44:20 | stefanos82 | btw, you know files of type DAT? |
23:45:36 | stefanos82 | you could use them as your tiny case study for caching and validate your reasoning by having actual data in your hands about how faster it compiles or executes by using it |
23:47:06 | stefanos82 | I remember working on a sample project from "Fluent Python" and the initial code took around 68 seconds to finish and with the use of DAT files it finished in 2.3 seconds |
23:47:09 | stefanos82 | I was blown away! |
23:50:01 | pqflx3[m] | !eval import typetraits; var a: array[-5 .. -3, int]; echo type(a[0]) |
23:50:03 | NimBot | int |
23:50:18 | pqflx3[m] | is this meant to be legal? |
23:51:50 | stefanos82 | Araq: this line did not parse correct during HTML translation: As a side note, if you choose to use infix operators in a prefix form, the AST behaves as a [parenthetical function call](./macros.html#calls-expressions-call-with) with nnkAccQuoted, as follows: |
23:54:27 | stefanos82 | the same issue can be found at "Call with raw string literal" |
23:55:10 | * | fjvallarino quit (Remote host closed the connection) |
23:56:02 | stefanos82 | Araq: man...you should DEFINITELY write a compilers book! |
23:56:28 | stefanos82 | your AST is simply outstandingly awesome, so easy to follow and digest in no time...blimey man, well done! |
23:58:05 | Araq | lol thanks |
23:59:07 | stefanos82 | seriously, do that so we can get rid of the Dragon Book lol |
23:59:33 | stefanos82 | think of it as "The Design and Evolution of Nim" |
23:59:52 | Araq | let's get out v1 finally first. |