00:11:22 | * | yglukhov joined #nim |
00:14:36 | * | ftsf_ quit (Ping timeout: 260 seconds) |
00:16:00 | * | yglukhov quit (Ping timeout: 260 seconds) |
00:27:07 | * | ftsf_ joined #nim |
00:53:40 | * | yglukhov joined #nim |
00:58:24 | * | yglukhov quit (Ping timeout: 260 seconds) |
01:13:15 | * | byte512 joined #nim |
01:26:06 | * | kunev quit (Ping timeout: 244 seconds) |
01:27:21 | * | kunev joined #nim |
01:36:03 | * | yglukhov joined #nim |
01:38:48 | * | chemist69 quit (Ping timeout: 245 seconds) |
01:39:57 | * | Dankrad quit (Ping timeout: 268 seconds) |
01:40:42 | * | yglukhov quit (Ping timeout: 258 seconds) |
01:41:08 | * | chemist69 joined #nim |
02:18:23 | * | yglukhov joined #nim |
02:22:56 | * | yglukhov quit (Ping timeout: 260 seconds) |
02:27:25 | * | chemist69 quit (Ping timeout: 260 seconds) |
02:40:50 | * | chemist69 joined #nim |
02:55:20 | * | pie__ joined #nim |
02:59:43 | * | subsetpark joined #nim |
03:03:53 | * | pie__ quit (Ping timeout: 256 seconds) |
03:11:05 | * | yglukhov joined #nim |
03:14:27 | * | pregressive joined #nim |
03:15:40 | * | yglukhov quit (Ping timeout: 260 seconds) |
03:15:51 | * | space-wizard joined #nim |
03:15:51 | * | pregressive quit (Remote host closed the connection) |
03:16:17 | * | space-wizard quit (Client Quit) |
03:16:26 | * | pregressive joined #nim |
03:18:09 | * | pregress_ joined #nim |
03:18:10 | * | pregressive quit (Read error: Connection reset by peer) |
03:21:29 | * | pregress_ quit (Remote host closed the connection) |
03:22:03 | * | pregressive joined #nim |
03:26:13 | * | NimBot joined #nim |
03:26:21 | * | pregressive quit (Ping timeout: 252 seconds) |
03:32:05 | * | NimBot joined #nim |
03:52:04 | * | dmi0 quit (Ping timeout: 260 seconds) |
03:53:47 | * | yglukhov joined #nim |
03:58:08 | * | yglukhov quit (Ping timeout: 260 seconds) |
04:09:48 | * | couven92 quit (Quit: Client disconnecting) |
04:10:57 | * | byte512 quit (Ping timeout: 240 seconds) |
04:23:06 | * | zaquest joined #nim |
04:32:01 | * | pregressive joined #nim |
04:36:07 | * | yglukhov joined #nim |
04:40:36 | * | yglukhov quit (Ping timeout: 260 seconds) |
04:56:18 | * | zaquest quit (Read error: Connection reset by peer) |
04:57:25 | * | zaquest joined #nim |
04:58:54 | * | dddddd quit (Remote host closed the connection) |
05:13:56 | * | yglukhov joined #nim |
05:18:24 | * | yglukhov quit (Ping timeout: 260 seconds) |
05:29:11 | * | Dankrad joined #nim |
05:39:31 | * | yglukhov joined #nim |
05:43:52 | * | yglukhov quit (Ping timeout: 252 seconds) |
05:59:05 | * | pregressive quit (Remote host closed the connection) |
05:59:39 | * | pregressive joined #nim |
06:04:06 | * | pregressive quit (Ping timeout: 246 seconds) |
06:05:42 | * | nsf joined #nim |
06:09:40 | * | yglukhov joined #nim |
06:14:16 | * | yglukhov quit (Ping timeout: 250 seconds) |
06:17:52 | * | ibk joined #nim |
06:23:22 | * | Dankrad quit (Ping timeout: 250 seconds) |
06:50:30 | * | yglukhov joined #nim |
06:55:00 | * | yglukhov quit (Ping timeout: 260 seconds) |
07:05:55 | * | ftsf_ quit (Quit: :q!) |
07:08:09 | * | bjz joined #nim |
07:11:23 | * | yglukhov joined #nim |
07:16:00 | * | yglukhov quit (Ping timeout: 260 seconds) |
07:26:58 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
07:44:15 | * | bjz joined #nim |
07:53:42 | * | yglukhov joined #nim |
07:54:44 | * | gokr joined #nim |
07:58:28 | * | yglukhov quit (Ping timeout: 260 seconds) |
08:25:59 | * | Trustable joined #nim |
08:54:31 | * | bjz_ joined #nim |
08:54:47 | * | bjz quit (Ping timeout: 265 seconds) |
09:01:08 | * | pregressive joined #nim |
09:01:37 | * | pregressive quit (Read error: Connection reset by peer) |
09:02:10 | * | pregressive joined #nim |
09:02:10 | * | rokups` joined #nim |
09:02:54 | * | rokups` quit (Client Quit) |
09:06:53 | * | pregressive quit (Ping timeout: 260 seconds) |
09:07:35 | * | zevlg joined #nim |
09:15:58 | * | Andris_zbx joined #nim |
09:30:44 | * | yglukhov joined #nim |
09:43:51 | * | desophos quit (Read error: Connection reset by peer) |
10:16:51 | * | Arrrr joined #nim |
10:36:14 | * | spindle joined #nim |
10:36:49 | * | bjz joined #nim |
10:36:52 | * | bjz_ quit (Ping timeout: 250 seconds) |
11:09:16 | * | bjz_ joined #nim |
11:09:25 | * | bjz quit (Ping timeout: 248 seconds) |
11:10:36 | * | vlad1777d joined #nim |
11:11:08 | * | arnetheduck joined #nim |
11:13:36 | * | vlad1777d quit (Remote host closed the connection) |
11:20:55 | * | couven92 joined #nim |
11:45:08 | * | elrood joined #nim |
12:01:09 | * | PMunch joined #nim |
12:01:32 | * | Salewski joined #nim |
12:03:06 | Salewski | Araq, I have created next nimsuggest issue, one that creates a nimsuggest crash due to a typing error: |
12:03:09 | Salewski | https://github.com/nim-lang/nimsuggest/issues/40 |
12:03:24 | Salewski | I hope you can at lest reproduce it. |
12:05:07 | Araq | no --port PR? |
12:05:47 | Araq | looks like I can push that right into my test suite, thanks a lot |
12:09:52 | Salewski | Bye... |
12:09:55 | * | Salewski left #nim (#nim) |
12:30:26 | * | gokr quit (Ping timeout: 256 seconds) |
12:51:57 | * | spindle quit (Quit: Leaving) |
12:55:20 | * | djellemah quit (Ping timeout: 244 seconds) |
13:21:39 | * | dmi0 joined #nim |
13:37:22 | arnetheduck | Araq, in ccgtypes.getObjectInfo, field info is not generated for c++ types... any idea why it's generated for other imported types? |
13:45:36 | flyx | Araq: can you look over https://github.com/nim-lang/Nim/pull/5009 again soon? I recognized another error concerning daylight saving time and want to fix it after this PR gets merged |
13:46:48 | flyx | Araq: a comment on https://github.com/nim-lang/Nim/pull/4874 would also be nice so I can improve that |
13:50:05 | * | joequery joined #nim |
14:05:46 | chemist69 | why does `var s = ""; echo s[0]` not give an 'index out of bound' error? |
14:13:35 | * | gokr joined #nim |
14:14:35 | zevlg | s[0] is valid '\0' char, is not it ? |
14:17:03 | chemist69 | it just feels weird that I can extract the first element although the length is zero. |
14:18:25 | flyx | strings are 0-terminated. |
14:18:36 | flyx | so it is always safe to access s[s.len] |
14:21:04 | * | arnetheduck quit (Ping timeout: 260 seconds) |
14:22:53 | * | arnetheduck joined #nim |
14:25:52 | chemist69 | ok, thanks. |
14:27:40 | * | arnetheduck quit (Ping timeout: 260 seconds) |
14:29:20 | * | arnetheduck joined #nim |
14:34:54 | * | _stowa joined #nim |
14:35:29 | * | joequery quit (Read error: Connection reset by peer) |
14:39:59 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
14:47:45 | * | UNIcodeX_Work quit (Read error: Connection reset by peer) |
15:17:02 | * | gokr quit (Ping timeout: 256 seconds) |
15:33:34 | * | pie__ joined #nim |
15:40:33 | * | pregressive joined #nim |
15:42:54 | Araq | flyx: what kind of comment do you want? ;-) I said it's "convoluted" |
15:43:27 | * | confundus joined #nim |
15:44:50 | * | gokr joined #nim |
15:46:40 | * | Andris_zbx quit (Remote host closed the connection) |
15:47:50 | Araq | arnetheduck: because accessing private fields in C++ causes errors |
15:47:58 | Araq | C has no private fields. |
15:54:46 | arnetheduck | Araq, well, I changed it ;) instead of private fields, c has macro tricks where x->yyy is actually transformed to x->zzz.ttt and the like which messes with offsetof, and suddently lots of tests went green: https://github.com/nim-lang/Nim/pull/5018 |
15:56:05 | arnetheduck | my question was actually the other way around.. why would it be useful to generate field info for imported types (not why it's hard to do it for c++)? |
15:57:08 | arnetheduck | the test suite works fine without it, but it's not like those parts are rigorously and methodically tested... |
16:00:43 | Araq | well the clean solution is to embrace incompleteCstruct or whatever it's called |
16:00:55 | * | confundus quit (Quit: leaving) |
16:01:33 | Araq | so it's clearly communicated "compiler, we fucked it up, you cannot generate RTTI" |
16:01:47 | Araq | which btw affects the assignment operator too |
16:01:58 | Araq | incomplete structs cannot be copied |
16:04:20 | arnetheduck | hm that seems to be used only when the c type is an incomplete struct (like FILE) |
16:04:38 | arnetheduck | ie when even the c compiler doesn't know the layout |
16:05:32 | Araq | hmm |
16:06:53 | Araq | btw I now have the same problem as you. object type aliases cause a copy, not good :-) |
16:07:36 | Araq | question is whether we introduce tyAlias or simply make both types 'sym' field point to the same Symbol |
16:09:01 | * | confundus joined #nim |
16:10:53 | arnetheduck | the latter will prevent some ast analysis and possibly render error messages less intuitive, I'd venture to guess |
16:11:00 | arnetheduck | ie it drops information |
16:12:12 | * | gokr quit (Ping timeout: 265 seconds) |
16:14:05 | * | PMunch quit (Quit: leaving) |
16:16:22 | arnetheduck | with either, you could get rid of large parts of the uniquedtype stuff simply by always skipping to the most raw definition.. nlvm does none of that stuff, but suffers from excessive casting because it cannot tell if two types alias |
16:16:51 | Araq | in my branch I removed uniqueType, yes |
16:17:22 | Araq | replaced it by type signatures |
16:17:42 | arnetheduck | like.. mangled names? |
16:18:13 | Araq | yeah, but I hash everything to keep the mangled names short |
16:19:23 | arnetheduck | in c gen or earlier? |
16:19:30 | Araq | I like to use this mechanism later in the frontend too to determine type equality |
16:19:40 | Araq | right now it's backend only |
16:21:32 | arnetheduck | well, tbh, I suspect backend can do without it by adding a few casts here and there, trusting that sem has done its work.. that's what nlvm does and I don't see why c gen should be different in this regard |
16:22:16 | Araq | I don't know when to generate these casts |
16:22:28 | Araq | and it seems an ugly solution |
16:22:56 | arnetheduck | no, but ast does .. whenever parent and child disagree, essentially.. mostly happens with arg passing |
16:25:46 | flyx | Araq: you said you don't like staticReadEx as name, so I wonder how you would like the procs to be named |
16:27:19 | arnetheduck | https://github.com/arnetheduck/nlvm/blob/master/nlvm/llgen.nim#L1435 - used with function calls and binops, that's it |
16:28:42 | arnetheduck | if type aliases are know, even that should go away I think... |
16:29:00 | arnetheduck | oh well, bbl.. +1 for tyAlias |
16:36:00 | Araq | flyx: slurpOutputAndExitCode ... meh |
16:43:17 | * | huonw quit (Ping timeout: 256 seconds) |
16:43:34 | * | huonw joined #nim |
16:49:33 | * | pregressive quit (Remote host closed the connection) |
16:50:05 | * | pregressive joined #nim |
16:51:02 | * | pregressive quit (Read error: Connection reset by peer) |
16:51:29 | * | pregressive joined #nim |
16:52:06 | Araq | flyx: staticReadEx is fine, cannot come up with something better |
16:52:39 | * | pregressive quit (Read error: Connection reset by peer) |
16:53:06 | * | pregressive joined #nim |
16:53:27 | Araq | arnetheduck: btw your code is full of duplications, use more templates :-) |
16:53:58 | * | pregressive quit (Read error: Connection reset by peer) |
16:54:23 | * | pregressive joined #nim |
16:58:57 | * | pregressive quit (Ping timeout: 240 seconds) |
17:04:03 | * | UNIcodeX joined #nim |
17:04:55 | * | fredrik92 joined #nim |
17:06:32 | * | Trustable quit (Remote host closed the connection) |
17:06:55 | * | couven92 quit (Disconnected by services) |
17:07:00 | * | fredrik92 is now known as couven92 |
17:07:20 | * | fredrik92 joined #nim |
17:08:25 | * | ibk quit (Quit: Connection closed for inactivity) |
17:18:10 | * | vlad1777d joined #nim |
17:18:36 | * | desophos joined #nim |
17:34:51 | * | Jesin quit (Quit: Leaving) |
17:36:03 | * | space-wizard joined #nim |
17:43:42 | * | confundus quit (Quit: leaving) |
17:49:35 | * | yglukhov_ joined #nim |
17:50:01 | * | pie__ quit (Ping timeout: 260 seconds) |
17:52:57 | * | yglukhov quit (Ping timeout: 240 seconds) |
17:52:58 | * | yglukhov_ quit (Read error: Connection reset by peer) |
17:53:20 | * | yglukhov joined #nim |
17:57:34 | * | yglukhov quit (Ping timeout: 250 seconds) |
18:01:00 | * | yglukhov joined #nim |
18:01:32 | * | gokr joined #nim |
18:05:25 | * | yglukhov quit (Ping timeout: 260 seconds) |
18:13:34 | * | Jesin joined #nim |
18:22:06 | * | pregressive joined #nim |
18:23:12 | * | krux02 joined #nim |
18:23:14 | * | pregressive quit (Read error: Connection reset by peer) |
18:23:46 | * | pregressive joined #nim |
18:23:54 | * | pregressive quit (Remote host closed the connection) |
18:24:28 | * | pregressive joined #nim |
18:24:58 | * | pregressive quit (Read error: Connection reset by peer) |
18:25:25 | * | pregressive joined #nim |
18:27:39 | * | nsf quit (Quit: WeeChat 1.6) |
18:29:36 | * | pregressive quit (Ping timeout: 246 seconds) |
18:36:03 | * | brson joined #nim |
18:38:30 | * | Jesin quit (Quit: Leaving) |
18:40:37 | * | yglukhov joined #nim |
18:44:58 | * | yglukhov quit (Ping timeout: 258 seconds) |
18:48:54 | * | yglukhov joined #nim |
18:55:30 | * | vendethiel quit (Ping timeout: 252 seconds) |
18:59:12 | * | vendethiel joined #nim |
19:01:52 | * | Gonzih quit (Quit: WeeChat 1.6) |
19:02:48 | corecode | can a template that creates a proc add a (custom) documentation comment? i guess i need to check it out |
19:02:55 | * | Gonzih joined #nim |
19:03:49 | Araq | nah, you need a macro for that, I think |
19:03:51 | * | Gonzih quit (Client Quit) |
19:03:57 | corecode | okay |
19:04:11 | * | Gonzih joined #nim |
19:04:16 | Araq | there is no substitution mechanism for comments |
19:04:43 | Araq | I would write the comment in a general fashion instead :P |
19:04:59 | corecode | this is for generated code |
19:05:04 | * | Gonzih quit (Client Quit) |
19:05:14 | Araq | yes, I got it. |
19:05:20 | corecode | converting xml that describes memory-mapped hardware registers into accessor procs |
19:05:26 | * | Gonzih joined #nim |
19:05:46 | corecode | i thought about adding the "description" node as documentation comment |
19:05:56 | Araq | why would I want to read 10x the same comment? |
19:06:06 | corecode | yea you wouldn't |
19:06:15 | Araq | or slightly variations of the comment for that matter |
19:07:06 | Araq | proc getFoo(): Foo ## Get the foo. |
19:07:15 | corecode | lolno |
19:07:22 | Araq | --> just leave it out instead :P |
19:08:17 | corecode | more like proc ALERT(r: CR1type): bool ## SMBus alert; proc PEC(r: CR1type): bool ## Packet error checking |
19:11:10 | Araq | ah, so the doc comment is in the XML? |
19:12:17 | corecode | the content comes from the xml |
19:12:26 | corecode | i'm still playing with the interfaces |
19:13:04 | corecode | how to do abstract memory-mapped register access |
19:13:17 | corecode | and how this API is generated |
19:14:32 | * | Jesin joined #nim |
19:18:56 | * | yglukhov quit (Remote host closed the connection) |
19:22:23 | FromGitter | <kteza1> Is there any documentation which clearly tells the difference between `var` for creating a variable and `var` in proc parameters? |
19:29:06 | flyx | kteza1: http://nim-lang.org/docs/manual.html#statements-and-expressions-var-statement http://nim-lang.org/docs/manual.html#procedures-var-parameters |
19:32:44 | * | Salewski joined #nim |
19:33:54 | Salewski | Var for creating a variable, and var for proc parameters are fully unrelated and have nothing in common I think. |
19:34:33 | * | yglukhov joined #nim |
19:34:34 | Salewski | Both is from Pacal family -- as keyword static in C which is used with totally different meanings. |
19:39:32 | * | pregressive joined #nim |
19:41:23 | FromGitter | <kteza1> Salewski: When I was a C beginner, I found static very confusing. Why didn't nim go with a different keyword here? @dom96 Maybe this point should be stressed in Nim In Action? I couldn't recollect reading about this |
19:41:27 | Salewski | OK, when thinking about it, both indicate a nutable value |
19:42:19 | Salewski | It is bad to waste too many keywords |
19:44:45 | Salewski | And it is from Pascal family and makes sense in the sense of mutable. But still both is very different. |
19:45:48 | Salewski | Bye... |
19:45:52 | * | Salewski left #nim (#nim) |
19:47:47 | * | zaquest quit (Quit: Leaving) |
19:48:20 | * | yglukhov quit (Remote host closed the connection) |
19:52:03 | * | dmi0 quit (Ping timeout: 258 seconds) |
19:53:06 | * | PMunch joined #nim |
19:58:19 | * | yglukhov joined #nim |
20:22:47 | yglukhov | Can macro be somehow limited on node kinds it can be applied to during overload resolution? |
20:28:28 | Araq | yglukhov: yes indeed, via type parameter constraints |
20:29:01 | Araq | macro m(a: typed{lit}) |
20:30:16 | Araq | kteza1: I never found a better keyword for it, plus you need to pass a variable to a 'var T' param, so it makes lots of sense |
20:30:27 | Araq | I also liked the ptr/ref/var trinity |
20:31:40 | yglukhov | Araq: theres smth wrong with this code: macro toBson*(x: untyped{nnkTableConstr}): Bson = ... |
20:31:53 | yglukhov | Error: Error: illformed AST: nnkTableConstr |
20:32:15 | Araq | try nkTableConstr instead |
20:32:33 | Araq | or just TableConstr, I don't remember, check the manual |
20:33:35 | yglukhov | Araq: got it. that moved me a bit further. thanks. |
20:37:05 | * | yglukhov quit (Remote host closed the connection) |
20:37:16 | * | gangstacat quit (Quit: Ĝis) |
20:41:11 | * | Dankrad joined #nim |
20:45:53 | FromGitter | <kteza1> Araq: Ok. Thanks :). This might be one of the frequent confusing concepts for newbies. Better documentation explaining the differences would be great |
20:47:00 | * | Arrrr quit (Quit: WeeChat 1.5) |
20:50:33 | corecode | VM is not allowed to 'cast' :( |
20:58:23 | * | dmi0 joined #nim |
21:01:11 | * | pregressive quit (Remote host closed the connection) |
21:02:00 | * | pregressive joined #nim |
21:02:19 | Araq | corecode: what do you do at compile-time? :-) |
21:02:40 | Araq | check my lexim project of how to use staticExec for much faster compiletime voodoo |
21:02:44 | corecode | trying to learn nim :) |
21:07:27 | * | gangstacat joined #nim |
21:09:38 | * | xet7 quit (Quit: Leaving) |
21:19:09 | * | xet7 joined #nim |
21:20:15 | * | gangstacat_ joined #nim |
21:20:57 | * | gangstacat quit (Ping timeout: 260 seconds) |
21:30:03 | * | dmi00 joined #nim |
21:30:28 | * | dmi0 quit (Ping timeout: 260 seconds) |
21:30:35 | * | Dankrad quit (Ping timeout: 256 seconds) |
21:31:30 | * | Dankrad joined #nim |
21:32:28 | * | nsf joined #nim |
21:44:28 | * | Dankrad quit (Ping timeout: 260 seconds) |
21:45:22 | * | Dankrad joined #nim |
21:51:18 | * | Trustable joined #nim |
21:56:30 | * | bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:05:09 | * | chemist69 quit (Ping timeout: 256 seconds) |
22:07:36 | * | chemist69 joined #nim |
22:21:49 | * | bjz joined #nim |
22:27:03 | * | byte512 joined #nim |
22:30:03 | * | bjz quit (Ping timeout: 245 seconds) |
22:33:38 | * | byte512 quit (Ping timeout: 268 seconds) |
22:41:06 | * | shashlick joined #nim |
22:44:02 | shashlick | hello all |
22:45:37 | * | byte512 joined #nim |
22:51:55 | Araq | hi shashlick welcome |
22:52:50 | * | nsf quit (Quit: WeeChat 1.6) |
22:54:04 | shashlick | hello Araq - honored :) |
22:55:39 | shashlick | I'm new to Nim, still twiddling around to find my way, but find it very interesting |
23:00:51 | * | pregressive quit (Remote host closed the connection) |
23:01:27 | * | pregressive joined #nim |
23:03:49 | * | elrood quit (Quit: Leaving) |
23:05:41 | * | pregressive quit (Ping timeout: 248 seconds) |
23:11:12 | * | gokr quit (Ping timeout: 244 seconds) |
23:19:14 | * | shashlick quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
23:19:23 | * | Trustable quit (Remote host closed the connection) |
23:41:22 | * | alfredo joined #nim |
23:41:37 | * | alfredo is now known as abeaumont |
23:47:58 | * | Dankrad quit (Ping timeout: 245 seconds) |
23:48:30 | * | Dankrad joined #nim |