00:14:14 | * | saml_ joined #nim |
00:15:35 | * | gokr quit (Ping timeout: 260 seconds) |
00:16:53 | * | Varriount|Phone joined #nim |
00:23:25 | * | MightyJoe joined #nim |
00:23:58 | * | cyraxjoe quit (Ping timeout: 258 seconds) |
00:31:33 | * | ftsf_ joined #nim |
00:44:31 | * | PMunch quit (Quit: leaving) |
00:46:15 | * | Dankrad quit (Ping timeout: 268 seconds) |
00:47:44 | * | chemist69 quit (Ping timeout: 258 seconds) |
00:50:05 | * | Dankrad joined #nim |
00:58:26 | * | kulelu88 quit (Quit: Leaving) |
01:03:32 | FromGitter | <gogolxdong> what happened when we execute executable binary file? |
01:05:49 | * | chemist69 joined #nim |
01:08:48 | * | Dankrad quit (Ping timeout: 245 seconds) |
01:09:08 | * | Dankrad joined #nim |
01:14:47 | cheatfate | gogolxdong: it depends on operation system |
01:14:54 | cheatfate | and binary file format |
01:15:11 | * | ibk joined #nim |
01:15:37 | cheatfate | gogolxdong: https://www.joachim-bauch.de/tutorials/loading-a-dll-from-memory/ |
01:18:29 | FromGitter | <gogolxdong> still online, that's the spirit |
01:29:59 | * | elrood quit (Quit: Leaving) |
01:38:19 | * | Varriount|Phone quit (Read error: Connection reset by peer) |
01:40:44 | * | Varriount|Phone joined #nim |
01:43:02 | * | Varriount|Phone quit (Read error: Connection reset by peer) |
01:43:33 | * | yglukhov joined #nim |
01:48:21 | * | yglukhov quit (Ping timeout: 260 seconds) |
01:51:45 | * | dddddd quit (Remote host closed the connection) |
01:56:26 | * | libman quit (Quit: Leaving.) |
01:59:06 | * | Demos quit (Read error: Connection reset by peer) |
02:13:05 | * | Demos joined #nim |
02:53:57 | * | chemist69 quit (Ping timeout: 240 seconds) |
02:57:25 | * | shodan45 joined #nim |
03:06:00 | * | saml_ quit (Remote host closed the connection) |
03:06:52 | * | chemist69 joined #nim |
03:24:34 | * | brechtm joined #nim |
03:24:44 | * | shashlick quit (Quit: Connection closed for inactivity) |
03:29:09 | * | brechtm quit (Ping timeout: 256 seconds) |
03:29:39 | * | byte512 joined #nim |
03:41:54 | * | Dankrad quit (Ping timeout: 246 seconds) |
03:45:01 | * | yglukhov joined #nim |
03:49:17 | * | yglukhov quit (Ping timeout: 240 seconds) |
04:01:21 | * | Demos quit (Ping timeout: 260 seconds) |
04:49:54 | * | brson quit (Quit: leaving) |
05:37:55 | * | nsf joined #nim |
05:44:31 | * | space-wizard quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
05:46:47 | * | yglukhov joined #nim |
05:47:45 | * | space-wizard joined #nim |
05:51:32 | * | shodan45 quit (Quit: Konversation terminated!) |
05:51:35 | * | yglukhov quit (Ping timeout: 260 seconds) |
06:37:51 | * | space-wizard quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
06:39:47 | * | space-wizard joined #nim |
07:06:15 | * | bjz joined #nim |
07:21:57 | * | bjz quit (Read error: Connection reset by peer) |
07:28:51 | * | MyMind joined #nim |
07:34:15 | * | yglukhov joined #nim |
07:34:15 | * | yglukhov quit (Read error: Connection reset by peer) |
07:34:47 | * | yglukhov joined #nim |
07:35:54 | * | MyMind quit (Ping timeout: 250 seconds) |
07:36:12 | * | bjz joined #nim |
08:09:39 | * | Andris_zbx joined #nim |
08:12:44 | * | gokr joined #nim |
08:16:05 | * | Matthias247 quit (Read error: Connection reset by peer) |
08:18:20 | * | LeNsTR is now known as lenstr |
08:30:24 | * | Trustable joined #nim |
08:44:30 | * | brechtm joined #nim |
08:46:17 | * | Varriount|Mobile joined #nim |
08:48:12 | * | yglukhov quit (Remote host closed the connection) |
08:53:07 | * | Arrrr joined #nim |
08:57:23 | * | yglukhov joined #nim |
08:57:27 | * | yglukhov quit (Remote host closed the connection) |
08:57:38 | * | Arrrr quit (Ping timeout: 250 seconds) |
08:57:40 | * | yglukhov joined #nim |
08:57:52 | * | yglukhov quit (Remote host closed the connection) |
08:59:13 | * | yglukhov joined #nim |
09:00:02 | * | Arrrr joined #nim |
09:04:00 | * | gokr quit (Read error: Connection reset by peer) |
09:11:48 | * | desophos quit (Read error: Connection reset by peer) |
09:16:32 | * | desophos joined #nim |
09:20:38 | jh32 | hi |
09:21:43 | jh32 | how can i create a reference to a sequence? |
09:36:58 | * | ftsf_ quit (Quit: :q!) |
09:48:36 | * | Salewski joined #nim |
09:49:02 | Salewski | jh32: http://nim-lang.org/docs/tut1.html#advanced-types-sequences |
09:49:34 | Salewski | When you create a new seq, you indeed get a reference. |
09:50:51 | flyx | Salewski: yes, but it has value semantics (assigning it to another variable will copy it) |
09:51:24 | flyx | however, you can use http://nim-lang.org/docs/system.html#shallowCopy,T,T on it |
09:52:48 | Salewski | Yes, I was not aware that he was asking about copying. |
09:53:48 | flyx | well, why else would one want a reference if not for reference semantics |
09:54:15 | flyx | there's also the shallow pragma which can be applied to a type to make shallow copies the default: http://nim-lang.org/docs/manual.html#pragmas-shallow-pragma |
09:57:01 | Salewski | I would like to see an example for the shallowCopy -- read about it some monts ago, but for me it was not very easy to understand. |
09:57:23 | Salewski | Have not played with it, because I did not need it at that time. |
09:59:24 | jh32 | thanks |
10:02:28 | Araq | Salewski: instead of x = y write shallowCopy(x, y) |
10:04:03 | Salewski | Maybe a related questio, we have sort() and sorted() in stdlib. In Ruby we would write x.dup.sort! to get a sorted copy. If we had no sorted() in Nim, would we write x.deepcopy.sort() |
10:05:12 | Araq | maybe but knowing you sort into a fresh seq can be a performance advantage |
10:05:36 | Araq | also the return types don't match, sorted returns something, sort doesn't |
10:05:59 | * | space-wizard quit (Ping timeout: 244 seconds) |
10:06:09 | Araq | sorted() doesn't have to be implemented as copy.sort(), you can do smarter than that |
10:07:53 | Salewski | Araq, thanks. Would be really nice to have such notes and examples in a Cookbook. |
10:09:08 | Salewski | Araq, have you seen I was able to produce a minimal example for the last nimsuggest crash! I was very happy about that! |
10:10:20 | Araq | sorry, can give me a link? |
10:11:23 | Salewski | https://github.com/nim-lang/nimsuggest/issues/41 |
10:11:40 | Salewski | Indeed it is a nim check compiler chrash. |
10:12:14 | Araq | ah nice one |
10:12:56 | Salewski | Bye... |
10:13:00 | * | Salewski left #nim (#nim) |
10:17:47 | * | irrequietus joined #nim |
10:27:47 | * | arnetheduck joined #nim |
10:31:59 | * | bjz_ joined #nim |
10:33:05 | * | bjz quit (Ping timeout: 258 seconds) |
10:38:59 | FromGitter | <yglukhov> Memtracker sounds like something interesting. Whats that? |
10:39:43 | Araq | a "go back in time debugger", kind of |
10:40:17 | Araq | it tracks every memory write. So when something gets corrupted you can ask "ok, which code lines *really* did write to this location" |
10:42:13 | Araq | comparable to GDB's watchpoints, except that in practice I found watchpoints to be unworkable |
10:42:46 | Araq | "jezz, how I am supposed the address in advance? we have address space randomizations everywhere" |
10:42:51 | Araq | *to know |
10:43:09 | yglukhov | oh thats nice. |
10:45:36 | yglukhov | btw, i've hacked gc code some time ago to allow memory "leak" debugging. would be nice to have smth like that, but more official =) |
10:45:38 | * | Sentreen quit (Quit: WeeChat 1.4) |
10:46:20 | yglukhov | does it sound interesting to anyone? |
10:48:22 | * | Sentreen joined #nim |
10:49:39 | Araq | yeah, I tried to backport the gc:v2 stuff but failed :-) |
10:50:14 | Araq | on the other hand, leak debugging is just another query on my tracking database |
10:50:21 | * | Sentreen quit (Client Quit) |
10:51:31 | Araq | what does your patch add to find leaks? |
10:54:24 | yglukhov | new public system function GC_objectShouldBeCollectedSoon(o: ref), which you to call at strategic places. Then GC will keep a stack of refenerences during collection, and print the stack when such "marked" objects are hit. The info it prints takes some time to understand though for those who see it for the first time. |
10:55:06 | yglukhov | but it already saved us a ton of time. |
10:55:54 | yglukhov | also it works for emscripten target, which sometimes has its own leaks not reproducible on native one. |
10:56:45 | yglukhov | i think the memgraph is still a superior solution of course, but unforunately i could not make it useable. |
10:56:58 | Araq | how come? |
10:57:20 | yglukhov | well, gcv2 doesn't like our threaded code at all :( |
10:57:39 | yglukhov | crashes all the time |
10:58:26 | yglukhov | i suppose, it doesnt like "foreign" references on the stack or smth? |
11:01:47 | Araq | I think its logic is deeply flawed |
11:01:55 | Araq | when I stress test it, it breaks |
11:01:59 | Araq | no threading required |
11:02:45 | yglukhov | ah thats a bummer |
11:05:29 | * | PMunch joined #nim |
11:12:33 | Varriount|Mobile | Araq: gcv2 is flawed? |
11:30:08 | * | Sentreen joined #nim |
11:33:42 | * | chemist69 quit (Ping timeout: 246 seconds) |
11:38:26 | * | chemist69 joined #nim |
11:42:17 | euantor | Calinou: I was/am working on the GitBook, when I get time. Work is extremely busy at the minute though and I'm putting in a bunch of overtime |
11:55:45 | euantor | Regarding the licensing discussion from yesterday, you can prise my BSD-3 license from my cold, dead fingers. I'd really rather not have Nimble tell me I should be using MIT over another license that I've chosen myself. Perhaps the best approach would be for it to default to MIT if no other license is chosen during init. |
12:06:51 | Araq | Varriount|Mobile: either its implementation or its concept. I don't know yet. |
12:08:05 | chemist69 | Hi, trying to understand the `shallowCopy` mentioned above. Shouldn't this script (https://glot.io/snippets/ekju9mscab) output the same seq two times? |
12:09:04 | Araq | chemist69: no. shallowCopy is allowed to copy sometimes. |
12:09:26 | Araq | in this case it does copy in order to not screw up memory safety |
12:09:44 | chemist69 | ok, can I force one behaviour over the other? |
12:11:52 | * | cheatfate quit (Read error: Connection reset by peer) |
12:13:02 | Araq | no. |
12:13:15 | Araq | not with shallowCopy. |
12:13:34 | Araq | you can create a ptr to the seq |
12:14:06 | chemist69 | I understand. Thanks a lot for the explanation. |
12:20:09 | * | brechtm_ joined #nim |
12:21:46 | * | couven92 joined #nim |
12:23:55 | * | brechtm quit (Ping timeout: 250 seconds) |
12:24:14 | * | cheatfate joined #nim |
12:25:49 | cheatfate | Araq, why watchpoints not suitable for you? |
12:26:30 | Araq | as I said, by the time I need a watchpoint it's already too late and the crash happened. |
12:26:52 | Araq | and I cannot rerun the program with the "same" watchpoint because addresses change all the time |
12:29:08 | cheatfate | and you need exactly break on address? |
12:30:29 | cheatfate | you can assign watchpoint to variable + X i think |
12:33:52 | cheatfate | Araq, also you can make https://outflux.net/blog/archives/2010/07/03/gdb-turns-off-aslr/ |
12:39:54 | * | gokr joined #nim |
12:43:10 | * | Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
12:43:44 | Araq | dom96: can confirm, the async bug is gone |
12:45:36 | cheatfate | Araq, which one? |
12:46:20 | * | gokr left #nim (#nim) |
12:50:27 | Araq | cheatfate: the 'all' proc |
12:53:08 | * | MyMind joined #nim |
12:57:42 | * | kulelu88 joined #nim |
13:03:55 | kulelu88 | hey Araq are you currently busy? |
13:05:39 | Araq | always |
13:08:34 | kulelu88 | Araq: I have a small piece of Flask REST code. Can you please show me what the equivalent code will look like in Nim: https://www.zerobin.net/?a66b58f1a1d71433#VpPFKXkjaCJR4KbOekUNm5xfyelVDs846NQCyZwLqPA= ? |
13:15:10 | * | elrood joined #nim |
13:15:18 | PMunch | kulelu88, that should be a delete request no` |
13:15:35 | PMunch | github.com/dom96/jester |
13:15:39 | flyx | kulelu88: that request makes little sense as a) your code snippet is not standalone (what's db?) and b) there are multiple possibilities of implementing this in Nim, e.g. jester or rosencrantz |
13:15:39 | kulelu88 | PMunch: well it's not strictly restful |
13:16:14 | kulelu88 | flyx: I don't want a full/complete re-implementation. I just want to see what equivalent code might look like in Nim |
13:16:33 | kulelu88 | so you can 'assume' db is a global variable (taken as is) |
13:16:46 | PMunch | If you look at the GitHub page I linked then the bottow example is pretty similar |
13:17:41 | PMunch | After the try-except clause you would have the simple db commands using the great Nim syntax for JSON |
13:18:21 | flyx | kulelu88: why don't you try and translate it to Nim yourself? |
13:18:46 | kulelu88 | flyx: I want to see what similar code might look like from someone more familiar with Nim |
13:21:14 | PMunch | pastebin.com/dsiYG74t |
13:21:17 | PMunch | Just a guess |
13:21:34 | * | brechtm_ quit (Remote host closed the connection) |
13:21:38 | PMunch | Assuming you have a db wrapper that looks similar to your Flask example. |
13:22:02 | * | enthus1ast joined #nim |
13:22:10 | * | brechtm joined #nim |
13:22:12 | kulelu88 | The DB will be Redis |
13:23:20 | PMunch | Oh, the route name is not right by the way. And I misused 204 |
13:40:41 | * | def-- joined #nim |
13:44:57 | * | irrequietus quit (Ping timeout: 246 seconds) |
13:45:20 | * | def-- quit (Ping timeout: 260 seconds) |
13:54:40 | * | [CBR]Unspoken quit (Read error: Connection reset by peer) |
14:03:09 | * | bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
14:03:58 | * | Arrrr quit (Quit: WeeChat 1.5) |
14:13:32 | * | [CBR]Unspoken joined #nim |
14:26:36 | PMunch | Did that kinda answer your question? |
14:27:01 | PMunch | Cosidering to use Nim for a project kulelu88? |
14:31:43 | * | chemist69 quit (Ping timeout: 245 seconds) |
14:49:00 | * | chemist69 joined #nim |
14:51:14 | * | Demos joined #nim |
15:09:36 | kulelu88 | PMunch: I am evaluating either going with Nim or Go. Go seems to have better HTTP support (even though I'm hesitant to use it, it is the 'best' tool for the job) |
15:18:30 | * | ibk quit (Quit: Connection closed for inactivity) |
15:20:16 | cheatfate | kulelu88, Nim is better by design, but we do not have so many libraries/packages as Go |
15:21:02 | PMunch | Personally I'm not a fan of Go |
15:21:07 | kulelu88 | cheatfate: I need support for: HTTP, Async, Redis (that's all), and of course, the ability to send HTTPS requests via nginx to Nim code |
15:21:23 | PMunch | All that should be doable in Nim |
15:21:52 | kulelu88 | the lack of resources is the biggest drawback. Nim tutorials are few and far between |
15:21:58 | * | xet7 quit (Quit: Leaving) |
15:22:43 | flyx | yeah, people usually just ask here or in the forum and get answers |
15:22:46 | * | def-- joined #nim |
15:24:08 | kulelu88 | and somehow, tutorials like this exist: http://goroutines.com/10m |
15:24:17 | kulelu88 | (although I'm not aiming for 10M) |
15:24:49 | * | xet7 joined #nim |
15:29:44 | flyx | go's shortcomings always felt so arbitrary. there's the case of missing generics, but then on the other hand, there's stuff like runtime reflection. I always wonder if go wants to be super-low-level or super-high-level. |
15:30:16 | PMunch | We should really start putting together more Nim tutorials |
15:31:23 | * | xet7 quit (Quit: Leaving) |
15:35:36 | * | PMunch quit (Quit: leaving) |
15:41:17 | * | xet7 joined #nim |
15:44:10 | * | dddddd joined #nim |
15:59:39 | * | krux02 joined #nim |
16:02:00 | * | arnetheduck quit (Ping timeout: 260 seconds) |
16:02:55 | krux02 | is anyone out here able to talk about macros? |
16:03:45 | krux02 | I would like to know if it is possible to write a macro that make my module feel more like a processing file |
16:04:44 | krux02 | processing behaves different, depending on what is defined in the file. |
16:05:37 | krux02 | when there ar setup and render procedures defined, the module gets a render loop where these things are used |
16:06:26 | krux02 | when the module is just draw commands, the projects is just run once for each draw and then waits for an event to quit the program |
16:06:48 | krux02 | so there is a lot of default behavior that makes a lot of sense to get started quickly |
16:07:08 | krux02 | I would like to have these defaults for a nim project, too, and I thought it could be done with a macro |
16:10:27 | Araq | krux02: I'm here |
16:10:44 | krux02 | cool |
16:11:50 | krux02 | so have you used processing from time to time? |
16:12:09 | Araq | "processing"? |
16:12:34 | krux02 | yes processing from processing.org |
16:12:57 | krux02 | it is not a new programming language it is just java |
16:13:26 | krux02 | but they give you an idea similar to aporia, (one button execute) |
16:13:49 | krux02 | the neat thing they do is, that you do not need to use any project templates |
16:14:27 | krux02 | I don't know exactly what they do, but they make shure that your program is usable by the first line you write |
16:15:52 | krux02 | they do it with code generation, and virtual methods |
16:17:42 | krux02 | s/idea/IDE/g |
16:19:08 | * | Andris_zbx quit (Remote host closed the connection) |
16:20:13 | Araq | ok ...? and you seek to replicate this with a macro? |
16:22:55 | * | couven92 quit (Quit: Client disconnecting) |
16:26:06 | krux02 | yes I do |
16:26:45 | krux02 | I would just like to ask for a quick idea |
16:27:14 | krux02 | I only know so far about macros that take an ast as an argument, not about macros that work on an entire project |
16:27:38 | krux02 | I think I can do it with an untyped macro on the root of the project |
16:28:05 | krux02 | so that basically nothing I write is no part of this marco argument |
16:28:17 | krux02 | but I don't know if that has any unwanted sideeffects |
16:28:24 | krux02 | like destroying tooling or something |
16:31:09 | Araq | what is the "root" of the project? |
16:31:23 | Araq | I don't think it's possible at all. :-) |
16:31:52 | Araq | by design macros process the ASTs handed to them. |
16:32:17 | Araq | they don't rewrite everything willy-nilly, they cannot go up in the AST |
16:34:19 | krux02 | with root I mean there is a macro call at the very first line of the project |
16:34:52 | krux02 | so the macro does not go up in the ast at all |
16:35:04 | krux02 | it.s just the macro knows everything |
16:35:17 | Araq | so just something like |
16:35:20 | Araq | besmart: |
16:35:25 | Araq | .. code here ...? |
16:35:29 | krux02 | yes |
16:35:56 | Araq | alright. what's the question then? |
16:36:28 | krux02 | I have little doubt that it will work for that purpose, but I have doubts weather it is a wise thing to do |
16:36:59 | krux02 | I just wanted to talk about an idea like that, before I would actually go implement it and see in the end that it is a very very bad idea |
16:37:12 | Araq | read my blog post about perl? |
16:37:40 | krux02 | you mean the one, where you tried to make nim behave like perl? |
16:37:47 | Araq | yes :P |
16:38:12 | krux02 | I think I did, not sure if everything is still active in my memory |
16:38:55 | krux02 | though |
16:39:09 | enthus1ast | krux02 to me it sound that you want to have conditional code that gets compiled when you use a procedure |
16:39:17 | enthus1ast | Araq where do you blog? |
16:39:53 | krux02 | enthus1ast: did you use Processing? |
16:39:57 | enthus1ast | nope |
16:40:24 | Araq | well I bet I didn't cover it explicitly, but you need to ensure that your DSL composes |
16:40:34 | krux02 | when you want to help me I recomment you trying out processing for 5 minutes, it will be oviouse what I mean in no time |
16:41:14 | Araq | usually this means having short templates that interact with Nim's type system rather than a single macro doing some heavy lifting and relying on syntactic features |
16:42:00 | Araq | I call these "keywords". When your macro relies on keywords, something is usually wrong |
16:42:23 | Araq | best example: Nim's async macro that interprets 'await' as a keyword |
16:42:37 | Araq | bad design right here. :-) |
16:43:21 | Araq | why bad? because you cannot have the 'await' in a template. |
16:43:28 | krux02 | I have macros that have a few keywords within, but they are more interpreted like flags that I pass in the form of an ast |
16:43:45 | Araq | it is then hidden from the .async macro, so it cannot process it. |
16:43:49 | Araq | much better design: await is a template that does the transformation to 'yield' on its own. |
16:44:00 | Araq | tada, 'await' can be used in templates. |
16:44:24 | Araq | it took us months to figure it out :D |
16:44:28 | krux02 | I am not familiar with the async macro yet |
16:44:36 | krux02 | I just didn't have a use case yet |
16:44:54 | krux02 | I just look it up |
16:46:27 | FromGitter | <ephja> @Araq to figure out what? the aforementioned approach? |
16:46:53 | FromGitter | <ephja> hm. rewrite before the end of 2017? :p |
16:47:14 | krux02 | Araq: can you tell me which module the macro is defined? |
16:47:25 | krux02 | can't find it, too much is called async |
16:49:27 | enthus1ast | \Nim\lib\pure\asyncmacro.nim |
16:50:19 | krux02 | ok I also did find it by now |
16:55:50 | * | brechtm_ joined #nim |
16:57:00 | enthus1ast | Araq where do you blog? |
16:57:24 | euantor | http://nim-lang.org/blog/ |
16:57:28 | enthus1ast | : D |
16:57:29 | enthus1ast | ok |
16:57:52 | enthus1ast | ty euantor |
16:58:35 | FromGitter | <ephja> warning: does not contain CSS transformations and other cool things |
16:58:49 | * | brechtm quit (Ping timeout: 260 seconds) |
16:59:57 | krux02 | I am not that much into HTML and CSS, but I heared that it is not good for layouting text. |
17:00:21 | euantor | I'd say that the CSS doesn't matter, but having old posts at the top of the list on the index is super confusing ;) |
17:00:34 | FromGitter | <ephja> Motherfucking website awards 2016 ;) |
17:00:51 | krux02 | I like old style websites |
17:01:03 | krux02 | they load fast |
17:01:33 | krux02 | we live in an age where the average page load is almost at the level of "Doom" |
17:01:44 | * | couven92 joined #nim |
17:03:26 | kulelu88 | "web 2.0" krux02 |
17:03:32 | FromGitter | <ephja> I don't think it took that long for me without script blocking, but I'm sure there are people with worse connections |
17:03:51 | FromGitter | <ephja> CSS is indeed confusing when it comes to layouts |
17:04:21 | krux02 | how do you do a three column layout in css? |
17:04:26 | Araq | ephja: it took us months to find the problem. and then the solution. and as you can see, the stdlib still is not fixed. |
17:04:40 | enthus1ast | krux02 you use bootstrap or semantic ui ; ) |
17:04:43 | Araq | krux02: via tables. |
17:05:01 | euantor | If you don't care about old browsers, you use flexbox |
17:05:18 | euantor | But if you (like most people) have to support IE, you use tables as Araq said |
17:05:32 | FromGitter | <ephja> still? |
17:05:44 | krux02 | I feel like a successful troll :D |
17:06:00 | Araq | ephja: try to use 'await' in a template and see for yourself |
17:06:30 | FromGitter | <ephja> @Araq does the module in the upcoming directory have anything to do with this? |
17:06:41 | * | space-wizard joined #nim |
17:06:58 | Araq | no it uses the same macro, the macro implementation is shared |
17:07:37 | FromGitter | <ephja> ok |
17:12:14 | * | Jesin quit (Quit: Leaving) |
17:15:56 | * | Jesin joined #nim |
17:17:08 | * | space-wizard quit (Ping timeout: 245 seconds) |
17:19:07 | * | krux02 quit (Quit: Leaving) |
17:22:44 | * | vlad1777d joined #nim |
17:28:21 | * | brechtm_ quit (Remote host closed the connection) |
17:28:55 | * | brechtm joined #nim |
17:29:38 | * | Dankrad joined #nim |
17:31:59 | * | yglukhov_ joined #nim |
17:35:41 | * | yglukhov quit (Ping timeout: 260 seconds) |
17:36:05 | * | yglukhov_ quit (Ping timeout: 248 seconds) |
17:41:25 | * | brechtm quit (Remote host closed the connection) |
17:44:13 | * | enthus1ast quit (Ping timeout: 245 seconds) |
17:47:22 | cheatfate | Araq, about `bad design`, if await template appears, there will be more problems, then advantages, because everybody will try to use this template inside of ordinary procedures |
17:47:56 | Araq | Error: 'yield' can only be used inside an iterator |
17:48:02 | Araq | instantiation from here |
17:48:04 | Araq | vs |
17:48:14 | Araq | Error: Unknown identifier 'await' |
17:48:22 | Araq | hardly a difference. |
17:48:51 | cheatfate | i think unknown identifier `await` is more easy to understand, then `yield` because dev even now wrote `yield` he wrote `await` |
17:49:02 | cheatfate | even not wrote |
17:49:27 | cheatfate | developer dont know anything about `yield` |
17:49:34 | cheatfate | he tried to use `await` |
17:49:58 | cheatfate | old pythoners knows that `await` is just macro for `yield from` |
17:50:15 | cheatfate | but c#ers don't know such structure |
17:50:49 | * | space-wizard joined #nim |
17:52:13 | dom96 | I wouldn't say it took us "months to figure out" |
17:52:26 | dom96 | It is however taking us months to implement |
17:52:37 | dom96 | I still have a feeling that there will be a problem with this approach |
17:53:00 | Araq | dom96: well everything takes months here |
17:53:03 | dom96 | another approach is to make it possible to annotate templates with {.async.} :P |
17:55:22 | cheatfate | Araq, maybe because we have lack of communication here... i'm still dont understand your idea with iterators as callbacks |
17:57:47 | cheatfate | i have watched your slides many times (from time to time) but still can't figure out any benefits |
17:59:12 | * | vendethiel quit (Ping timeout: 260 seconds) |
18:01:17 | * | xet7 quit (Quit: Leaving) |
18:02:32 | * | vendethiel joined #nim |
18:12:48 | * | MyMind quit (Ping timeout: 265 seconds) |
18:14:12 | * | enthus1ast joined #nim |
18:24:23 | * | yglukhov joined #nim |
18:27:21 | * | elrood quit (Quit: Leaving) |
18:28:46 | * | yglukhov quit (Ping timeout: 250 seconds) |
18:34:02 | * | shashlick joined #nim |
18:37:01 | * | vlad1777d quit (Quit: Leaving) |
18:43:54 | * | yglukhov joined #nim |
18:48:17 | * | chemist69 quit (Ping timeout: 256 seconds) |
19:06:40 | * | chemist69 joined #nim |
19:11:15 | * | yglukhov quit (Remote host closed the connection) |
19:14:17 | * | brson joined #nim |
19:15:38 | * | enthus1ast quit (Ping timeout: 268 seconds) |
19:28:00 | * | PMunch joined #nim |
19:32:29 | * | rolha joined #nim |
19:35:27 | * | rolha quit (Client Quit) |
19:37:41 | * | yglukhov joined #nim |
19:37:45 | * | yglukhov quit (Remote host closed the connection) |
19:38:00 | * | yglukhov joined #nim |
19:59:54 | * | dom96 quit (Changing host) |
19:59:54 | * | dom96 joined #nim |
20:04:29 | * | HC2 joined #nim |
20:04:33 | * | HC2 left #nim (#nim) |
20:11:57 | * | bjz_ joined #nim |
20:44:54 | * | libman joined #nim |
20:46:59 | * | Calinou quit (Ping timeout: 265 seconds) |
20:47:16 | * | vlad1777d joined #nim |
20:48:25 | * | vlad1777d quit (Remote host closed the connection) |
20:49:01 | * | MyMind joined #nim |
20:50:14 | * | Calinou joined #nim |
20:53:08 | * | vlad1777d joined #nim |
20:56:04 | * | MyMind quit (Quit: WeeChat 1.5-dev) |
21:01:00 | * | irrequietus joined #nim |
21:08:01 | * | Jesin quit (Quit: Leaving) |
21:09:46 | * | Jesin joined #nim |
21:12:23 | * | xet7 joined #nim |
21:22:01 | * | Varriount|Mobile quit (Remote host closed the connection) |
21:22:25 | * | Varriount|Mobile joined #nim |
21:23:48 | * | bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:25:14 | * | space-wi_ joined #nim |
21:27:28 | * | space-wizard quit (Ping timeout: 250 seconds) |
21:43:43 | * | Matthias247 joined #nim |
22:02:32 | * | yglukhov_ joined #nim |
22:05:17 | * | yglukhov quit (Ping timeout: 265 seconds) |
22:10:38 | * | bjz joined #nim |
22:13:15 | * | nsf quit (Quit: WeeChat 1.6) |
22:15:30 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:31:02 | * | irrequietus quit (Ping timeout: 252 seconds) |
22:36:45 | * | Jesin quit (Quit: Leaving) |
22:47:34 | * | Trustable quit (Remote host closed the connection) |
22:50:49 | * | PMunch quit (Quit: leaving) |
22:53:39 | * | dddddd quit (Quit: Hasta otra..) |
23:12:17 | * | yglukhov_ quit (Remote host closed the connection) |
23:14:32 | * | pregressive joined #nim |
23:16:43 | * | Demos quit (Ping timeout: 245 seconds) |
23:21:39 | * | Demos joined #nim |
23:31:09 | * | ftsf_ joined #nim |
23:45:58 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:46:05 | FromGitter | <ephja> um. which tag to use on twitter for nim? |
23:52:58 | * | pregressive quit (Remote host closed the connection) |
23:53:35 | * | pregressive joined #nim |
23:54:12 | FromGitter | <define-private-public> I'm running into a circular import issues with two types I'm making. Is there a way to forward declare types in nim? |
23:58:41 | * | pregressive quit (Ping timeout: 268 seconds) |