00:02:33 | * | gokr_ joined #nim |
00:08:21 | * | yglukhov joined #nim |
00:08:29 | * | gokr_ quit (Quit: IRC for Sailfish 0.9) |
00:09:37 | * | boop is now known as boopisaway |
00:13:01 | * | yglukhov quit (Ping timeout: 264 seconds) |
00:16:39 | * | BitPuffin|osx joined #nim |
00:21:28 | * | jaco60 quit (Ping timeout: 256 seconds) |
00:43:12 | * | JinShil joined #nim |
00:44:41 | * | kumul joined #nim |
00:48:12 | dsadsad | vikaton, a pure FP language will open your mind and make you a better programmer in general even if you never use it for anything after learning it. General higher level abstractions (functors, monads...) + Immutability + Modeling your domain as types are eye openers imo |
00:48:30 | apense | quick question (give me a second to type it) regarding the AST for ranges |
00:48:34 | dsadsad | you can apply all that to C++ or any other language if you want |
00:48:41 | vikaton | dsadsad: thanks for the insight |
00:48:59 | dsadsad | and if you really want to understand it, Haskell is the only choice imo |
00:49:11 | dsadsad | otherwise you can always use the escape hatch and not reall understand |
00:49:20 | dsadsad | really* |
00:50:22 | apense | 3..5 the documentation leads me to believe it is represented as nnkRange(nnkIntLit(3), nnkIntLit(5)) |
00:51:21 | apense | but it really seems like it is nnkInfix(nnkIdent(!".."),nnkIntLit(3),nnkIntLit(5)) |
00:51:22 | dsadsad | look at the macro module i think, you can use dumptree if i remember correctly to see the ast representation of expressions |
00:51:36 | apense | yeah dumptree is giving me the latter |
00:51:40 | Demos | you could also just study math |
00:51:58 | dsadsad | Demos, you cant execute math |
00:52:17 | Demos | I don't really want to execute math tho |
00:52:34 | apense | I actaully can't find nnkRange used anywhere. I'm wondering if it got moved to infix notation to support "..<" or something |
00:52:40 | dsadsad | in theory, practice == theory, but in practice , theory != pratice |
00:53:07 | Demos | and I don't think that applying haskell knowlege to c++ will result in much better c++ programs, but that's a grump speaking. Def thinking about these things and getting used to math will make you a better programmer |
00:53:17 | Demos | these things being abstractions and proofs |
00:53:34 | dsadsad | lol |
00:53:36 | * | JinShil quit (Quit: Konversation terminated!) |
00:53:50 | dsadsad | it will definitly make your c++ better |
00:53:51 | dsadsad | WAY better |
00:54:18 | Demos | you should be damn sure you know what code those FP abstractions are generating |
00:54:26 | Demos | is all I'm saying |
00:54:28 | dsadsad | ... |
00:54:38 | dsadsad | you can look at the source for all of them |
00:54:47 | dsadsad | and any book that is worth its salt with explain them |
00:54:49 | Demos | c++ tends to encourage really super "abstract", "general", and totally impossible to understand designs |
00:55:00 | Demos | so just don't do that |
00:55:19 | Demos | but use the FP stuff when it actually solves the problems you have |
00:55:33 | Demos | we're probably agreeing with each other very loudly rn |
00:55:45 | dsadsad | so you disagree with john carmak? |
00:55:50 | apense | algebraic data types alone make Haskell worth the time to learn it |
00:55:50 | dsadsad | i guess he doesnt know what hes saying |
00:56:26 | dsadsad | apense: +1 |
00:56:30 | Demos | I think I was agreeing with John carmack |
00:56:37 | dsadsad | immutability by default is worth it too |
00:57:03 | dsadsad | + functors / applicative + monads |
00:57:03 | Demos | I think immutability by default is great, but I don't think its nessassary on stack vars |
00:57:10 | dsadsad | would be the main ones + no side effects |
00:57:10 | Demos | just bc they are so limited in scope |
00:57:40 | dsadsad | local immutability no, but in general yes |
00:58:05 | dsadsad | a -> b, not a -> io b |
00:58:20 | Demos | sure |
01:04:15 | * | ErikBjare_ quit (Ping timeout: 265 seconds) |
01:07:05 | * | ErikBjare_ joined #nim |
01:09:30 | ozra | Demos: dsadsad: local immutability is great. Use let for most things. Don't fool your self thinking limited scope will not shoot you in the foot ;-) |
01:09:55 | ozra | (now, I was ofc tying in the FP debate into Nim... ;) |
01:10:13 | Demos | it depends on what kind of program I'm writing |
01:10:26 | dsadsad | of course let most thing, only use mut for speed optimization |
01:10:28 | Demos | def use let for constants and stuff, maybe not always for objects |
01:10:31 | dsadsad | if you really need it |
01:10:48 | dsadsad | but expose it as immutable |
01:10:56 | ozra | yeah. |
01:11:10 | Demos | I write lots of graphics code and stuff, and yeah ofc exposing mutability on your API is something to do with care |
01:11:31 | Demos | like often needed (you probably want to be able to change the settings of your code) |
01:11:32 | ozra | look forward to simpler declaration of purity in different forms in nim. pure funcs will be a start. |
01:11:34 | Demos | but do with care |
01:11:47 | Demos | well we have {.noSideEffect.} |
01:11:52 | Demos | but yeah dat func keyword |
01:12:07 | dsadsad | i just use .push noSideEffect |
01:12:11 | ozra | Demos: Yeah, lock in as much as possible into a black box. expose some parts, make debug assert helper funcs for accessing it.. etc. |
01:12:14 | dsadsad | but then you have to pop to turn it off T_T |
01:12:27 | Demos | yeah asserts are G O D L I K E |
01:12:31 | ozra | Demos: yeah - easier/cleaner decl |
01:13:13 | Demos | I write with side effects on most of the time, but thats because I'm writing graphics code in nim with a lot of FFI calls and stuff |
01:13:34 | Demos | (Incidently this is my main gripe with haskell, its not great at doing graphics stuff) |
01:13:55 | ozra | when writing blackbox code with procs actually doing side effects.. Then's when it becomes nice to cleanly make as many funcs as possible pure, and clearly so, without long pragmas.. |
01:14:36 | ozra | hard to have a push nosideeffect in those situations. |
01:15:33 | ozra | Demos: manipulating gfx can be good in Has, but efficient gfx... nah ;) |
01:15:43 | Demos | yeah, exactly |
01:16:10 | Demos | yeah I like opt in for debugging as well, like being able to see who is having side-effects is nice |
01:16:21 | Demos | even if I don't always want to write all my functions that way |
01:16:24 | dsadsad | ive seen plenty of fast gfx stuff in haskell |
01:16:29 | dsadsad | with fusion stuff |
01:16:41 | dsadsad | let me find the demos |
01:16:49 | Demos | thanks! I'd love to see |
01:16:58 | ozra | guys, have a good night/day/whatever you've got. Time for me to enter dream land. Gnite! |
01:21:13 | * | ozra quit (Ping timeout: 246 seconds) |
01:23:46 | dsadsad | damn ill try to find the example i had before, there was plenty of plasma / noise effects/ image manipulation, i cant seem to find them right now but the library is called Repa |
01:23:56 | dsadsad | ill search some more for the examples |
01:27:23 | reactormonk | dsadsad, was just a random idea, doing something more useful for nim instead |
01:27:27 | vikaton | dsadsad: is learn u a haskell a good book ? |
01:28:00 | dsadsad | http://learnyouahaskell.com/chapters is really good |
01:28:19 | vikaton | ok cool, im going through it right now |
01:28:48 | vikaton | hopefully learning haskell and FP will help me become a better programmer, and help me with my math grade :P |
01:29:23 | dsadsad | it changed completly how i program |
01:30:21 | reactormonk | Araq/dom96 - need a bit of help @ https://github.com/nim-lang/Nim/pull/2918 |
01:32:20 | * | TEttinger joined #nim |
01:34:59 | * | TEttinger quit (Client Quit) |
01:35:12 | dsadsad | Demos: https://hackage.haskell.org/package/gloss-examples-1.9.4.1/src/ |
01:35:15 | dsadsad | i think that was it |
01:35:48 | dsadsad | https://www.youtube.com/watch?v=jBd9c1gAqWs |
01:35:57 | dsadsad | https://www.youtube.com/watch?v=v_0Yyl19fiI |
01:37:52 | vikaton | dsadsad: in a good way of course? |
01:38:13 | dsadsad | lol yes |
01:38:39 | dsadsad | and it really helps to understand how to program in javascript |
01:39:38 | dsadsad | when crockford was talking about monads and stuff before i learned haskell i didnt understand any of it, it was pretty easy to understand after :D |
01:40:27 | dsadsad | you can cheat in haskell, so you have to either learn or ... quit lol |
01:40:30 | dsadsad | cant* |
01:41:05 | * | TEttinger joined #nim |
01:48:39 | * | TEttinger quit (Ping timeout: 276 seconds) |
01:49:59 | * | TEttinger joined #nim |
01:50:04 | vikaton | Cool |
01:50:25 | * | Varriount quit (Read error: Connection reset by peer) |
01:59:52 | * | perturbation joined #nim |
02:03:42 | perturbation | hey all - I'm getting a really weird issue with nimfix. It compiles (after some finagling with the path in nimfix.nim.cfg) but complains about improper indentation errors seemingly due to comment alignment |
02:06:00 | * | darkf joined #nim |
02:06:22 | perturbation | (i.e., semantic comment indentation as was in a previous version of Nim) |
02:06:39 | perturbation | I'll do some more poking and submit an issue if I can get some good examples |
02:08:29 | * | perturbation quit (Quit: Leaving) |
02:29:37 | * | fowl quit (Excess Flood) |
02:31:13 | * | fowl joined #nim |
02:44:51 | * | eratron joined #nim |
02:46:14 | * | eratron left #nim (#nim) |
02:58:34 | * | fowl quit (Excess Flood) |
02:58:47 | * | fowl joined #nim |
02:58:47 | * | fowl quit (Changing host) |
02:58:47 | * | fowl joined #nim |
02:58:47 | * | fowl quit (Changing host) |
02:58:47 | * | fowl joined #nim |
03:10:00 | * | enquora quit (Quit: enquora) |
03:13:40 | * | johnsoft quit (Ping timeout: 264 seconds) |
03:15:17 | * | johnsoft joined #nim |
03:31:15 | * | dddddd quit (Ping timeout: 250 seconds) |
03:44:43 | * | dbotton joined #nim |
04:03:32 | * | askatasuna joined #nim |
04:04:32 | * | askatasuna quit (Client Quit) |
04:05:47 | dbotton | is there a web site that shows the available nim code for reuse? |
04:06:50 | reactormonk | dbotton, github is probably the closest |
04:07:45 | dbotton | ok, is there an implementation of websockets is one in particular I'm looking for, any suggestions? |
04:08:56 | reactormonk | dbotton, https://github.com/onionhammer/onion-nimrod/tree/master/websockets |
04:09:57 | reactormonk | not sure if that builds on top of https://github.com/nim-lang/Nim/blob/devel/lib/pure/asynchttpserver.nim |
04:12:54 | dbotton | looking |
04:13:09 | dbotton | no TLS, but a start |
04:14:13 | dbotton | I think can run a few tests with that |
04:15:01 | * | Demos quit (Read error: Connection reset by peer) |
04:15:22 | dbotton | Is there any tasking demos with Nim? |
04:17:05 | reactormonk | dbotton, tasking? |
04:18:47 | dbotton | concurrency |
04:18:56 | dbotton | threads, etc |
04:19:02 | * | BitPuffin|osx quit (Ping timeout: 265 seconds) |
04:21:30 | reactormonk | there's some with asynchttpserver IIRC |
04:21:47 | reactormonk | I don't know too much about that though |
04:30:06 | dbotton | found some info in manual, looking |
04:41:36 | dbotton | given the rest of the language, very ugly |
04:43:13 | * | gour joined #nim |
04:44:30 | dbotton | anyone know where the async feature is? mentioned in manual but nothing more and not in threadpool module |
04:46:13 | fowl | Asyncdispatch |
04:47:05 | dbotton | thanks |
04:49:48 | dbotton | hello, gour, as per my email looking at nim |
04:50:07 | gour | hiya dbotton |
04:51:31 | gour | dbotton: in regard to your desired feature, I believe you have to wait a bit until Araq appears from somewhere being in EU zone |
04:56:06 | dbotton | SSL is in the sauce, undocumented but in the net package, newContext and wrapSocket |
04:57:07 | dbotton | websocket example use a deprocated? Socket import |
05:09:06 | * | NimBot joined #nim |
05:31:48 | * | agent_dtscode is now known as dtscode |
05:42:19 | * | TEttinger quit (Read error: Connection reset by peer) |
05:42:39 | * | TEttinger joined #nim |
05:48:35 | * | dalarmmst quit (Quit: Leaving) |
05:50:09 | * | gour quit (Remote host closed the connection) |
05:51:50 | * | darkf_ joined #nim |
05:54:37 | * | darkf quit (Ping timeout: 240 seconds) |
05:54:39 | * | darkf_ is now known as darkf |
05:54:47 | * | gour joined #nim |
06:05:56 | * | gour quit (Ping timeout: 246 seconds) |
06:10:03 | * | Demon_Fox quit (Quit: Leaving) |
06:32:04 | * | gour joined #nim |
06:33:39 | * | gokr_ joined #nim |
06:46:12 | * | Miko_____ joined #nim |
06:46:42 | * | kumul quit (Quit: Leaving) |
07:03:00 | * | zikolach joined #nim |
07:08:51 | * | Trustable joined #nim |
07:20:04 | * | jszymanski joined #nim |
07:32:36 | * | yglukhov joined #nim |
07:34:28 | * | Ven joined #nim |
07:39:28 | * | Demon_Fox joined #nim |
07:47:07 | * | Kingsquee quit (Quit: Konversation terminated!) |
07:50:25 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
07:50:25 | * | xificurC quit (Quit: WeeChat 1.2) |
07:50:43 | * | xificurC joined #nim |
07:56:50 | * | afiskon joined #nim |
08:05:22 | * | woadwarrior joined #nim |
08:14:25 | * | coffeepot joined #nim |
08:14:55 | * | Miko_____ quit (Ping timeout: 276 seconds) |
08:16:37 | * | johnsoft quit (Ping timeout: 240 seconds) |
08:17:39 | * | johnsoft joined #nim |
08:22:30 | * | johnsoft quit (Ping timeout: 244 seconds) |
08:22:50 | * | johnsoft joined #nim |
08:25:43 | * | ozra joined #nim |
08:27:30 | * | jszymanski quit (Quit: computer sleeps...) |
08:29:28 | * | kas_ joined #nim |
08:37:19 | * | kas_ quit (Ping timeout: 245 seconds) |
08:52:44 | * | elbow_json joined #nim |
08:52:44 | * | elbow_jason quit (Read error: Connection reset by peer) |
08:59:44 | * | yglukhov_ joined #nim |
09:02:27 | * | zikolach quit (Quit: Leaving) |
09:02:49 | * | yglukhov quit (Ping timeout: 255 seconds) |
09:03:23 | * | Demon_Fox quit (Quit: Leaving) |
09:03:34 | * | gokr_ quit (Ping timeout: 245 seconds) |
09:04:43 | * | gokr_ joined #nim |
09:08:45 | * | milosn quit (Quit: leaving) |
09:12:13 | * | Miko_____ joined #nim |
09:13:37 | * | jh32 quit (Ping timeout: 264 seconds) |
09:14:47 | * | Trustable quit (Remote host closed the connection) |
09:15:29 | * | Trustable joined #nim |
09:15:44 | * | Trustable quit (Remote host closed the connection) |
09:18:42 | * | Trustable joined #nim |
09:18:43 | * | gokr_ quit (Read error: Connection reset by peer) |
09:19:12 | * | Trustable quit (Remote host closed the connection) |
09:19:57 | * | Trustable joined #nim |
09:23:55 | * | Miko_____ quit (Ping timeout: 256 seconds) |
09:24:17 | * | allan0 joined #nim |
09:26:24 | * | HaCk3D joined #nim |
09:26:32 | HaCk3D | ping |
09:28:08 | dtscode | pong |
09:36:38 | * | kas_ joined #nim |
09:40:23 | HaCk3D | https://github.com/nim-lang/Nim/issues/2573 |
09:40:27 | HaCk3D | working on this stugg now |
09:40:32 | HaCk3D | stuff* |
09:40:45 | HaCk3D | but i dont get the problem |
09:41:12 | HaCk3D | osLastError is not set |
09:41:18 | HaCk3D | properly or what? |
09:43:09 | * | kas_ quit (Ping timeout: 276 seconds) |
09:49:24 | * | TEttinger quit (Ping timeout: 245 seconds) |
09:51:01 | * | kas_ joined #nim |
09:55:47 | * | Senketsu joined #nim |
10:00:02 | * | yglukhov_ quit (Quit: Be back later ...) |
10:01:15 | * | Arrrr joined #nim |
10:11:23 | * | jaco60 joined #nim |
10:11:58 | * | gokr_ joined #nim |
10:17:58 | * | Miko_____ joined #nim |
10:21:37 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:37:55 | Araq | HaCk3D: the problem is that OSError exception is constructed without setting the 'errno' field or whatever it's called |
10:42:11 | * | JinShil joined #nim |
10:46:17 | * | yglukhov_ joined #nim |
10:51:05 | * | kas joined #nim |
10:51:16 | * | kas_ quit (Ping timeout: 255 seconds) |
11:01:38 | Arrrr | "Nim is like writing C at the speed of |
11:01:41 | Arrrr | Python, and running Python at the speed of C." |
11:01:43 | Arrrr | good one |
11:02:17 | * | Miko_____ quit (Ping timeout: 264 seconds) |
11:08:54 | * | woadwarrior quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
11:09:59 | fowl | Speed of python? Did python get better or does now suck terribly |
11:11:53 | Arrrr | Read it again |
11:16:31 | * | gokr_ quit (Read error: Connection reset by peer) |
11:17:45 | gokr | fowl: Yo! :) |
11:18:42 | gokr | Yesterday I got a trivial REPL going for Ni. Mainly because I want to make interactive tutorials. |
11:22:26 | fowl | oh |
11:22:41 | fowl | now i have to skip that and make a gui to beat you |
11:22:45 | gokr | Hehe |
11:22:46 | fowl | skip that step |
11:23:05 | gokr | This is the REPL: https://github.com/gokr/ni/blob/master/nirepl.nim |
11:23:31 | * | drewsrem joined #nim |
11:23:31 | gokr | And you can run it with a file like this: https://github.com/gokr/ni/blob/master/tutorial1.ni |
11:23:56 | gokr | The lines saying "# pause" will cause the REPL to wait for a keypress, and if you hit enter it will eval and go on. |
11:24:17 | gokr | If you hit s it will suspend so that you can mess around - and when you type in "c" and hit enter it will continue the script. |
11:24:23 | gokr | Trivial, but works. |
11:24:56 | gokr | But yes, one thing that the Smalltalkers did *right* back in the 70s was that they made the UI very early on. |
11:25:14 | gokr | Since after all - that was what the Smalltalk project was all about. |
11:25:46 | gokr | Do you have a plan for the UI? |
11:26:03 | gokr | Also, can you point me at something... if I would like to play with targetting your VM? |
11:26:42 | fowl | point you at what? |
11:26:56 | gokr | Dunno :) Something that shows me how to target your VM. |
11:27:36 | gokr | You generate an AST and make bytecodes from that or? |
11:28:00 | fowl | ok well i was thinking about writing a second vm for an imperative language that would use the same object model |
11:28:33 | fowl | yes ast -> bytecode |
11:29:06 | Araq | does anybody use the code that the Nim compiler itself uses for its VM? :-( |
11:29:06 | fowl | its really easy, all there is to do is send or create a block or push some literal value |
11:30:02 | * | fowl coughs >_> |
11:30:04 | * | BitPuffin|osx joined #nim |
11:30:09 | gokr | Araq: I have no idea how well that would fit fowl's or my language. |
11:30:15 | drewsrem | Is there a way that constructing tuples, explicitly as a user-defined type tuple, still can use implicit conversion on their types (i.e. http://ix.io/j6h ), like it works with objects? |
11:30:30 | drewsrem | on their types = on their parameters* |
11:33:28 | Arrrr | i think with tuples you can write like this: (x=1.1, y=2), but im not sure |
11:34:02 | Araq | drewsrem: well the problem is that you write 2 to mean 2.0, so that cannot work |
11:34:25 | drewsrem | Araq, in the OVector2D implicit-conversion converts it to 2.0 no? |
11:34:54 | drewsrem | Arrrr, x:1.1, x:2, right, I get sort-of the same error message tho, it doesn't implicitly convert the int to a float |
11:35:35 | Araq | yes but that's because T(0, 1) is a typed expression and (0, 1) is not |
11:36:15 | Araq | it's not how type checking works, it doesn't pull into account every possible context, var x: T = expr # expr knows nothing about 'T' |
11:36:27 | Araq | the type of 'expr' is not 'T' |
11:36:42 | drewsrem | I see |
11:37:11 | drewsrem | Well, is there an object-constructor equivalent for tuples then where I can explicitly use my tuple-type? |
11:37:57 | drewsrem | like: var t = TVector2D(x:1.1, y:2) |
11:39:18 | * | synthmeat quit (Quit: The way to get started is to quit talking and begin doing.) |
11:39:35 | * | synthmeat joined #nim |
11:39:51 | Araq | if you want that why is it a tuple to begin with? just use an object |
11:40:15 | fowl | drewsrem, try the basic2d module |
11:40:48 | drewsrem | Right, I sort-of don't have that much of an understanding what the difference is and I assumed that tuples are just less-overhead objects, I basically just wanted a c-struct. - In short: is there any merit to tuples being "lighter" then objects? |
11:41:04 | drewsrem | fowl, thanks, I'll look into that |
11:41:29 | fowl | drewsrem, there is no overhead in using an object without a case statement or inheritance |
11:41:48 | drewsrem | fowl, oh thanks, that clearly shows I was misguided |
11:41:50 | fowl | tuples are anonymous structs, (int,int) will match another (int,int) |
11:42:35 | * | Ven joined #nim |
11:42:48 | Arrrr | what do you mean when you say using objects without case statement? |
11:43:12 | drewsrem | Object variants? |
11:43:37 | fowl | yes variant object |
11:43:44 | Arrrr | I was thinking in that. What is the overhead there? |
11:44:08 | fowl | accessing a field in debug mode will perform a check that you should already have performed |
11:44:40 | Arrrr | I see, it is too expensive? |
11:44:59 | fowl | also the variant wont be 1 byte it will be aligned |
11:45:03 | * | dddddd joined #nim |
11:45:04 | fowl | nah |
11:45:30 | fowl | and its a good thing because it will help you catch errors but its off in release mode |
11:45:38 | Araq | gokr: register based VM with parameter passing and fixed size instructions plus attached debug info ... let's see ... sounds pretty useful for many languages |
11:46:14 | Arrrr | nice |
11:46:18 | gokr | Araq: Probably so. Just not sure I would grok it. ;) But I can take a look. |
11:46:27 | Araq | exception handling also implemented |
11:46:28 | * | zahary quit (Read error: Connection reset by peer) |
11:46:52 | Araq | it's lots of code but you can easily throw away most opcodes for you lang |
11:47:03 | * | HaCk3D quit (Read error: Connection reset by peer) |
11:47:22 | Araq | *your |
11:49:47 | * | HaCk3D joined #nim |
11:54:29 | Arrrr | Is it the current TODO the final version or it is going to be revisited? https://github.com/nim-lang/Nim/blob/devel/todo.txt#L20-L34 |
11:56:30 | HaCk3D | dom96 ping |
12:01:52 | fowl | The bitwise 'not' operator will be renamed to 'bnot' - yes praise nimrod the mighty hunter |
12:05:49 | * | boopisaway is now known as boop |
12:09:16 | * | banister joined #nim |
12:09:42 | Arrrr | why not just "BinaryNotDoNotGetConfusedWithLogicalNot" |
12:09:50 | * | wb quit (Ping timeout: 252 seconds) |
12:10:00 | * | Miko_____ joined #nim |
12:10:03 | OnO | Araq: can I ping you about merging these colors PR? did you see my remark about enabling it conditionally on windows too via isatty? |
12:10:33 | * | woadwarrior joined #nim |
12:16:37 | * | Senketsu quit (Quit: Leaving) |
12:26:54 | * | jszymanski joined #nim |
12:37:54 | * | elbow quit (Ping timeout: 252 seconds) |
12:38:21 | Araq | Arrrr: hrm the todo is a living document ... it's more up to date than our "roadmap", but doesn't really reflect my latest ideas either ... *cough* |
12:39:20 | Araq | OnO: yeah read it. are you sure terminal.nim is still compatible? |
12:40:56 | OnO | Araq: what do you mean? There're almost no changes (except resetStyle enum) to terminal in latest PR |
12:42:03 | Arrrr | Well, id like to know what are you preparing. If you have free time, you could update it. |
12:42:11 | * | Arrrr quit (Quit: WeeChat 1.2) |
12:42:52 | OnO | Araq: also I've rebased it onto latest devel |
12:43:00 | Araq | and give away all my secrets?!! ;-) |
12:43:11 | HaCk3D | Araq: oh, i wanna ask u wtf with getch in terminal? |
12:43:20 | HaCk3D | why its not compatible with win |
12:43:36 | Araq | it's not incompatible with Win. |
12:43:43 | Araq | we have no implementation for Win. |
12:44:06 | Araq | we had an implemenation relying on C compiler specific header voodoo, which I don't like |
12:44:28 | Araq | this thing should be done with the Windows API instead |
12:49:36 | HaCk3D | yeah |
12:49:40 | HaCk3D | it would be better |
12:50:05 | HaCk3D | coz getch is a common win func and it works only in *nix here :) |
12:50:12 | HaCk3D | a bit strange |
12:56:11 | * | milosn joined #nim |
12:56:49 | HaCk3D | Araq: ping |
12:58:44 | * | JinShil quit (Quit: Konversation terminated!) |
12:59:57 | Araq | don't ask to ask, just ask |
13:00:01 | OnO | Araq: pong, was this to me? |
13:00:08 | OnO | or to HaCk3D ? |
13:00:13 | * | woadwarr_ joined #nim |
13:00:28 | Araq | to HaCk3D |
13:00:31 | OnO | okie |
13:00:50 | OnO | Araq: btw. I've seen your work about multi-threaded AsyncHTTP |
13:00:55 | OnO | do you think you can make it before 1.0? |
13:01:09 | OnO | I think this is important Nim selling point |
13:01:18 | OnO | I got pretty high intereset doing this HTTP benchmark |
13:01:27 | Araq | yeah I agree |
13:01:36 | OnO | once we get AsyncHTTP multithreaded I think we can match Java solutions |
13:01:52 | HaCk3D | https://github.com/nim-lang/Nim/issues/2573 |
13:02:11 | HaCk3D | what should i do with retFuture.fail? |
13:02:28 | HaCk3D | if raise newException(OSError...) |
13:02:45 | HaCk3D | can just be changed to raiseOSError |
13:02:48 | * | woadwarrior quit (Ping timeout: 246 seconds) |
13:03:57 | HaCk3D | should i do a new template like newOSException? |
13:04:49 | Araq | HaCk3D: I prefer .noinline procs over template for this to keep code size small |
13:05:08 | Araq | and to hint that it's on the cold path |
13:05:30 | HaCk3D | k, then i should add this .noinline proc to system.nim? |
13:05:41 | HaCk3D | newOSException |
13:10:19 | Araq | hrm, I think to os.nim |
13:10:52 | HaCk3D | okay |
13:12:01 | HaCk3D | btw, where i can get help on all pragmas? |
13:13:09 | * | dbushenko joined #nim |
13:13:20 | Araq | the manual contains most, implementation specific pragmas are in nimc.html |
13:13:37 | * | kas quit (Ping timeout: 264 seconds) |
13:13:44 | Araq | people usually complain about this split ;-) |
13:14:04 | HaCk3D | hah :) |
13:14:21 | HaCk3D | one more thing |
13:14:39 | HaCk3D | raiseOSError just raises an exception |
13:14:59 | HaCk3D | and get message from osErrorMsg |
13:15:12 | HaCk3D | but for example in net.nim |
13:15:25 | HaCk3D | "No valid socket error code available" |
13:15:34 | HaCk3D | this message explains more |
13:15:47 | HaCk3D | then the standart one from osErrorMsg |
13:16:24 | HaCk3D | it would be better to make an default msg = "" |
13:16:32 | HaCk3D | in raiseOSError |
13:16:49 | HaCk3D | if its not nil, then show message from arguments |
13:16:53 | Araq | no, we like to use the OS's error messages in general |
13:16:57 | HaCk3D | okay |
13:17:08 | HaCk3D | then i should delete explanation text? |
13:17:16 | HaCk3D | like upper one |
13:17:35 | HaCk3D | and just use raiseOSError(OSError)? |
13:17:41 | Araq | dunno, do it and dom96 will catch this during review |
13:18:30 | HaCk3D | okay, thnx a lot |
13:18:35 | * | askatasuna joined #nim |
13:22:50 | * | eratron joined #nim |
13:24:32 | * | darsain joined #nim |
13:25:23 | * | eratron left #nim (#nim) |
13:25:25 | reactormonk | Araq, so you see why I would like concepts in the stdlib? |
13:26:46 | Araq | reactormonk: yeah but we also might want to copy Rust's sizeHint so that we can have 1 map that either adds or knows about the size |
13:27:05 | reactormonk | Araq, sizeHint is an optional size implicit? |
13:28:30 | Araq | it's 'len' that can return -1 for "dunno, do it lazily" |
13:28:37 | * | zahary joined #nim |
13:29:03 | Araq | I guess these days it's an Optional[Natural] |
13:29:49 | reactormonk | :D |
13:31:43 | reactormonk | difference between assert and doAssert? |
13:32:06 | Araq | doAssert is not affected by -d:releaes |
13:33:21 | reactormonk | Does it have an optional explanation too? |
13:33:36 | reactormonk | so can I go sed -i "s/assert/doAssert/" more or less? |
13:34:50 | Araq | I think so |
13:36:59 | * | afiskon quit (Quit: Leaving) |
13:39:29 | * | eratron joined #nim |
13:39:57 | * | woadwarrior joined #nim |
13:40:06 | * | eratron left #nim (#nim) |
13:41:55 | ozra | Ok, I'm trying to get in to the OOP and generics of Nim - can anyone explain why this is not working (tried to minimize case): https://gist.github.com/ozra/b66b153afe65e602c3da |
13:42:19 | * | woadwarr_ quit (Ping timeout: 245 seconds) |
13:42:32 | * | eratron joined #nim |
13:43:11 | * | eratron left #nim (#nim) |
13:46:22 | * | enquora joined #nim |
13:46:39 | reactormonk | pigmej, oh, elisp-style callsigs. nice. |
13:48:30 | Araq | ozra: no idea what you mean |
13:48:49 | * | eratron joined #nim |
13:50:07 | ozra | The `*` proc doesn't work with the C[T] args... Says "but expected one of: oop_minimum_case.*(in_s1: B[*.T1], in_s2: B[*.T2]) ..." - but C is of B (?) |
13:50:11 | * | eratron quit (Client Quit) |
13:50:52 | ozra | How should I formulate that... |
13:51:14 | Araq | https://github.com/nim-lang/Nim/issues/88 ? |
13:53:46 | ozra | Ay ay ay. Ok. |
13:56:00 | * | Ven quit (Ping timeout: 276 seconds) |
13:56:27 | ozra | Araq: Why are they closed? |
13:57:08 | ozra | Sorry. 88 is open. my bad. |
13:59:50 | * | BitPuffin|osx quit (Ping timeout: 246 seconds) |
14:02:04 | pigmej | reactormonk: yeah quite ugly/hacky for now |
14:02:08 | pigmej | and buggy |
14:02:10 | pigmej | ;)\ |
14:02:39 | * | NfNitLoop left #nim ("WeeChat 1.0.1") |
14:02:56 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:04:37 | OnO | Araq: thanks for the merge, regarding this async http, I've seen your branch making sharedstring and sharedtables, wouldn't be just dispatcher multithreaded queue sufficient, 1 listener thread (on main thread) -> num CPU worker threads that just pick up socket handle and accept? |
14:05:29 | Araq | OnO: i got carried away ... :P |
14:05:50 | Araq | to see how overloading and destructors need to interact for atomic reference counting |
14:05:50 | * | saml joined #nim |
14:05:57 | OnO | hehe... okie |
14:06:06 | Araq | also |
14:06:23 | Araq | SharedString is not the same as SharedTable at all, we need better names |
14:06:42 | Araq | SharedTable should likely be GuardedTable cause it does the locking for you |
14:07:45 | * | dbushenko left #nim ("Ухожу я от вас") |
14:08:11 | Araq | and then there is an interesting design problem, namely GuardedTable also needs to export an unguarded interface ... |
14:09:38 | * | Ven joined #nim |
14:10:32 | * | elbow joined #nim |
14:10:38 | * | Jehan` joined #nim |
14:12:36 | Araq | but the stupid .guard pragma only works on fields and not on procs yet ... |
14:15:44 | Araq | if we had .guard for procs, we could export an interface that doesn't lock but makes the programmer insert locks at the right places |
14:18:57 | dsadsad | Araq: is there a way to .push noSideEffect and turn if off for specific functions? |
14:19:14 | dsadsad | otherwise i guess ill just group them |
14:19:18 | Araq | .push and .pop around for the specific functions |
14:19:25 | Araq | but nothing else |
14:19:33 | dsadsad | yeh but you have to know if you didnt push anything else |
14:19:42 | dsadsad | but yes, ill just group them |
14:19:55 | Araq | .push wasn't really designed for noSideEffect :P |
14:20:10 | dsadsad | :D i just wanted a nosideffect by default in all my modules |
14:20:21 | dsadsad | and have to be explicit on the sideffects |
14:23:03 | * | Arrrr joined #nim |
14:32:25 | * | wb joined #nim |
14:35:21 | Araq | is there a cp for unix which creates subdirs on the fly? |
14:35:37 | Araq | (why do I even ask?) |
14:35:46 | gour | cp -R ? |
14:38:06 | Araq | never mind, will do it differently |
14:40:19 | dbotton | can also use tar to copy structure and permissions |
14:41:19 | OnO | cp -a copies trees |
14:41:21 | * | HaCk3D left #nim (#nim) |
14:41:29 | OnO | preserving all attributes |
14:42:20 | Araq | how would I copy every *.h file but nothing else, but keeping the directory structure? |
14:42:55 | reactormonk | pigmej, I don't like buggy |
14:42:59 | dbotton | Araq are there any examples or tutorials for long running tasks syncing with each other (I'm new, I assume this is about using spawn) |
14:43:33 | pigmej | reactormonk: but well it's still only in my branch :P |
14:43:44 | * | brson joined #nim |
14:43:51 | pigmej | the 'buggy' part is thta it can't YET correctly detect correct function |
14:44:00 | pigmej | like blah(10, 15, |) |
14:44:01 | dbotton | Araq - http://stackoverflow.com/questions/10176849/how-can-i-copy-only-header-files-in-an-entire-nested-directory-to-another-direct |
14:44:04 | pigmej | it will probably fail |
14:44:38 | reactormonk | pigmej, no way to poke nimsuggest about that? |
14:44:51 | pigmej | sure it is :) |
14:45:31 | pigmej | BUT, those minibuffer sigs are usually for languages without function overloading |
14:45:33 | OnO | this solution seems to be pretty compatible: find /path/to/files -name '*.h' | cpio -pdm /target |
14:45:34 | dbotton | so Araq - (cd src && find . -name '*.h' -print | tar --create --files-from -) | (cd dst && tar xvfp -) |
14:45:37 | pigmej | lisp, python etc |
14:45:57 | pigmej | in nim we have more than one function for given parameters soooo, i have to figure out what we can do about it |
14:46:14 | Araq | dbotton: that's just createThread + channels. not sure what you would like to see |
14:46:38 | pigmej | because I tested company like poopup (like con) but it was annoying |
14:46:56 | dbotton | I haven't seen those |
14:47:13 | dbotton | Any tutorials or examples on them? |
14:48:13 | * | banister joined #nim |
14:48:16 | * | banister quit (Max SendQ exceeded) |
14:50:27 | * | kumul joined #nim |
14:51:03 | dbotton | Araq, perhaps better if I describe what I want to do, I'm not yet thinking in Nim. |
14:51:22 | * | kas joined #nim |
14:53:13 | * | Ven quit (Read error: Connection reset by peer) |
14:53:15 | dbotton | Araq, I want to have a collection of objects, with different threads waiting for incoming socket messages will all methods on those objects |
14:53:57 | dbotton | so I'm trying to understand if that is possible even, since I see the docs say that you can't access heap data from different threads |
14:54:47 | dbotton | also in general it helps me if I can see code for task syncing to get a grip on how it is done in Nim (I'm coming from the Ada world) |
14:56:06 | dbotton | (will call methods) |
14:57:30 | pigmej | reactormonk: generally whole company stuff is ok, things like goto definition, show doc, show call sig in minibuffer etc ewerything works super fine |
14:57:46 | reactormonk | pigmej, awesome |
14:58:10 | pigmej | i will do some screens when I will find some time |
14:58:11 | reactormonk | gotta go for it, didn't work so far, so I never got used to it :-( |
14:58:12 | pigmej | + docs |
14:58:36 | pigmej | and I will test your libDir path today also |
14:58:57 | reactormonk | it's just a hack |
15:00:05 | * | yglukhov__ joined #nim |
15:00:12 | Araq | dbotton: check out gokr's spawning socket server |
15:00:47 | Araq | gotta go, bbl |
15:00:55 | * | yglukhov__ quit (Read error: Connection reset by peer) |
15:01:21 | * | yglukhov__ joined #nim |
15:03:52 | * | yglukhov_ quit (Ping timeout: 265 seconds) |
15:11:53 | * | yglukhov___ joined #nim |
15:11:53 | * | yglukhov__ quit (Read error: Connection reset by peer) |
15:12:19 | * | yglukhov___ quit (Remote host closed the connection) |
15:12:53 | * | yglukhov___ joined #nim |
15:16:41 | * | kumul quit (Ping timeout: 264 seconds) |
15:18:05 | * | kumul joined #nim |
15:20:37 | * | brson quit (Ping timeout: 250 seconds) |
15:22:48 | * | brson joined #nim |
15:27:43 | * | kumul quit (Ping timeout: 256 seconds) |
15:28:51 | ozra | Araq: if you have a few sec's later - could you point me in the right direction for tackling #88? Not sure if I'm up to the task - but I could try. |
15:29:09 | * | Ven joined #nim |
15:29:49 | ozra | (don't know how active Zah is on the task? It's been there for a while) |
15:33:02 | Xe | does the nim compiler work on BSD variants? |
15:33:19 | * | minus joined #nim |
15:33:46 | yglukhov___ | Xe, nim generally should work where C works |
15:34:32 | yglukhov___ | and if it doesn't that's not intended, i guess =) |
15:34:32 | * | elbow_json quit (Remote host closed the connection) |
15:34:59 | gour | Xe: it's in FreeBSD ports |
15:39:41 | yglukhov___ | Araq, just to make sure. Are LL and closure_env_gathering the same things to you? Because I've read somewhere that those are different things. |
15:39:54 | * | synthmeat left #nim ("When words leave off, music begins.") |
15:51:40 | * | Ven quit (Read error: Connection reset by peer) |
15:55:00 | * | woadwarr_ joined #nim |
15:56:12 | * | bjz joined #nim |
15:57:11 | * | woadwarrior quit (Ping timeout: 256 seconds) |
15:57:27 | * | yglukhov____ joined #nim |
16:01:37 | * | yglukhov___ quit (Ping timeout: 264 seconds) |
16:01:57 | * | yglukhov____ quit (Ping timeout: 252 seconds) |
16:13:54 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
16:20:47 | Araq | ozra: sigmatch.nim |
16:20:52 | * | woadwarr_ quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
16:21:26 | ozra | Araq: Aight, starts digging.. |
16:21:50 | Araq | ozra: or perhaps types.inheritanceDiff |
16:22:23 | ozra | ok. If something more comes to mind, just ping out.. |
16:24:09 | * | wuehlmaus quit (Quit: Lost terminal) |
16:28:01 | * | darkf quit (Quit: Leaving) |
16:31:41 | * | kas quit (Ping timeout: 264 seconds) |
16:36:52 | * | darsain quit (Ping timeout: 255 seconds) |
16:51:17 | * | Kingsquee joined #nim |
16:54:37 | * | BitPuffin|osx joined #nim |
16:57:22 | * | banister joined #nim |
16:59:30 | * | yglukhov____ joined #nim |
17:04:42 | * | Kingsquee is now known as Kingsquid |
17:12:37 | * | Miko___ joined #nim |
17:15:05 | * | johnsoft quit (Read error: Connection reset by peer) |
17:15:55 | * | johnsoft joined #nim |
17:16:31 | * | Miko_____ quit (Ping timeout: 256 seconds) |
17:24:24 | * | kas joined #nim |
17:26:49 | * | dsadsad quit (Quit: Page closed) |
17:39:01 | * | buMPnet joined #nim |
17:42:57 | * | vbtt_ joined #nim |
17:43:09 | vbtt_ | hello |
17:43:18 | vbtt_ | just saw the oreilly webcast |
17:43:23 | vbtt_ | very nice |
17:43:54 | vbtt_ | should probably be linked from the website |
17:44:53 | * | Matthias247 joined #nim |
17:44:55 | vbtt_ | this and the strangeloop one both. |
17:45:55 | reactormonk | vbtt_, put it https://github.com/nim-lang/Nim/blob/devel/web/learn.txt |
17:48:05 | * | ggVGc joined #nim |
17:48:23 | ggVGc | Why wasn't the boehm GC initially used for Nim? |
17:48:52 | * | brson quit (Ping timeout: 276 seconds) |
17:51:49 | * | vvvvv joined #nim |
17:56:13 | * | johnsoft quit (Ping timeout: 264 seconds) |
17:56:31 | * | brson joined #nim |
17:56:41 | * | johnsoft joined #nim |
17:58:14 | * | buMPnet quit (Remote host closed the connection) |
17:58:27 | * | buMPnet joined #nim |
17:59:13 | * | buMPnet quit (Remote host closed the connection) |
18:00:18 | * | buMPnet joined #nim |
18:03:34 | fowl | G |
18:04:49 | fowl | My bad^ |
18:06:57 | ggVGc | nope |
18:08:55 | Araq | ggVGc: cause the boehm GC seduces you into shitty GC/language design |
18:09:44 | ggVGc | alright, I don't know much about GC's, just that it is a common choice, so I was curious what the reasoning behind not going with it was |
18:10:07 | fowl | Araq: does mark&sweep gc rely on RTTI? |
18:11:06 | Araq | fowl: as much as the default Gc does |
18:12:16 | ggVGc | wI have to admit this is pretty nice, https://github.com/dom96/nimkernel |
18:22:37 | * | brson quit (Ping timeout: 264 seconds) |
18:23:36 | Arrrr | Now that we've got optionals, why dont we add eithers? https://hackage.haskell.org/package/base-4.2.0.1/docs/Data-Either.html |
18:26:41 | Araq | Arrrr: Optionals have been added to not create a bloody mess where every project has its own Optional implementation. I hope Either is not nearly as popular ... |
18:30:58 | * | wedowmaker joined #nim |
18:37:15 | * | wedowmaker quit (Remote host closed the connection) |
18:43:23 | * | aziz joined #nim |
18:47:16 | * | gyeates joined #nim |
18:49:52 | * | Jehan` quit (Quit: Leaving) |
18:53:49 | * | drewsrem quit (Quit: Leaving) |
18:54:55 | * | gour quit (Quit: Using Circe, the loveliest of all IRC clients) |
19:01:46 | Arrrr | Well, is not as useful as optionals or tuple, but still |
19:01:46 | pigmej | reactormonk: ping |
19:02:06 | * | Kingsquid quit (Quit: Konversation terminated!) |
19:03:54 | * | brson joined #nim |
19:08:36 | reactormonk | pigmej, hm? |
19:12:42 | pigmej | reactormonk: I wonder about return things from nimsuggest |
19:13:11 | pigmej | Would be super cool if it would return unformatted proc/method + parameters list |
19:13:27 | pigmej | it's quite trivial to parse it on emacs side I know |
19:13:36 | pigmej | I just wonder what would be better. |
19:15:18 | pigmej | also hmm, lib/system.nim(707, 8) Error: implementation of 'system.-(x: int64, y: int64)' expected |
19:17:02 | reactormonk | pigmej, incorrect defines? |
19:19:08 | * | Jehan` joined #nim |
19:19:59 | pigmej | reactormonk: it's nim source failing |
19:20:15 | pigmej | but I recompilled everything and it will be fine it seems |
19:20:45 | reactormonk | pigmej, see symToSuggest for more proc magic |
19:20:52 | pigmej | hmm |
19:20:53 | reactormonk | ... in the compiler |
19:21:02 | reactormonk | currently it's just typeToString |
19:21:12 | reactormonk | symkind*: TSymKind |
19:21:18 | reactormonk | ^ but you can make a case object on that |
19:21:39 | pigmej | yeah I see |
19:22:16 | reactormonk | see todo about forth ;-) |
19:22:24 | pigmej | also I still have no idea how to handle multiple functions when calling call signature |
19:22:39 | pigmej | I wonder how C mode does it |
19:22:59 | reactormonk | you don't have function overloading in C |
19:23:11 | pigmej | yeah right ;/ |
19:23:21 | pigmej | rotfl... |
19:23:34 | reactormonk | better check e.g. ensime |
19:23:39 | pigmej | clojure thingy? |
19:24:22 | pigmej | I will ask a friend from erlang/elixir who did modes |
19:24:31 | pigmej | erlang/elxir have overloading ;) |
19:25:28 | reactormonk | ensime is for scala |
19:25:32 | pigmej | ah |
19:25:39 | reactormonk | that's what I use for RL grind ;-) |
19:25:50 | pigmej | ;D |
19:26:24 | pigmej | no eldoc ;/ |
19:26:25 | * | Arrrr quit (Quit: WeeChat 1.2) |
19:26:59 | pigmej | just custom message https://github.com/ensime/ensime-emacs/blob/6b85529f52eae0f380e4b087447fc4298ae5cb89/ensime-auto-complete.el#L161 |
19:27:03 | pigmej | like my 'ugly' hack |
19:27:34 | reactormonk | got a better idea? |
19:27:43 | reactormonk | I mean you can go ask on an emacs mailing list |
19:28:03 | pigmej | I will maybe try irc |
19:28:34 | * | Demon_Fox joined #nim |
19:31:11 | pigmej | so, I talked with erlang/elixir guy |
19:31:15 | pigmej | he supports just first one |
19:31:17 | pigmej | ;D |
19:35:39 | reactormonk | lulz |
19:35:57 | pigmej | ok, guys from emacs said "use separator" |
19:36:04 | pigmej | and single line display |
19:37:44 | pigmej | clojure displays it with | |
19:38:02 | pigmej | like function (params1) | (params2) | (params3) |
19:42:47 | reactormonk | I mean if you're feeling fancy you could do unification |
19:43:12 | reactormonk | I think I'd prefer name\n params1\n params2 |
19:43:58 | * | filwit joined #nim |
19:44:42 | * | johnsoft quit (Ping timeout: 272 seconds) |
19:44:50 | pigmej | reactormonk: single line required |
19:45:16 | reactormonk | :-( |
19:45:17 | * | wedowmaker joined #nim |
19:45:32 | * | johnsoft joined #nim |
19:46:08 | * | Jesin quit (Quit: Leaving) |
19:50:20 | * | gyeates quit (Read error: Connection reset by peer) |
19:54:02 | * | jh32 joined #nim |
20:11:09 | pigmej | reactormonk: hmm, where are nim-syntax-count-quotes ? |
20:11:22 | pigmej | and nim-get-project-root |
20:14:58 | reactormonk | ah fuck |
20:15:09 | reactormonk | no idea bout the first one, but the second one was kinda unreliable |
20:15:14 | reactormonk | ... so I deleted it |
20:15:17 | reactormonk | check git history :-( |
20:15:25 | pigmej | but they are still in the nim-mode.el |
20:15:40 | reactormonk | fuck |
20:19:57 | pigmej | hmm |
20:20:08 | pigmej | reactormonk: correct me if I'm wrong but dom96 https://github.com/nim-lang/nimsuggest/commit/c3c8fcf38484536f7806386565a07bd5f8c4ccd5 |
20:20:13 | pigmej | you did it wrong I think |
20:20:35 | reactormonk | pigmej, then correct it |
20:20:54 | dom96 | pigmej: hrm? |
20:20:55 | pigmej | reactormonk: sure, if I would just know how |
20:21:02 | pigmej | dom96: gPrefixDir is undeclared |
20:21:09 | dom96 | update your compiler |
20:21:11 | dom96 | bbl |
20:21:20 | pigmej | dom96: I have head |
20:24:02 | pigmej | yeah I have head of compiler + nimsuggest and I'm getting this error |
20:24:45 | pigmej | ah nah, nimble.. |
20:26:36 | pigmej | hmm |
20:26:37 | pigmej | http://wklej.to/A5P9q/text |
20:30:05 | pigmej | reactormonk: how do you compile now nimsuggest? |
20:32:13 | * | Ven joined #nim |
20:34:20 | pigmej | ok works.. |
20:34:29 | pigmej | rm -fr is my friend :) |
20:35:03 | * | aziz quit (Remote host closed the connection) |
20:39:58 | pigmej | ok there is a bug with that prefix detection |
20:40:04 | pigmej | dom96: when you have symlink in other directory |
20:40:18 | pigmej | then it searches in relative path to that symlink instead of in real file |
20:42:07 | * | don_alfredo joined #nim |
20:43:15 | don_alfredo | Hello, did anyone run a benchmark of htmlparser or xmlparser against libxml2? |
20:45:53 | Araq | no. |
20:47:15 | Araq | but usually it's not too hard to beat C libs |
20:53:07 | vbtt_ | why the obsession with benchmarks? |
20:53:22 | vbtt_ | most cases they don't matter anyway |
20:53:59 | * | johnsoft quit (Ping timeout: 245 seconds) |
20:54:00 | * | jszymanski quit (Quit: computer sleeps...) |
20:54:58 | * | johnsoft joined #nim |
20:57:49 | don_alfredo | vbtt_: no obsession, I specifically need the best possible perf for my task |
20:58:20 | Araq | don_alfredo: cool then use htmlparser and optimize it ;-) |
20:59:56 | don_alfredo | I intend to. thx |
21:00:45 | Araq | usually the basic approach of these parser is excellent and then there is some bullshit that we do to make it much slower than necessary ... *cough* |
21:00:52 | Araq | *parsers |
21:01:59 | pigmej | Araq: http://wklej.to/jJYZV/text why does con /tmp/blah.nim:28:16 return vocalize proc (this: Animal) ? |
21:02:49 | Araq | why not? |
21:03:01 | Araq | seems like a perfectly fine context suggestion? |
21:03:15 | pigmej | why not Cat ? |
21:03:54 | Araq | ah you mean it *only* suggests the Animal variant |
21:03:58 | pigmej | yeah |
21:04:20 | pigmej | but if that `c` would be `Cat` |
21:04:23 | pigmej | then it suggests all |
21:04:37 | Araq | sounds reasonable |
21:04:41 | pigmej | all means 2x for Cat + one for Animal which is fine then. |
21:04:52 | pigmej | you mean it works as expected now ? |
21:05:00 | Araq | downconvs need to be explicit |
21:05:18 | pigmej | but compiler is not complaining there |
21:05:32 | * | keypusher joined #nim |
21:05:44 | * | key_ quit (Read error: Connection reset by peer) |
21:06:53 | Araq | well c is of type Animal |
21:07:36 | Araq | to call something else you need explicit down conversions |
21:08:00 | pigmej | hmm, if c is type of Animal then why c.vocalize() prints 'meow' ? |
21:08:28 | pigmej | (yeah I'm nim n00b) |
21:08:36 | Araq | because its dynamic type is Cat. but nimsuggest and the compiler don't know about the "dynamic" type |
21:08:53 | pigmej | ok, sounds as an explaination ;) |
21:08:58 | Araq | echo c.vocalize(false) # doesn't compile |
21:09:14 | Araq | cause there is only one for 'Cat, bool' |
21:09:20 | Araq | and not for Animal |
21:09:27 | pigmej | oks |
21:09:29 | pigmej | cool ;) |
21:09:32 | Araq | so ... the compiler and nimsuggest agree. |
21:09:43 | Araq | which is expected since they share 99% of the code ... |
21:09:46 | pigmej | yeah :) |
21:09:55 | pigmej | I was like wtf but now it makes totally sense |
21:10:42 | * | keypusher quit (Ping timeout: 264 seconds) |
21:11:50 | pigmej | Araq: debug mode in nimsuggest makes is "agree" |
21:11:51 | pigmej | :) |
21:12:09 | pigmej | reactormonk: could we somehow enable debug by default ? |
21:12:23 | pigmej | then we could use nimsuggest output as flymake input |
21:12:28 | pigmej | (probably) |
21:12:57 | Araq | yeah debug mode is really cool |
21:13:03 | Araq | I wonder if it should be the default |
21:13:38 | pigmej | I think it should, because wihout debug enabled in vocalize(false) it returns nothing |
21:14:03 | * | zahary quit (Read error: Connection reset by peer) |
21:15:05 | * | Miko___ quit (Ping timeout: 250 seconds) |
21:15:11 | * | don_alfredo quit (Quit: WeeChat 1.2) |
21:15:33 | Araq | huh? o.O |
21:15:53 | Araq | well yes, nothing matches |
21:16:12 | Araq | but debug mode only produces *errors*, not suggestions |
21:16:15 | pigmej | yeah |
21:16:16 | pigmej | I know |
21:16:34 | pigmej | Araq: but imagine def or con |
21:16:55 | pigmej | without error you would think that something went wrong inside nimsuggest probably, not in your code;D |
21:17:10 | pigmej | well maybe not 'you' exactly, but you know what I mean... |
21:17:40 | * | dddddd quit (Ping timeout: 255 seconds) |
21:25:30 | * | zahary joined #nim |
21:26:52 | * | Jehan` quit (Quit: Leaving) |
21:27:53 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:29:55 | * | Miko___ joined #nim |
21:30:18 | * | askatasuna quit (Ping timeout: 252 seconds) |
21:41:20 | * | HaCk3D joined #nim |
21:41:46 | HaCk3D | dom96: ping |
21:53:39 | * | yglukhov____ quit (Quit: Be back later ...) |
21:56:09 | * | key_ joined #nim |
21:59:05 | * | askatasuna joined #nim |
21:59:17 | * | Miko___ quit (Ping timeout: 240 seconds) |
22:08:55 | * | kas quit (Ping timeout: 256 seconds) |
22:09:08 | * | Trustable quit (Remote host closed the connection) |
22:13:37 | * | Miko_ joined #nim |
22:14:05 | * | kumul joined #nim |
22:15:50 | reactormonk | pigmej, figured stuff out? Went to sleep |
22:16:52 | dom96 | HaCk3D: sup |
22:17:29 | pigmej | reactormonk: yeah, just finishing (?) my not soo good formatters |
22:17:34 | pigmej | but it will be quite ok PoC |
22:20:27 | HaCk3D | https://github.com/nim-lang/Nim/issues/2573 |
22:20:46 | HaCk3D | dom96: as u can see there is a tempplate for exceptions |
22:20:59 | HaCk3D | and they have explanatory text |
22:21:14 | HaCk3D | can i just change it to |
22:21:28 | HaCk3D | raiseOSError()? |
22:21:36 | HaCk3D | with an errorcode |
22:22:43 | dom96 | Error objects really just need to become refs |
22:22:57 | dom96 | or are we going to get raiseError1(), raiseError2() etc.? |
22:23:17 | dom96 | what we need is to be able to do raise OSError(msg: "foo", code: 45) |
22:27:30 | Araq | dom96: that's not the point. the point is to fix the bug |
22:28:08 | Araq | besides, raise (ref OsError)(msg: "foo", code: bla) would work if it weren't for the private fields in exception |
22:29:30 | dom96 | Well, createOSError should be created then |
22:30:17 | Araq | raiseOSError already exists iirc |
22:30:19 | Araq | but ok |
22:30:49 | dom96 | you can't do retFuture.fail(raiseOSError()) |
22:30:50 | fowl | dom96: do you use raise because you need to scan for it in the async macro? |
22:33:04 | dom96 | fowl: hrm? |
22:33:19 | Araq | fowl: just say "yes" |
22:33:26 | Araq | dom96: just say "yes" |
22:34:14 | fowl | You can't use raiseOsError because you need to scan for a raise stmt in the function and you need unsemantically checked code to do it |
22:36:37 | * | cyraxjoe_ is now known as cyraxjoe |
22:42:16 | * | askatasuna quit (Quit: WeeChat 1.2) |
22:45:14 | vbtt_ | echo(1.13) print '1.13' but echo(0x1.13) print '1' - why? |
22:45:36 | pigmej | reactormonk: in my branch we have now pretty call signatures called when emacs is idle (for now just functions/methods) |
22:47:30 | vbtt_ | IOW, why does 0x1.13 compile to an int? it should be an error, or compile to float, no? |
22:47:37 | reactormonk | pigmej, neat |
22:49:02 | * | dddddd joined #nim |
22:53:40 | * | wb quit (Read error: Connection reset by peer) |
22:54:39 | * | profan quit (Ping timeout: 246 seconds) |
22:55:12 | Araq | vbtt_: are you on devel? |
22:55:29 | Araq | cause ozra supposedly fixed the lexing of literals... |
22:57:04 | ozra | Oy! Fractions are not supported for non base-10 - per discussion. But it should have errored. Think it needs a revisit... |
22:57:18 | * | askatasuna joined #nim |
22:57:22 | vbtt_ | Araq: master, but haven't synced recently |
22:59:25 | vbtt_ | rebuilding a fresh master.. |
22:59:31 | Araq | devel is not master |
23:00:40 | vbtt_ | Ah missed your 2nd message. |
23:00:45 | vbtt_ | ok I'll try with devel. |
23:00:53 | * | saml_ joined #nim |
23:01:10 | ozra | If there's something to it and not just an old branch, ping. Meanwhile I'm digging further on the generics inheritance.. head starting to hurt ;-) |
23:01:59 | vbtt_ | stupid q: to build devel, do i just checkout devel and 'koch boot'? or do i need to mess with csources? |
23:03:29 | vbtt_ | Araq:ok, devel fixes this. fails to compile. |
23:05:53 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
23:06:29 | Araq | vbtt_: we're trying hard that not every single change requires csources updates |
23:09:21 | vikaton | Araq: Howdy ! |
23:10:03 | vbtt_ | Araq:good it's working. I just rebuilt koch and then nim and it worked. |
23:10:46 | Araq | vikaton: servus |
23:11:23 | vikaton | Araq: there you go again with your deep answers :/ |
23:11:35 | vikaton | and requires google to comprehend |
23:17:49 | * | profan joined #nim |
23:28:42 | * | Jesin joined #nim |
23:29:28 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:30:24 | * | TEttinger joined #nim |
23:43:46 | * | HaCk3D left #nim (#nim) |
23:45:43 | * | brson quit (Quit: leaving) |
23:46:16 | * | brson joined #nim |
23:52:57 | * | elbow quit (Quit: Leaving) |
23:54:01 | * | jaco60 quit (Ping timeout: 265 seconds) |