00:00:21 | Varriount|Remote | flaviu: Well, depends on how much of the original code each contributor contributed |
00:00:48 | flaviu | Also, Araq should find a lawyer to chat with before ldlework gets anything started. |
00:01:07 | ldlework | I don't plan on getting anything started without Araq's approval on anything |
00:01:09 | ldlework | But good idea |
00:01:13 | Varriount|Remote | "Nim Inc." |
00:01:16 | Araq | well finding a lawyer that actually knows about these things is harder |
00:01:25 | ldlework | Araq: agreed |
00:01:36 | flaviu | Varriount|Remote: What do you mean? |
00:01:50 | Varriount|Remote | flaviu: About what, "Nim Inc."? |
00:01:59 | flaviu | No, the CLA thing |
00:02:01 | Araq | I'll ask around. lawyers know other lawyers so it's not too bad. |
00:02:12 | Varriount|Remote | Or about the contributer's contributions? |
00:02:25 | Araq | flaviu: github does list the contributors |
00:02:26 | flaviu | but I don't think that "Nim Inc." is appropriate if Nim is to be a non-profit. |
00:02:40 | flaviu | Araq: But how many of those emails are unwatched? |
00:02:43 | ldlework | Nim LLC most likely |
00:02:45 | EXetoC | ldlework: a corporation? not a business then? |
00:02:46 | Varriount|Remote | flaviu: Well, if the person's original contribution no longer exists in the codebase, then they might not need to be contacted. |
00:03:01 | jsudlow | I'm confused if Nim is open source, what not just put a creative commons license on it? |
00:03:11 | ldlework | EXetoC: technically organization |
00:03:20 | ldlework | jsudlow: that's not how it works really |
00:03:25 | EXetoC | jsudlow: because it's a bad idea |
00:03:33 | EXetoC | don't ask me for details, but I hear that time and time again |
00:03:34 | Varriount|Remote | jsudlow: We aren't talking about licensing (I think) we're talking about monetary support |
00:03:40 | flaviu | jsudlow: But then what if some asshole decides to use Nim's logo for unrelated things? |
00:03:43 | EXetoC | but there are plenty of liberal licenses specifically for software |
00:03:44 | ldlework | Yes, and mindshare |
00:03:47 | ldlework | +1 flaviu |
00:04:42 | Araq | last time I checked this non-profit business is not worth the hassle. let's start a company instead. |
00:05:07 | Araq | so what if we do make money with it. why is that a problem? |
00:05:19 | Varriount|Remote | Like PHP? |
00:05:28 | EXetoC | let's push for anarchy and then not have to care |
00:05:34 | Varriount|Remote | Or Java... |
00:06:01 | Araq | Varriount|Remote: these do better than Nim right now, so I fail to see your point |
00:06:21 | Varriount|Remote | Araq: I'm making a point? I was just listing examples. |
00:06:35 | ldlework | Araq: We are entirely free to make money as a 501c3 |
00:06:50 | ldlework | The point of the 501c is that we are exempt from income taxes |
00:06:52 | ldlework | So income is implied |
00:07:03 | ldlework | The point is that you cannot give yourself the income and call it a day. |
00:07:12 | ldlework | The money must go back into further funding the project itself |
00:07:47 | ldlework | Its ideal for a programming language |
00:07:59 | ldlework | PHP and Java are owned by corporations because they were created by corporations |
00:08:02 | gour | ..but people can be employed and given salary, at least here.. |
00:08:04 | ldlework | Its anachronistic |
00:08:12 | ldlework | gour: sure, that's "funding the project" |
00:08:36 | flaviu | IIRC, Nim has an annual income of ~$100 |
00:08:42 | ldlework | hiring people to develop, maintain, evaneglize, make legal and so on |
00:08:52 | * | gour nods |
00:09:23 | Varriount|Remote | flaviu: But that could change. |
00:09:25 | ldlework | flaviu: that's .. not really the point |
00:09:27 | ldlework | anyway |
00:09:45 | ldlework | We need to establish copyright and trademark over many things |
00:09:46 | flaviu | Varriount|Remote: Yes, it could. No, I don't see it changing soon. |
00:09:48 | ldlework | That's the first step. |
00:10:15 | flaviu | ldlework: Well, it is. You can't hire much on $100 |
00:10:27 | jsudlow | thats 5 hours! |
00:10:28 | Varriount|Remote | flaviu: But having a non-profit supporting Nim is more attractive to companies (or the people in them) that want to donate money. |
00:10:30 | ldlework | flaviu: No its not. You're conflating things in order to be negative. |
00:10:55 | Varriount|Remote | Not to mention grants and such... |
00:11:06 | ldlework | Establishing the organization has many purposes. Conflating it all to just be about our current income is a distraction and I don't know why you're doing it. |
00:11:19 | flaviu | Varriount|Remote: Yes. |
00:11:19 | flaviu | ldlework: Yes, a non-profit is a good idea. But it's not useful from a money-management perspective right now. |
00:11:35 | ldlework | flaviu: Right, and no one, even me, claimed it was. |
00:11:39 | ldlework | That's what I'm saying |
00:11:43 | ldlework | You're conflating concerns |
00:11:49 | * | Ven joined #nim |
00:11:50 | flaviu | Sorry, I misunderstood |
00:11:55 | * | BitPuffin joined #nim |
00:12:07 | jsudlow | I think ldlework is just trying to get nim ready so if it does make money its got all the licenses and trade marks in place |
00:12:13 | * | yglukhov__ quit (Quit: Be back later ...) |
00:12:16 | Varriount|Remote | Anyone want to test out the new installer I built? |
00:12:20 | ldlework | I think we need to get Nim read *in order* to make money. |
00:12:29 | ldlework | And liscencing and trademarks and all that are the first step. |
00:12:51 | * | yglukhov__ joined #nim |
00:15:31 | * | gour quit (Remote host closed the connection) |
00:17:08 | * | yglukhov__ quit (Ping timeout: 250 seconds) |
00:17:35 | dom96 | flaviu: How do you figure that? |
00:18:43 | dom96 | (That Nim's income is $100)? |
00:21:13 | EXetoC | so the tip has gone up. great |
00:21:36 | flaviu | dom96: Within half an order of magnitude or so. I saw someone post a number for a particularly large donation. |
00:21:40 | EXetoC | Araq: you re-direct $10 to someone else? |
00:21:59 | dom96 | flaviu: You forgot to take away our expenses :P |
00:22:25 | EXetoC | s/nimrod/nim on the gratipay page |
00:22:31 | ldlework | EXetoC: lol |
00:22:36 | dom96 | EXetoC: yeah, I don't know how to rename it |
00:22:57 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
00:23:24 | Araq | EXetoC: to dom96. |
00:23:41 | EXetoC | ok |
00:24:23 | * | saml_ joined #nim |
00:26:09 | Araq | Varriount|Remote: I'll test them but it would be better if somebody does so too |
00:26:27 | Araq | also somebody should produce deb packages and macosx installers |
00:29:28 | * | irrequietus quit () |
00:32:42 | ldlework | definitely |
00:33:36 | ldlework | Maybe even a docker container if they are bored :) |
00:33:47 | gokr | SBtw, Squeak joined https://sfconservancy.org |
00:35:03 | ldlework | gokr: Its an interesting option |
00:35:25 | ldlework | I like to think that Nim has a future where it can play with the big boys and stand on its own and decide its own future |
00:35:26 | gokr | I don't know much about it, but know people in the Squeak community that worked with that. |
00:35:37 | ldlework | But if Nim doesn't ever break that critical threshold it can always be a fallback |
00:36:17 | ldlework | gokr: that's definitely an organization I can support though... |
00:42:15 | gokr | One big issue with Squeak was the very complicated history and licensing. |
00:42:27 | gokr | I doubt Nim can be more complicated ;) |
00:44:47 | * | Ven joined #nim |
00:46:16 | EXetoC | it'll get plenty big |
00:46:19 | * | skyfex quit (Quit: (null)) |
00:47:54 | gokr | But ... generally I suspect a German legal entity may be more fitting for Andreas. In Squeak we used for several years such an entity to gather funds - was established by a friend of mine, Marcus Denker. |
00:48:14 | gokr | I can ask if Andreas can ask him a few questions about it. |
00:48:22 | ldlework | Sure but then Andreas has no current help |
00:48:35 | ldlework | And we need Andreas focused on the language |
00:48:43 | Varriount|Remote | Araq: Here are the links for the new installers - https://drive.google.com/file/d/0B077nrrf63xtTHVaUzIxelBBbGs/view?usp=sharing https://drive.google.com/file/d/0B077nrrf63xtaENpbWNpeHZleDg/view?usp=sharing |
00:48:48 | ldlework | But whatever is the optimal outcome I'm fine with |
00:48:57 | ldlework | I'm just trying to fill a percieved void |
00:49:01 | gokr | yeah |
00:49:46 | ldlework | Afterall Python started in the Netherlands |
00:49:52 | ldlework | It is now very much an american 501 |
00:53:01 | onionhammer | dom96 around? |
00:53:07 | * | Varriount|Remote quit (Ping timeout: 246 seconds) |
00:53:09 | gokr | gnite |
00:53:31 | ldlework | gokr: o/ |
00:53:38 | dom96 | onionhammer: yes |
00:56:05 | EXetoC | gratipay everyone, gratipay!! |
00:56:19 | EXetoC | make dom96 quit school, and then we can focus on Araq |
00:56:30 | onionhammer | dom96 im getting that issue again on my mac now |
00:56:34 | onionhammer | with jester |
00:56:43 | dom96 | what issue? |
00:56:50 | onionhammer | maybe it's slightly differnet actually |
00:56:55 | onionhammer | making a gist |
00:57:31 | onionhammer | https://gist.github.com/onionhammer/5323918254db70ac6ea7 |
00:58:08 | * | Matthias247 quit (Read error: Connection reset by peer) |
00:58:24 | dom96 | 'serve'? |
00:58:33 | dom96 | Try 'resp' |
00:58:41 | onionhammer | :S sorry |
00:58:54 | onionhammer | i think i have a macro called serve in my other app lol |
00:59:05 | * | stapler joined #nim |
00:59:20 | stapler | question. can i get more about the os than system.hostOS gives me? |
00:59:23 | EXetoC | but, "jester.serve..." |
00:59:28 | * | stapler quit (Changing host) |
00:59:28 | * | stapler joined #nim |
00:59:28 | * | stapler quit (Changing host) |
00:59:28 | * | stapler joined #nim |
00:59:41 | onionhammer | jester.serve is another proc EXetoC |
00:59:49 | onionhammer | my bad :) |
00:59:55 | onionhammer | afk |
01:01:01 | dom96 | stapler: what do you want? |
01:01:10 | dom96 | To know about the OS? |
01:02:12 | * | BitPuffin quit (Ping timeout: 250 seconds) |
01:02:56 | EXetoC | did filwit make any attempts at making the website responsive? |
01:03:04 | ldlework | I should get in touch with Steve Holden |
01:03:56 | stapler | dom96: version, for some stats |
01:07:41 | * | gokr quit (Ping timeout: 244 seconds) |
01:10:23 | * | nimnoob_ quit (Ping timeout: 272 seconds) |
01:16:27 | dom96 | stapler: There is osinfo_posix and osinfo_win. They are not documented though. |
01:16:29 | dom96 | https://github.com/Araq/Nim/blob/devel/lib/impure/osinfo_posix.nim |
01:16:31 | dom96 | https://github.com/Araq/Nim/blob/devel/lib/impure/osinfo_win.nim |
01:20:21 | stapler | awesome |
01:20:22 | stapler | thanks |
01:28:48 | * | lumo_e joined #nim |
01:29:05 | lumo_e | Hi |
01:29:38 | lumo_e | do you think that nim could be suited to teach programming? |
01:29:43 | * | zedronar joined #nim |
01:30:01 | lumo_e | I was going to write a guide to programming for total beginners |
01:30:06 | dom96 | lumo_e: I'd say so, yes. |
01:30:12 | lumo_e | (unfortunately not in english) |
01:31:35 | lumo_e | I recalled nimrod because it had a neat syntax, but also static typing(which I think must be thought first) |
01:31:41 | lumo_e | also it teaches to indent properly |
01:32:18 | lumo_e | I admit I have been a bit lazy while skimming through the manual though |
01:32:33 | stapler | dom96: seems like that needs some updating ;). i'll work on it. |
01:32:37 | lumo_e | is there any "weird" point in the language that could be difficult to convey? |
01:33:12 | dom96 | lumo_e: You should definitely learn it yourself first before trying to teach it to beginners. |
01:33:21 | lumo_e | of course |
01:33:56 | lumo_e | how does OOP in nim compare to mainstream OOP languages? |
01:34:10 | dom96 | It's more minimal. |
01:34:32 | lumo_e | single inheritance is good |
01:34:43 | lumo_e | polymorphism and interfaces? |
01:35:28 | lumo_e | ok google told me |
01:35:35 | * | z1y quit (Ping timeout: 244 seconds) |
01:38:32 | stapler | is there a contribution guide? |
01:39:00 | stapler | or a specific way i should make a pull request? |
01:40:35 | dom96 | Nope. Just make it against the devel branch. |
01:41:55 | lumo_e | installing it on windows seems like a bit of hassle for a beginner |
01:42:43 | dom96 | lumo_e: We're going to have Windows installers soon. |
01:42:55 | lumo_e | this is good |
01:43:21 | lumo_e | ok I'll take a couple of days to learn nim, seems interesting |
01:43:34 | lumo_e | (out of curiosity, why was it renamed?) |
01:44:11 | * | Demon_Fox joined #nim |
01:45:01 | reactormonk | lumo_e, because "nimrod" has some annotations with "idiot" |
01:45:38 | EXetoC | it's silly, but it doesn't matter now |
01:45:52 | lumo_e | oh |
01:45:59 | lumo_e | I thought nimrod was call |
01:46:08 | lumo_e | was the biblical reference intended? |
01:46:54 | reactormonk | yup |
01:47:27 | lumo_e | such a pity then |
01:47:36 | lumo_e | ok thanks, good night |
01:47:40 | * | lumo_e quit (Quit: Leaving) |
01:51:08 | Araq | Varriount_: first page still says "nimrod" |
01:52:02 | * | Pixelgel joined #nim |
01:52:46 | * | vbtt joined #nim |
01:54:41 | Araq | Varriount_: please rebuilt, had to update the licence file |
01:54:52 | Araq | hi Pixelgel welcome |
01:55:51 | stapler | so i uh made the pull request |
01:55:58 | stapler | oh uhhh hi, araq! |
01:56:34 | Araq | hi stapler welcome |
01:58:14 | Araq | 999 watchers, come on guys |
01:58:28 | * | vbtt quit (Ping timeout: 255 seconds) |
01:58:32 | Araq | :-) |
01:59:00 | stapler | cool, i guess i was the 999th |
01:59:15 | stapler | yep |
02:01:53 | * | yglukhov__ joined #nim |
02:06:16 | * | yglukhov__ quit (Ping timeout: 244 seconds) |
02:07:52 | * | Trustable quit (Quit: Leaving) |
02:08:30 | Triplefox | hmm, someone's GC question http://www.reddit.com/r/programming/comments/2qp8xb/nim_formerly_nimrod_0102_released/cn8r589 |
02:13:36 | Araq | good night |
02:14:16 | Triplefox | nini |
02:17:19 | dom96 | wooh 1k stargazers |
02:17:52 | * | z1y joined #nim |
02:19:16 | flaviu | wtf, how does `for i in 0..10` use GC? |
02:20:27 | EXetoC | false positive maybe |
02:20:45 | gmpreussner | well, first it needs to allocate memory for all the numbers between 1 and 10 |
02:20:49 | gmpreussner | obviously |
02:20:53 | EXetoC | no |
02:20:55 | Triplefox | i imagine in the best case, it's tracing in the gc use from another place |
02:20:59 | gmpreussner | ^_^ |
02:21:01 | Triplefox | but i don't know compiler internals |
02:23:55 | dom96 | flaviu: echo(i) uses GC I think |
02:23:55 | flaviu | No, that doesn't use GC |
02:23:57 | flaviu | yep |
02:24:02 | flaviu | I just came to that conclusion |
02:28:23 | dom96 | night |
02:28:33 | flaviu | Triplefox: I replied, in case you wanted to see what the answer is. |
02:29:11 | Triplefox | okay, that all makes sense |
02:30:01 | Triplefox | oh, should point to the gc internals page to address manual allocations etc. |
02:35:42 | Triplefox | i remember standard library use of GC creating a big talking point against D |
02:36:41 | * | nimnoob_ joined #nim |
02:38:09 | EXetoC | that's less true now apparently |
02:38:21 | EXetoC | there are that many embedded programmers? |
02:38:33 | Triplefox | it's probably not a real issue |
02:38:52 | EXetoC | but the GC was apparently kind of slow |
02:39:24 | Triplefox | yeah in one thread i read there was a mix of issues where the GC sat around without improvements |
02:39:38 | Triplefox | the kind of thing that I hear has also happened to some Go folks |
02:39:46 | Triplefox | they scale it up and it falls over |
02:40:35 | Triplefox | folks who want to do very tight performance embedded stuff seem to mainly want C without header files |
02:40:44 | Triplefox | different design goal, really |
02:43:13 | * | nimnoob_ quit (Ping timeout: 258 seconds) |
02:58:04 | * | stapler quit (Ping timeout: 246 seconds) |
02:59:12 | * | minciue quit (Quit: minciue) |
03:00:05 | * | brson quit (Quit: leaving) |
03:05:16 | * | Guest68461 joined #nim |
03:12:19 | Pixelgel | Does anyone know whether there's any interest in having uniqueness types in Nim? |
03:16:53 | * | dyu joined #nim |
03:17:37 | flaviu | "uniqueness types"? Can you elaborate? |
03:18:26 | Pixelgel | Like the new C++ feature, and also similar to rust, where the compiler tracks ownership of a heap object statically. |
03:19:08 | * | darkf joined #nim |
03:19:29 | Pixelgel | Nim is almost exactly what I've been looking for for a while, but having runtime GC is unpleasant to me. |
03:20:10 | flaviu | ah, ok. I personally don't really have an opinion there, both work for me. |
03:21:23 | Pixelgel | Yeah, that's valid. I just feel wasteful with runtime GC. |
03:21:33 | * | dymk quit (Ping timeout: 258 seconds) |
03:22:48 | * | dymk joined #nim |
03:23:26 | EXetoC | garbage collection can be very fast |
03:23:33 | EXetoC | do you have special requirements? |
03:25:12 | * | flaviu quit (Read error: Connection reset by peer) |
03:25:12 | * | Mimbus quit (Read error: Connection reset by peer) |
03:26:28 | Pixelgel | Not specifically, I just find that uniqueness typing has lower mental overhead than making sure I play fair with the GC |
03:27:18 | fowl | Pixelgel, i suggest you test the gc before you discount it |
03:27:40 | Pixelgel | That's valid. |
03:27:46 | * | flaviu joined #nim |
03:28:04 | Pixelgel | The rest of Nim is well worth the time to check into that, now that I think about it. |
03:28:08 | Pixelgel | Thanks. |
03:28:53 | fowl | i come from ruby/python and trying to write games you can hit the GC wall pretty quickly |
03:29:51 | fowl | with nim the ceiling is much higher |
03:30:54 | Pixelgel | The support for max pause times and stepping seems interesting as well. |
03:50:47 | * | yglukhov__ joined #nim |
03:54:31 | * | vbtt joined #nim |
03:55:41 | * | yglukhov__ quit (Ping timeout: 272 seconds) |
03:58:24 | * | BitPuffin joined #nim |
04:02:31 | * | BitPuffin quit (Ping timeout: 244 seconds) |
04:05:44 | * | Jaood left #nim (#nim) |
04:09:15 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
04:22:18 | zedronar | I'm loving this language. |
04:25:01 | EXetoC | c(:)|< |
04:27:12 | zedronar | I find Rust syntax unpleasant... Nim is just great |
04:27:26 | zedronar | I wish we had a linter for Sublime though. |
04:28:42 | fowl | zedronar, nimlime has syntax highlighting if thats what you mean |
04:31:01 | * | Pixelgel quit (Quit: Page closed) |
04:35:22 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
04:37:14 | * | vbtt joined #nim |
04:39:57 | * | nimnoob_ joined #nim |
04:40:30 | * | BitPuffin joined #nim |
04:41:08 | zedronar | fowl: awesome |
04:41:49 | zedronar | how do you call the functionality that compiles the code while you are editing? |
04:44:17 | * | nimnoob_ quit (Ping timeout: 240 seconds) |
04:48:03 | fowl | not sure what its called |
04:48:50 | zedronar | autocompile? |
04:49:08 | zedronar | we should make something like that for Sublime... Rust has it, and it's great |
04:49:21 | flaviu | If you don't mind trademark issues, "intellisense" |
04:49:22 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
04:49:46 | flaviu | zedronar: Well, nim is supposed to support it, but it's not really useable. |
04:50:38 | zedronar | I thought intellisense was just autocomplete for classes, members, etc |
04:50:48 | zedronar | flaviu: why not? |
04:52:01 | flaviu | I've heard that it's buggy, but that may just be the daemon mode. |
04:53:07 | flaviu | IntelliSense does include the squiggly underline according to my brief research. |
04:53:45 | flaviu | bye, I need to sleep. It can't hurt to try to figure out Idetools if you'd like. |
04:54:37 | zedronar | flaviu: Good night. |
04:54:43 | zedronar | flaviu: I will. |
05:11:58 | * | BitPuffin quit (Ping timeout: 255 seconds) |
05:14:20 | * | nimnoob_ joined #nim |
05:20:48 | * | nimnoob_ quit (Ping timeout: 265 seconds) |
05:24:07 | * | saml_ quit (Quit: Leaving) |
05:29:01 | * | kniteli quit (Ping timeout: 265 seconds) |
05:34:22 | * | kniteli joined #nim |
05:35:41 | * | kapil__ joined #nim |
05:39:41 | * | yglukhov__ joined #nim |
05:42:40 | * | ARCADIVS joined #nim |
05:44:06 | * | yglukhov__ quit (Ping timeout: 244 seconds) |
05:45:17 | * | Demon_Fox quit (Quit: Leaving) |
05:47:28 | * | zedronar quit (Ping timeout: 246 seconds) |
05:58:26 | * | superfunc joined #nim |
06:04:19 | * | superfunc quit (Ping timeout: 265 seconds) |
06:07:49 | * | vbtt joined #nim |
06:11:45 | * | stapler joined #nim |
06:17:15 | dv- | the function source links in the documentation are broken |
06:19:07 | dv- | (on nim-lang.org) |
06:22:32 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
06:28:33 | stapler | are there really no docs on unittest? |
06:28:40 | stapler | i don't see anything at all! |
06:45:56 | * | Boscop joined #nim |
06:46:36 | fowl | stapler, check the bottom of the module for an example? there are examples in nims tests/tunit too |
06:49:33 | stapler | fowl: i know how to use it but the fact that i don't see any mention of it ANYWHERE on the website is sort of frightening |
06:54:42 | fowl | its missing from lib.html apparently |
06:54:50 | fowl | and the module itself doesnt have an example |
07:04:28 | * | stapler quit (Ping timeout: 246 seconds) |
07:13:34 | * | Demos_ quit (Ping timeout: 250 seconds) |
07:28:30 | * | yglukhov__ joined #nim |
07:29:09 | * | dts|pokeball quit (Ping timeout: 256 seconds) |
07:29:26 | * | vbtt joined #nim |
07:32:44 | * | yglukhov__ quit (Ping timeout: 245 seconds) |
07:41:08 | * | bjz joined #nim |
07:52:10 | ldlework | I hope we can encourage all the new names showing up to make these small improvements they are noticing. |
07:52:15 | ldlework | Its good feedback. |
07:52:44 | ldlework | Or help. You know what Imean. |
07:53:43 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
07:57:42 | * | vbtt joined #nim |
08:05:36 | * | z1y quit (Ping timeout: 258 seconds) |
08:08:50 | * | BitPuffin joined #nim |
08:13:21 | * | BitPuffin quit (Ping timeout: 256 seconds) |
08:23:58 | fowl | nobody ever wants to write documentation |
08:28:28 | ldlework | I think if you take someone who is saying that feathery stuff like "I want to contribute but I'm not sure how" |
08:28:51 | ldlework | and you hand them a specific module, or specific sections to chose from that need improvement and say "Do this" they might respond |
08:29:06 | ldlework | So maybe we can better enumerate discrete tasks to help with that |
08:32:50 | * | yglukhov__ joined #nim |
08:33:22 | * | Demon_Fox joined #nim |
08:35:15 | * | milosn quit (Remote host closed the connection) |
08:35:39 | * | fowlmouth joined #nim |
08:36:15 | * | notfowl joined #nim |
08:37:20 | * | BlaXpirit joined #nim |
08:37:31 | * | yglukhov__ quit (Ping timeout: 265 seconds) |
08:37:38 | * | milosn joined #nim |
08:39:27 | * | fowl quit (Ping timeout: 244 seconds) |
08:40:06 | * | fowlmouth quit (Ping timeout: 258 seconds) |
09:24:37 | * | bjz_ joined #nim |
09:27:15 | * | bjz quit (Ping timeout: 258 seconds) |
09:29:03 | * | matkuki joined #nim |
09:35:04 | vbtt | i dont mind writing documentation |
09:35:13 | vbtt | but i'm fuzzy on the details |
09:43:06 | Demon_Fox | I just want to know if I'm thinking in the right direction |
09:43:21 | Demon_Fox | Was nim meant to be a like C, Pascal, and Python? |
09:45:27 | ldlework | Demon_Fox: you seem hung up on this |
09:45:37 | ldlework | Enumerate its features |
09:45:43 | ldlework | See Nim in the spectrum |
09:45:55 | ldlework | Which is very much multi-dimensional |
09:46:17 | ldlework | You can immediately see various similarities to other languages, whether they are legitimately inspiration or not |
09:49:45 | ldlework | Demon_Fox: Do you need a language which is low friction like Python, easy on the eyes like Pascal and fast like C with well made generics like C# and meta-programming facilities like Lisp? |
09:50:48 | Demon_Fox | Thanks. |
09:50:52 | Demon_Fox | That is what I wanted to know |
09:51:06 | Demon_Fox | What it sorted of formed into |
09:51:52 | ldlework | Demon_Fox: where other languages like Rust are Big Idea languages, I think that Nim really just tries to give us a very nice version of the kind of language feature's we're all ready used to |
09:52:39 | ldlework | man my spelling and grammar is in the toilet right now |
09:52:43 | ldlework | I'm going to sleep :) |
09:52:47 | Demon_Fox | I am to |
09:52:56 | Demon_Fox | I get a little ranty when I'm tired |
09:53:07 | ldlework | Demon_Fox: lets write a small game |
09:53:10 | ekarlso- | .eval %{"foo": 1} |
09:53:14 | ekarlso- | hmmms |
09:53:27 | ldlework | Demon_Fox: not right now, but over time, something trivial |
09:53:35 | ldlework | good night |
09:57:07 | * | Varriount|Remote joined #nim |
09:58:46 | Demon_Fox | It is hard to think when I'm tired |
09:58:52 | Varriount|Remote | Araq: Updated installers here - https://drive.google.com/file/d/0B077nrrf63xtclloT1NGUDBlQWs/view?usp=sharing |
09:58:59 | * | Demon_Fox quit (Quit: Leaving) |
09:59:15 | * | Varriount|Remote quit (Client Quit) |
10:00:15 | * | vbtt quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
10:12:59 | * | z1y joined #nim |
10:27:47 | * | yglukhov__ joined #nim |
10:29:40 | * | gokr joined #nim |
10:34:56 | Araq | Varriount_: thanks. Tested and uploaded. Let's hope people find fewer problems than the last time ;-) |
10:37:20 | gokr | Morning! |
10:38:38 | * | jefus__ joined #nim |
10:40:35 | gokr | That's nice, at least two people commented on my blog that they are taking a closer look at Nim :) |
10:42:25 | * | jefus_ quit (Ping timeout: 244 seconds) |
10:49:43 | gokr | A fascinating blog article about "bug problems" in Julia: http://danluu.com/julialang/ |
10:51:57 | * | Matthias247 joined #nim |
11:09:07 | * | matkuki quit (Quit: ChatZilla 0.9.91.1 [Firefox 34.0.5/20141126041045]) |
11:16:07 | * | z1y quit (Ping timeout: 258 seconds) |
11:34:52 | * | bjz_ quit (Ping timeout: 240 seconds) |
11:35:17 | * | skyfex joined #nim |
11:43:10 | * | bjz joined #nim |
11:51:25 | * | gokr quit (Quit: Leaving.) |
11:56:01 | * | VinceAddons joined #nim |
12:18:17 | * | BlaXpirit quit (Quit: Quit Konversation) |
12:23:44 | * | bjz quit (Ping timeout: 265 seconds) |
12:30:11 | * | bjz joined #nim |
12:30:18 | * | judofyr joined #nim |
12:30:36 | judofyr | hey folks |
12:31:40 | * | Sphax joined #nim |
12:32:56 | * | bjz quit (Read error: Connection reset by peer) |
12:33:26 | judofyr | I've been playing with bindings to h2o (HTTP server): https://github.com/judofyr/hox |
12:33:58 | judofyr | Example app: https://github.com/judofyr/hox/blob/master/ex.nim#L18 |
12:34:04 | judofyr | I must say I like Nim very much :) |
12:34:07 | judofyr | very pragmatic |
12:36:51 | * | Durz0 joined #nim |
12:42:26 | judofyr | but I do have some questions though. I'm wondering how to handle query parameters and form data. |
12:42:44 | judofyr | I'm not a big fan of the "parse everything into one big hash table" |
12:43:18 | judofyr | so actually I think an API like this might make more sense: type SearchQuery = object: q, page: string |
12:43:46 | judofyr | and then providing a proc parse(data: string, form: var SearchQuery) |
12:44:03 | judofyr | is there a way to implement that in a clean way? |
12:44:35 | judofyr | I can't seem to get the type info from inside a macro |
12:44:43 | * | Trustable joined #nim |
12:46:38 | * | flaviu quit (Remote host closed the connection) |
12:55:51 | * | Ven joined #nim |
12:56:01 | * | flaviu joined #nim |
12:56:53 | * | jm116 joined #nim |
12:56:57 | jm116 | hi |
12:57:03 | jm116 | brihat said you are friendly |
12:57:17 | judofyr | hi jm116 |
13:03:19 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:04:54 | * | Sembei quit (Excess Flood) |
13:05:54 | * | Sembei joined #nim |
13:07:26 | * | Durz0 left #nim ("Bye") |
13:10:55 | * | flaviu quit (Remote host closed the connection) |
13:11:02 | * | flaviu joined #nim |
13:14:01 | * | z1y joined #nim |
13:19:04 | dom96 | hello jm116, welcome to Nim land :) |
13:19:36 | * | untitaker joined #nim |
13:19:44 | dom96 | welcome to you too judofyr |
13:21:04 | dom96 | judofyr: The type API for macros hasn't been finished yet. |
13:21:18 | dom96 | judofyr: I'm not sure how to help you with your other issue, you seem to know what to do already :) |
13:22:56 | judofyr | dom96: I saw a .typ proc in the macros-module, but I can't find a way to get to a PNimType from there |
13:24:08 | * | Sphax quit (Ping timeout: 244 seconds) |
13:24:36 | * | Ven joined #nim |
13:26:53 | * | Sphax joined #nim |
13:26:54 | dom96 | judofyr: If you wait for Araq to show up he'll be able to help you out. |
13:27:17 | judofyr | dom96: also: do you have any thoughts on templating language for Nim? I'm not a very big fan of the macro-thingie. |
13:28:10 | dom96 | You can use source code filters: http://nim-lang.org/filters.html |
13:31:06 | flaviu | judofyr: If you'd like a project, something like https://github.com/Shopify/liquid/wiki/Liquid-for-Designers would be great! |
13:32:56 | judofyr | flaviu: dynamically or statically typed? parsed at runtime or compile time? |
13:34:02 | flaviu | I personally don't feel comfortable doing complicated things at compiletime because I tend to run into crashes, so I'd suggest it be parsed at runtime. |
13:34:34 | flaviu | and IMO static typing on templates is mostly pointless since everything is a string anyway. |
13:35:22 | judofyr | it's more about what you give to the template engine. do you give it `var YourType`, or `var SomeGenericObject` |
13:35:59 | dom96 | flaviu: No it's not. Concatenation is expensive at runtime. |
13:36:10 | judofyr | e.g. what does {{ foo.bar }} compile to? |
13:36:19 | judofyr | is it a hashmap lookup? |
13:36:31 | judofyr | or is it a proc-call? |
13:37:03 | flaviu | I think that hashmap would be best if there's to be the opportunity for new templates to be created at runtime. |
13:37:46 | flaviu | dom96: there's a lot more to the problem than just "concatenation is expensive" |
13:38:28 | dom96 | flaviu: Like what?] |
13:39:09 | flaviu | you can optimize your template AST, you can use heuristics to decrease copying. |
13:39:15 | * | Trustable quit (Remote host closed the connection) |
13:40:05 | * | Trustable joined #nim |
13:40:13 | judofyr | I see this as two different use cases: I want something like Liquid if I have a system where users can insert their own template. |
13:40:39 | judofyr | stdtmpl is fine if I'm fully in control of the templates |
13:41:31 | * | kapil__ quit (Quit: Connection closed for inactivity) |
13:43:29 | judofyr | and while I agree that a Liquid-like template engine is nice to have, I don't really need it at the moment |
13:43:39 | * | Sphax quit (Max SendQ exceeded) |
13:43:44 | judofyr | dom96: is there a way to define custom filters? |
13:44:38 | * | Sphax joined #nim |
13:44:46 | dom96 | judofyr: Yeah, have you read the docs? |
13:45:11 | judofyr | dom96: which docs? filters.html doesn't mention anything? |
13:45:58 | judofyr | manual.html doesn't have anything related to "filters" |
13:46:04 | dom96 | judofyr: You can control the parameters defined here http://nim-lang.org/filters.html#available-filters |
13:46:52 | judofyr | what if I want to support "#! foobar" ? |
13:46:58 | judofyr | can I write my own foobar filter? |
13:47:09 | dom96 | I don't think so |
13:47:13 | judofyr | ok |
13:50:49 | * | Sphax quit (Ping timeout: 255 seconds) |
13:56:01 | * | loz joined #nim |
14:02:46 | * | Sphax joined #nim |
14:05:51 | * | minciue joined #nim |
14:10:03 | * | BitPuffin joined #nim |
14:19:57 | * | jefus__ is now known as jefus |
14:27:17 | * | Sphax quit (Ping timeout: 240 seconds) |
14:39:23 | dom96 | Cool. A Nim Forum thread is on HN. |
14:39:31 | * | dom96 hopes the forum can handle HN traffic... |
14:39:47 | gmpreussner | :) |
14:42:13 | flaviu | dom96: Still haven't deployed google analytics to the forum? You're missing out on that data. |
14:42:50 | dom96 | I'm honestly afraid to at this point. |
14:43:29 | dom96 | We can look at the view count that the thread has though :) |
14:44:19 | flaviu | yeah, but we don't know if people actually read the thread, if they just glanced at it, if they browsed other threads |
14:45:22 | * | nimnoob joined #nim |
14:47:13 | loz | is forum written on nim?) |
14:47:25 | dom96 | yes |
14:47:27 | flaviu | https://github.com/nim-lang/nimforum |
14:54:23 | dom96 | saml: I fixed that Aporia issue. Execute `nimble install gtk2@#head` and then recompile Aporia and it should work. |
14:57:31 | * | BlaXpirit joined #nim |
15:02:25 | * | nimnoob quit (Remote host closed the connection) |
15:07:23 | dom96 | flaviu: I'll create a new account for nim forum on analytics. |
15:08:39 | flaviu | dom96: I think you can have more than one site per account |
15:08:49 | dom96 | yeah, that's what I mean |
15:09:35 | * | kws joined #nim |
15:11:21 | kws | Hi, stupid question here... how do I remove entry(s) from StringTable? |
15:13:46 | def- | kws: Doesn't look like you can |
15:15:58 | def- | You could use regular (hash) tables, they have a del procedure |
15:16:45 | dom96 | kws: I believe you can just set the value to nil. |
15:18:13 | * | alelos joined #nim |
15:18:32 | * | nimnoob joined #nim |
15:21:10 | saml | dom96, what was the fix? not in Aporia but in gtk2 project? |
15:21:26 | dom96 | saml: yeah. Incorrect int type. |
15:21:33 | saml | https://github.com/nim-lang/gtk2/commit/a8e5545b5f4d9b10c9e6cb98c8f45732e0d2866f ? |
15:21:41 | dom96 | yep |
15:21:47 | saml | why would it work for some users? |
15:21:53 | saml | 32bit vs. 64bit? |
15:22:01 | saml | why did it work* |
15:22:28 | dom96 | perhaps |
15:23:23 | saml | nice it runs |
15:23:42 | kws | dom96: setting value to nil still has the key in the table |
15:23:44 | saml | how can I go about fixing/making Go to definition work? |
15:24:04 | kws | def-: i will check out hash table then |
15:25:13 | kws | thanks |
15:26:22 | dom96 | saml: You would have to do that in the compiler unfortunately. |
15:27:03 | saml | is compiler spaghetti ? |
15:27:45 | dom96 | I wouldn't say that. But it's difficult to understand (at least for me). |
15:28:15 | * | judofyr quit (Remote host closed the connection) |
15:29:02 | Araq | hi guys. what's up? |
15:29:28 | * | zedronar joined #nim |
15:36:26 | dom96 | Nim forum is on the front page of HN |
15:36:33 | dom96 | https://news.ycombinator.com/item?id=8814449 |
15:40:01 | * | kws quit (Ping timeout: 246 seconds) |
15:42:25 | saml | Nim: easy android development |
15:42:46 | dv- | there's nothing easy about android ime |
15:43:41 | * | nimnoob quit (Ping timeout: 258 seconds) |
15:43:48 | dom96 | That was a smooth restart. |
15:44:03 | dom96 | Forum now has Analytics. |
15:44:51 | dom96 | flaviu: Added you. |
15:45:19 | dom96 | Araq: and you |
15:45:50 | Araq | is GA now my friend on facebook? |
15:46:08 | * | Varriount|Busy joined #nim |
15:47:12 | flaviu | I get hits on the real-time view, but I assume that GA takes a few hours to update the rest of the interface? |
15:47:37 | dom96 | flaviu: You may need to choose today in the date range on the top right. |
15:47:49 | Araq | I'm moving idetools to its own tool |
15:47:57 | dom96 | flaviu: hrm. nope. |
15:48:09 | Araq | does anybody have a creative better name than "nimide"? |
15:49:04 | def- | This site should probably be redirected to nimc.html: Yank http://nim-lang.org/nimrodc.html |
15:49:12 | saml | nim ide? |
15:49:29 | saml | nintellim |
15:49:47 | alelos | is there a name convention for nim packages? like in python the py prefix/suffix? |
15:50:09 | Varriount|Busy | alelos: It helps if you can fit 'nim' in the name :P |
15:50:14 | alelos | :) |
15:50:25 | flaviu | IIRC the nim- prefix should be avoided for non-language related packages. |
15:50:33 | Varriount|Busy | See: 'Nimlime' (Sublime Text Plugin), 'Nimble |
15:50:36 | Varriount|Busy | ' |
15:50:45 | Varriount|Busy | (Package Editor) |
15:50:46 | dom96 | The nim prefix should be avoided because it's being overused already... :P |
15:50:47 | flaviu | but that may have just been a passing statement by someone in IRC |
15:50:55 | saml | nim vs. vim |
15:51:04 | saml | nvim |
15:51:11 | saml | nvm |
15:51:24 | def- | http://nim-lang.org/lib.html#nimble doesn't seem to work |
15:51:40 | flaviu | wow, mobile is huge! 33% of users are using mobile to access the forums |
15:52:00 | dom96 | Araq: 'consilium', lating for "suggestions" |
15:52:02 | dom96 | *latin |
15:52:08 | Varriount|Busy | flaviu: I browse the forum through mobile. |
15:52:22 | dom96 | flaviu: That's actually pretty low IMO. |
15:52:30 | Araq | def-: bah. it worked last time I checked it |
15:52:43 | Araq | why is this so fragile? |
15:52:44 | saml | works for me. |
15:52:47 | dom96 | Araq: Also, fix the Source links please. |
15:53:17 | Araq | dunno how |
15:53:19 | saml | it gives grey box around Nimble heading |
15:53:25 | dom96 | Araq: Because you forgot to upload http://nim-lang.org/nimblepkglist.js? |
15:53:43 | Varriount|Busy | Araq: I'm getting a javascript error - 'gotPackageList is not defined' |
15:53:47 | dom96 | Araq: Just need to put /lib/pure/ in the links. |
15:54:13 | dom96 | Araq: Or rather, the location of the module. |
15:54:57 | Araq | dom96: indeed. fixed. |
15:55:07 | Araq | tested it only locally :P |
15:55:19 | Araq | and there the .js file exists |
15:55:45 | Araq | dom96: 'consilium' is too obscure |
15:56:06 | saml | waht's wrong with aporia? |
15:56:08 | def- | Araq: just "nimsuggest"? |
15:56:11 | flaviu | http://translate.google.com/translate?hl=en&sl=ru&u=http://www.linux.org.ru/news/opensource/11171408&prev=search |
15:56:19 | flaviu | "Another mixture bulldog with a rhinoceros translates the code in C." |
15:56:33 | Varriount|Busy | flaviu: Huh? |
15:57:02 | loz | flaviu: its standard trolling, don't pay attention |
15:57:11 | loz | standard to this site |
15:57:16 | flaviu | ah, I thought it was just screwed up translation |
15:57:30 | dom96 | Araq: Sounds cool though. |
15:57:34 | alelos | aporia is greek for 'query/question'. I dont know if this was the goal |
15:57:37 | loz | nope, you can read many responses to this guy comment there |
15:57:40 | dom96 | Araq: Anything with IDE in the name sounds boring. |
15:57:54 | Araq | "I looked briefly and thank god I found a reason not to take a closer look and learn something." |
15:58:06 | saml | nimdex |
15:58:07 | Varriount|Busy | Nimtelligent? |
15:58:14 | saml | nimtags |
15:58:23 | dom96 | alelos: I have a habit of looking at greek words/god names and picking a word/name which sounds cool for my projects :) |
15:58:30 | saml | you're building nim source code analyzer,indexer? |
15:58:36 | dom96 | alelos: So the meaning didn't really matter to me. |
15:58:42 | Varriount|Busy | Nimling? |
15:58:50 | Araq | saml: no, I'm fixing things we already have |
15:59:07 | Araq | I like "nimsuggest" best so far |
15:59:15 | dom96 | STDSWN? Something That Doesn't Start With Nim? |
15:59:28 | * | darkf quit (Quit: Leaving) |
15:59:51 | Trustable | dom96, how to fix "AsyncSocket() -> Error: field not initialized: proto" ? |
16:00:06 | dom96 | Trustable: AsyncSocket -> asyncSocket() |
16:00:17 | dom96 | Trustable: But those are deprecated. |
16:00:37 | Trustable | dom96, thx, I just want to build Aporia with Nim |
16:00:55 | dom96 | Trustable: It builds for me. |
16:02:53 | Varriount|Busy | Araq: I really like the new documentation styling. I mean, the old style was ok, but it's nice to have a bit of a change. |
16:03:52 | flaviu | return, break are not expressions |
16:04:00 | * | z1y quit (Ping timeout: 258 seconds) |
16:04:18 | * | gokr_ joined #nim |
16:05:16 | Varriount|Busy | hi gokr_ |
16:05:29 | gokr_ | hey! |
16:06:12 | Araq | def-: the docs don't link to nimrodc.html though, do they? |
16:08:04 | Araq | Varriount|Busy: "nimling"? what does the 'ling' stand for? |
16:08:55 | acidx | substr(translate("language", "en", "pt"), 0, 4) -> "ling" |
16:09:49 | saml | nimgoogle |
16:09:58 | Varriount|Busy | Araq: Nothing. I just thought it sounded cute. |
16:09:59 | saml | nimgoogle: your code belongs to us |
16:10:23 | Araq | Varriount|Busy: I agree |
16:10:29 | saml | noogle |
16:10:34 | saml | something like hoogle |
16:11:30 | dom96 | Araq: Is it reminding you of Starcraft? :P |
16:11:43 | dom96 | saml: Do it. |
16:11:44 | zedronar | minim |
16:11:48 | zedronar | minimal + nim |
16:12:13 | * | quasinoxen quit (Read error: Connection reset by peer) |
16:12:53 | Varriount|Busy | zedronar: Fun fact - when running a WinPE boot disk, the disk uses the computer name 'MININT' (Minimal NT) |
16:13:25 | zedronar | Varriount|Busy: Damn it Microsoft |
16:14:28 | * | Varriount|Busy throws chkdsk at zedronar |
16:14:42 | Araq | bbl |
16:15:51 | zedronar | CHKDSK is verifying files... |
16:15:59 | zedronar | File verification completed. |
16:16:04 | zedronar | You have a lot of porn. |
16:17:35 | flaviu | dom96: Can I have no syntax highlighting on the forum? |
16:18:02 | dom96 | flaviu: You mean post a reply with code in it without syntax highlighting? |
16:18:08 | flaviu | Yes |
16:18:15 | dom96 | ``` ... ``` |
16:19:07 | flaviu | http://forum.nimrod-lang.org/t/699/1#3824 |
16:19:19 | flaviu | If I don't get markdown, I'll use it anyway! :D |
16:19:58 | * | nimnoob joined #nim |
16:20:02 | dom96 | why would you do that... |
16:20:38 | * | nimnoob quit (Remote host closed the connection) |
16:21:01 | Varriount|Busy | "As for Nim, it's working the way Araq indented it." - Gold! |
16:21:41 | dom96 | I liked that too. |
16:22:48 | Varriount|Busy | dom96: Are you going to fiddle with the thread to delete that post? If so, is it ok for me to post a reply, or do I need to wait? |
16:22:59 | * | trevorriles joined #nim |
16:23:02 | dom96 | I'm not going to delete it. |
16:23:16 | dom96 | I'm hoping flaviu will edit it. |
16:23:32 | flaviu | nope |
16:23:41 | flaviu | not until I get my markdown. |
16:24:57 | BlaXpirit | great idea, flaviu. |
16:26:37 | flaviu | I'll even do all the work! I already have a discount wrapper that's licensed MIT. |
16:30:05 | def- | Araq: not that I know of, but google links to it as the first result often |
16:30:38 | dom96 | flaviu: If you write a proper parser then I will accept it. |
16:30:54 | flaviu | dom96: http://www.pell.portland.or.us/~orc/Code/discount/ |
16:32:13 | BlaXpirit | flaviu, uhhh why this one? |
16:32:32 | flaviu | It's small, it's in C, and I know it's easy to compile. |
16:33:13 | BlaXpirit | looks pretty extensible :o |
16:33:23 | flaviu | Also, I've already written a wrapper for it: http://nimlets.github.io/add-123s.html |
16:35:53 | Varriount|Busy | flaviu: How easy is it to compile? |
16:37:15 | flaviu | ./configure.sh; make |
16:37:27 | gokr_ | I should get cracking on my port of petitparser ... |
16:37:37 | BlaXpirit | http://commonmark.org/ just sayin |
16:38:12 | flaviu | BlaXpirit: Commonmark is bare-bones, I want more fancyness! |
16:38:23 | BlaXpirit | yeah, i can understand that |
16:39:34 | flaviu | build steps could probably be simplified to 23 commands |
16:42:19 | * | Varriount|Busy quit (Ping timeout: 246 seconds) |
16:48:37 | * | gokr_ quit (Ping timeout: 240 seconds) |
16:50:49 | * | brson joined #nim |
16:51:45 | brson | super happy to see all the fresh pr nim is getting! |
16:53:59 | flaviu | http://i.imgur.com/i31WAjN.png |
16:57:23 | brson | sad that most of the hn comments about pr strategy is negative |
16:57:27 | brson | hn is so cynical |
16:58:47 | BlaXpirit | guys, so why exactly do tuples need to be separate from objects? |
16:59:31 | flaviu | Because they use duck typing |
17:00:19 | flaviu | .eval type mytup = tuple[a: int, b: string];type mytup2 = tuple[foo:int, bar:string];let x: mytup2 = mytup(1, "asd") |
17:00:42 | BlaXpirit | so what? there is no real use case for that |
17:00:55 | BlaXpirit | objects could use duck typing, anyway :| |
17:01:58 | * | gokr_ joined #nim |
17:02:01 | * | Mimbus joined #nim |
17:02:04 | flaviu | .eval type mytup = tuple[a: int, b: string];type mytup2 = tuple[foo:int, bar:string];let x: mytup2 = mytup(1, "asd") |
17:02:08 | Mimbus | flaviu: eval.nim(5, 21) Error: expression 'mytup' cannot be called |
17:02:35 | flaviu | .eval type mytup = tuple[a: int, b: string];type mytup2 = tuple[foo:int, bar:string];var x: mytup2;var y: mytup = (1, "asd");x=y |
17:02:38 | Mimbus | flaviu: eval.nim(7, 2) Error: type mismatch: got (mytup) but expected 'mytup2' |
17:02:48 | flaviu | wait, what? |
17:03:20 | BlaXpirit | tuples are quite useless |
17:03:29 | flaviu | Yep, I agree now |
17:03:41 | BlaXpirit | gawd, i notice so much inelegance |
17:03:41 | flaviu | better to them as a library |
17:04:01 | BlaXpirit | these tuples are just such an arbitrary addition |
17:04:36 | BlaXpirit | they're not even tuples |
17:04:50 | def- | I find tuples nicer to use often |
17:05:21 | BlaXpirit | the only possible use case is function return value |
17:05:28 | BlaXpirit | because they're so extremely limited |
17:05:43 | BlaXpirit | but then again, why not return an object just as easily |
17:06:01 | def- | then you need to define the object type somewhere |
17:06:11 | def- | with a tuple you can just write "proc foo: tuple[x, y: int]" |
17:06:11 | flaviu | BlaXpirit: Because you can't declare an anonymous object like in C. |
17:06:22 | BlaXpirit | every single use case of tuples could just be additional functionality of objects |
17:06:42 | flaviu | I'd rather have tuples as a library, and objects left unchanged. |
17:07:15 | * | Varriount|Busy joined #nim |
17:07:26 | BlaXpirit | yeah... ok, def-, so tuples aren't 100% useless |
17:08:25 | def- | I find it annoying to create a new object |
17:08:34 | Varriount|Busy | BlaXpirit: tuples are best used for 'informal' transfer of arbitrary structures of data |
17:08:55 | flaviu | Varriount|Busy: Why not hash tables? |
17:09:16 | BlaXpirit | bah, i can't expect every language feature to have more than 1 use case >_> |
17:09:19 | def- | with a "type Point = tuple[x, y: int]" you can just use (10,12) as an input where a Point is expected. With an object that would be Point(x: 10, y: 12) |
17:09:59 | Varriount|Busy | flaviu: I don't mean arbitrary in the sense that the structure is dynamic |
17:10:04 | minciue | brson: nice of you to drop by |
17:11:13 | * | gokr joined #nim |
17:11:37 | Varriount|Busy | flaviu: More like the idea that the structure isn't going to be used often, or isn't going to appear more than once in a module |
17:13:53 | * | gokr_ quit (Ping timeout: 264 seconds) |
17:14:19 | Varriount|Busy | We should have this - http://judy.sourceforge.net/ |
17:14:34 | * | quasinoxen joined #nim |
17:15:10 | * | judofyr joined #nim |
17:15:56 | brson | minciue: i'm always here spying on the competition ;p |
17:16:19 | minciue | heh |
17:17:16 | minciue | not that it’s much of my business, but people here were talking about setting up a 501(c) for Nim as a means to attract some funding |
17:18:02 | * | zedronar left #nim (#nim) |
17:20:34 | minciue | how hard do you think that would be? |
17:21:43 | * | loz quit (Quit: Leaving.) |
17:22:08 | minciue | or, to phrase it differently, is it a huge time investment to get something like that off the ground? |
17:22:46 | * | jm116 quit (Quit: Leaving) |
17:26:47 | * | dyu quit (Quit: Leaving) |
17:32:13 | Varriount|Busy | minciue: From what I read, there's a lot of yak trimming involved. |
17:33:09 | * | shodan45 quit (Quit: Konversation terminated!) |
17:34:31 | minciue | if only there were some big 501(c) out there that could take Nim under its wing? (wink, wink) |
17:36:09 | Varriount|Busy | minciue: Apache? |
17:36:30 | Varriount|Busy | minciue: Or do you have something else in mind? |
17:36:40 | minciue | I’m mostly kidding. I was referring to Mozilla since brson works there |
17:37:10 | minciue | but now I am thinking about Apache |
17:37:43 | * | ARCADIVS quit (Quit: ARCADIVS) |
17:41:23 | * | jpoirier joined #nim |
17:41:33 | minciue | though Apache has so many projects I don’t know if it’s worth much to be one |
17:47:37 | BlaXpirit | are the T prefixes ever going away? |
17:49:10 | * | gokr_ joined #nim |
17:49:28 | BlaXpirit | and why do i have EOS in my code but see OSError in the tutorial now? |
17:50:08 | jpoirier | Question, when installing nim using koch to /usr/local/bin, is /usr/local/lib/nim the only other item installed besides the binary? |
17:50:50 | dom96 | jpoirier: There is also stuff in /etc IIRC |
17:51:18 | minciue | BlaXpirit: the T/P prefixes are deprecated |
17:51:20 | * | gokr quit (Ping timeout: 258 seconds) |
17:51:27 | BlaXpirit | coool... |
17:51:56 | minciue | it’s in the new 0.10.2 release |
17:52:09 | BlaXpirit | minciue, you mean 0.10.2 will break my code? |
17:52:29 | minciue | it’s deprecated, so no (at least not because of the T/P prefixes) |
17:52:46 | BlaXpirit | thought you were talking about my 2nd message |
17:52:57 | BlaXpirit | EOS vs OSError confusion still stands |
17:53:18 | Varriount|Busy | BlaXpirit: No, but you will get deprecation warnings |
17:53:37 | BlaXpirit | Varriount|Busy, are they interchangable in the meantime? |
17:53:58 | jpoirier | dom96: thanks, will look at the /etc folder |
17:54:45 | BlaXpirit | can't believe arch linux still doesn't have 0.10.2 |
17:55:03 | flaviu | BlaXpirit: install nimrod-git |
17:55:25 | flaviu | oh, it doesn't build |
17:55:29 | BlaXpirit | lel |
17:56:09 | Varriount|Busy | BlaXpirit: Yes... but if you don't fix the deprecation warnings, you will be emailed an angry bobcat |
17:56:20 | BlaXpirit | of course |
17:56:38 | * | NimBot joined #nim |
17:56:38 | Varriount|Busy | Actually, no, you'll be emailed an angry honey badger |
17:56:48 | BlaXpirit | were there any standard library overhauls recently? |
17:56:52 | minciue | BlaXpirit: looks like EOS is out, but there’s nothing in the changelog |
17:57:03 | BlaXpirit | (exception renames is one, actually) |
17:57:16 | minciue | https://github.com/Araq/Nim/commit/d7d059a68695c10b7fe93f8f452d4aceb90857eb |
17:57:41 | BlaXpirit | ok |
17:58:01 | flaviu | BlaXpirit: http://i.imgur.com/TwsOfT7.png |
17:58:07 | flaviu | credit goes to filwit for the image |
17:58:13 | BlaXpirit | i don't even... |
17:58:52 | flaviu | It was too scary to but used :P |
17:58:56 | jpoirier | dom96: doh, it's all in the install.sh script... |
17:58:57 | flaviu | *be |
18:02:43 | BlaXpirit | EXetoC, get to work :| |
18:02:58 | EXetoC | :o |
18:03:06 | BlaXpirit | > nimrod-git |
18:04:45 | EXetoC | BlaXpirit: what's going on? :p |
18:05:04 | BlaXpirit | EXetoC, AUR nimrod-git doesn't work |
18:05:34 | BlaXpirit | well, i actually haven't confirmed it myself, but flaviu just said, and the AUR page looks dire too |
18:06:13 | flaviu | EXetoC: https://aur.archlinux.org/packages/nimrod-git/ |
18:06:23 | flaviu | Set up your email notifications! |
18:06:33 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:06:48 | flaviu | and do as demizer says in the comments |
18:06:53 | BlaXpirit | and the official package says it's 0.9.6 but actually is 0.12.1 |
18:06:57 | * | Ven joined #nim |
18:06:59 | BlaXpirit | (and should be 0.12.2) |
18:07:04 | BlaXpirit | but that's another story |
18:07:16 | * | gokr joined #nim |
18:07:18 | EXetoC | ok |
18:07:21 | BlaXpirit | (talking about Arch Linux here) |
18:08:33 | ldlework | flaviu: that logo is so awesome |
18:08:51 | ldlework | We should reconsider |
18:09:13 | flaviu | ldlework: *mascot |
18:09:17 | ldlework | yes |
18:09:23 | ldlework | I love it |
18:11:37 | * | yglukhov__ quit (Ping timeout: 240 seconds) |
18:14:22 | * | tgkokk joined #nim |
18:14:29 | Varriount|Busy | What logo? |
18:14:50 | Varriount|Busy | Oh, that one |
18:15:14 | * | Varriount|Busy misses filwit |
18:16:04 | ldlework | Who was this person? |
18:19:24 | flaviu | He designed the website |
18:19:29 | * | nullmove joined #nim |
18:19:59 | flaviu | Philip Witte |
18:21:24 | ldlework | To busy to hang out these days? |
18:21:42 | Varriount|Busy | Yeah... *sniff* |
18:21:47 | ldlework | hehe |
18:25:39 | Varriount|Busy | ldlework: Actually, we don't know why he's not on anymore. It's entirely possible he got run over by a bus |
18:26:00 | dom96 | He didn't. |
18:26:18 | dom96 | He emailed me. He's simply very busy with life. |
18:26:30 | Varriount|Busy | :< |
18:26:58 | flaviu | Varriount|Busy: It's ok he hasn't been around. He doesn't belong; he uses some crappy Ruby based hipster CSS alternative. :P |
18:27:18 | ldlework | lol |
18:27:18 | Varriount|Busy | Huh? |
18:27:29 | ldlework | Varriount|Busy: he's teasing Araq |
18:27:44 | flaviu | http://irclogs.nim-lang.org/18-12-2014.html |
18:27:45 | flaviu | yep |
18:30:44 | * | loz joined #nim |
18:32:10 | Varriount|Busy | Araq I already have a Nim based templating language, I can use that for CSS too. ldlework oh god |
18:32:18 | Varriount|Busy | " |
18:32:48 | ldlework | hehe |
18:33:31 | Varriount|Busy | ldlework: I don't know if you were reacting to Araq's comment, but your reaction is quite funny if you at it in that way. |
18:33:35 | flaviu | using nim's templating for css doesn't sound fun |
18:34:22 | Varriount|Busy | I guess you could hook up a template filter to a simple string output program... |
18:34:26 | ldlework | Varriount|Busy: it very much was |
18:34:41 | flaviu | Unless Araq really enjoys figuring out the gamma-correct way of changing brightness and somehow adding mixins to filters. |
18:35:21 | flaviu | CSS grids using ids! |
18:35:56 | * | dts|pokeball joined #nim |
18:36:12 | minciue | I read that Nim outputs javascript, but does anyone actually have a project that targets javascript in particular? |
18:36:31 | * | VinceAddons quit (Ping timeout: 244 seconds) |
18:36:53 | dts|pokeball | well the nim website is written in nim minciue, so that might be compiled to js |
18:37:15 | Varriount|Busy | dts|pokeball: Half true. The website generator is written in Nim, but not javascript |
18:37:17 | flaviu | Yeah, the package list in the docs is in Nim->Javascript IIRC |
18:37:27 | minciue | oic |
18:37:48 | ldlework | dts|pokeball: I'm pretty sure the javascript on the nim website is just normal javascript |
18:37:57 | dts|pokeball | ag |
18:37:59 | dts|pokeball | **ah |
18:38:18 | minciue | I’m asking because I feel that’s a feature that could appeal to a lot of web devs (using a single language on both the backend and the frontend) |
18:38:47 | Varriount|Busy | minciue: The javascript backend hasn't been nearly as tested as the C/C++ backend |
18:38:49 | dom96 | minciue: flaviu: that is indeed true. The package list in lib.html is generated via some JS which was translated from Nim. |
18:39:53 | * | BillsPC joined #nim |
18:40:25 | minciue | I see. I’ll take the JS backend for a spin when I get a chance, thanks |
18:44:08 | * | Guest68461 is now known as adam12 |
18:44:58 | * | adam12 is now known as Guest22806 |
18:48:14 | * | lumo_e joined #nim |
18:48:20 | Varriount|Busy | Hello lumo_e |
18:48:25 | lumo_e | hello |
18:48:41 | lumo_e | http://nim-by-example.github.io/seqs/#Immutability |
18:49:01 | lumo_e | oh ok |
18:49:06 | lumo_e | var/let |
18:49:13 | lumo_e | my brain couldn't tell the difference |
18:50:32 | Varriount|Busy | lumo_e: Also keep in mind that sequences are value types. Doing 'var a = existingSequence' copies the sequence |
18:52:59 | gokr | But "While sequences are dynamiclly allocated, they are still immutable." sounds odd to me. Immutability is not a characteristic of the seq itself (right?), but of the "let" variable. |
18:53:19 | Varriount|Busy | gokr: Yeah, that threw me. That page needs to be corrected. |
18:53:30 | gokr | yep |
18:54:13 | lumo_e | oh good |
18:54:19 | gokr | lumo_e: So the immutability part is enforced by the declaration of the variables (var or let) and is thus an attribute of the *variable* holding the seq - and not the seq itself. |
18:54:20 | lumo_e | I wasn't me then |
18:54:35 | lumo_e | ok got it |
18:55:16 | gokr | A good advice (I think) is to simply use "let" as the default for local variables etc, and then - when the shit doesn't compile, change to var :) |
18:56:25 | gokr | Well, perhaps not "good" advice - but it probably leads to a bit tighter code and might catch some mistakes. |
18:57:07 | ldlework | hehe |
18:57:23 | ldlework | I like the idea that a variable declaration without let or var just defaults to let |
18:57:31 | ldlework | that would help me introduce more immutability |
18:57:36 | ldlework | since I have a tendency to type var by default |
18:57:41 | Varriount|Busy | I'm modifying that page, by the way |
18:57:50 | ldlework | Varriount|Busy: thanks |
18:58:10 | * | loz quit (Ping timeout: 255 seconds) |
18:58:27 | ldlework | Oh I guess that's not what you were tlaking about gokr |
18:58:57 | gokr | ehm... |
18:59:01 | flaviu | I'm honestly not completely sure how seqs work myself |
18:59:12 | flaviu | if anyone wants to rewrite the seqs page, feel free to |
18:59:25 | gokr | I wrote a little blog article on seq. |
19:00:56 | ldlework | gokr: I mean allowing var/let-less variable declarations |
19:03:00 | gokr | My brain is mushy, don't you need var or let? |
19:04:05 | Varriount|Busy | ldlework: Believe me when I say araq will not allow python-like variable assignment/declaration |
19:05:15 | ldlework | Varriount|Busy: it'd be a pretty easy way to embed an encouragement of immutability into the language |
19:05:29 | Varriount|Busy | .eval var s = "hello";echo(repr(s));proc foo(l: string) = echo(repr(l));foo(s) |
19:05:33 | Mimbus | Varriount|Busy: 0x7f0f3d4c3050"hello" |
19:05:43 | Varriount|Busy | hrm |
19:06:01 | Varriount|Busy | Where's the second print? |
19:06:21 | gokr | ldlework: Ok, so it was a proposal. right. |
19:06:44 | Varriount|Busy | .eval proc foo(l: string) = echo(repr(l));var s = "hello";echo(repr(s));foo(s) |
19:06:47 | Mimbus | Varriount|Busy: 0x7fc4fa17a050"hello" |
19:09:01 | Varriount|Busy | .eval proc foo(l: string): string = return repr(l);var s = "hello";echo(repr(s) & " " & foo(s)); |
19:09:05 | Mimbus | Varriount|Busy: 0x7f60914d4050"hello" 0x7f60914d4050"hello" |
19:09:16 | Varriount|Busy | :D |
19:09:35 | Varriount|Busy | flaviu: If I could, I would give you a hug |
19:09:41 | Varriount|Busy | That bot is really useful |
19:09:43 | flaviu | well, dts|pokeball did all the work |
19:10:18 | Varriount|Busy | dts|pokeball: Thanks as well |
19:11:49 | Varriount|Busy | .eval proc foo(l: string): string = return repr(l & "test");var s = "hello";echo(repr(s) & " " & foo(s)); |
19:11:53 | Mimbus | Varriount|Busy: 0x7fa50b38c050"hello" 0x7fa50b38d050"hellotest" |
19:11:53 | flaviu | .give Varriount|Busy echo "A hug" |
19:11:57 | Mimbus | Varriount|Busy: A hug |
19:12:42 | flaviu | Varriount|Busy: you can now give anyone a hug! |
19:12:49 | Varriount|Busy | .help |
19:13:17 | flaviu | nope, the source is the only documentation |
19:13:47 | flaviu | https://gist.github.com/84df3d1434917862b17b |
19:14:10 | Varriount|Busy | flaviu: Wait, is that the entire source? |
19:14:42 | flaviu | yep |
19:14:42 | Varriount|Busy | That's like, less than 200 Loc |
19:14:46 | * | loz joined #nim |
19:14:56 | flaviu | put it as a brag line on the website |
19:14:56 | ldlework | that's amazing |
19:16:24 | dom96 | Needs more features. If there is more than 3 lines of output gist the rest :) |
19:17:22 | flaviu | sure, why not. |
19:18:26 | flaviu | btw, it's signficantly less than 200 lines. I did a huge copypasta for .give because I'm lazy. |
19:18:44 | gokr | You could make it even shorter using lapp ;) |
19:19:14 | gokr | (an option parser that uses the help synopsis as the spec) |
19:20:57 | dom96 | I have a challenge: make it less than 512 characters. |
19:21:08 | dom96 | Then we can make the eval bot eval itself. |
19:22:13 | flaviu | ok, I'll do all that |
19:22:19 | flaviu | just need to finish this tf2 game |
19:22:33 | lumo_e | http://nim-by-example.github.io/procvars/ |
19:22:33 | lumo_e | why the annotation thing? |
19:23:05 | flaviu | lumo_e: otherwise you would be unable to use it as a function pointer in other modules |
19:24:27 | Varriount|Busy | I can't remember... what's the difference between {.procvar.} and {.closure.} again? |
19:24:46 | lumo_e | I still don't understand |
19:24:46 | lumo_e | brb, dinner |
19:25:06 | Araq | one is a calling convention, the other only exists to annoy people |
19:26:24 | flaviu | If you try to use `greaterThan32` in another module as a function as a rvalue, then it won't work unless you have {.procvar.} |
19:26:33 | flaviu | s/as a function// |
19:27:09 | flaviu | is rvalue the correct word here? |
19:28:15 | flaviu | no, it's lvalue |
19:30:05 | Varriount|Busy | Araq: {.closure.} implies {.procvar.}, right? |
19:38:10 | lumo_e | flaviu, ok then, in nim procedures aren't automatically first order functions? |
19:38:27 | lumo_e | is that what you're saying? |
19:38:35 | Varriount|Busy | lumo_e: Not quite |
19:38:45 | Varriount|Busy | lumo_e: Read the manual |
19:38:56 | Varriount|Busy | http://nim-lang.org/manual.html#procedural-type |
19:38:56 | flaviu | I don't understhadn the reasoning behind this, but you can use a procedure as value if it's in the same module |
19:39:24 | flaviu | .eval proc t(): int =; return 1;let x = t;echo x() |
19:39:27 | Mimbus | flaviu: 1 |
19:42:17 | Varriount|Busy | flaviu: I dont' have a nim install with me. What happens when a procedure marked with just `closure` is used as a procvar in another module? Is there an error? |
19:43:38 | lumo_e | Varriount|Busy, ok from what I understand {.closure.} makes sense because you want to mantain a reference to the frame where the proc is defined |
19:43:49 | lumo_e | but I still don't see the point in {.procvar.} |
19:43:52 | flaviu | Varriount|Busy: Looks like it's an internal error |
19:44:54 | Varriount|Busy | lumo_e: Procedures need to be marked with {.procvar.} if they are to be used as procedural variables outside their own module. |
19:45:12 | Araq | the reasoning is quite simple and iirc explained in the manual |
19:45:18 | Varriount|Busy | lumo_e: This is to prevent complications with default parameters |
19:45:43 | Varriount|Busy | Araq: Behind the scenes, what does `procvar` do? |
19:45:56 | Araq | without .procvar we can never ever add a default parameter to an exported proc without breaking clients |
19:46:43 | Varriount|Busy | Araq: By 'clients', do you mean users of a dll, or another module? |
19:46:47 | * | Mat4 joined #nim |
19:46:54 | Mat4 | hello |
19:46:57 | Araq | users of another module |
19:48:07 | flaviu | Varriount|Busy: https://github.com/Araq/Nim/issues/1793 |
19:48:21 | ldlework | hey Mat4 |
19:48:30 | Araq | 'procvar' doesn't do much, Varriount|Busy. it's just another check for semantic checking. codegen is not affected. |
19:48:55 | Mat4 | hi Idlework |
19:48:59 | Araq | the bug that flaviu found is a well known LL bug (as usual) |
19:49:12 | Varriount|Busy | Araq: That might be worth mentioning. |
19:49:21 | flaviu | I searched, but the other bugs seemed unrelated |
19:49:28 | flaviu | feel free to close it though. |
19:49:43 | Araq | flaviu: it's fine, I'll go through the remaining LL bugs soon |
19:50:41 | * | yglukhov__ joined #nim |
19:52:19 | Varriount|Busy | Araq: Couldn't the need for `procvar` be eliminated? |
19:52:47 | lumo_e | I was considering nim as language for an introductory programming tutorial(i.e. to total beginners) |
19:53:30 | Araq | Varriount|Busy: of course, all it takes is to remove some code in the compiler. |
19:53:42 | Varriount|Busy | lumo_e: The thing to remember about Nim is that while it *allows* you to get into nitty-gritty details, you don't necessarily need to know them all. |
19:54:18 | lumo_e | I still have to learn the whole language properly, I was just looking at "strange" stuff for the moment |
19:54:18 | lumo_e | yeah, that's right |
19:54:26 | Araq | lumo_e: I think it's well suited for that purpose but others disagree vehemently |
19:54:38 | flaviu | lumo_e: If you do, would you mind jotting down the specific parts they find confusing? |
19:54:41 | * | untitaker left #nim ("WeeChat 1.0.1") |
19:54:42 | Varriount|Busy | lumo_e: Very rarely do you have to bother with calling conventions for procvars. More often then not, the compiler just complains about a mismatched type. |
19:55:13 | lumo_e | in fact the portion of language that could be used to teach is actually quite small |
19:55:13 | lumo_e | for sure I wouldn't like to introduce a newbie to calling conventions :) |
19:55:20 | lumo_e | flaviu, yes, I will |
19:55:34 | lumo_e | unfortunately the guide itself won't be in english |
19:55:34 | lumo_e | if I do it |
19:56:13 | flaviu | Thanks! The amount of research on this sort of thing is really small. |
19:56:13 | flaviu | I'm sure google translate would do a reasonably good job making it understandable. |
19:56:36 | Varriount|Busy | lumo_e: One thing that might make more sense in Nim is type structures. For something like C++, you have to go into the whole vtables mess. |
19:56:48 | Varriount|Busy | Nim doesn't have vtables |
19:57:01 | * | stapler joined #nim |
19:57:02 | lumo_e | Araq, it looked great to me |
19:57:02 | lumo_e | static typing(but type inference), forced indentation for code blocks, neat python-like syntax (at least for basic things) |
19:57:02 | lumo_e | I think those are important for a beginner |
19:57:18 | stapler | cool, my pr got accepted |
19:57:36 | Varriount|Busy | lumo_e: Don't forget generics that work. *cough* java *cough* |
19:57:47 | stapler | I'm working on a redesign for nim-lang.org, sort of unsolicited I suppose |
19:58:05 | Varriount|Busy | stapler: Good, we can make redesigning a tradition |
19:58:16 | Varriount|Busy | Every year, a new website design. |
19:58:39 | Varriount|Busy | stapler: Though, do go ahead with site improvement. I'm just kidding. |
19:58:49 | Araq | Varriount|Busy: he, that is debatable |
19:58:51 | Varriount|Busy | (about making redesigning a tradition) |
19:58:58 | lumo_e | Varriount|Busy, I'm learning java because the introductory CS course in my university uses it |
19:59:04 | Araq | hrm why wasn't https://github.com/Araq/Nim/commit/fda9da5f1eae5f1d6edaaf04aca0df54fa14c9ff not applied properly? |
19:59:25 | Varriount|Busy | lumo_e: Same here, though I learned python first |
19:59:38 | Varriount|Busy | I mean, I learned python before taking any courses. |
19:59:47 | lumo_e | generics are annoying |
19:59:47 | lumo_e | coming from a C++ background :| |
19:59:47 | lumo_e | LinkedList<int> compiler error |
20:00:22 | Varriount|Busy | lumo_e: Don't forget the runaround you have to do when trying to instantiate a generic type. |
20:00:31 | lumo_e | after all Java is not that bad |
20:00:58 | flaviu | Yeah, java is pretty nice besides the lack of value types and templates |
20:01:15 | lumo_e | exactly |
20:01:20 | Varriount|Busy | *hiss* |
20:01:42 | Varriount|Busy | http://stackoverflow.com/questions/1090458/instantiating-a-generic-class-in-java |
20:01:54 | flaviu | Varriount|Busy: That's part of "templates" |
20:02:04 | flaviu | Also, see Scala |
20:02:07 | flaviu | it can do that |
20:02:10 | * | stapler quit (Ping timeout: 246 seconds) |
20:02:23 | Triplefox | I don't remember much of java now, just that the type errors confused me as a student |
20:02:51 | flaviu | Triplefox: Think of how confused the people who didn't have type errors were :Z |
20:03:32 | Triplefox | I was writing python also and had a much easier time with that |
20:03:47 | * | BlaXpirit-UA joined #nim |
20:03:54 | lumo_e | Unfortunately I don't think teaching python at uni would be ok |
20:04:00 | lumo_e | students would write even crappier code |
20:04:00 | lumo_e | I know because I started with python as self-thought |
20:04:12 | Triplefox | Most of what confused me with java was the overhead of its class system i think |
20:04:43 | Triplefox | Like, "static" vs instances |
20:04:47 | lumo_e | yes, the fact that your are forced to go through classes is a big disadvantage for teaching |
20:04:58 | lumo_e | the simple hello world gets explained like "ignore that stuff for now" |
20:05:16 | lumo_e | and then at some point in the course there was a big theoric lessons on object oriented programming |
20:05:16 | lumo_e | totally useless |
20:05:46 | Triplefox | Yeah OO got pushed way too hard |
20:05:48 | flaviu | I remember the trouble I had with static and classes. "WTF isn't java letting me call that method now?" |
20:06:09 | lumo_e | also, OO being thought before basic procedural constructs |
20:06:14 | Mat4 | ?? |
20:06:45 | Triplefox | It's such a relief when you just go discard it and try to write more plain old data and straight line code |
20:06:45 | lumo_e | I think it was like that, the prof. explained classes before loops |
20:06:59 | EXetoC | -.- |
20:07:04 | lumo_e | but I could be wrong, I didn't really go to all those lessons early in the morning |
20:07:13 | * | BlaXpirit quit (Ping timeout: 272 seconds) |
20:07:50 | lumo_e | the fact is that learning to program right when you're 18/19 yrs old it's too late |
20:07:50 | lumo_e | should be done way before |
20:08:10 | lumo_e | of course you have to do it in a rush if you start that late |
20:08:44 | flaviu | But how do you teach programming early? |
20:08:54 | Araq | iirc I simply learned how the compiler compiles my code, how the V-Tables look like conceptually etc. I never had a problem to answer questions like "which method gets called here" |
20:08:56 | EXetoC | that's an overstatement |
20:10:17 | Varriount|Busy | I just read a lot until things fitted correctly in my head. |
20:10:45 | Triplefox | I made a lot of progress after implementing a linked list and sort algorithm |
20:11:07 | Triplefox | I think that was the thing that got me over the barrier |
20:11:17 | flaviu | I've never actually implemented a sort algorithm. |
20:11:24 | lumo_e | I don't know about your countries but here, well... computer science before university isn't really well thought |
20:11:24 | lumo_e | flaviu, long story, I'm opening a site soon |
20:11:24 | lumo_e | a old project of mine was an introductory course |
20:11:25 | lumo_e | because I've gone through many and I think I have a good grasp of what can be done well and what can be improved |
20:11:49 | lumo_e | implementing linked list is an important milestone |
20:12:02 | lumo_e | I remember it, when I was 13 |
20:12:02 | lumo_e | lol |
20:12:31 | lumo_e | wasted teenage, hours spent cursing my code's segfaults |
20:13:21 | flaviu | Computer science isn't very well thought in the US either. The Collage Board is the organization that provides high-schools with the curriculum, but it's not really good. |
20:13:23 | lumo_e | the only cons for nim as teaching language right now is the absence of an installer of windows |
20:13:34 | lumo_e | *for |
20:13:48 | Araq | you live in the past, our installers are awesome |
20:14:09 | lumo_e | really? I couldn't find anything on the site |
20:14:24 | flaviu | lumo_e: You should have waited to be born later ;) |
20:14:24 | Araq | refresh the download page |
20:14:24 | flaviu | I've been doing some C recently, and the tooling is excellent. I can track down a segfault very easily. |
20:14:26 | Triplefox | The message that was up yesterday saying "no binaries available" easy kind of scary |
20:14:28 | Mat4 | I've translated my C based code to Nim. Because the interpreter depends on the label address extension, the only choice left writing portable code was transform opcode bundles to another representation before execution which encode up to 8 instruction combinations by now. That works so far with the drawback of increased memory usage. Because the resulting binary is around twice as large than the C version I'm helpless how to reduce the r |
20:14:28 | Mat4 | esulting code size. What are your opinions ? |
20:14:33 | Triplefox | Was* |
20:14:45 | flaviu | Mat4: Disable stack traces |
20:15:16 | lumo_e | Araq, wow :) this is great |
20:15:20 | Triplefox | I did try getting it to build on Windows but got stuck |
20:15:52 | lumo_e | starting a guide with "yeah, now install MinGW and compile this" would totally suck |
20:15:57 | lumo_e | man I hate mingw |
20:16:03 | lumo_e | flaviu, that's cheating |
20:16:37 | Mat4 | whta's your problem with MingW (beside installation probably) ? |
20:16:57 | lumo_e | that |
20:17:16 | lumo_e | and I feel it leaves a lot of junk on my system |
20:17:19 | lumo_e | not as cygwin though |
20:17:34 | Araq | Mat4: you need to explain more |
20:17:56 | Araq | do you mean GNU C's "computed goto" extensions? |
20:18:01 | Mat4 | yes |
20:18:08 | Araq | if so why doesn't .computedGoto work for you? |
20:18:32 | flaviu | lumo_e: Look at this: http://i.imgur.com/yk4JznL.png |
20:18:33 | flaviu | There are even colors! |
20:19:05 | lumo_e | clang? |
20:19:20 | flaviu | yep, with a bunch of -fsanitize=... |
20:19:39 | Varriount|Busy | lumo_e: Believe me, Mingw is the lesser of a bunch of evils |
20:19:44 | Mat4 | Araq: Because the interpreter compiles op-code bundles before execution (+ instruction fusion and later tail-call elimination) to direct-threaded code |
20:20:37 | Varriount|Busy | lumo_e: You can either use cygwin (which is much bigger and more involved), or VCC (which you can no longer download seperately from visual studio express... have fun with the 4 GB install) |
20:20:41 | Araq | Mat4: ok, I get that but that means you store full pointers right? with Nim you store some enum value instead |
20:20:57 | Mat4 | yes |
20:21:06 | Araq | so it should end up taking less space, but perhaps it is slower |
20:21:30 | flaviu | Varriount|Busy: http://llvm.org/releases/3.5.0/LLVM-3.5.0-win32.exe |
20:21:34 | flaviu | How about that? |
20:21:40 | Varriount|Busy | lumo_e: You might like the fact that the Mingw distribution Nim uses has been trimmed from the full package. |
20:21:48 | nullmove | the cygwin installer is a mare |
20:21:58 | Varriount|Busy | flaviu: Is there a 64 bit version available? |
20:22:04 | Mat4 | Araq: no, because I need more space for encoding all instruction combinations |
20:22:34 | flaviu | No, not as far as I can tell. But everything on windows is x86 anyway |
20:22:51 | Varriount|Busy | flaviu: Uh... no it isn't? |
20:23:06 | nullmove | flaviu, doesn't it still require VCC for stdlib? |
20:23:57 | flaviu | Good point, I can't find any mention of glib |
20:24:16 | Mat4 | Araq: this resulting in more code duplication for the instruction routines |
20:24:28 | Araq | Mat4: you lost me at this point. however, you should try to get labels-as-values via the .emit pragma |
20:24:41 | Varriount|Busy | flaviu: Also, using native x64 applications *is* faster than emulated x32 |
20:25:16 | flaviu | Most games are x32 \_O_/. Anyway, I don't know, I don't use windows |
20:25:35 | lumo_e | I do use windows |
20:25:39 | Araq | though I cannot see why *you* don't directly go for a "direct-threaded code JIT" |
20:25:45 | lumo_e | visual C++ is 32bit as far as I remember |
20:26:07 | Varriount|Busy | lumo_e: Do you mean the compiler itself, or the executables it produces? |
20:26:14 | lumo_e | the compiler of course |
20:26:23 | Triplefox | Many gamedevs will still use msvc 6 |
20:27:16 | * | judofyr quit (Remote host closed the connection) |
20:27:34 | * | Varriount|Busy quit (Quit: Page closed) |
20:27:37 | Mat4 | Araq: the code size increases nearly exponentially with the number of combined instructions |
20:28:22 | Araq | Mat4: you need to gist some example. otherwise I won't understand it. |
20:30:17 | * | stapler joined #nim |
20:30:45 | stapler | mexican cell coverage leaves some things to be desired |
20:31:24 | * | zahary1 quit (Ping timeout: 265 seconds) |
20:31:35 | Mat4 | Araq: Here is the C version: |
20:31:37 | Mat4 | https://gist.github.com/anonymous/dc610b01856cf24347a6 |
20:33:00 | Mat4 | as you see the interpreter is implemented using software pipelining |
20:34:54 | Mat4 | this expenses branches which I compensate though pointer modification |
20:36:41 | Mat4 | for the Nim version this is not possible so I end up inline any subroutine call in between trace generation (which resulting in larger code sizes) |
20:36:51 | flaviu | I can't cross-compile nim to windows from linux. "fatal error: Winsock2.h: No such file or directory" |
20:36:52 | * | VinceAddons joined #nim |
20:36:59 | flaviu | Does Winsock2.h have to be uppercase? |
20:39:28 | flaviu | lowercasing that seems to work.. |
20:39:49 | Araq | just symlink Winsock2.h to winsock2.h |
20:40:17 | flaviu | Shouldn't it be lowercased, as windows is not case-sensitive? |
20:41:23 | * | Boscop_ joined #nim |
20:42:01 | * | nullmove quit (Quit: Leaving) |
20:42:16 | * | rpag joined #nim |
20:44:20 | * | Boscop quit (Ping timeout: 250 seconds) |
20:44:20 | * | zahary1 joined #nim |
20:45:02 | ldlework | http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/ |
20:45:14 | ldlework | Sorry should have put that in offtopic |
20:48:54 | flaviu | Varriount_: What does the distribution process involve? |
20:49:03 | flaviu | Can you make step-by-step instructions? |
20:49:04 | * | stapler quit (Ping timeout: 246 seconds) |
20:50:14 | * | Boscop_ quit (Max SendQ exceeded) |
20:53:26 | * | Boscop joined #nim |
20:57:00 | Mat4 | Araq: I think the solution is just avoiding software pipelining in the Nim version |
20:57:46 | lumo_e | is it easy to debug a nimrod program, considering that the executable is actually compilded from a C translation? (if I understood correctly) |
20:57:59 | Mat4 | so there exist only one trace (no need to dynamical link them together) |
20:58:23 | flaviu | lumo_e: Yes, but sometimes names are mangled |
21:02:53 | flaviu | https://github.com/Araq/Nim/pull/1794 |
21:03:31 | flaviu | Works For Me™, but someone should review it. |
21:04:42 | * | jh32 joined #nim |
21:05:14 | * | lumo_e_ joined #nim |
21:05:23 | Araq | Mat4: I still don't get it but please try to accomplish exactly the same via .emit |
21:08:06 | * | lumo_e quit (Ping timeout: 244 seconds) |
21:09:54 | * | Boscop quit (Read error: Connection timed out) |
21:11:28 | * | vbtt joined #nim |
21:11:39 | * | vbtt quit (Remote host closed the connection) |
21:15:00 | * | BlaXpirit-UA quit (Quit: Quit Konversation) |
21:15:15 | * | BlaXpirit joined #nim |
21:17:43 | * | tgkokk quit (Remote host closed the connection) |
21:18:01 | * | alelos quit (Quit: WeeChat 1.0.1) |
21:25:32 | * | Varriount|Remote joined #nim |
21:29:07 | * | wan joined #nim |
21:38:59 | * | Ven quit (Ping timeout: 245 seconds) |
21:40:10 | * | Varriount|Remote quit (Ping timeout: 246 seconds) |
21:44:17 | * | loz quit (Ping timeout: 240 seconds) |
21:49:51 | EXetoC | so the PKGBUILD does "./koch install". should it still be avoided? |
21:50:35 | Araq | I don't know |
21:50:46 | Araq | Varriount_: ping pong pung |
21:51:32 | * | zahary1 quit (Ping timeout: 245 seconds) |
21:52:05 | EXetoC | I can just do it manually, but do I keep the stuff for nimrtl? |
21:52:29 | EXetoC | yeah why not |
21:53:03 | Araq | don't ask me, ask the packagers who know everything better |
22:00:40 | * | superfunc joined #nim |
22:01:15 | * | NimBot_ quit (Remote host closed the connection) |
22:03:00 | * | loz joined #nim |
22:05:30 | * | eskatrem joined #nim |
22:07:23 | eskatrem | how does nim deals with large integers? |
22:08:11 | Araq | it raises Overflow exceptions |
22:08:41 | eskatrem | Araq: ah yes! I was looking for a way to deal with those |
22:09:23 | ldlework | flaviu: so if I'm on linux, its pretty easy to compile things for windows? |
22:09:25 | Araq | try: a+b except OverflowError: 0 |
22:10:27 | eskatrem | Araq: well, I want to write some code to detect if a number has more than 1000 digits (project euler), so that will not work, but I think I just found a way to deal with large digits anyway |
22:10:49 | Araq | eskatrem: there are bignum libraries available |
22:11:00 | def- | eskatrem: http://github.com/def-/bigints should work |
22:12:55 | eskatrem | thanks guys, I'll check the bigints thing if my way to bypass large numbers doesnt work - the code is elegant IMHO, though |
22:14:20 | * | zahary1 joined #nim |
22:16:23 | * | wtw joined #nim |
22:18:38 | flaviu | ldlework: it seems so |
22:19:00 | ldlework | flaviu: people in the golang community often talk of easily deployable statically linked binaries |
22:19:05 | ldlework | flaviu: is that something we can do? |
22:19:18 | ldlework | like could I compile a Nim binary that doesn't require my user to install SDL? |
22:19:19 | flaviu | Yeah, nim does that really well |
22:19:26 | ldlework | assuming it is the same architecture, etc |
22:19:35 | ldlework | flaviu: I would really love to know more about that |
22:19:39 | flaviu | https://github.com/h3rald/hastyscribe |
22:20:14 | ldlework | Is that an example of a project that statically links its deps? |
22:20:19 | flaviu | yep |
22:20:28 | ldlework | flaviu: thanks man |
22:20:30 | flaviu | and its resource files |
22:23:57 | Araq | "source" links work now for me |
22:24:20 | ldlework | nice! |
22:26:34 | * | superfunc quit (Ping timeout: 258 seconds) |
22:26:49 | * | Ven joined #nim |
22:28:06 | Mat4 | ciao |
22:28:27 | * | Mat4 left #nim (#nim) |
22:31:03 | Araq | now if only Varriount_ would fix the 64bit installer ... |
22:31:34 | Araq | also I'm still waiting for .deb and .dmg packages |
22:32:54 | * | gokr_ quit (Quit: IRC for Sailfish 0.8) |
22:35:20 | jh32 | hi |
22:36:20 | saml | hi jh32 |
22:36:53 | jh32 | is there an example for interfacing with c++ code? I'm trying to create an object and then call a method on it |
22:38:37 | * | jefus_ joined #nim |
22:38:44 | * | minciue quit (Quit: minciue) |
22:40:08 | Araq | jh32: there is only http://nim-lang.org/nimc.html#importcpp-pragma I think |
22:40:49 | jh32 | I've seen that, but I can't make it work for the constructor |
22:42:08 | * | jefus quit (Ping timeout: 244 seconds) |
22:42:23 | eskatrem | how do I declare a variable as int64? var x = 0:int64? |
22:42:30 | def- | var x: int64 = 0 |
22:42:37 | def- | or var x = 0'i64 |
22:43:08 | eskatrem | ok, got it slightly wrong... thanks |
22:43:53 | Araq | jh32: well the trick is that .importc produces prefix syntax, .importcpp infix syntax. constructors require prefix syntax |
22:44:18 | Araq | so using importc for the constructor should work |
22:45:24 | EXetoC | 0i64 is less verbose :p |
22:45:36 | jh32 | thanks, will try that |
22:45:42 | flaviu | yeah, every other language uses 0i64 |
22:51:23 | dts|pokeball | ldlework, Varriount_ thanks for the appreciation! im still trying to find time to sandbox the bot, and write a proper build script, and then ill start adding more features as dom96 suggested |
22:51:56 | dts|pokeball | a 512 character eval bot would be interesting. ill look into that. shouldnt be too hard though |
22:52:10 | flaviu | dts|pokeball: It's even easier than you think! |
22:52:11 | ldlework | it sounds really hard, lol |
22:52:17 | flaviu | .eval import nimbus |
22:52:18 | ldlework | flaviu: because macros? |
22:52:21 | ldlework | pffff |
22:52:23 | ldlework | :P |
22:52:37 | dom96 | flaviu: that's cheating |
22:52:47 | dts|pokeball | heh |
22:53:00 | dts|pokeball | nah, im sure i could do it with short variable names |
22:53:08 | dts|pokeball | like a, b, c |
22:53:23 | * | Mimbus quit (Read error: Connection reset by peer) |
22:54:08 | dts|pokeball | where can i get a copy of the nim crown? |
22:54:24 | * | Mimbus joined #nim |
22:54:41 | flaviu | http://reign-studios.net/philipwitte/nimrod/new-symbols.png |
22:54:53 | flaviu | third crown from the left |
22:55:01 | dts|pokeball | ty |
22:55:18 | dts|pokeball | im going to try and add aporia to my quick launch bar and wanted that for the icon |
22:55:23 | notfowl | flaviu, i wish we would have gone wih the ones that look like the person wearing the crown is a sim |
22:55:59 | dts|pokeball | notfowl, you were writing the ircd right? |
22:56:12 | flaviu | I have literally no opinion on the logo. |
22:56:23 | notfowl | dts|pokeball, yea its in fowltek/musings |
22:56:25 | jh32 | Araq: cool, works - but only with default constructor (no parameters) so far |
22:56:28 | dts|pokeball | notfowl, ty |
22:56:30 | ldlework | I love the current logo |
22:56:34 | ldlework | But I wish we would bring back the mascot |
22:58:17 | dts|pokeball | notfowl, do you mean fowlmouth? |
22:59:07 | notfowl | dts|pokeball, no its something liek github.com/fowlmouth/nimlibs/fowltek/musings |
22:59:19 | dts|pokeball | ah ok |
22:59:41 | notfowl | been meaning to rename that repository to fowltek for years >_> |
22:59:49 | dts|pokeball | found it |
23:00:14 | dts|pokeball | so apparently ubuntu thinks ircd.nim is a movie |
23:06:41 | * | rpag quit (Ping timeout: 264 seconds) |
23:11:04 | * | BitPuffin quit (Ping timeout: 244 seconds) |
23:18:36 | * | loz quit (Ping timeout: 250 seconds) |
23:32:09 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
23:36:22 | * | Ven joined #nim |
23:43:22 | * | BlaXpirit quit (Quit: Quit Konversation) |
23:52:04 | dts|pokeball | what version is aporia on? |
23:53:39 | flaviu | Here is the Nim logo in SVG format: http://a.pomf.se/rtjxkg.svg |
23:53:51 | flaviu | The tracing isn't perfect, especially at the top of the crown, but it's pretty good. |
23:54:22 | dts|pokeball | meh. ive already stolen the one from nim-lang |
23:56:56 | flaviu | dts|pokeball: I wasn't giving *you* it, I was giving it to everyone else. :P |
23:57:16 | dts|pokeball | i know :p |