00:21:47 | * | strcmp1 quit (Ping timeout: 264 seconds) |
00:42:51 | * | yglukhov quit (Remote host closed the connection) |
00:46:06 | * | bjz joined #nim |
00:50:44 | * | bjz_ joined #nim |
00:51:18 | * | bjz quit (Ping timeout: 244 seconds) |
00:55:57 | * | strcmp1 joined #nim |
00:58:13 | * | bjz joined #nim |
00:58:44 | * | bjz_ quit (Ping timeout: 265 seconds) |
00:59:18 | * | zepolen quit (Remote host closed the connection) |
01:02:40 | * | brson quit (Quit: leaving) |
01:43:19 | * | yglukhov joined #nim |
01:47:58 | * | yglukhov quit (Ping timeout: 260 seconds) |
01:59:27 | * | lazypenguin quit (Remote host closed the connection) |
02:00:03 | * | zepolen joined #nim |
02:04:38 | * | zepolen quit (Ping timeout: 240 seconds) |
02:07:00 | * | Demos joined #nim |
02:14:38 | * | kulelu88 quit (Quit: Leaving) |
02:29:49 | * | desophos_ joined #nim |
02:34:07 | * | desophos_ quit (Ping timeout: 244 seconds) |
02:37:42 | * | pregressive joined #nim |
02:42:28 | * | pregressive quit (Ping timeout: 250 seconds) |
03:05:24 | * | DecoPerson quit (Read error: Connection reset by peer) |
03:05:29 | * | TylerE_ quit (Read error: Connection reset by peer) |
03:05:59 | * | n1ftyn8_ quit (Read error: Connection reset by peer) |
03:06:03 | * | pmbauer quit (Read error: Connection reset by peer) |
03:07:33 | * | DecoPerson joined #nim |
03:07:47 | * | TylerE_ joined #nim |
03:08:33 | * | n1ftyn8_ joined #nim |
03:08:57 | * | pmbauer joined #nim |
03:34:03 | * | strcmp1 quit (Ping timeout: 244 seconds) |
03:44:35 | * | ephja quit (Ping timeout: 264 seconds) |
03:44:55 | * | yglukhov joined #nim |
03:49:05 | * | yglukhov quit (Ping timeout: 240 seconds) |
03:58:29 | * | darkf joined #nim |
04:01:15 | * | desophos quit (Read error: Connection reset by peer) |
04:01:22 | * | strcmp1 joined #nim |
04:19:39 | * | darkf quit (Ping timeout: 240 seconds) |
04:22:39 | * | Demos quit (Read error: Connection reset by peer) |
04:22:51 | * | darkf_ joined #nim |
04:30:07 | * | darkf_ is now known as darkf |
04:42:59 | * | nande quit (Remote host closed the connection) |
04:56:51 | * | desophos joined #nim |
05:01:44 | * | zepolen joined #nim |
05:01:48 | * | desophos quit (Ping timeout: 272 seconds) |
05:06:41 | * | zepolen quit (Ping timeout: 265 seconds) |
05:21:08 | * | vendethiel joined #nim |
05:29:38 | * | bjz_ joined #nim |
05:31:28 | * | bjz quit (Ping timeout: 250 seconds) |
05:44:54 | * | vendethiel quit (Ping timeout: 250 seconds) |
05:46:33 | * | yglukhov joined #nim |
05:51:54 | * | yglukhov quit (Ping timeout: 260 seconds) |
06:46:07 | * | zepolen joined #nim |
06:48:13 | * | zepolen quit (Remote host closed the connection) |
06:48:19 | * | zepolen joined #nim |
06:48:49 | * | linkedinyou quit (Read error: Connection reset by peer) |
07:13:40 | * | strcmp1 quit (Read error: Connection reset by peer) |
07:14:17 | * | strcmp1 joined #nim |
07:23:52 | * | desophos joined #nim |
07:28:18 | * | desophos quit (Ping timeout: 255 seconds) |
07:43:38 | * | strcmp1 quit (Read error: Connection reset by peer) |
07:44:15 | * | strcmp1 joined #nim |
09:11:46 | * | coffeepot joined #nim |
09:19:15 | * | Demon_Fox quit (Quit: Leaving) |
09:20:11 | * | yglukhov joined #nim |
09:47:07 | * | bjz joined #nim |
09:49:20 | * | bjz_ quit (Ping timeout: 272 seconds) |
09:49:27 | * | darkf_ joined #nim |
09:50:59 | * | bjz_ joined #nim |
09:52:04 | * | darkf quit (Ping timeout: 246 seconds) |
09:53:34 | * | gokr_ joined #nim |
09:53:38 | * | bjz quit (Ping timeout: 268 seconds) |
09:55:30 | * | thotypous quit (Ping timeout: 260 seconds) |
10:00:16 | * | darkf_ is now known as darkf |
10:16:09 | * | Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
10:25:41 | * | makoLine quit (Ping timeout: 265 seconds) |
10:37:55 | * | jakesyl quit (Ping timeout: 246 seconds) |
10:47:29 | OnO | argh... I think my fix is right and it was a typo, moreover there are wrong comments on in semTemplBody elif s.owner == c.owner and sfGenSym in s.flags case is for locals not for template arguments |
10:48:11 | OnO | but the comments gives example of: template tmp[T](x: var seq[T]) = var yz: T, as if it was about T |
10:48:15 | OnO | Araq: you there? |
10:48:40 | Araq | always |
10:49:22 | Araq | the comments are likely correct |
10:51:25 | * | jakesyl joined #nim |
10:51:29 | Araq | it was not a typo |
10:53:39 | OnO | okay, then where were template args symbols to be processed in semTemplBody |
10:53:49 | OnO | because they do not have sfGenSym |
10:54:09 | OnO | flag, only template body locals symbols have sfGenSym |
10:54:31 | OnO | template generic args symbols are created semGenericParamList |
10:55:04 | OnO | via symG either as skGenericParam for statics or skType for others (type arguments) |
10:55:38 | Araq | template parameters are not sfGenSym so why would the type parameters be? |
10:56:08 | OnO | that's why s.owner == c.owner and sfGenSym in s.flags is NOT for generic template args |
10:56:12 | OnO | so the comment is wrong |
10:56:19 | OnO | they get into semTemplSymbol |
10:56:41 | Araq | well tbh I have no idea what the comment means |
10:56:42 | OnO | if (s.typ != nil) and (s.typ.kind == tyGenericParam) #<- my fix correctly replaces them in the body |
10:56:55 | OnO | before: if (s.typ != nil) and (s.typ.kind != tyGenericParam) was completely meaning less |
10:57:11 | Araq | why have the 'if' at all? |
10:57:44 | OnO | you tell me, what was the purpose of this if |
10:58:09 | Araq | to not replace them in the body ;-) |
10:58:23 | Araq | because they should have stayed nkIdent |
10:58:45 | Araq | because they are then correctly replaced by the generic instantiation process |
10:59:02 | Araq | which is a hacky way we also should get rid of. |
10:59:11 | Araq | but that was the intention. |
10:59:20 | OnO | hehe, but we want exactly the opposite, generic argument needs to be replaced |
10:59:43 | OnO | everything else should stay as is |
10:59:44 | Araq | but this was like "an exception, don't replace these" |
10:59:51 | Araq | so you should get rid of the 'if' |
11:00:11 | Araq | everything should be replaced then, right? |
11:00:49 | OnO | first of all I doubt there will be any skType that is s.typ.kind != tyGenericParam |
11:01:10 | OnO | like where it should came from? |
11:02:08 | Araq | type Foo = object |
11:02:17 | Araq | template t(): untyped = Foo |
11:02:23 | Araq | like so? |
11:02:59 | OnO | okay so we can just get rid of (s.typ.kind == tyGenericParam) |
11:03:07 | OnO | and leave s.typ != nil check |
11:03:16 | Araq | what? why? |
11:03:33 | Araq | the s.typ != nil check doesn't mean anything without the s.typ.kind test |
11:04:02 | OnO | okay I am removing the whole if then and checking if it's gonna blow |
11:04:17 | OnO | somehow all tests passed with previous != --> == |
11:04:29 | OnO | so probably this nkIdent was replaced somewhere else |
11:05:44 | OnO | sometimes I wonder if having generics on templates or macros make sense at all |
11:06:09 | OnO | also there is some major shortcoming in current implementation, because all normal args and generic args are put in single list |
11:06:25 | OnO | template evaluation cannot really tell if we miss normal arguments or generic arguments |
11:06:33 | OnO | because there's no way to distinguish them |
11:06:38 | Araq | yeah I told zahary it sucks, but he woudn't listen |
11:07:04 | Araq | I agree this should be some nkPair node instead with 2 lists |
11:07:16 | OnO | or at least have empty node as a separator |
11:07:28 | Araq | ugh, nah please don't |
11:07:43 | OnO | nah right now I am not going to touch it anymore |
11:07:59 | Araq | we have nkArgList for this, with good unclear semantics |
11:08:16 | Araq | which we can use for this. or maybe not. |
11:08:36 | OnO | but I think it I will be able to blow up compiler with template tmp[A, B](c, d) calling tmp[int](1) |
11:08:50 | OnO | even with my both 3496 & 3498 fixes |
11:09:31 | Araq | how about tmp(A, B; c, d) as an unambiguous shortcut for tmp[A, B](c, d) |
11:09:38 | Araq | I'm beginning to like this |
11:10:26 | Araq | we could also make tmp(A, B;) to mean tmp[A, B] |
11:10:40 | OnO | this isn't a problem of syntax, but this single list, tmp[int](1) misses 1 generic arg and 1 normal arg, but evaluator think it misses 2 normal args |
11:10:55 | OnO | because it assumes that generic args are always complete |
11:10:56 | Araq | I know. |
11:11:07 | Araq | but the syntax is also flawed. |
11:12:45 | OnO | I think newSeq(string, string;) is less readable than newSeq[string, string]() |
11:14:39 | * | strcmp1 quit (Ping timeout: 255 seconds) |
11:15:44 | Araq | well it surely is shorter though |
11:15:50 | Araq | and easier to type |
11:17:11 | OnO | isn't it ambigious someProc(1, let x = 1; x) ?? |
11:17:23 | Araq | that already requires () |
11:17:32 | OnO | I see |
11:17:33 | Araq | someProc(1, (let x 1; x)) |
11:17:41 | Araq | but yeah ... hrm |
11:18:04 | Araq | tmp[.A, B](x, y) |
11:18:24 | Araq | we could decide {. .} is stupid and {. } should be used instead |
11:19:04 | Araq | which is ofc allowed since forever. |
11:19:13 | * | strcmp1 joined #nim |
11:20:16 | * | darkf_ joined #nim |
11:21:01 | OnO | how about tmp(:A, B: a, b) |
11:22:01 | Araq | meh, ruby-like colon sex |
11:22:19 | OnO | ok, thinking about something readable |
11:23:39 | * | darkf quit (Ping timeout: 240 seconds) |
11:23:51 | Araq | well the current language kind of pushes us to foo[.A, B.] or foo[.A, B] |
11:24:27 | Araq | since [. .] and (. .) always were valid tokens with no meaning. |
11:25:38 | Araq | we can also then finally have named type parameters, foo[.T = int.] # use defaults for everything else |
11:29:59 | OnO | yeah, but it would be cool to leave them to users, btw does {{ }} have any meaning? |
11:31:41 | * | ephja joined #nim |
11:35:56 | Araq | sorry bbl |
11:36:53 | OnO | no pbm |
11:39:31 | * | elrood joined #nim |
11:52:10 | * | gokr_ quit (Ping timeout: 240 seconds) |
11:53:12 | * | octoploid joined #nim |
11:54:20 | * | gokr_ joined #nim |
12:01:12 | * | darkf_ is now known as darkf |
12:01:43 | * | boopsiesisaway is now known as boopsies |
12:08:15 | * | linkedinyou joined #nim |
12:18:53 | Araq | {{}} is the set including the empty set |
12:19:23 | Araq | and it's ugly to have mean something else |
12:21:33 | Araq | dom96: can I tell people to install nimsuggest via a nimscript rather than via nimble? |
12:43:28 | * | gokr_ quit (Read error: Connection reset by peer) |
12:45:50 | OnO | yeah, I think there's no other way than using [. or (. |
12:46:13 | OnO | my only pbm it is quite hard to type ;P |
12:47:21 | OnO | also \ backslash is not used, easy to type but I dunno if: newSeq \int, string\ looks nice |
12:49:17 | * | egor joined #nim |
12:54:31 | OnO | or maybe using :: eg: newTable::string::int or newSeq::int(10) |
12:58:43 | egor | Hi, I have nim 0.12 and gcc 4.4.7. Got an "error: redefinition of typedef ‘TNimType’" while compiling trivial program. Am I right that gcc 4.4 cannot be used with nim 0.12 ? |
13:05:48 | OnO | Araq: here is some copilation of alternative syntaxes for templates https://gist.github.com/nanoant/b80990aa0cd864944705 |
13:06:21 | reactormonk | egor, bootstrapping devel works? |
13:07:57 | OnO | egor: are you using C++ or C compiler? |
13:09:14 | * | Arrrr joined #nim |
13:09:28 | egor | OnO: c compiler |
13:10:18 | OnO | egor what OS? |
13:10:59 | egor | OnO: redhat 6.7 |
13:13:29 | egor | reactormonk: You mean, does build.sh from nim-0.12.0 work? No, it doesn't work: c_code/2_2/compiler_nim.c:13: error: redefinition of typedef ‘TNimType’ |
13:13:50 | reactormonk | egor, from git? |
13:14:42 | egor | reactormonk: didn't try it yet. just downloaded from http://nim-lang.org/download/nim-0.12.0.tar.xz |
13:26:42 | Araq | egor: your problem sounds familiar, I'm afraid gcc indeed it not compatible. we should be able to fix it though. |
13:28:15 | egor | Araq: ok, thanks for clarification |
13:32:07 | OnO | I just tried boostraping Nim with GCC 4.4.1 on OSX, works fine |
13:33:16 | OnO | are you sure that gcc command is gcc 4.4? or maybe you need explicit alias eg gcc-4.4 to run it? |
13:33:34 | OnO | and gcc w/o suffix is some old version |
13:34:04 | Araq | OnO: not sure which GCC version is affected but Jehan complained about this issue too and he knows what he is doing. |
13:34:12 | egor | OnO: gcc -v gave me: gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) |
13:34:36 | Araq | Red Hat has its own GCC version, so it's quite possible |
13:36:49 | OnO | Araq: btw. anyone who made this build.sh generator never heard of "set -x" :) |
13:39:02 | egor | ok, looks like I've found acceptable workaround -- install clang (yum install clang) and use clang instead of gcc |
13:39:15 | Araq | indeed, I have no idea what 'set -x' means nor do I care. |
13:39:32 | Araq | maybe they could have used full words for uncommon features. |
13:40:22 | OnO | egor: just tested on Ubuntu 4.4.7 everything compiles well |
13:40:56 | OnO | gcc version 4.4.7 (Ubuntu/Linaro 4.4.7-8ubuntu1) |
13:41:09 | Araq | for that they all masturbate over their all-ascii-based solutions they surely don't even use ascii well. |
13:42:33 | OnO | ahh... yes, I downloaded http://nim-lang.org/download/nim-0.12.0.tar.xz and it doesn't compile :) |
13:43:00 | OnO | works on 4.6 though |
13:43:02 | OnO | :( |
13:43:35 | OnO | so I guess someone has to write that GCC 4.6 is bare minimum for Nim |
13:44:20 | Araq | I intend to release 0.12.2 shortly after 0.12.0 fixing the most problematic regressions and incompatibilities |
13:45:33 | Araq | I think this tick-tock model works rather well. |
13:46:15 | OnO | csources repo is what version? |
13:46:29 | Araq | uh oh |
13:46:47 | Araq | nobody updated csources? |
13:48:29 | OnO | Mon May 25 22:01:56 2015 +0200 |
13:49:00 | Araq | well 0.11.2 should be able to compile 0.12.0 |
13:52:47 | Araq | https://github.com/nim-lang/Nim/wiki/Creating-a-relase |
14:26:31 | * | vqrs quit (Ping timeout: 256 seconds) |
14:27:55 | OnO | Araq: can you mark it a RFC please https://github.com/nim-lang/Nim/issues/3502 ? I couldn't find an existing issue about that |
14:28:26 | * | vqrs joined #nim |
14:34:17 | Araq | OnO: interesting the barbaric old school pascal defined (.a.) to mean [a] since keyboards might not have [] readily available |
14:36:49 | OnO | yeah, something similar to C/C++ trigraphs |
14:37:19 | Araq | yup except it didn't rewrite (. .) to [] in string literals ... ;-) |
14:37:20 | OnO | ??(a??) =:= [a] :) |
14:37:50 | reactormonk | OnO, how about getting rid of the array syntax instead? |
14:37:59 | Araq | reactormonk: nooooooooo!!!!! |
14:38:03 | OnO | wooot? |
14:38:22 | Araq | Nim loves arrays, arrays need special syntax. |
14:38:43 | reactormonk | so do types. Which one do you use more often? |
14:38:50 | Araq | The array is the essence of computing. |
14:39:36 | reactormonk | would it be possible to do arr(1) ? |
14:39:39 | Araq | I use a[i] for array-like access much more often than generic types |
14:39:41 | OnO | I concur |
14:40:22 | Araq | reactormonk: yeah, technically it would be quite possible. |
14:40:42 | OnO | I just gave some ideas of new syntax, let's choose one and deprecate the old ambiguous shit |
14:41:05 | OnO | I prefer a[..] to be substript op, since it is close to math and many other languages |
14:41:16 | OnO | and feels natural |
14:41:18 | Araq | well ... "deprecate" in non-type-contexts. |
14:41:36 | reactormonk | Araq, proc `()` ? |
14:41:41 | Araq | and even then, "deprecate" within one year. |
14:41:58 | Araq | reactormonk: read the logs, Arrrr showed how to do it. |
14:42:16 | OnO | as long we can find some decent non-eyestraining syntax |
14:43:33 | OnO | newArray[:10](1) & newArray::10(1) |
14:43:40 | OnO | these are my favorites |
14:44:05 | OnO | [: is meaningless today, right? |
14:44:25 | Araq | not sure, I guess so since ':' is not a valid operator |
14:44:51 | Araq | but then why [: ] instead of [. ] which is consistent with pragma syntax? |
14:45:02 | OnO | : is close to [ on keyboard and both require shift to be pressed |
14:45:07 | OnO | so ergonomics |
14:45:28 | reactormonk | OnO, depends on the layout as usual |
14:45:36 | Araq | [ requires alt-gr to be pressed ;-) |
14:45:39 | reactormonk | and code is more often read than written... |
14:46:32 | Araq | :: is too confusing for rubyists and c++nistas |
14:46:39 | OnO | reactormonk: agree, that's why it has to be readable too |
14:47:12 | Araq | foo.bar[.x](a, b,c ) |
14:47:26 | Araq | --> bar[.x](foo, a, b, c) |
14:47:37 | reactormonk | I'd prefer it to be symmetric |
14:47:44 | Araq | is another advantage of a non-ambiguous syntax btw |
14:48:31 | * | BitPuffin|osx joined #nim |
14:48:37 | Araq | reactormonk: both [. ] and [. .] would be possible. |
14:49:13 | OnO | the one dot version looks really bizzare |
14:50:37 | OnO | also if we could make it obvious even to these who don't know the language |
14:51:53 | OnO | newSeq{:int:}(10) ? |
14:52:09 | OnO | or newSeq{:int}(10) |
14:52:29 | OnO | then it is similar to pragma ;P |
14:54:11 | reactormonk | OnO, I rest my case. |
14:59:25 | ephja | newSeq(int, 10) :p |
15:01:43 | ephja | who was it that wanted to use this syntax instead in most cases? because you need to be able to make it work with inference somehow |
15:02:57 | * | pregressive joined #nim |
15:05:12 | * | gokr quit (Read error: Connection reset by peer) |
15:05:36 | * | askatasuna joined #nim |
15:15:59 | Araq | newSeq(int, 10) is possible but different and it's hard to unify these two different ideas. |
15:20:29 | OnO | how about new "of" keyword: newSeq(10) of int |
15:20:44 | OnO | let s = newSeq(10) of int |
15:20:54 | OnO | let t = newTable of (string, string) |
15:21:09 | OnO | let d = default of int |
15:21:31 | OnO | proc newSeq(size: int) of T = ... |
15:23:33 | Araq | that's horrible. |
15:32:46 | * | desophos joined #nim |
15:38:10 | Arrrr | i prefer newSeq(int, 10) |
15:41:08 | ephja | yes but inference might be necessary in other cases |
15:41:14 | Arrrr | honestly, i'd rather use arr(2) for arrays than some of the ideas i have read, that's my opinion |
15:41:55 | Arrrr | is not that strange, one should look at arrays access like some sort of function |
15:43:31 | Arrrr | or maybe for generics '<>' like in c#: newSeq<int>(123) |
15:45:28 | * | octoploid quit (Quit: WeeChat 1.3-rc1) |
15:53:15 | ephja | you don't think it would have any negative effects on the readability? one should know what type said symbol is referring to though |
15:55:54 | Arrrr | are you referring to 'newSeq<int>(123)' ? |
15:57:26 | ephja | sorry, lack of context. I was referring to the array syntax |
15:59:22 | Arrrr | newSeq(int, 123) ? |
15:59:43 | ephja | array indexing :p |
15:59:53 | Arrrr | arr(2) ? |
16:00:00 | * | egor quit (Ping timeout: 246 seconds) |
16:00:09 | Arrrr | what is the difference with arr[2] ? |
16:07:14 | ephja | one uses syntax that is more generic (less specific), basically |
16:09:36 | * | filcuc joined #nim |
16:10:39 | ephja | I dunno if it matters, and the "functor" approach is equally concise |
16:11:03 | Arrrr | how is that? |
16:21:19 | reactormonk | Arrrr, https://github.com/nim-lang/Nim/issues/3502#issuecomment-152544658 :-) |
16:26:32 | Arrrr | heh, i'm with you, i think it is the lesser evil. People are gonna freak if they have to write '[.T]' for generics. |
16:28:41 | ephja | yeah but aren't type parameters deduced by inference in most cases? |
16:28:55 | reactormonk | most cases. |
16:30:06 | Arrrr | newSeq isnt one of them, i dont know why |
16:34:07 | ephja | I don't think inference is relevant in that case. anyway, foo(int) seems like a fairly recent idiom, but I don't know if it's due to an old compiler bug/limitation or the lack of momentum |
16:39:53 | ephja | binary literals are borked? |
16:40:18 | ephja | I don't think anyone has reported that, but it's probably not commonly used |
16:42:51 | ephja | wait a second |
16:44:07 | ephja | FixarrayValMask = 0b00001111u8 .. FixstrValMask = 00011111u8 |
16:47:15 | ephja | syntax highlighting for these literals would be helpful |
16:50:13 | * | darkf quit (Quit: Leaving) |
16:52:40 | ephja | vertical alignment would be useful too. time to augment my vim |
16:55:34 | * | filcuc quit (Ping timeout: 246 seconds) |
16:58:46 | federico3 | question about introspection: can I lookup a proc by name at runtime? |
16:59:15 | reactormonk | federico3, unlikely. Not stored. |
17:01:26 | * | vendethiel joined #nim |
17:02:45 | * | brson joined #nim |
17:02:53 | federico3 | I could probably use a template at build a lookup table at compile time tho |
17:03:25 | * | Trustable joined #nim |
17:03:29 | * | Trustable quit (Read error: Connection reset by peer) |
17:07:57 | OnO | another idea, annotating generic arguments with dot, eg: let y = newSeq int., 10 var v: seq int. proc newSeq(A., size: int) seq A. = ... |
17:08:35 | Araq | OnO: these are all worse than simply requiring [. .] if (and only if) overly ambiguous |
17:09:12 | Araq | insert the usual "real editors can render [. .] as Unicode brackets" argument here. |
17:09:33 | OnO | proc newSeq(size: int) of A: seq of A = ... IMHO is not ambigious and much more readable |
17:09:57 | OnO | var v: seq of int looks really good |
17:12:03 | Araq | x.y(a, b, c) of (int, float) |
17:12:28 | Araq | if obj of SomeClass: # 'of' already exists |
17:13:06 | Araq | also there is nothing wrong with var v: seq[int], it's the non-type context that is ambiguous |
17:13:41 | Araq | for consistency we would allow var v: seq[.int.] but it's not like we encourage it everywhere |
17:14:18 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
17:14:32 | * | strcmp1 quit (Read error: Connection reset by peer) |
17:14:42 | OnO | yeah seq is builtin but Table Map or many other isn't |
17:14:54 | Araq | not the point. |
17:15:06 | Araq | var x: <type context> |
17:15:44 | Araq | the type context arises from the colon, not from the builtin nature of the term 'seq' |
17:15:59 | Araq | (which is not a keyword anyway, it's just system.seq) |
17:15:59 | * | strcmp1 joined #nim |
17:16:30 | OnO | var x: genericMacro ? |
17:16:35 | Araq | however, this does mean your [: ] suggestion makes sense |
17:16:48 | Araq | since the ':' introduces a type context here then too |
17:17:10 | Arrrr | isnt better '.'? less invasive |
17:17:23 | * | linkedinyou quit (Quit: linkedinyou) |
17:18:30 | Arrrr | and slices uses [:] |
17:18:34 | Araq | Arrrr: [:T, S] is perhaps more beautiful than [.T, S] |
17:18:44 | Araq | slices in Nim don't use [:] |
17:18:45 | OnO | Immutable[.Table[.string, string.].] looks like shit |
17:19:11 | Araq | Immutable[T] already looks like shit. come up with a better example :P |
17:19:30 | OnO | static[.Map[.string, string.].] |
17:20:01 | Arrrr | it remainds me of pragmas too much |
17:20:18 | OnO | static[:Map[:string, string]] is bit better |
17:20:29 | Araq | and now please consider where static[.Map[string, string]] (note the minimal usage of the '.') actually would come up. |
17:21:04 | OnO | vs static of Map of (string, string) quite very readable |
17:21:15 | OnO | but verbose too |
17:21:25 | Araq | 1. 'of' is already used. |
17:21:43 | Araq | 2. precedences of binary keyword operators in general is problematic |
17:21:45 | OnO | isn't of used in case, and must be 1st atom in expr? |
17:23:26 | Arrrr | In my opinion, the problem with [./[: is that people will freak out. Generics is a basic thing in the language i think, we will see a lot of [.int], [.T] |
17:23:55 | OnO | yes this is why I am not feeling comfortable with [. |
17:24:04 | OnO | coz it will look like spaghetti |
17:24:12 | Arrrr | hahaha |
17:24:20 | ephja | explicit instantiation doesn't seem that common as I said |
17:24:21 | Arrrr | but you are actually, in my opinion, right |
17:24:58 | Arrrr | doesnt it affecet procs/templates declarations too? |
17:25:07 | OnO | except all newSeq[int] and s: seq[string] |
17:25:17 | OnO | which there are plenty |
17:26:21 | * | vendethiel quit (Ping timeout: 255 seconds) |
17:26:33 | Arrrr | make arrays work with () would be easier, "esthetic" and ... visual basic uses it |
17:36:46 | * | Trustable joined #nim |
17:37:33 | Arrrr | and scala http://www.scala-lang.org/api/current/index.html#scala.Array |
17:44:40 | * | UberLambda joined #nim |
17:44:42 | * | Trustable quit (Remote host closed the connection) |
17:44:51 | * | askatasuna quit (Read error: Connection reset by peer) |
17:45:02 | * | brson quit (Ping timeout: 265 seconds) |
17:45:40 | * | Trustable joined #nim |
17:51:17 | * | brson joined #nim |
17:55:23 | * | OnO gets crazy on MS Excel 2015 for Mac garbase |
18:17:30 | Araq | Arrrr: and Ada. and I hated it. |
18:25:59 | * | pwzoii left #nim ("Leaving...") |
18:26:03 | * | elrood quit (Quit: Leaving) |
18:29:22 | * | Arrrrr joined #nim |
18:29:33 | * | Arrrr quit (Ping timeout: 252 seconds) |
18:32:23 | reactormonk | Araq, sometimes you'll have to bite the bullet. |
18:32:26 | * | tdc joined #nim |
18:34:13 | Araq | because "somebody will see [. .] everywhere in nim and freak out"? |
18:34:39 | * | Matthias247 joined #nim |
18:35:06 | Araq | some opinions detached from reality won't make me "bite the bullet" |
18:41:38 | * | BlaXpirit joined #nim |
18:53:39 | * | Matthias247 quit (Read error: Connection reset by peer) |
18:56:56 | reactormonk | because the syntax is simpler with one-char operators - what occupies {} btw? |
18:57:31 | Araq | a{i} is available as a general accessor with no builtin semantics. |
18:57:48 | Araq | for example, it can introduce by-row access for matrixes |
18:58:20 | Araq | it's another lovely feature of the language you'll gladly butcher since "Scala does not have it" ... |
18:58:21 | * | thotypous joined #nim |
19:01:37 | Arrrrr | Why would i get this exception 'only' in release mode?: Error: unhandled exception: Can't obtain a value from a `none` [UnpackError:ObjectType] |
19:03:05 | Araq | Arrrrr: now that is a good question. |
19:03:20 | Araq | this shouldn't happen. |
19:04:09 | BlaXpirit | I made an article http://blaxpirit.com/blog/22/advanced-uses-of-travis-ci-with-nim.html |
19:05:08 | ephja | BlaXpirit: you play xonotic? |
19:05:28 | ephja | exetoc here btw. I have a new nick now |
19:06:02 | * | yglukhov quit (Ping timeout: 272 seconds) |
19:06:26 | BlaXpirit | ephja, hi. i played xonotic |
19:06:51 | ephja | I saw your nick in some video. small world |
19:08:03 | ephja | it's fun, but man is it difficult |
19:16:34 | BlaXpirit | what's the place where all the cool kids link to their articles? |
19:17:48 | BlaXpirit | right, that was already done for me :| |
19:19:35 | ephja | reddit? 4chan? |
19:22:47 | Arrrrr | hello BlaXpirit my friend. WHy dont you write about doing a game in nim, desophos was interested in the subject |
19:23:03 | BlaXpirit | Arrrrr, i gave up on nim and on nim-csfml |
19:23:25 | BlaXpirit | the lib is kinda broken :/ |
19:23:43 | BlaXpirit | maybe there were advancements with finalizers, who knows, but i doubt it |
19:23:52 | desophos | yeah that's kind of what i figured :/ that's why i'm using SDL2 |
19:24:20 | * | gXen joined #nim |
19:24:21 | Arrrrr | Ok, i thought you were using it judging by your article |
19:25:01 | BlaXpirit | nah, i just had some time doing nothing at work |
19:25:29 | BlaXpirit | so i went ahead and changed testing to travis, while fixing the libs according to breaking changes in nim |
19:27:32 | BlaXpirit | and then it was just a matter of adding a few comments and i got an article |
19:28:41 | Arrrrr | Maybe you get bored again and decide to write a RogueNim |
19:35:47 | Arrrrr | Did you see nim has its own scripting lang ? |
19:39:02 | BlaXpirit | whatever |
19:46:36 | * | avsej quit (Quit: Quit) |
19:47:27 | * | avsej joined #nim |
19:47:27 | * | avsej quit (Changing host) |
19:47:28 | * | avsej joined #nim |
20:25:42 | * | Demon_Fox joined #nim |
20:26:25 | * | gXen quit () |
20:30:44 | * | yglukhov joined #nim |
20:33:17 | * | ayeganov joined #nim |
20:33:43 | * | renatofdds joined #nim |
20:34:57 | * | CryptoToad joined #nim |
20:35:35 | * | yglukhov quit (Ping timeout: 264 seconds) |
20:38:20 | * | renatofdds quit () |
20:40:59 | * | mat4 joined #nim |
20:41:03 | mat4 | hello |
20:41:11 | Araq | hi mat4 |
20:41:20 | mat4 | hi Araq |
20:45:46 | * | makoLine joined #nim |
20:47:38 | * | Trustable quit (Remote host closed the connection) |
20:49:06 | * | Arrrrr quit (Quit: WeeChat 1.2) |
20:52:49 | * | mat4 quit (Quit: Verlassend) |
20:54:27 | * | UberLambda quit (Quit: GTG) |
20:55:26 | * | UberLambda joined #nim |
20:55:46 | * | makoLine quit (Ping timeout: 250 seconds) |
21:01:48 | ephja | how's mat4's compiler coming along? |
21:02:23 | Araq | ha, too late, he's gone already |
21:04:46 | * | mat4 joined #nim |
21:05:05 | Araq | mat4: how's your compiler coming along? |
21:07:44 | mat4 | the compiler is finished. I'm working on an assembler which then can be used as backend for Nim |
21:08:33 | ephja | nice |
21:12:38 | * | makoLine joined #nim |
21:12:47 | * | BitPuffin|osx quit (Ping timeout: 264 seconds) |
21:16:01 | mat4 | however my time for working on it is somewhat limited and I don't have the opportunity to delegate work at current |
21:21:52 | * | gokr joined #nim |
21:27:32 | mat4 | I'm compiling the sources right now. What is the future status of the 'unsigned' module ? |
21:27:57 | Araq | mat4: it was merged into system.nim so all you have to do is to remove the import. |
21:28:22 | mat4 | good decision, thanks |
21:32:12 | * | yglukhov joined #nim |
21:36:25 | * | yglukhov quit (Ping timeout: 240 seconds) |
21:42:06 | mat4 | hmm, is Nimscript independent from the compiler ? |
21:46:41 | Araq | no, it's just Nim with the VM as backend rather than C. |
21:50:19 | Araq | you can import it into your project though the API still sucks a bit. ;-) |
21:59:54 | * | UberLambda quit (Quit: GTG) |
22:02:40 | mat4 | is someone here using Vim ? |
22:03:09 | * | pregressive quit (Remote host closed the connection) |
22:03:25 | * | pregressive joined #nim |
22:03:40 | * | mat4 quit (Quit: leaving) |
22:05:38 | * | yglukhov joined #nim |
22:06:04 | * | mat4 joined #nim |
22:06:12 | ephja | mat4: yes |
22:06:35 | mat4 | syntax hightlighting seem to be broken |
22:08:13 | ephja | I do have the latest git version and it seems to work |
22:10:30 | mat4 | eh, ok recompile vim (again) |
22:19:46 | mat4 | ciao |
22:19:57 | * | mat4 quit (Quit: leaving) |
22:34:10 | * | BlaXpirit quit (Quit: Konversation) |
22:37:14 | * | Jesin joined #nim |
22:49:41 | * | strcmp2 joined #nim |
22:53:44 | * | strcmp1 quit (Ping timeout: 268 seconds) |
22:58:09 | * | elrood joined #nim |
22:59:55 | * | tdc quit (Ping timeout: 256 seconds) |
23:09:37 | * | Matthias247 joined #nim |
23:18:42 | * | pregressive quit (Remote host closed the connection) |
23:20:49 | * | BitPuffin|osx joined #nim |
23:32:04 | * | mrkishi quit (Quit: Bye!) |
23:34:20 | * | jefus left #nim ("Leaving") |
23:40:45 | * | BitPuffin|osx quit (Ping timeout: 240 seconds) |
23:46:10 | * | elrood quit (Quit: Leaving) |
23:48:22 | * | boopsies is now known as boopsiesisaway |
23:50:39 | * | mrkishi joined #nim |