00:27:36 | * | ozra quit (Ping timeout: 246 seconds) |
00:32:32 | * | brson quit (Quit: leaving) |
00:54:11 | * | xet7_ joined #nim |
00:54:51 | * | xet7 is now known as Guest35773 |
00:55:49 | * | Guest35773 quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
00:56:04 | * | xet7_ quit (Client Quit) |
00:56:14 | * | ozra joined #nim |
00:56:29 | * | xet7_ joined #nim |
00:57:18 | * | xet7_ is now known as xet7 |
01:08:39 | * | xet7 quit (Quit: Leaving) |
01:15:01 | * | NimBot joined #nim |
01:16:02 | * | yglukhov joined #nim |
01:20:27 | * | yglukhov quit (Ping timeout: 250 seconds) |
01:40:06 | * | magistr quit (Remote host closed the connection) |
02:03:00 | * | NimBot joined #nim |
02:18:18 | * | Demon_Fox joined #nim |
02:35:41 | * | elbow_jason quit (Remote host closed the connection) |
02:41:24 | * | NimBot joined #nim |
03:17:20 | * | darkf joined #nim |
03:34:21 | * | failedcoder joined #nim |
03:35:52 | * | strcmp1 quit (Quit: Leaving) |
04:04:27 | * | yglukhov joined #nim |
04:08:44 | * | yglukhov quit (Ping timeout: 244 seconds) |
04:19:26 | * | strcmp1 joined #nim |
04:22:57 | * | NimBot joined #nim |
04:29:06 | * | failedcoder quit (Ping timeout: 246 seconds) |
05:28:41 | * | xificurC joined #nim |
06:27:58 | * | kilon joined #nim |
06:56:27 | * | NimBot joined #nim |
07:01:22 | * | jszymanski joined #nim |
07:03:22 | * | strcmp1 quit (Ping timeout: 244 seconds) |
07:06:59 | * | Demon_Fox quit (Ping timeout: 244 seconds) |
07:10:44 | * | yglukhov joined #nim |
07:14:41 | * | kilon quit (Remote host closed the connection) |
07:15:04 | * | yglukhov quit (Ping timeout: 246 seconds) |
07:24:04 | * | xcombelle joined #nim |
07:36:37 | * | Trustable joined #nim |
07:41:51 | * | ozra quit (Quit: Page closed) |
07:42:03 | * | ozra joined #nim |
07:42:22 | * | BitPuffin|osx quit (Ping timeout: 246 seconds) |
07:54:31 | * | NimBot joined #nim |
07:55:41 | * | yglukhov joined #nim |
08:08:21 | * | yglukhov quit () |
08:09:47 | * | yglukhov joined #nim |
08:15:28 | * | coffeepot joined #nim |
08:19:13 | * | Geometry joined #nim |
08:19:39 | Varriount | onionhammer: What do you think about heuristic project configuration file finding? |
08:20:21 | Geometry | has there been any java libraries or programs converted to nim? |
08:32:47 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
08:33:23 | * | coffeepot joined #nim |
08:42:37 | Varriount | Geometry: Possibly. |
08:43:28 | Varriount | Geometry: Generally speaking, the kind of object-oriented programming enforced by the Java language doesn't work too well in a language like Nim. |
08:51:17 | * | max1 quit (Ping timeout: 252 seconds) |
09:02:14 | * | greyrhino joined #nim |
09:16:16 | Geometry | Varriount, true, seems like there would be some work involved. |
09:18:05 | * | max2 joined #nim |
09:20:18 | Geometry | I haven't discovered any conversions from java as yet |
09:22:32 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
09:22:34 | * | Geometry quit (Read error: Connection reset by peer) |
09:23:10 | * | coffeepot joined #nim |
09:36:23 | * | NimBot joined #nim |
09:37:11 | NimBot | nim-lang/Nim devel 842a263 Yuriy Glukhov [+0 ±1 -0]: Fixed defer test. |
09:37:11 | NimBot | nim-lang/Nim devel b251625 Andreas Rumpf [+0 ±1 -0]: Merge pull request #3189 from yglukhov/defer-test-fix... 2 more lines |
09:49:12 | * | allan0 joined #nim |
09:49:51 | gokr | Varriount: Regarding "kind of OO", I am not sure what you mean. IMHO "normal OO" works quite fine in Nim. |
09:59:20 | * | VPashkov quit (Quit: Page closed) |
10:01:44 | yglukhov | gokr: interfaces? ;) |
10:02:22 | gokr | Well, sure, but if we disregard those (and the aqueducts) :) |
10:02:34 | * | kilon joined #nim |
10:03:25 | gokr | And fowl is messing with interfaces, so we hopefully have those too eventually. |
10:04:37 | gokr | And you can go quite far without interfaces IMHO. |
10:07:52 | ekarlso | is there interfaces in nim ? |
10:10:45 | * | Jehan_ joined #nim |
10:14:02 | * | M-max quit (Remote host closed the connection) |
10:14:02 | * | MatrixBridge quit (Remote host closed the connection) |
10:16:17 | coffeepot | ekarlso, there is concepts, which are kiiiiiinnnd of like interfaces http://nim-lang.org/docs/manual.html#generics-concepts |
10:16:28 | * | MatrixBridge joined #nim |
10:16:36 | * | mahlon quit (Ping timeout: 244 seconds) |
10:17:07 | * | phira quit (Ping timeout: 244 seconds) |
10:17:33 | * | phira joined #nim |
10:17:36 | * | phira quit (Excess Flood) |
10:18:03 | * | phira joined #nim |
10:18:06 | * | phira quit (Excess Flood) |
10:18:36 | * | phira joined #nim |
10:18:40 | * | seumirem1rque quit (Ping timeout: 244 seconds) |
10:18:47 | * | seumiremorque joined #nim |
10:19:11 | * | nkf1 quit (Ping timeout: 244 seconds) |
10:20:01 | * | gsingh93 quit (Ping timeout: 244 seconds) |
10:20:13 | * | lokulin quit (Ping timeout: 244 seconds) |
10:21:12 | * | gsingh93 joined #nim |
10:21:14 | * | mahlon joined #nim |
10:21:46 | * | onionhammer quit (Ping timeout: 244 seconds) |
10:23:01 | * | seumiremorque quit (Ping timeout: 246 seconds) |
10:23:23 | * | onionhammer joined #nim |
10:23:42 | baabelfish | concepts = static interfaces |
10:23:49 | baabelfish | just about |
10:24:48 | * | lokulin joined #nim |
10:26:12 | baabelfish | you just don't have to "implement" your class from a specific interface, instead concepts are used as requirements for any type that is passed to a templated function and checked at compile time |
10:27:01 | baabelfish | http://nycto.github.io/AStarNim/astar.html this is a nice example where one should use these |
10:34:07 | coffeepot | hey awesome AStar :D What a cool unit! |
10:35:42 | * | profan joined #nim |
10:35:50 | coffeepot | sometimes it's hard to keep track of what is out there for Nim, I wrote a super simple read only ini file reader the other day because using parsecfg was a bit too strict for some of the sloppy inis I was processing |
10:36:23 | coffeepot | ...turns out someone had already done a really powerful ini file processor using trees and all sorts |
10:37:58 | coffeepot | I can't see a link to the source for this A-Star module though unfortunately |
10:39:05 | coffeepot | ah got it https://github.com/Nycto/AStarNim |
10:40:14 | baabelfish | ...but really concepts are just for better compiler error messages and documentation when using static duck typing |
10:41:39 | Araq | ok, this made my day. people in #nim knowing what 'concept' actually does. :-) |
10:42:17 | baabelfish | Araq: thanks, I have read too many C++ standardation documents |
10:45:02 | * | minus quit (*.net *.split) |
10:45:02 | * | titanomachy quit (*.net *.split) |
10:45:03 | * | cazov quit (*.net *.split) |
10:45:03 | * | bogen quit (*.net *.split) |
10:45:03 | * | rektide quit (*.net *.split) |
10:45:04 | * | low-profile quit (*.net *.split) |
10:45:04 | * | jj2baile quit (*.net *.split) |
10:45:05 | * | MattAitchison quit (*.net *.split) |
10:45:53 | * | M-max joined #nim |
10:49:15 | * | minus joined #nim |
10:49:15 | * | cazov joined #nim |
10:49:15 | * | bogen joined #nim |
10:49:15 | * | rektide joined #nim |
10:49:15 | * | low-profile joined #nim |
10:49:15 | * | jj2baile joined #nim |
10:49:15 | * | MattAitchison joined #nim |
10:52:02 | * | titanomachy joined #nim |
11:01:27 | gokr | ekarlso: fowl is working on making interfaces. |
11:02:50 | gokr | IIRC his interfaces are generated from concepts. |
11:07:04 | baabelfish | Araq: what does "- ``concept`` needs to be refined, a nice name for the feature is not enough." mean actually? |
11:08:41 | Araq | well for a start identiiers are *unchecked* within a concept declaration |
11:09:12 | Araq | this is very error prone |
11:09:22 | Araq | make a typo and the concept simply doesn't match, yay |
11:14:09 | baabelfish | at least it's a compile time error |
11:15:29 | * | thekilon joined #nim |
11:15:51 | thekilon | well done on making this really interesting language |
11:15:55 | * | thekilon is now known as kilon_ |
11:16:30 | kilon_ | the documentation also seem well made |
11:17:31 | kilon_ | I am interested in using nim together with another language Pharo |
11:17:53 | kilon_ | I use Pharo as a replacement to python, and I want to use nim as a replacement for C |
11:18:13 | Jehan_ | kilon_: You may want to talk to gokr about that. :) |
11:18:16 | kilon_ | mainly to create c dlls that pharo will use |
11:18:19 | baabelfish | nim seems like a quite nice replacement for python also in my mind |
11:18:29 | gokr | hey |
11:18:45 | kilon_ | Jehan_: its was actually gokr blog posts that introduced me to nim ;) |
11:19:12 | kilon_ | baabelfish: yeap certainly it is |
11:19:13 | gokr | kilon_: We actually have some neat macros that generates .st file on the side that you file in - containing auto generated FFI calls. |
11:19:14 | Jehan_ | kilon_: Well, his company is doing pretty much that. |
11:19:43 | kilon_ | gokr: as a wrapper for dlls that nim creates ? |
11:19:48 | gokr | yeah |
11:19:53 | kilon_ | impressive |
11:20:01 | gokr | So ... you compile the nim file, and it creates a dll (or .so) + a .st file |
11:20:19 | kilon_ | very nice |
11:20:22 | gokr | You file in the .st file, that gives you a class with class side methods - one per proc. |
11:20:31 | gokr | With proper signatures. |
11:20:37 | gokr | For the types that Squeak FFI supports. |
11:20:47 | gokr | Then you basically just use it. |
11:21:01 | kilon_ | is it open source ? |
11:21:26 | gokr | It should be, but... not sure if we published it openly, let me check |
11:21:34 | kilon_ | sure |
11:21:37 | * | seumiremorque joined #nim |
11:21:51 | * | Rishavs joined #nim |
11:22:07 | kilon_ | my project is making pharo control python, i use sockets which is kinda slow, so i was thinking creating a dll to make things go faster |
11:22:30 | gokr | We drive Urhonimo this way. |
11:22:34 | kilon_ | basically pharo sends string messages to python to exectue them |
11:23:01 | * | kilon_ googles urhonimo |
11:23:17 | gokr | Its not published yet, but we can probably publish it - might just want to fix the README first |
11:23:50 | Rishavs | hi. raw beginner here. i was wondering how you create a new object? I can see two ways in the example; [xyz = object] and [xyz ref object of RootObj] |
11:24:08 | Rishavs | which is the proper way and is there any difference between the two? |
11:24:23 | kilon_ | here is my project --> https://www.youtube.com/watch?v=XPGDQc5LUvE |
11:24:33 | baabelfish | Rishavs: you mean defining a type? |
11:24:37 | kilon_ | ah nice i work with 3d graphics too, Blender in my case |
11:25:04 | gokr | You can use Blender to produce content for Urho3D |
11:25:19 | Rishavs | not sure. as i said i am a raw beginner who knows some JS and python |
11:25:37 | baabelfish | Rishavs: http://nim-lang.org/docs/tut1.html#advanced-types-reference-and-pointer-types these tutorials are quite nice |
11:25:44 | kilon_ | yeap Blender is very powerful |
11:26:02 | gokr | kilon_: There is an addon for Blender that exports directly to Urho3D. |
11:26:16 | gokr | But the generic formats work fine too. |
11:26:27 | Rishavs | thanks bf, i went through them. i think i am on an info overload T_T |
11:26:27 | kilon_ | gokr: i am not suprised, though i have not heard of Urho3d before |
11:26:43 | gokr | Rishavs: For OO you might want to check my blog |
11:26:53 | gokr | Rishavs: http://goran.krampe.se/category/nim/ |
11:27:00 | kilon_ | gokr: python inside Blender is very powerful, has complete access to Blender apart from deep internal stuff |
11:27:14 | Rishavs | thanks! |
11:28:32 | baabelfish | Rishavs: you might want to read about pointers and value types also |
11:30:24 | Rishavs | i tried |
11:30:30 | Rishavs | but there is just so much to absorb |
11:30:39 | Rishavs | as a scripting lang user |
11:30:44 | Rishavs | too many new things |
11:30:46 | Rishavs | :( |
11:30:51 | baabelfish | heh |
11:30:52 | kilon_ | Rishavs: hehe i can feel you, I come from python too :D |
11:31:01 | Rishavs | i just found a really nice article |
11:31:06 | Rishavs | which should help me |
11:31:06 | kilon_ | and i used to code in C++ long time ago |
11:31:17 | baabelfish | this is the reason I think C++ is the best language to learn |
11:31:17 | Rishavs | https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers |
11:31:35 | Araq | if you come from python my usual recommondation is to use 'type Foo = ref object' |
11:31:46 | Araq | or perhaps ref object of RootObj |
11:32:23 | Jehan_ | Araq: RootObj or RootRef these days? |
11:32:26 | Rishavs | my oops are really shaky |
11:32:36 | Rishavs | never had to write more than 100 line simple scripts |
11:32:50 | Rishavs | :D |
11:33:00 | Araq | Jehan_: well it doesn't matter, the 'ref' is stripped away in an 'of' |
11:33:30 | baabelfish | Araq: btw what is the nim equivalent of of std::decay? |
11:33:40 | Jehan_ | Rishavs: You can basically think of a `type X = ref object ...` as the equivalent of `class X`, except that methods are declared separately and not as part of the type declaration. |
11:33:56 | baabelfish | I managed to create ref ref's accidentally when fooling around |
11:33:57 | kilon_ | Rishavs: dont worry too much about it, take it step by step |
11:34:00 | Jehan_ | It's not a true equivalence, but close enough for government work. |
11:34:42 | kilon_ | Rishavs: i have create thousands of lines of code of OO python, but still it was a very line by line workflow |
11:34:51 | Rishavs | thanks everyone, i will now go read up on gokr's blog and and that nim-python article and come right back when i cant understand something |
11:35:01 | gokr | Sure, welcome! |
11:35:36 | kilon_ | I did read gokr blog posts on nim OO but I have to confuse i found them a bit confusing, but then it was only a first read |
11:35:37 | gokr | Note that my OO blog articles were written "as I learned" so... I should write a summary some day. |
11:35:47 | kilon_ | *to confess |
11:35:58 | gokr | Yeah, I got a bit wordy in them :) |
11:36:27 | kilon_ | well nim approach is rather unique to OO from what i have read |
11:36:34 | kilon_ | so it will take some time to get used to it |
11:36:49 | gokr | Well, I am not sure if its unique, but its quite pragmatic. |
11:38:16 | Rishavs | do you mean composition over inheritense? |
11:38:16 | kilon_ | i take your word for it, gokr, i started reading about nim just yesterday. By the way do you use it frequently ? |
11:38:44 | gokr | Nim? sure, we use it a lot. More and more. I mean, heck, we hired Araq ;) |
11:39:13 | Araq | baabelfish: do we need one? seems to be a hack required by C++'s rather unsatisfying type system |
11:39:29 | gokr | Rishavs: If you use ref objects + methods its quite vanilla. |
11:39:33 | kilon_ | oh you hired him, nice |
11:40:15 | kilon_ | well if nim impressed a smalltalker, i feel obliged to at least take a deep look at it :D |
11:40:16 | gokr | Rishavs: if you mix procs with methods, you need to know a bit more what you are doing, but it still works quite as expected I would say. |
11:40:34 | gokr | (procs being statically resolved, methods dynamically resolved) |
11:41:07 | baabelfish | Araq: it quarantees more safety to library user when using templates |
11:42:18 | gokr | kilon_: Nim has a very interesting "balance". Superb performance and interop with C/C++ but still being quite reasonable to work in (gc, easy to write and read etc). And then, tons of really interesting features to keep your interest :) |
11:42:18 | Rishavs | one question; do we have something like "this" is JS or "self" in python? |
11:42:27 | Rishavs | how do i refer to shared procs/metods? |
11:42:43 | gokr | Rishavs: First argument. Just call it "self" and you are set :) |
11:42:52 | Rishavs | sweet! |
11:43:04 | kilon_ | gokr: |
11:43:05 | gokr | So all procs/methods simply have the first argument being the "receiver". |
11:43:34 | gokr | Since Nim allows you to write "myProc(a, b)" as "a.myproc(b)" you have the OO style right there. |
11:43:36 | kilon_ | gokr: the pythonic syntax and the promise of easy interface with C/C++ libraries is what have made it very appealing to me |
11:43:48 | gokr | kilon_: Indeed. |
11:45:58 | gokr | Rishavs: For an example of a "shell-ish" app in Nim, I wrote blimp: https://gitlab.3dicc.com/gokr/blimp |
11:46:20 | gokr | Its very procedural, not much OO in there, so its probably easy to understand. |
11:48:00 | Rishavs | oh, i am able to write procedural code with simple functionas/procs |
11:48:15 | gokr | Sure |
11:48:21 | Rishavs | today i tried my hand at oops and realized i know nothing |
11:48:28 | Rishavs | but thanks |
11:48:30 | gokr | Also, koch.nim etc is also interesting to read |
11:48:35 | Rishavs | :( |
11:49:34 | kilon_ | macros seem very interesting to as a lisp fan |
11:50:56 | gokr | kilon_: They are and its one of those "enablers" in the language. You don't have to use them, but you will pretty soon realize a lot in Nim is based on them and they do enable a lot of the language evolution to happen outside of Araq's head. |
11:51:26 | gokr | And of course, the Nim compiler is written in Nim - that also helps. |
11:52:32 | kilon_ | definetly |
11:52:56 | kilon_ | so for IDE Aporia is the best choice ? |
11:53:31 | * | xet7 joined #nim |
11:53:41 | coffeepot | gokr, in blimp what does the stuff in square brackets do; [remote], [blimp] etc? |
11:54:20 | gokr | In the config file? |
11:54:32 | coffeepot | in blimp.nim |
11:54:47 | coffeepot | sorry |
11:54:51 | coffeepot | i missed the """ :D |
11:54:56 | gokr | Ah :) |
11:55:15 | gokr | Yeah, its just a section marker in the config file |
11:56:20 | gokr | So in short - blimp uses scp to handle big files inside git. It stores a small file in git with the md5sum hash in it, and then installs itself as a git filter to do the magic. |
11:57:03 | gokr | Its just like many other similar tools, but perhaps a bit more lightweight, no dependencies, 600 lines of code. Just plain scp. |
12:01:37 | * | Jehan_ quit (Quit: Leaving) |
12:05:24 | kilon_ | hmm no binaries for Aporia |
12:05:40 | kilon_ | oh well can use emacs instead |
12:05:50 | coffeepot | aporia is included in the binary for nim I think |
12:06:41 | kilon_ | hmm let me look because i got the binary |
12:08:38 | kilon_ | nope not there |
12:10:21 | coffeepot | that's weird, the nim install from the website? I thought it included aporia under the dist folder |
12:10:46 | coffeepot | it's been a while since I used the website download though |
12:11:38 | kilon_ | yeap downloaded that zip |
12:12:33 | kilon_ | oh wait my bad , you mean the window binaries coffeepot, i am on macos |
12:12:40 | coffeepot | yeah from here http://nim-lang.org/download.html |
12:12:47 | coffeepot | ah ok sorry :) |
12:12:59 | kilon_ | yeah what i got was the source |
12:13:06 | kilon_ | my mistake sorry |
12:13:18 | coffeepot | I should stop assuming windows lol |
12:13:41 | coffeepot | if you have nimble installed i think you can just nimble install aporia |
12:13:51 | coffeepot | or just use emacs like you were gonna XD |
12:15:32 | kilon_ | yeah building GTK on macos is a PITA |
12:15:47 | kilon_ | which is what aporia uses |
12:15:58 | kilon_ | i tried to build GTK once, it was a nightmare |
12:17:35 | coffeepot | i used nimline with sublime for a while, worked pretty well |
12:22:32 | coffeepot | one thing I do like about windows is people tend to release .exes for stuff so I don't have to set up all the dependancies |
12:28:47 | kilon_ | you mean installers |
12:28:53 | kilon_ | thats what macos has too |
12:29:12 | kilon_ | but usually apps are self contained so there is no need for installation which is even cooler |
12:29:23 | coffeepot | but not gtk? |
12:30:34 | kilon_ | GTK is a pita on macos |
12:30:47 | kilon_ | frankly macos devs just dont use it |
12:30:51 | kilon_ | QT is the king |
12:33:18 | kilon_ | i dont think GTK is doing very well on Windows either |
12:34:57 | coffeepot | yeah doesn't look like there are any pure QT bindings for nim, though there is this https://github.com/PhilipWitte/NimQt |
12:37:26 | coffeepot | looks like we have QML bindings tho |
12:37:50 | kilon_ | well if nim is so easy to use with C++ should not be a problem |
12:38:13 | coffeepot | the ffi is pretty easy to work with |
12:39:30 | kilon_ | thats good enough for me |
12:40:17 | kilon_ | though i wont be doing gui coding with nim, most likely i will be building small libraries to speed up Pharo |
12:40:21 | coffeepot | just in case you haven't seen it, http://nim-lang.org/docs/manual.html#foreign-function-interface |
12:40:24 | * | BitPuffin|osx joined #nim |
12:41:04 | coffeepot | cool, sounds ideal :) |
12:42:54 | kilon_ | no i have not , thank you coffeepot, will read it now |
12:43:08 | coffeepot | np :) |
12:43:23 | kilon_ | coffeepot: what project you work on ? and how long you have been using nim ? |
12:44:12 | gokr | kilon_: Its not out yet, but I think Araq is doing a wx wrapper |
12:44:19 | coffeepot | been fiddling about with nim since early in the year, but I'm no expert. I wrote an odbc library that I'm just in the process of sorting out to upload to github, so I can use nim at work with sql server |
12:45:05 | coffeepot | other than that, scripting at work gets done in nim and I'm cobbling together some opengl game stuff at home |
12:45:12 | gokr | kilon_: for wrapping of libraries you would use c2nim |
12:45:16 | kilon_ | coffeepot: and what you think about nim ? |
12:45:17 | gokr | Which is very capable these days |
12:45:52 | gokr | kilon_: I might have time to rewrite that README and release squeaknim later, but now I gotta go |
12:45:58 | kilon_ | gokr: i am a bit perplexed with c2nim, as far as i have read it converting c code to nim code, is it really that efficient ? |
12:46:09 | kilon_ | yeah sure |
12:46:14 | kilon_ | see you later mate :) |
12:46:26 | gokr | Above all c2nim generates wrappers. |
12:46:39 | gokr | By parsing C/C++ headers. |
12:47:06 | gokr | Since Urho3D is C++, Araq spent quite some time recently making c2nim very capable. Templates etc, its no walk in the park. |
12:47:21 | gokr | cya |
12:47:24 | kilon_ | ah ok |
12:47:28 | kilon_ | then its a bit like cython |
12:47:30 | kilon_ | ciao |
12:47:40 | yglukhov | https://github.com/Araq/wxnim ;) |
12:48:05 | kilon_ | thanks |
12:50:26 | coffeepot | well I originally started looking to learn a new language and came to python. Got all excited then realised dynamic typing wasn't for me. Found nim, and it's pretty much everything I personally wanted from a language: static typed, compiled to machine code (even better, to C so nice and portable and it's easy to use the billions of C libs out there |
12:50:27 | coffeepot | ), produces tiny exes & doesn't include stuff you don't use in the exe, runs pretty close to C speed (which is great as I like writing simple games in my spare time), has loads of compile time checks, and recently I realised metaprogramming was the thing I never knew I needed |
12:51:40 | coffeepot | I was pretty disappointed that it wasn't easy to wrap up python into a single .exe to distribute (I know there's py2win etc). I'm surprised how important this is to me - one exe to distribute and no dependancies! :D |
12:53:42 | coffeepot | as for coding in nim, aside from metaprogramming which I am just learning how to work, everything is incredibly straight forward. UFCS is amazing and all languages should have it :) Everything kinda just seems simpler in nim |
12:54:26 | coffeepot | I find things that I had huge object frameworks before just fall into place easier with composition |
12:56:01 | kilon_ | well i feel your pain, one of the reason why i gave up on python for pharo was how simple was with pharo to distribute my code, pharo does not even need to be installed |
12:56:28 | onionhammer | @varriount i like :) |
12:56:31 | coffeepot | yeah, I hate dealing with dependencies |
12:57:04 | coffeepot | nim seems to produce pretty lean exes too, even with debug builds. |
12:57:50 | kilon_ | I am not a fan of compiled languages, because that means maintaing binaries for multiple platforms |
12:58:52 | kilon_ | and i have to confess for that reason alone i will try to use nim as little as possible |
12:59:20 | kilon_ | but still i will learn it |
13:00:25 | coffeepot | I *think* you can pass a config to compile from that can include different compile targets, but not sure |
13:00:49 | coffeepot | if it's not compiled though, surely you have to include the interpretter? |
13:01:30 | coffeepot | that was the problem i had with python, even py2exe just includes the interpretter wrapped up in the exe |
13:02:55 | coffeepot | also, python is super slow unless you're using numpy or something |
13:04:35 | coffeepot | I found that everything that I wrote that was too slow, I'd have to redo in C or Cython anyway, so why not just use a language that was compiled :3 |
13:05:23 | kilon_ | python slowness is a bit exaggerated |
13:05:41 | coffeepot | well it depends what you're doing :) |
13:05:51 | kilon_ | as a matter of fact it can beat C++ (see strings) and i would not be suprised if some python libs can beat nim libs too |
13:13:16 | kilon_ | but yeah some pure python stuff are notoriously slow, sometimes even 1000 times |
13:13:38 | kilon_ | but cython offers similar fuctionality to nim |
13:13:47 | kilon_ | if you want to speed things up easily |
13:14:41 | coffeepot | yeah, tbh originally I was like "Yay Cython!" but I'd say Python isn't really built to have static types so it seems a bit clunky |
13:15:01 | coffeepot | in nim, you can write similar code to python with type inference but it's checked at compile time |
13:15:44 | coffeepot | bear in mind that I've mainly worked with statically typed languages so I'm biased (C, C++, Delphi) |
13:17:18 | kilon_ | actually there are plans to introduces static types to python , they call it optional typing or something |
13:17:42 | kilon_ | I am a huge fan of Delphi myself, I hate C++, I am ok with C |
13:17:50 | coffeepot | I did hear that, hopefully this'll allow better optimising |
13:18:05 | kilon_ | i think they do it more for bug fixing |
13:18:48 | kilon_ | frankly i never had issues with types |
13:19:23 | kilon_ | but dont have an issue with static typing either |
13:19:31 | kilon_ | both have pros and cons |
13:20:20 | coffeepot | yeah tbh Delphi is a really nice language to work with and the later versions are fairly good for modern features, but it suffers a bit from supporting backwards compatability |
13:21:51 | coffeepot | also it's much less sophisticated than modern languages like nim at it's core. Generics for instance, they work okay in Delphi, but it seems limited when you want to support something a bit more sophisticated. In nim, generics are simple and powerful by comparison |
13:22:20 | coffeepot | also delphi's inlining is shit lol |
13:25:29 | Araq | Cython's notion of a "type system" is "let's annotate "ints" and "floats" to get performance" |
13:26:27 | Araq | how do you do a set of enum in Cython? "int"? |
13:26:28 | kilon_ | There is also Delphi open source child, Lazarus and Free Pascal |
13:27:19 | kilon_ | Araq: hmm no idea, i have barely used cython but i have heard a lot of good things about it by people who have performance wise , it was funded by google at some point |
13:28:41 | kilon_ | coffeepot: I tried to go back to Delphi after python but I could not :D But the IDE is still awesome |
13:28:58 | kilon_ | this IDE is for seminar on how IDEs should be made |
13:29:11 | coffeepot | Lazarus is amazing but it's not something I consider moving forward from Delphi. For a start generics are even more clunky. The GUI stuff is stellar though. I've considered using Lazarus front end / nim backend a few times |
13:29:58 | kilon_ | well who knows maybe some coders will pick lazarus and use it as a nim IDE |
13:30:02 | coffeepot | yeah Araq is right, Cython has type annotation but it's a poor substitute for a language built for static types |
13:30:08 | kilon_ | how you call yourselves ? nimers ? |
13:30:25 | Araq | nimsters, I think |
13:30:34 | coffeepot | numulons :3 |
13:30:38 | kilon_ | well Cython is not a language, its a tool to create wrappers for python |
13:30:52 | kilon_ | lol |
13:31:00 | coffeepot | numulonions? |
13:31:04 | kilon_ | nimsters sounds a bit like hamsters |
13:31:13 | coffeepot | nimmers? |
13:31:18 | coffeepot | *ahem* |
13:31:31 | Varriount | Meh. I've always like 'nimster' more than 'nimmer' |
13:31:34 | kilon_ | nimeronians :D |
13:31:44 | Varriount | I guess that could work too though. |
13:31:49 | kilon_ | nimster it is then |
13:32:02 | kilon_ | i would not choose Cython over nim |
13:32:21 | kilon_ | nim looks more well though out |
13:32:40 | coffeepot | yeah that's the key, everything is very well considered in nim and Araq knows his stuff |
13:33:28 | * | xcombelle quit (Remote host closed the connection) |
13:33:41 | coffeepot | tbh I've learnt more about programming from learning nim than in years of actual programming as a job, because the reasons for things are made explicit |
13:34:14 | kilon_ | is there a plan when nim v 1 will be release, should i be worries that if i wrote code will be broken in a few months ? |
13:39:29 | * | ellipsis joined #nim |
13:40:39 | def- | kilon_: i haven't seen much breakage over the last year, and when something breaks it's usually easy to fix |
13:43:22 | Araq | from time to time I design "Nim version 2" which throws out every feature I don't like. The result is an unusable language that doesn't support a single nimble package out there. it's a great cure. ;-) |
13:45:04 | Araq | I mean it's a cure for me, then I can continue to work on Nim version 1. |
13:47:47 | kilon | def-: thats very good to know |
13:48:57 | kilon | yeah python devs were eager for python 3 except the users :D who would have guessed that people hate to rewrite code |
13:49:06 | * | ellipsis quit (Ping timeout: 246 seconds) |
13:49:20 | kilon | but in the end, you cant stop progress, so some breakage is ok for me |
13:52:42 | Araq | but there is no progress in requiring print to have () :P |
13:53:23 | kilon | Araq: functions in python are objects so maybe there is ;) |
13:53:46 | Araq | so? procs in Nim are firstclass too |
13:54:01 | reactormonk | Araq, start with converters? |
13:54:09 | kilon | yes but print "this" is a statement |
13:55:19 | kilon | well was a statement |
13:55:50 | kilon | and python is no nim to have macros to manipulate its syntax |
13:56:06 | kilon | maybe making it a function maybe it made it more flexible |
13:57:39 | kilon | Araq: the full explanation if you are interested is here --> https://www.python.org/dev/peps/pep-3105/ |
13:58:17 | Araq | they could easily allow to omit () for every statement level function call to get more consistency with 'print' |
13:58:53 | kilon | thats doing things more than on way, and its considered as not pythonic |
13:59:39 | kilon | i dont agree with this minimalistic philosophy "one way" of doing stuff, but I dont disagree either |
14:00:45 | kilon | currently just using print with the '()' will reference the object itself which is the function so you can do |
14:00:49 | kilon | a = print |
14:00:55 | kilon | a("hello world") |
14:01:02 | baabelfish | I would love a definition for progress in the context of programming |
14:01:37 | Araq | the tradeoff here is "breaking every Python 2 module" vs. "a minor violation of 'there can be only one way' " |
14:02:10 | Araq | where "there can only be one way" never made any sense to begin with since Python is dynamically typed |
14:02:16 | kilon | well 3 was generally a major breakage in many ways so they had little reason to stop at print |
14:02:47 | kilon | but i rather no talk about python politics |
14:03:00 | kilon | i am not affiliated nor qualified to talk about the python internals |
14:03:24 | Araq | it was obviously a stupid decision. |
14:03:29 | kilon | :D |
14:04:04 | kilon | you think if nim becomes very popular like python wont be making stupid decisions ? |
14:05:13 | coffeepot | i think python's "one way" was more a method of avoid the chaos of dynamic typing ;) |
14:05:19 | kilon | but in any case as a language designer you more about this than me |
14:05:45 | kilon | coffeepot: no the idea is a language and a library that you can fit inside your head |
14:06:01 | Araq | no, I already made every mistake. |
14:06:20 | kilon | python started as scripting language for C/C++ |
14:06:27 | Araq | from now on stuff only gets better and better :P |
14:06:32 | kilon | lol |
14:06:41 | kilon | i seriously hope so |
14:06:44 | kilon | :D |
14:06:57 | coffeepot | sure, but the code written in the language doesn't fit in your head because you gotta track what these typeless identifiers refer to (at least, in my limited experience). Not knocking python though, as I say I'm a bit biased towards static typing |
14:07:33 | kilon | coffeepot: and as i said, i never had an issue with that, and as we say in Pharo, dont blame your language , blame your IDE |
14:07:56 | coffeepot | IDEs certainly do help. Pycharm is amazing |
14:08:08 | kilon | well unless your language is C++ |
14:08:19 | bogen | kilon: if python started as a scripting language for C/C++ I can't figure out why you only get one global python scope/instance when you embed python in C/C++... very short sighted.... so, as I scripting language for C/C++, to me python is a fail... |
14:09:12 | kilon | bogen: i am ok with people who hate/dislike python, i love it because it was very easy to learn and very productive with it |
14:09:37 | coffeepot | i guess I'm thinking of a specific example where I was trying to convert a python script to nim, and I ended up pulling my hair out trying to work out what these identifiers actually were, and kept having to backtrace through defs to work out what it was passing :) I'm not a python pro though. On the other hand, dynamic typing is pretty powerful in |
14:09:37 | coffeepot | it's own right, it just vexes me :) |
14:10:17 | kilon | well variable names can help here |
14:10:31 | bogen | kilon: I use a python a lot to, and I do recommend it for some stuff. I just see of much of the standard C python implemenation as being fundamentally flawed |
14:10:51 | kilon | in Pharo we also have a tool, called inspector that displays the object and you can browse through the class and find all sort of info |
14:11:22 | kilon | bogen: i cant disagree with you there, have no clue about python internals |
14:12:04 | kilon | coffeepot: so i think when you get confused about your kind of data, IDE must be blamed, this is essential tooling |
14:12:33 | * | xet7 quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
14:13:03 | kilon | you can even say I care more about IDEs than I care about language |
14:13:27 | * | xet7 joined #nim |
14:13:32 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
14:13:53 | Araq | I will create my own editor from scratch soon ... |
14:13:59 | * | coffepot joined #nim |
14:14:20 | Araq | all the existing ones suck ;-) |
14:14:43 | coffepot | yeah to be fair I was working in plain text, no ide. But I can do that fine in nim because the compiler will tell me off if I do something dumb |
14:14:57 | * | strcmp1 joined #nim |
14:15:30 | coffepot | I hear there's a project to bring nim to intellij IDEA... with debugging... that would be so sweet |
14:16:35 | kilon | Araq: love the idea of IDEs written for one and only one language and written in that language |
14:17:15 | kilon | as cool as languages written in themselves, which is what nim and pharo is and python is not |
14:17:25 | bogen | editors and ides should not be shared. (apart from line editors). It should be a requirment that if you want to be a programmer and you don't want to use a line editor, then you need to write your own editor/ide. That would thin out the global programming ranks down to about what they should be |
14:18:08 | Araq | meh, mine wouldn't be a traditional IDE, it would start as a terminal+editor hybrid |
14:18:36 | kilon | well one has to start from simple |
14:18:39 | Araq | so that I never to use pathetic terminals ever again |
14:18:42 | kilon | making an IDE is a ton of work |
14:18:56 | kilon | especially a good one |
14:19:03 | coffepot | depends on what you consider an IDE |
14:19:07 | * | failureAtLife joined #nim |
14:19:28 | * | coffepot is now known as coffeepot |
14:19:59 | * | failureAtLife is now known as failedcoder |
14:20:03 | kilon | coffeepot: if was in snob mode, I would say that i consider Pharo/Smalltalk and Delphi as the only true IDEs |
14:20:05 | bogen | if I can shell out or run an external command and gets it's output in my editor, I consider that an IDE |
14:20:13 | kilon | maybe emacs too ? maybe |
14:20:50 | coffeepot | imho if aporia had integrated debugging and nimsuggest suggested procs and vars after '.', I would be totally happy |
14:21:04 | kilon | the rest of IDEs I have used are from very bad to meh ok |
14:21:14 | Araq | speaking of which, why 2>&1 >error.txt doesn't work? |
14:22:14 | Araq | kilon: yeah but I would only implement what I personally need when I need it. and maybe I wouldn't even open source it |
14:22:25 | kilon | what I want from an IDE, is inspector , debugger, manipulation of live objects, version control gui, auto completion, method and class finder , onboard documentation , gui designers |
14:22:46 | kilon | Araq: ah ok |
14:23:05 | kilon | anyway i am ok without an ide with nim for using it for small code fragments for small libs |
14:23:06 | coffeepot | to me gui designers shouldn't be a requirement. Delphi only has that because the vcl is tied to the language |
14:23:15 | kilon | i love using emacs anyway |
14:23:20 | coffeepot | other than that i agree |
14:24:18 | kilon | i may wrap nim to use the Pharo ide anyway, gokr already have made his own integration from he told me |
14:24:44 | kilon | but i should be ok with just emacs or Sublime |
14:25:14 | kilon | coffeepot: if i was making gui apps, a gui design would have been a must have |
14:25:18 | * | Demos joined #nim |
14:25:37 | kilon | actually XCode on macos is pretty decent |
14:26:07 | Araq | kilon: IO redirection doesn't work for OpenQwaq, any idea? |
14:26:47 | * | xcombelle joined #nim |
14:27:41 | kilon | Araq: well i took a look at OpenQwaq because it has an interface for python as an example to use for my own project that also interface with python and ended up making my own socket implementation |
14:27:48 | kilon | i did not understand the code frankly |
14:28:10 | kilon | its a dead project anyway |
14:28:15 | kilon | if i am not mistaken |
14:28:18 | * | Rishavs quit (Ping timeout: 246 seconds) |
14:28:24 | * | yglukhov_ joined #nim |
14:29:22 | kilon | Araq: you could ask at the squeak mailing list |
14:29:50 | Araq | never mind, it kind of worked |
14:29:50 | kilon | i am not even using squeak, i am using pharo, its a fork for squeak but have changed so much its no longer compatible |
14:30:11 | kilon | good |
14:30:13 | Araq | I have Pharo open right now too |
14:30:25 | Araq | looks quite nice |
14:30:31 | kilon | its awesome |
14:30:54 | kilon | has its flaws, but is so brilliantly designed |
14:31:03 | kilon | even for a smalltalk |
14:31:32 | kilon | if you have pharo 4 or 5, hit shift+enter, for the Spotter tool |
14:31:48 | kilon | its a finder, on steroids |
14:32:12 | * | yglukhov quit (Ping timeout: 264 seconds) |
14:32:28 | kilon | full navigatable with shortcuts, has previews, its own plugin system and much more |
14:32:30 | * | yglukhov_ quit (Ping timeout: 245 seconds) |
14:32:37 | kilon | can even nagigate through directories |
14:35:07 | kilon | i extended it with only few lines of code, to even search help documentation and preview it and open it on enter |
14:38:25 | kilon | here is a tutorial i made for Spotter --> https://www.youtube.com/watch?v=mNh6VtPy8m4 |
14:56:29 | * | key_ quit (Quit: Konversation terminated!) |
15:26:28 | * | elbow joined #nim |
15:29:12 | * | kilon quit (Ping timeout: 264 seconds) |
15:29:34 | * | kilon joined #nim |
15:29:48 | * | kilon_ quit (Read error: Connection reset by peer) |
15:30:31 | * | thekilon joined #nim |
15:30:38 | * | thekilon quit (Remote host closed the connection) |
15:32:12 | * | Jehan_ joined #nim |
15:32:39 | * | drewsrem joined #nim |
15:32:45 | drewsrem | Is there an option to have packed seqs? |
15:33:14 | drewsrem | or are seqs never aligned? |
15:33:50 | * | kilon quit (Client Quit) |
15:34:53 | * | jszymanski quit (Ping timeout: 260 seconds) |
15:35:58 | * | jszymanski joined #nim |
15:36:00 | * | yglukhov joined #nim |
15:38:43 | Jehan_ | drewsrem: What precisely do you mean by a packed seq? |
15:38:55 | Jehan_ | Internally, a seq is basically a dynamic C array. |
15:39:21 | r-ku | drewsrem if you want some kind of abi compatibility use arrays |
15:39:34 | * | zaspard joined #nim |
15:40:06 | Jehan_ | struct { ssize_t capacity, len; ElemType data[n] }, basically. |
15:40:07 | * | sparrk joined #nim |
15:40:30 | Jehan_ | Oops, missed a semicolon, but you get the idea. |
15:42:43 | drewsrem | Thanks I see |
15:44:57 | sparrk | Hey guys, I've been working on putting together a ffi tutorial for calling Nim from Ruby. I'm still kinda new to Nim and I'd like some help figuring out how to *debug* when I get these types of problems: `SIGSEGV: Illegal storage access. (Attempt to read from nil?)` My |
15:45:20 | sparrk | Nim code is here https://gist.github.com/zachaysan/eacba793c66f848a7135 and the Ruby code calling it is here: https://gist.github.com/zachaysan/71c0cf0ddf63782992a8 everything works except the very last line of ruby |
15:46:43 | coffeepot | i think you need to call new(Person) as it's a ref |
15:48:32 | * | yglukhov quit (Remote host closed the connection) |
15:49:10 | coffeepot | as in, var p: Person; new(p); p.age = 55 |
15:49:11 | sparrk | Ah thank you very much |
15:49:24 | sparrk | oh, no, the Nim code worked |
15:49:25 | coffeepot | :) |
15:49:29 | sparrk | but the key insite |
15:49:31 | sparrk | insight |
15:49:58 | sparrk | was to change the Person declaration to ` Person* = object` |
15:50:13 | sparrk | thanks for your help! |
15:50:34 | coffeepot | np :D |
15:53:59 | * | sparrk quit (Read error: Connection reset by peer) |
15:54:47 | * | darkf quit (Quit: Leaving) |
16:02:19 | drewsrem | Is there some bitarray module I'm overlooking? |
16:03:34 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
16:03:51 | * | ozra quit (Ping timeout: 246 seconds) |
16:04:03 | Jehan_ | drewsrem: Depends on what exactly you need? |
16:04:26 | drewsrem | Just a container that compactly stores bits |
16:04:43 | Jehan_ | sets are bit arrays underneath, but have a fixed length with a maximum size of 64k. |
16:05:03 | Jehan_ | The intset module is a flexible, sparse bit array. |
16:05:04 | * | brson joined #nim |
16:05:05 | drewsrem | Ah that'll do it |
16:05:07 | Jehan_ | intsets* |
16:08:55 | * | Demos quit (Remote host closed the connection) |
16:16:16 | drewsrem | it seems sizeof is broken in macros, if I take a typed param X and I echo X.getType.sizeof I always get back 8 it seems |
16:16:29 | drewsrem | or I'm confusing things |
16:18:19 | fowl | Because thats a pointer its size is 8bytes |
16:20:38 | drewsrem | Any solution? |
16:20:44 | drewsrem | I can't dereference it in a macro? |
16:21:03 | * | greyrhino quit (Remote host closed the connection) |
16:21:51 | drewsrem | I can but I can't sizeof it |
16:22:33 | * | ChrisMAN quit (Quit: Leaving) |
16:23:09 | fowl | Well |
16:23:13 | fowl | Its a nimnode |
16:23:16 | fowl | Ast |
16:23:37 | fowl | Surely you dont want the size of that but the underlying type right |
16:24:12 | drewsrem | I do |
16:24:22 | drewsrem | ah |
16:24:23 | drewsrem | no |
16:24:24 | drewsrem | yes |
16:24:26 | drewsrem | the latter |
16:25:08 | drewsrem | Macro, takes a typed param, echoes the size of the type of typed param |
16:25:22 | drewsrem | Ah which is Nimnode |
16:25:24 | drewsrem | so nvm |
16:25:26 | drewsrem | What you said |
16:26:48 | fowl | You have to find the symbol you need from that ast (its not real code coming from getType(), its a type graph) and emit sizeof(thesym) |
16:27:01 | fowl | and you cant get that at compile time afaik |
16:27:29 | drewsrem | meh |
16:27:58 | drewsrem | fowl, thanks tho |
16:28:13 | * | Demos joined #nim |
16:30:20 | drewsrem | right, the compiler does alignment and stuff, can't work |
16:31:13 | * | pregressive joined #nim |
16:32:57 | fowl | At best it could only guess what size c will give the data |
16:39:16 | drewsrem | Well nim does know the size of types like uint8 int16 etc. right |
16:39:22 | drewsrem | and packed objects |
16:39:30 | drewsrem | So that's something |
16:39:38 | drewsrem | I guess |
16:40:33 | * | drewsrem quit (Quit: Leaving) |
16:49:09 | * | yglukhov joined #nim |
16:49:29 | Demos | you can pretty much predict data layout |
16:49:45 | Demos | and C actually provides alignment flags |
16:53:50 | * | yglukhov quit (Ping timeout: 265 seconds) |
17:00:57 | * | askatasuna joined #nim |
17:03:38 | * | grumbly joined #nim |
17:06:32 | grumbly | I've a git nim repo question (the #git irc is silent). One local copy I have is from version 0.10.2 (devel). I'm trying to update via 'git fetch origin devel' then 'git merge origin devel' but the result is... I'm now at version 0.10.3. What's going on? |
17:08:12 | grumbly | As a workaround I delete my local repo, then git clone again to get the latest. Why do I have to do this every time, and only for the nim repository. I don't have this issue with others. |
17:09:42 | Jehan_ | grumbly: Huh, nim-lang/nim devel should be at 0.11.3? |
17:11:59 | Jehan_ | And git describe HEAD gives me: v0.11.2-987-gb251625 |
17:12:35 | Jehan_ | (On devel.) |
17:13:37 | * | Rishavs joined #nim |
17:15:12 | reactormonk | grumbly, try devel branch |
17:16:55 | grumbly | I thought the devel branch was what I was trying by 'git fetch origin devel' then 'git merge origin/devel' |
17:17:09 | grumbly | And I was on my local devel branch |
17:18:00 | grumbly | Ah, the stored remote repository was using the old ...Araq/nim.git address. That's probably why. |
17:18:16 | * | sparrk joined #nim |
17:19:42 | grumbly | And I had several old local copies, attempting to update them in turn so it seemed like it "kept happening" over a long period. |
17:30:44 | * | key_ joined #nim |
17:34:14 | * | yglukhov joined #nim |
17:40:50 | * | Demos_ joined #nim |
17:43:14 | * | X67r joined #nim |
17:43:18 | * | Demos_ quit (Read error: Connection reset by peer) |
17:43:39 | * | Demos_ joined #nim |
17:44:33 | * | Demos quit (Ping timeout: 250 seconds) |
18:03:45 | * | sparrk quit (Ping timeout: 260 seconds) |
18:06:31 | * | grumbly quit (Quit: Page closed) |
18:29:43 | ldlework | Hi guys |
18:29:47 | ldlework | How's Nim coming along? |
18:36:25 | * | Jehan_ quit (Ping timeout: 260 seconds) |
18:37:32 | * | Jehan_ joined #nim |
18:57:07 | Demos_ | it's pretty cool |
18:57:09 | Demos_ | u should use it |
19:05:57 | * | sparrk joined #nim |
19:07:32 | zaspard | Nim is working out great ldlework. I've been running it in production for 2 weeks now. Granted it's doing some fairly basic stuff (postgres, api crawling, and classifying) but I haven't had problems and it is lighting fast. |
19:08:57 | sparrk | Question: are there any concerns with creating shared objects in Nim and the automatic GC if you are only using one .so file? |
19:13:49 | Demos_ | there can be |
19:14:00 | Demos_ | you gotta be careful when doing heap memory across a library |
19:14:12 | Demos_ | from nim -> nim it should be fine though |
19:14:27 | Demos_ | as long as you use nimrtl |
19:16:11 | sparrk | Well I'm making a guide as part of a push to get more Ruby devs interested in Nim |
19:16:24 | sparrk | I've put it up here for now: http://nim.community/answers/create_a_shared_library/ but I'm not sharing it around yet |
19:16:43 | Demos_ | most ruby devs probably don't know that much about how shared libraries work |
19:16:53 | Demos_ | and just use them as dependencies for their ruby project |
19:16:57 | sparrk | I have a client meeting now, but I log this channel, so if you have any more information I'll see it when I get back |
19:17:04 | Demos_ | OK have fun |
19:17:07 | sparrk | I know Demos_ but that can change with the right guides :) |
19:17:18 | Demos_ | right, but if I were a ruby dev I would not really care |
19:17:22 | sparrk | And thanks for your help |
19:17:26 | Demos_ | I would care about the metaprogramming and speed |
19:17:41 | Demos_ | and the fact that using other nim libraries from nim is seamless (and does not require a shared library) |
19:17:41 | * | sparrk quit (Read error: Connection reset by peer) |
19:18:48 | * | failedcoder quit (Ping timeout: 246 seconds) |
19:29:04 | * | Demon_Fox joined #nim |
19:35:16 | NimBot | nim-lang/Nim devel 94e5041 Araq [+0 ±1 -0]: fixes #3193 |
19:35:16 | NimBot | nim-lang/Nim devel 2e4b59f Araq [+0 ±2 -0]: fixes #3192 |
19:35:16 | NimBot | nim-lang/Nim devel c733b31 Araq [+2 ±2 -0]: breaking change: symbol lookups in generics follows spec more closely; fixes #2664 |
19:38:31 | Araq | hrm, I broke bootstrapping? |
19:39:10 | Araq | Varriount: what's wrong with the builders? |
19:41:39 | dom96 | NimBuild is building it fine |
19:42:02 | * | Raimondi quit (Ping timeout: 265 seconds) |
19:49:40 | * | Raimondi joined #nim |
19:59:24 | * | Rishavs quit (Ping timeout: 246 seconds) |
20:00:24 | * | Raimondi quit (Ping timeout: 264 seconds) |
20:02:55 | * | Raimondi joined #nim |
20:09:17 | * | Trustable quit (Remote host closed the connection) |
20:10:15 | * | Raimondii joined #nim |
20:10:31 | * | Demos_ quit (Remote host closed the connection) |
20:11:15 | * | Raimondi quit (Ping timeout: 245 seconds) |
20:11:48 | * | Raimondii is now known as Raimondi |
20:13:49 | * | Demos joined #nim |
20:24:05 | * | Raimondi quit (Ping timeout: 240 seconds) |
20:27:35 | * | Raimondi joined #nim |
20:32:21 | NimBot | nim-lang/Nim devel 87815cb Araq [+0 ±2 -0]: attempt to fix bootstrapping; refs #3139 |
20:32:39 | * | Raimondi quit (Ping timeout: 255 seconds) |
20:34:15 | Araq | when it becomes ever more hard to support building 0.11.3 from 0.11.2 it's high time we release a new version, right? |
20:36:45 | * | ehaliewicz joined #nim |
20:41:15 | * | pregressive quit (Remote host closed the connection) |
20:42:37 | * | Demos quit (Remote host closed the connection) |
20:42:57 | * | Demos joined #nim |
20:44:41 | * | Demos quit (Remote host closed the connection) |
20:45:41 | * | Raimondi joined #nim |
20:45:50 | * | Demos joined #nim |
20:49:34 | * | Demos_ joined #nim |
20:50:01 | * | Demos quit (Ping timeout: 250 seconds) |
20:57:36 | * | pregressive joined #nim |
21:02:57 | * | Raimondi quit (Ping timeout: 244 seconds) |
21:03:28 | * | xcombelle quit (Quit: Leaving) |
21:05:09 | * | jszymanski quit (Quit: computer sleeps...) |
21:10:54 | * | Raimondi joined #nim |
21:12:44 | * | Demos_ quit (Remote host closed the connection) |
21:16:28 | * | Raimondi quit (Ping timeout: 246 seconds) |
21:16:50 | * | Raimondi joined #nim |
21:25:07 | baabelfish | what is the equivalent of "const T& myVar" |
21:25:14 | baabelfish | append question mark |
21:27:01 | baabelfish | in function parameter context |
21:27:44 | * | yglukhov quit (Remote host closed the connection) |
21:30:19 | * | xificurC quit (Ping timeout: 250 seconds) |
21:33:32 | * | Jehan_ quit (Quit: Leaving) |
21:45:31 | fowl | baabelfish T |
21:45:54 | fowl | But hang on I'll link you to something |
21:47:28 | baabelfish | fowl: compiler works these thinks out for me then? :) |
21:47:33 | baabelfish | things* |
21:48:14 | fowl | Yea |
21:49:06 | fowl | The param will be immutable, will be passed by ref if its bigger than 8 bytes (some rule like that) |
21:49:07 | gokr | Varriount: The 32 bit Linux builder is down, but I will fix it after the weekend. We got guests in that room and its noisy :) |
21:49:16 | * | shodan45 joined #nim |
21:49:57 | baabelfish | fowl: if I manipulate it, it will copy it implicitly? |
21:50:16 | baabelfish | I need "Nim for C++ programmers" :D |
21:56:38 | Araq | you cannot manipulate it, it's immutable |
21:58:13 | baabelfish | "cannot be assigned to" indeed |
22:02:27 | * | pregressive quit (Remote host closed the connection) |
22:02:43 | shodan45 | so what's new in nim? I've been away for a few months :/ |
22:04:55 | * | brson quit (Quit: leaving) |
22:04:57 | Araq | shodan45: r-ku implemented proper coroutines for Nim |
22:06:09 | dom96 | Araq went to OSCON |
22:06:13 | dom96 | and did a tutorial |
22:06:46 | Araq | oh yeah |
22:07:02 | dom96 | Araq: I still didn't get an email from them btw |
22:09:48 | * | kilon joined #nim |
22:14:20 | * | saml quit (Quit: Leaving) |
22:14:51 | * | Varriount_ joined #nim |
22:14:51 | * | pregressive joined #nim |
22:15:35 | * | ehaliewi` joined #nim |
22:18:03 | * | Varriount quit (Ping timeout: 245 seconds) |
22:18:33 | * | ehaliewicz quit (Ping timeout: 260 seconds) |
22:27:45 | * | yglukhov joined #nim |
22:28:04 | baabelfish | Why isn't initialization allowed in the definition off a type? |
22:28:08 | baabelfish | of* |
22:32:17 | * | yglukhov quit (Ping timeout: 250 seconds) |
22:33:51 | dom96 | baabelfish: I'm not sure there is a reason. But it would just be some syntax sugar. |
22:34:21 | dom96 | If you would really like to see it then create an RFC/Feature request on Github, describe exactly what you want though. |
22:34:29 | dom96 | with examples etc |
22:37:27 | * | Raimondii joined #nim |
22:38:21 | baabelfish | dom96: ok |
22:42:00 | * | silven_ joined #nim |
22:44:49 | * | X67r quit (Quit: leaving) |
22:47:45 | * | askatasuna quit (Ping timeout: 240 seconds) |
22:49:08 | * | seumirem1rque joined #nim |
22:49:11 | * | Raimondi quit (*.net *.split) |
22:49:11 | * | zaspard quit (*.net *.split) |
22:49:11 | * | seumiremorque quit (*.net *.split) |
22:49:12 | * | silven quit (*.net *.split) |
22:49:12 | * | BitR quit (*.net *.split) |
22:49:35 | * | zaspard joined #nim |
22:51:36 | * | BitR joined #nim |
22:51:48 | * | Raimondii is now known as Raimondi |
22:53:35 | * | gokr quit (Ping timeout: 256 seconds) |
22:56:42 | NimBot | nim-lang/Nim devel 7bc3d7d Yuriy Glukhov [+0 ±1 -0]: Fixes #3186 |
22:56:42 | NimBot | nim-lang/Nim devel 8668c42 Andreas Rumpf [+0 ±1 -0]: Merge pull request #3190 from yglukhov/fix-3186... 2 more lines |
22:57:07 | NimBot | nim-lang/Nim devel 3fe3979 Ryan Gonzalez [+0 ±1 -0]: Fix contributing guide rST |
22:57:07 | NimBot | nim-lang/Nim devel 06a8c37 Andreas Rumpf [+0 ±1 -0]: Merge pull request #3156 from kirbyfan64/contr_fix... 2 more lines |
22:57:19 | * | kilon quit (Remote host closed the connection) |
22:58:31 | * | gsingh93 quit (Quit: ZNC - http://znc.in) |
23:11:37 | * | MyMind joined #nim |
23:12:24 | * | gsingh93 joined #nim |
23:13:19 | * | Sembei quit (Ping timeout: 252 seconds) |
23:13:36 | * | Demon_Fox quit (Ping timeout: 264 seconds) |
23:27:46 | * | askatasuna joined #nim |
23:43:30 | * | askatasuna quit (Ping timeout: 240 seconds) |