00:00:06 | a5i | its runs |
00:00:34 | * | reem quit (Remote host closed the connection) |
00:00:49 | flaviu | a5i: Check your path again then. |
00:00:49 | a5i | w/e chcp is |
00:01:09 | * | sillesta joined #nim |
00:01:19 | a5i | nimble is at C:\Users\202378\.nimble |
00:01:29 | a5i | Nim is at C:\Nim |
00:01:42 | BlaXpirit_ | ok so? |
00:02:01 | a5i | nimble isnt a command :( |
00:02:40 | * | reem joined #nim |
00:03:55 | BlaXpirit_ | a5i, there needs to be "SERPROFILE%\.nimble\bin" in PATH https://www.java.com/en/download/help/path.xml |
00:04:05 | * | epichero joined #nim |
00:04:17 | BlaXpirit_ | "%USERPROFILE%\.nimble\bin" IRC substitution happened? |
00:11:11 | * | reem quit (Remote host closed the connection) |
00:11:18 | a5i | thanks got it to work |
00:15:13 | a5i | does Unsatisfied dependency: nim (>= 0.10.3) mean it didnt work? |
00:15:32 | BlaXpirit_ | no |
00:15:44 | BlaXpirit_ | you're probably talking about nim-random |
00:15:53 | BlaXpirit_ | it doesn't work with 0.10.2, which is the latest release |
00:15:55 | a5i | Yeah I am |
00:15:59 | a5i | O |
00:16:04 | BlaXpirit_ | only works with the fixes made *after* the release |
00:20:57 | a5i | I see |
00:21:13 | a5i | any other way to get a random integer? |
00:21:44 | flaviu | .eval var data: array[32, char]; discard open("/dev/urandom").readChars(data, 0, 32); echo data; |
00:21:48 | Mimbus | flaviu: 倒/Cﳀ |
00:21:50 | flaviu | but that doesn't work on windows. |
00:22:33 | a5i | :( |
00:24:24 | dom96 | a5i: use the math module |
00:24:29 | dom96 | a5i: it has a random proc |
00:24:34 | a5i | docs? |
00:24:55 | flaviu | a5i: http://nim-lang.org/lib.html#math-libraries |
00:25:00 | dom96 | http://nim-lang.org/math.html |
00:25:01 | a5i | thanks |
00:25:29 | flaviu | Please note that "return 4" is a valid implementation of that function. It provides no guarantees. |
00:26:06 | a5i | so is it a simple import math? |
00:26:31 | flaviu | yep. |
00:26:43 | flaviu | .eval import math; echo(random(5)) |
00:26:46 | Mimbus | flaviu: 3 |
00:27:12 | a5i | w0w |
00:27:28 | BlaXpirit_ | .eval import math; echo(random(5)) |
00:27:31 | Mimbus | BlaXpirit_: 3 |
00:29:39 | BlaXpirit_ | I should've done this a long time ago |
00:29:48 | BlaXpirit_ | provide an alternative version for old compiler |
00:30:19 | flaviu | BlaXpirit_: Another possibility is to bug Araq to do weekly releases. |
00:30:30 | BlaXpirit_ | at least quarterly!!!! |
00:30:48 | BlaXpirit_ | but yeah, frequent windows builds are important |
00:30:58 | BlaXpirit_ | even if you don't want to call it a release |
00:32:37 | Varriount | BlaXpirit_: Actually, that's something to bug me about, since the buildbots are able to do that. |
00:32:47 | BlaXpirit_ | Varriount, bugbugbug |
00:32:50 | BlaXpirit_ | ... |
00:33:13 | flaviu | Varriount: But I think that Araq should sign off on the idea before actually releasing anything. |
00:33:59 | * | reem joined #nim |
00:34:58 | BlaXpirit_ | can someone tell me how to install from a branch with nimble? |
00:35:14 | BlaXpirit_ | what's the syntax? is it @#branchname ? |
00:35:43 | BlaXpirit_ | yeah, yeah, it is |
00:36:23 | * | reem quit (Remote host closed the connection) |
00:38:39 | a5i | .eval var a = ""; var t = "hello"; a &= t[1]; echo a |
00:38:42 | Mimbus | a5i: eval.nim(5, 2) Error: type mismatch: got (string, char) |
00:39:54 | * | reem joined #nim |
00:41:17 | BlaXpirit_ | a5i, https://github.com/BlaXpirit/nim-random/tree/old-compiler :| |
00:44:10 | * | Trustable quit (Remote host closed the connection) |
00:47:04 | OderWat | Would somebody please test this on windows and linux? https://github.com/Araq/Nim/pull/2238 (my fix for readAll(stdin) on osx #2228) |
00:48:28 | * | reem quit (Remote host closed the connection) |
00:50:31 | * | TEttinger quit (Ping timeout: 255 seconds) |
00:53:25 | a5i | how can I concat a char into a string? |
00:54:59 | BlaXpirit_ | .eval var a = "abc"; var t = "def"; a &= $t[1]; echo a |
00:55:02 | Mimbus | BlaXpirit_: abce |
00:55:23 | BlaXpirit_ | $ turned char to string |
00:55:29 | a5i | Oh! |
00:56:03 | * | akiradeveloper joined #nim |
00:56:03 | akiradeveloper | Hello, is this code possible? |
00:56:03 | akiradeveloper | https://gist.github.com/akiradeveloper/28d26f31b2bb4072df23 |
00:56:43 | akiradeveloper | it cannot be compiled. no workaround? |
00:56:49 | a5i | Illegal storage access ? |
00:57:37 | BlaXpirit_ | akiradeveloper, why do you think you need this |
00:57:44 | akiradeveloper | I don't like library user to directly touch the type internal |
00:57:45 | BlaXpirit_ | just use 1 proc with case inside |
00:57:59 | BlaXpirit_ | oh i'm a dummy nevermind |
00:58:04 | BlaXpirit_ | no, this is not possible |
00:58:11 | a5i | https://www.irccloud.com/pastebin/NfAIcz4t |
00:58:43 | BlaXpirit_ | definitely not possible, because you can't have different function return type depending on the current value! |
00:59:54 | BlaXpirit_ | akiradeveloper, stop dreaming and https://github.com/Araq/Nim/blob/master/lib/pure/json.nim#L517 :| |
01:00:22 | a5i | can anyone help me with this weird error ? :S |
01:00:36 | akiradeveloper | ok. if I use the same name for the internal variables (e.g. a->v b->v) that would be great |
01:00:53 | BlaXpirit_ | no, it wouldn't.. |
01:01:33 | akiradeveloper | this is mine https://github.com/akiradeveloper/msgpack-nim/blob/master/msgpack.nim |
01:02:13 | a5i | :( |
01:02:35 | akiradeveloper | msgpack library is very similar to json |
01:03:25 | BlaXpirit_ | and if there is nothing clever for this in json... |
01:03:32 | a5i | here |
01:03:34 | BlaXpirit_ | and i asked people for this too |
01:03:37 | a5i | https://www.irccloud.com/pastebin/30pVt8u3 |
01:03:45 | a5i | error makes n0 senseee |
01:04:19 | BlaXpirit_ | a5i, text is nil |
01:05:34 | BlaXpirit_ | need to have var text = "" |
01:06:33 | BlaXpirit_ | and maybe you didn't notice, but i fixed up that random library so you can try it nimble install random@#old-compiler |
01:08:07 | BlaXpirit_ | a5i, then your code would be https://bpaste.net/show/9d5851b5e7e6 |
01:09:36 | * | BlaXpirit_ quit (Quit: Quit Konversation) |
01:09:56 | a5i | I see |
01:10:48 | a5i | yeah Math.random is a one random thing... |
01:10:58 | a5i | I mean random() |
01:11:13 | * | reem joined #nim |
01:15:53 | * | reem quit (Remote host closed the connection) |
01:24:16 | * | epichero quit () |
01:31:37 | * | pregressive quit (Remote host closed the connection) |
01:39:40 | * | pregressive joined #nim |
01:56:45 | * | mpthrapp joined #nim |
01:59:47 | mpthrapp | I'm having some issues getting Nim installed on Ubuntu 14.10. I'm following the instructions on the main github page, but when I go to install with .koch install /usr/local/bin it tells me that tools/niminst/nimcache/libzip_all.o doesn't exist. |
02:00:32 | mpthrapp | I went into the directory, and it does not in fact exist. There's a stdlib_libzip_all.crc, but that's the closest one. |
02:02:15 | * | chemist69_ joined #nim |
02:03:11 | flaviu | This isn't really helpful, but it's bad hygiene to install non-packages into / |
02:04:14 | mpthrapp | Oh? I just switched to Linux from Windows yeserday, so I don't know the best procedures yet. :P Should I install it into Eg. /bin/nim? |
02:04:15 | * | elbow_jason joined #nim |
02:05:21 | * | chemist69 quit (Ping timeout: 250 seconds) |
02:05:29 | mpthrapp | And if so, will it still alias correctly such that I can do nim c in term without specifying path? |
02:08:09 | * | TEttinger joined #nim |
02:11:51 | * | reem joined #nim |
02:12:09 | * | darkf joined #nim |
02:14:00 | * | reem quit (Remote host closed the connection) |
02:14:45 | flaviu | Sorry, stepped away. |
02:15:06 | flaviu | by "/", I mean anything but /tmp, /home, /media. |
02:16:12 | * | reem joined #nim |
02:16:20 | flaviu | I personally keep nim in a directory in my ~, and have a bit in my bashrc (my setup really is a bit more complicated, but w/e) to add nim's bin dir to to my path. |
02:16:54 | flaviu | that way I can just cd in every so often, clone from Araq/Nim, ./koch boot, and get the latest nim. |
02:26:09 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
02:28:54 | * | bjz joined #nim |
02:31:52 | * | Maxdamantus wonders if this is desirable: https://github.com/Maxdamantus/Nim/commit/3be296e3f998f11fd21e72df16af8ee4ab0ef2fe |
02:38:49 | * | akiradeveloper quit (Remote host closed the connection) |
02:42:21 | * | pregressive quit (Remote host closed the connection) |
02:42:29 | flaviu | Maxdamantus: Sure, that sounds great. |
02:43:13 | flaviu | You may have missed a few other places you need to update (macros come to mind), but send it as a PR and Araq can decide if he wants to merge it. |
02:43:48 | * | pregressive joined #nim |
02:53:53 | * | TEttinger quit (Ping timeout: 250 seconds) |
02:55:25 | * | reem quit (Remote host closed the connection) |
02:56:07 | * | BitPuffin quit (Ping timeout: 245 seconds) |
02:58:10 | * | reem joined #nim |
02:59:30 | * | chemist69 joined #nim |
03:03:06 | * | chemist69_ quit (Ping timeout: 272 seconds) |
03:04:03 | * | fizzbooze joined #nim |
03:07:21 | * | sillesta quit (Read error: Connection reset by peer) |
03:08:49 | Maxdamantus | Hm. What's the current significance of macros.nim? Most of the types seem to never be used. |
03:08:59 | Maxdamantus | Is there an assumption that they will eventually? |
03:25:00 | * | akiradeveloper joined #nim |
03:26:21 | def- | Maxdamantus: you can use macros.nim to write macros |
03:26:39 | def- | sounds pretty significant to me |
03:26:58 | Maxdamantus | but not macros using the tuple type syntax? |
03:27:34 | Maxdamantus | since nnkTupleTy is never used. |
03:31:35 | fowl | Maxdamantus, those are accessory functions and there are many more node kinds than those functions |
03:33:22 | fowl | when you're writing a macro the workflow is 1.) dumptree: the code you want to reproduce 2.) write a macro to reproduce that ast |
03:34:14 | fowl | only newNimNode() and add() are truly necessary |
03:35:51 | * | Menche quit (Quit: Leaving) |
03:36:38 | * | Menche joined #nim |
03:46:38 | * | berer joined #nim |
03:47:29 | * | berer quit (Client Quit) |
03:48:29 | Maxdamantus | My thing seems to have made three more tests pass. Weird. |
03:52:56 | * | TEttinger joined #nim |
03:57:24 | * | reem quit (Remote host closed the connection) |
04:10:36 | * | reem joined #nim |
04:17:06 | * | akiradeveloper quit (Read error: Connection reset by peer) |
04:21:59 | * | epichero joined #nim |
04:24:31 | * | Jesin quit (Quit: Leaving) |
04:27:11 | * | akiradeveloper joined #nim |
04:29:25 | Maxdamantus | Are generics in nim always meant to be like templates in C++, or is that a temporary thing? |
04:29:25 | * | reem quit (Remote host closed the connection) |
04:30:25 | Maxdamantus | eg, where generic things aren't properly typechecked until you instantiate them, and where the declaration doesn't really indicate all the requirements of the type parameters, etc |
04:33:54 | * | reem joined #nim |
04:37:46 | * | reem quit (Remote host closed the connection) |
04:44:49 | * | reem joined #nim |
04:48:37 | * | reem quit (Remote host closed the connection) |
04:51:18 | * | reem joined #nim |
04:54:10 | * | reem quit (Remote host closed the connection) |
04:56:13 | * | reem joined #nim |
05:02:30 | * | reem quit (Remote host closed the connection) |
05:03:10 | * | reem joined #nim |
05:05:47 | * | reem quit (Remote host closed the connection) |
05:16:12 | * | aidanh quit (Ping timeout: 252 seconds) |
05:18:39 | * | aidanh joined #nim |
05:21:36 | * | reem joined #nim |
05:22:24 | Varriount | Maxdamantus: Well, there are typeclasses and constraints if you want to limit the acceptable types. |
05:22:41 | Varriount | I don't see how there could be any other way. |
05:23:14 | Maxdamantus | Other than what? |
05:23:49 | Maxdamantus | Parametric definitions are typechecked in Java, Haskell, C#, Scala, .. |
05:25:36 | * | xeizlif quit (Ping timeout: 272 seconds) |
05:26:07 | * | reem quit (Remote host closed the connection) |
05:26:24 | Maxdamantus | .eval proc foo[T](): int = 5 + 4.5 |
05:26:27 | Mimbus | Maxdamantus: <no output> |
05:26:34 | Maxdamantus | .eval proc foo(): int = 5 + 4.5 |
05:26:36 | Mimbus | Maxdamantus: eval.nim(3, 20) Error: type mismatch: got (float) but expected 'int' |
05:32:31 | * | xeizlif joined #nim |
05:33:51 | * | reem joined #nim |
05:34:49 | * | TEttinger quit (Ping timeout: 250 seconds) |
05:36:26 | * | TEttinger joined #nim |
05:36:38 | * | reem quit (Remote host closed the connection) |
05:37:45 | * | reem joined #nim |
05:38:42 | * | Jesin joined #nim |
05:38:55 | * | a5i quit (Quit: Connection closed for inactivity) |
05:40:03 | * | reem quit (Remote host closed the connection) |
05:40:39 | * | Menche quit (Quit: Leaving) |
05:41:15 | * | reem joined #nim |
05:43:42 | * | reem quit (Remote host closed the connection) |
05:44:14 | Maxdamantus | Hm. A possible use case for an actual void type: indicating that the procedure only throws, doesn't return. |
05:44:18 | * | reem joined #nim |
05:55:10 | fowl | The noreturn pragma is used to mark a proc that never returns. |
05:55:38 | fowl | from the manual |
06:00:55 | * | reem quit (Remote host closed the connection) |
06:02:41 | Maxdamantus | Interesting. |
06:03:43 | * | Menche joined #nim |
06:13:32 | onionhammer | araq the default GC still giving me issues for the websocket library; gc boehm seems to work a lot better |
06:14:20 | * | reem joined #nim |
06:42:15 | * | reem quit (Remote host closed the connection) |
06:44:19 | Maxdamantus | Is it also intended that tuple[int, int] not be a parsable type? |
06:46:01 | * | gsingh93 quit (Ping timeout: 255 seconds) |
06:46:40 | * | reem joined #nim |
06:55:23 | * | reem quit (Remote host closed the connection) |
06:59:35 | * | reem joined #nim |
07:13:11 | * | pregressive quit (Remote host closed the connection) |
07:27:44 | * | fizzbooze quit (Ping timeout: 245 seconds) |
07:59:29 | * | reem quit (Remote host closed the connection) |
08:13:22 | * | reem joined #nim |
08:35:15 | * | reem quit (Remote host closed the connection) |
08:43:00 | * | akiradeveloper quit (Remote host closed the connection) |
08:51:15 | * | Matthias247 joined #nim |
09:01:44 | * | gmpreussner|work quit (Read error: Connection reset by peer) |
09:16:19 | * | BlaXpirit joined #nim |
09:25:28 | * | dumdum joined #nim |
09:30:32 | * | davidterry joined #nim |
09:33:53 | * | pafmaf__ joined #nim |
09:37:31 | * | davidter_ joined #nim |
09:39:55 | * | davidterry quit (Ping timeout: 250 seconds) |
09:43:32 | * | akiradeveloper joined #nim |
09:47:49 | * | akiradeveloper quit (Ping timeout: 255 seconds) |
09:49:28 | * | akiradeveloper joined #nim |
10:04:52 | * | pafmaf__ quit (Quit: This computer has gone to sleep) |
10:07:07 | * | pikeghost joined #nim |
10:07:40 | Araq | Maxdamantus: I'm not a fan of type checking generics properly but I'm also not a fan of how it's currently done |
10:08:07 | Araq | when you check properly all too often you simply encode the algorithm twice |
10:08:23 | Araq | one time in the code and the other time in the type |
10:09:47 | * | akiradeveloper quit () |
10:11:43 | Araq | but making them macrolike in a language that embraces macros was not the worst idea, so I think it'll stay this way |
10:12:29 | * | dumdum quit (Ping timeout: 256 seconds) |
10:13:52 | * | pregressive joined #nim |
10:18:50 | * | pregressive quit (Ping timeout: 272 seconds) |
10:18:52 | * | pikeghost quit (Quit: Page closed) |
10:23:21 | Maxdamantus | That's kind of the point. |
10:23:44 | Maxdamantus | You check that the definition matches the (generic) type, then you check that each use of it matches the type. |
10:24:03 | Maxdamantus | It's kind of a form of encapsulation. |
10:24:29 | Maxdamantus | Changing the definition doesn't change the legality of the uses as long as the type remains the same. |
10:25:52 | Maxdamantus | It's also basically the point of having types. |
10:26:30 | * | davidter_ quit (Remote host closed the connection) |
10:28:26 | Maxdamantus | I'm fairly critical of macros in general though, so maybe as you say it's not that bad to people who like them. |
10:29:26 | Maxdamantus | (mainly because it's pretty much the opposite of static typing) |
10:33:41 | * | sillesta joined #nim |
10:43:11 | * | Trixar_za quit (Ping timeout: 250 seconds) |
10:44:01 | * | jsudlow quit (Remote host closed the connection) |
10:45:58 | * | dumdum joined #nim |
10:50:55 | * | untitaker joined #nim |
10:51:23 | * | davidterry joined #nim |
10:54:47 | federico3 | anyone here playing with nim-fuse ? |
11:12:44 | * | pafmaf joined #nim |
11:18:37 | * | banister joined #nim |
11:22:24 | * | pafmaf quit (Quit: This computer has gone to sleep) |
11:33:46 | Maxdamantus | Mm, wrapper around libfuse :( |
11:36:08 | * | Maxdamantus suspects the fuse protocol uses platform-dependent endianness etc anyway |
11:37:18 | federico3 | Maxdamantus: did you expect it to run without libfuse? |
11:37:45 | Maxdamantus | I'd've wanted it to. |
11:38:04 | federico3 | that requires reimplementing the whole thing in Nim :) |
11:38:44 | Maxdamantus | indeed, then you get a more nim-like interface. |
11:39:26 | * | epichero quit (Remote host closed the connection) |
11:39:33 | federico3 | I suppose it's quite a bit of work |
11:39:48 | Maxdamantus | I don't think it'd be particularly difficult. I think the main bit other than design would be inode number allocation, if you want that. |
11:41:04 | Maxdamantus | The libfuse interface seems really ugly to me, and it doesn't seem to reflect the underlying protocol. |
11:43:49 | * | Maxdamantus has implemented things that make it look like there's an actual tree traversal when there isn't in the libfuse interface---because libfuse hides it. |
11:44:01 | Maxdamantus | (the few times I've used it) |
11:50:35 | * | vendethiel quit (Ping timeout: 252 seconds) |
11:51:03 | * | epichero joined #nim |
11:52:10 | Maxdamantus | Could also just use 9p. |
11:53:01 | * | Maxdamantus wonders if anyone's thought of making a `fusermount` analogue for it. |
11:55:12 | * | vendethiel joined #nim |
11:55:33 | * | reem joined #nim |
11:59:52 | * | reem quit (Ping timeout: 245 seconds) |
12:12:58 | Araq | Maxdamantus: well as you are well aware, the thing is still type checked, but only on instantation. Scala went so far they have to lie about the types for documentation purposes and generics in C# and Java are crippled. The world is not black and white. |
12:15:59 | * | vendethiel quit (Ping timeout: 244 seconds) |
12:16:26 | * | Trustable joined #nim |
12:17:29 | * | vendethiel joined #nim |
12:18:17 | * | Trustable quit (Remote host closed the connection) |
12:19:46 | * | Trustable joined #nim |
12:21:10 | Maxdamantus | How does Scala lie? Because of type erasure? |
12:22:30 | * | Maxdamantus thinks a bunch of problems with generics come from subtyping, which he also dislikes. |
12:26:58 | * | epichero quit () |
12:28:48 | Araq | Maxdamantus: "The docs would not lie in that case, because from a user perspective indeed map has the type (Int => Int) => BitSet. But map also has a more general type which can be inspected by clicking on another link. |
12:28:50 | Araq | We have not yet implemented functionality like this in our tools. But I believe we need to do this, to avoid scaring people off and to give more useful info. With tools like that, hopefully smart frameworks and libraries will not become suicide notes." |
12:28:52 | Araq | http://stackoverflow.com/questions/1722726/is-the-scala-2-8-collections-library-a-case-of-the-longest-suicide-note-in-hist |
12:29:11 | Araq | maybe they haven't done this yet though, I'm not following Scala that closely |
12:29:46 | * | Maxdamantus isn't either. |
12:33:34 | Araq | but in general we like our programs to be *longer* than our type descriptions of them and this implies we like types to be somewhat imprecise ;-) |
12:34:16 | Maxdamantus | It sounds like it's an issue with the _ notation. |
12:34:37 | * | Maxdamantus thinks he's criticised that before when someone described it. |
12:35:56 | flaviu | Well, the CanBuildFrom isn't really part of the type signature. Its used to implicitly figure out the best data structure to build for a given set of arguments. |
12:37:29 | flaviu | Scala took the idea of implicit parameters and did lots of stuff with them. |
12:38:34 | * | vendethiel quit (Ping timeout: 245 seconds) |
12:38:34 | Araq | flaviu: note that my quote is from Martin Odersky himself |
12:39:54 | flaviu | I'm not really paying attention to the quote, I'm just pointing out that implicit CanBuildFrom does make sense once you understand the collections library. |
12:41:53 | Maxdamantus | https://gist.github.com/Maxdamantus/a619f78df2744fb30745 |
12:42:12 | flaviu | Last time I used scala, the IDEA plugin didn't have that sort of simplifying feature. |
12:43:13 | BlaXpirit | guys |
12:43:29 | BlaXpirit | i think it's about time to implement a library for generic operations on iterables |
12:46:27 | Araq | BlaXpirit: go ahead if you think our implementation of 'generic' is good enough |
12:46:54 | BlaXpirit | is typeclass iterable a possible thing? |
12:48:30 | flaviu | https://gist.github.com/5d9a62d2f90f4bb6024a |
12:48:49 | flaviu | :q |
12:48:59 | flaviu | oops, wrong window. |
12:49:15 | flaviu | functional.nim(40, 18) Error: type mismatch: got (seq[int]) but expected one of: functional.filter(input: Iterable[filter.T], condition: FilterClause[filter.T]) |
12:49:26 | BlaXpirit | why is there {.closure.} |
12:50:40 | flaviu | It's old code, I was probably in the middle of something. |
12:51:05 | flaviu | Oh, I see |
12:51:47 | flaviu | Nope, still doesn't work. |
12:53:36 | Araq | well 'seq' doesn't match your description of 'iterable' |
12:55:05 | flaviu | It doesn't? |
12:55:21 | def- | BlaXpirit: https://github.com/def-/nim-iterutils |
12:56:32 | * | vendethiel joined #nim |
12:57:43 | Maxdamantus | Shouldn't `x` be used somewhere? |
12:58:13 | Maxdamantus | `iterator items(x): T` maybe. |
12:59:03 | flaviu | Maxdamantus: Good point, but getting rid of that line completely also doesn't work. |
12:59:24 | BlaXpirit | My guess is items(x) is iterator; for value in x: type(value) is T |
12:59:33 | BlaXpirit | but it changes nothing |
13:01:46 | BlaXpirit | yeah, def-, that is interesting |
13:02:07 | BlaXpirit | but i would like to see a possibility to make 1 function work with any iterators and containers |
13:02:57 | Araq | Maxdamantus: for unnamed tuples I planned a tupe(int, int) syntax |
13:03:06 | Araq | *er tuple(int, int) |
13:03:28 | Araq | but we can also use int*int |
13:03:33 | Maxdamantus | Do the square brackets conflict with something? |
13:03:44 | Maxdamantus | I don't think int*int is a good idea. |
13:03:51 | TEttinger | it's how ML does it |
13:04:02 | TEttinger | it is a little unintuitive |
13:04:08 | Maxdamantus | and ML has extra bracket sensitivity. |
13:04:14 | flaviu | It looks out of place in Nim |
13:04:19 | Araq | yeah, well tuple[x,y: int] is a named tuple |
13:04:25 | Maxdamantus | a*b*c vs. (a*b)*c vs. a*(b*c) |
13:04:34 | Maxdamantus | Ah, right. |
13:04:36 | Araq | so tuple[int, int] is more confusing |
13:04:52 | Araq | gotta go, bbl |
13:05:16 | TEttinger | tuple[-int, int-] |
13:05:50 | TEttinger | tuple[|int, int|] |
13:06:11 | TEttinger | tuple[☃int, int☃] |
13:06:36 | Maxdamantus | ‹int, int› |
13:07:51 | flaviu | French quotes aren't really a good idea, most people don't have them on their keyboards. |
13:08:03 | flaviu | Looks pretty though :) |
13:08:16 | * | Maxdamantus uses a compose key. |
13:08:58 | TEttinger | int & int |
13:09:05 | TEttinger | instead of int * int |
13:09:16 | TEttinger | since a tuple is a type and another type |
13:09:52 | Maxdamantus | "and" in logic is similar to multiplication. |
13:09:57 | flaviu | tup[int, int] |
13:10:06 | TEttinger | also leaves open | for union types |
13:10:06 | flaviu | and rec[foo: int, bar: string] |
13:10:17 | TEttinger | int | char |
13:10:28 | Maxdamantus | I think * and + makes more sense than & and |. |
13:10:50 | Maxdamantus | though other languages seem to use | |
13:10:53 | TEttinger | + for or? |
13:11:01 | Maxdamantus | for a union. |
13:11:01 | flaviu | How will the user be able to write their own infix types? |
13:11:01 | TEttinger | int or char can go here |
13:11:04 | TEttinger | ah |
13:11:20 | Maxdamantus | in type theory, they're called product and sum types respectively. |
13:11:32 | TEttinger | get a bigger keyboard, flaviu, that's how |
13:11:42 | Maxdamantus | hence the use of * and +, \Pi and \Sigma |
13:13:04 | flaviu | TEttinger: Huh? I mean stuff like "Foo V Bar", and have a macro or something executed to verify the correctness. |
13:14:22 | TEttinger | I was just joking about the french quotes and my unicode snowmen |
13:14:50 | Maxdamantus | Just provide macros for the people that can't type snowmen. |
13:15:04 | * | BlaXpirit quit (Quit: Quit Konversation) |
13:16:41 | * | BlaXpirit joined #nim |
13:20:32 | * | beier joined #nim |
13:20:34 | * | TEttinger quit (Ping timeout: 244 seconds) |
13:23:00 | * | flaviu quit (Remote host closed the connection) |
13:23:15 | * | flaviu joined #nim |
13:23:16 | * | Shoozza joined #nim |
13:24:34 | beier | hi, everyone. are there some open source projects developed using |
13:24:35 | beier | elixir |
13:24:53 | * | beier quit (Client Quit) |
13:25:26 | * | beier joined #nim |
13:25:56 | * | beier quit (Client Quit) |
13:26:28 | * | beier joined #nim |
13:31:36 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:45:50 | * | akiradeveloper joined #nim |
13:54:33 | * | akiradeveloper quit () |
14:03:26 | * | akiradeveloper joined #nim |
14:04:26 | def- | beier: elixir or Nim? |
14:05:02 | flaviu | def-: Looks like he entered the wrong channel. |
14:05:17 | * | BitPuffin joined #nim |
14:05:35 | def- | flaviu: lucky mistake I'd say |
14:09:51 | federico3 | def- / dom96: d'you want a little script to help maintain packages.json ? |
14:11:12 | def- | I'm not in charge of that, but yeah, would be nice to avoid packages.json mistakes |
14:19:51 | flaviu | federico3: I've found CircleCI is pretty flexible if you want to do PR hooks. |
14:22:11 | * | elbow_jason quit (Ping timeout: 265 seconds) |
14:24:01 | * | beier quit (Remote host closed the connection) |
14:24:17 | * | beier joined #nim |
14:27:19 | * | akiradeveloper quit () |
14:28:03 | * | dumdum quit (Ping timeout: 256 seconds) |
14:29:33 | * | beier quit (Ping timeout: 250 seconds) |
14:38:10 | * | elbow_jason joined #nim |
14:46:39 | * | BlaXpirit-UA joined #nim |
14:49:39 | * | BlaXpirit quit (Ping timeout: 246 seconds) |
14:54:39 | * | UberLambda joined #nim |
14:56:27 | federico3 | flaviu: is this related to packages.json? |
14:56:41 | * | darkf quit (Quit: Leaving) |
14:57:21 | flaviu | federico3: Yep, you can hook your linter so that it creates a red x or green check depending on the correctness of a PR. |
14:57:40 | federico3 | hm, it's a bit more than a linter |
15:13:39 | * | dumdum joined #nim |
15:23:56 | * | jsudlow joined #nim |
15:25:39 | * | beier joined #nim |
15:28:22 | Araq | Varriount: how do you deal with the fact that some async tests trigger firewall notifications on windows? |
15:30:43 | * | beier quit (Ping timeout: 255 seconds) |
15:49:33 | * | davidterry quit (Remote host closed the connection) |
15:52:19 | * | dhasenan quit (Remote host closed the connection) |
15:57:34 | Araq | er ... mingw's float to string operation produces "1.INF" ? |
15:58:34 | Araq | and Visual studio does the same? |
15:59:04 | Araq | does that mean it's a good idea to copy that behaviour? |
16:03:25 | onionhammer | araq u see my message? |
16:04:29 | Araq | onionhammer: yeah but create a real bug report or it won't be fixed |
16:05:10 | onionhammer | I could, but i wanted to talk with you first to see if you thought it was a bug in my code or the gc |
16:05:17 | onionhammer | or both :) |
16:06:08 | * | dhasenan joined #nim |
16:08:04 | * | a5i joined #nim |
16:08:08 | * | BlaXpirit-UA quit (Quit: Quit Konversation) |
16:09:11 | * | BlaXpirit joined #nim |
16:16:38 | onionhammer | https://github.com/Araq/Nim/issues/2242 |
16:27:42 | * | ChrisMAN quit (Remote host closed the connection) |
16:27:54 | * | Demos joined #nim |
16:29:38 | def- | onionhammer: can't reproduce on linux x86_64 |
16:31:55 | * | ChrisMAN joined #nim |
16:35:44 | elbow_jason | SIGSEGV: Illegal storage access. (Try to compile with -d:useSysAssert -d:useGcAssert for details.) |
16:35:44 | elbow_jason | Error: execution of an external program failed |
16:36:04 | elbow_jason | linux mint 17 Rebecca linux x86_64 |
16:36:24 | elbow_jason | after refresh of the browser |
16:36:35 | elbow_jason | and nimble install sha1 |
16:38:30 | elbow_jason | however, araqs suggested --gc:markAndSweep is working |
16:52:04 | dumdum | iterator concat segfaults in https://github.com/def-/nim-iterutils unless I change header to: iterator concat*[T](its: varargs[(iterator: T) | Slice[T], toIter]): T = ... |
16:53:03 | OderWat | <def-> onionhammer: i can reproduce it on macosx and updated the issue |
16:53:29 | elbow_jason | made a comment on the issue as well |
16:54:03 | def- | dumdum: i know: https://github.com/Araq/Nim/issues/1834 |
16:54:21 | def- | (in case that's the same bug) |
16:55:05 | dumdum | Yes, same |
16:56:28 | elbow_jason | is SIGSEGV a segfault? |
16:56:33 | def- | yes |
16:56:37 | elbow_jason | ah |
17:02:49 | dumdum | Declaration: type Iterable*[T] = (iterator: T) | Slice[T] <-- appears to be useless in some cases |
17:03:36 | dumdum | useless for the compiler |
17:03:49 | * | banister joined #nim |
17:05:28 | * | UberLambda quit (Quit: Leaving the Matrix) |
17:14:47 | * | beier joined #nim |
17:17:37 | a5i | Have a good day Nimmers |
17:19:41 | * | beier quit (Ping timeout: 250 seconds) |
17:24:40 | * | a5i quit () |
17:28:10 | * | gokr quit (Read error: Connection reset by peer) |
17:30:50 | * | Jehan_ joined #nim |
17:43:33 | * | BitPuffin quit (Ping timeout: 244 seconds) |
17:50:15 | dumdum | What do I need to get sdl2/examples/sdl_opengl_example.nim to run? |
17:50:29 | dumdum | It builds but fails to run: Error: execution of an external program failed |
17:50:59 | dumdum | Other examples: sdl_skeleton and sdl_audio_callback run fine |
17:56:22 | * | Varriount|Mobile joined #nim |
18:06:03 | * | gsingh93 joined #nim |
18:15:45 | def- | dumdum: works here. did you try with current devel branch of Nim? |
18:17:32 | flaviu | http://eev.ee/blog/2015/02/28/sylph-the-programming-language-i-want/ |
18:17:49 | flaviu | There's references to nim scattered throughout that post. |
18:19:31 | Varriount|Mobile | Yeah... I can't say that his gripes are unfounded either. |
18:21:49 | Varriount|Mobile | Although, she/he hasn't heard of the 'from x import y' syntax |
18:24:22 | dumdum | def-: no, I will try that soon |
18:24:38 | * | banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:25:50 | Varriount|Mobile | flaviu: Are you going to send a comment on that post? |
18:26:14 | * | mwub joined #nim |
18:26:26 | Varriount|Mobile | Hi mwub |
18:26:38 | * | BitPuffin joined #nim |
18:27:00 | Demos | is there a way to have a generic parameter that matches object in the same module as the deceleration of the generic proc? |
18:27:28 | Demos | I mean other than the obvious type InModule = generic x modulename.x |
18:27:48 | Varriount|Mobile | Demos: Not sure what you mean |
18:27:56 | flaviu | Varriount|Mobile: Nope, the only thing that he doesn't understand is why imports work the way they do, and clearing that up won't change any of the conclusions. |
18:28:05 | * | mwub left #nim (#nim) |
18:29:05 | Varriount|Mobile | flaviu: Sigh.. you can lead a horse to water, but you can't make him drink it (without half-drowning both him and you) |
18:29:24 | Demos | All those conclusions are kinda wonky. I mean for operator overloads I guess maybe go to definition would be good, or docs |
18:29:31 | Demos | seqs can be just var seq = @[] |
18:30:15 | flaviu | Huh? IMO every other criticism of Nim was reasonable. |
18:30:25 | Varriount|Mobile | Hrm. I've always felt that operator overloading should be used only when needed. |
18:30:42 | Demos | Well I like the lack of constructors soooooooo |
18:31:39 | Varriount|Mobile | I'd rather users of libraries define convenience operators, instead of libraries themselves (which is why I agree with the sentiment regarding the % operator and the JSON module) |
18:31:49 | federico3 | it would be nice to have a little interactive interpeter just for learning and experimenting *hides* |
18:32:04 | Demos | federico3, nim i |
18:32:13 | Demos | a little janky, but it works |
18:32:14 | flaviu | Demos: No FFI, somewhat buggy. |
18:32:17 | Demos | true |
18:32:27 | federico3 | Demos: ooh <3 Nim |
18:32:54 | Varriount|Mobile | federico3: Or go to #nim-offtopic and type '.eval <code>' |
18:33:35 | Varriount|Mobile | federico3: YMMV with regards to the REPL, it isn't perfect. |
18:33:55 | Varriount|Mobile | (REPL being 'nim i') |
18:41:30 | Araq | he, I recently removed "nim i" from the output listing |
18:41:44 | * | Varriount|Mobile quit (Read error: Connection reset by peer) |
18:41:50 | * | Var|Mobile joined #nim |
18:41:58 | Araq | Var|Mobile: got my message? |
18:42:21 | * | melvanis joined #nim |
18:47:37 | OderWat | Lol I hacked with tcc on osx to get a JIT hello_world.nim running (had to modify system.nim though). I think I try how far I get this. |
18:50:33 | Araq | OderWat: why 'file != stdin'? why not istty? |
18:51:16 | OderWat | I tried isatty() and it always returned 0 |
18:51:37 | Araq | on macosx? |
18:51:40 | OderWat | yep |
18:52:48 | * | Var|Mobile quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) |
18:52:52 | OderWat | so i looked up what other people did and it looks like they check for == 1 to detect stdin. I am no expert though but now it seems to work well. even with urandom |
18:52:53 | Varriount | Araq: Nope, no message |
18:53:09 | Araq | Varriount: how do you deal with the fact that some async tests trigger firewall notifications on windows? |
18:53:41 | Varriount | Araq: Hm, I used to just manually let them through. |
18:53:58 | Varriount | Although, come to think of it, I haven't seen any pop-up dialogues lately... |
18:54:32 | Araq | Varriount: I'll move them to tests/manual but unfortunately I didn't take notes which tests trigger it |
18:55:26 | Varriount | Araq: I can look at my firewall settings |
18:57:12 | Varriount | Araq: tasyncawait, tasynciossl, and tsasyncudp |
18:57:42 | Varriount | Er, tasyncudp |
18:58:21 | Araq | excellent thanks |
18:59:18 | Varriount | Araq: Oh, apparently Windows Firewall remembers them, even if the executable changes (as long as it's located in the same path, I think) |
19:01:10 | Araq | that looks like a bad idea for security ;-) |
19:01:27 | Varriount | Araq: It might also use a hash of the exe, I don't know. |
19:01:41 | Varriount | I'd have to look in the registry to see what's stored. |
19:01:58 | Araq | no worries, it's not important |
19:02:37 | Varriount | Too late. I've already done a ctrl+f in regedit. :p |
19:06:54 | * | pregressive joined #nim |
19:08:39 | Jehan_ | The guy on HN has sort of overlooked that Go with multiple threads (GOMAXPROCS > 1) and pointers shared between threads is not memory-safe to begin with. That said, he does have a point in that Nim is currently more restrictive than necessary when it comes to shared GCed memory (of course, Go is too permissive). |
19:11:35 | Araq | Jehan_: well patches are welcome for your shared but restricted heaps idea |
19:12:02 | onionhammer | def- thanks for testing |
19:12:07 | onionhammer | on linux L:) |
19:12:17 | Jehan_ | Araq: Heh, I know. If I had the time, I'd have done it already. |
19:12:18 | * | fizzbooze joined #nim |
19:12:36 | Jehan_ | I think it could mostly be done with macros, too. |
19:13:01 | Jehan_ | And maybe an additional GC hook to switch the current heap around. |
19:14:07 | Jehan_ | What you basically need is to instrument procedures with code that deep copy arguments/results and temporarily switches to a different heap. |
19:14:13 | Jehan_ | The devil is in the details, of course. |
19:16:55 | Araq | I think the obvious next step is that the collections support a 'join' operation |
19:17:28 | Araq | so you can join N tables after each thread produced its own |
19:17:55 | Araq | or maybe we should call it "merge" |
19:20:38 | Jehan_ | Doesn't really help with some of the common problems. |
19:20:49 | Jehan_ | Such as a shared hash table to implement a cache. |
19:21:36 | Jehan_ | Hmm, is there a way to lie to the compiler about a procedure being gcsafe? I.e. to override the compiler's inference mechanism? |
19:24:30 | * | Trixar_za joined #nim |
19:26:53 | Araq | cast the proc type |
19:27:28 | Jehan_ | Gotcha. |
19:28:04 | Araq | Jehan_: any idea if -1.#INF for "inf" is some standard notation? |
19:28:12 | dumdum | def-: So I updated local devel code with 'git pull' , then build and koch and sym linked to devel nim and rebuilt sdl_open_example.nim : Still Error |
19:28:14 | Araq | (er for "-inf") |
19:28:34 | Jehan_ | Araq: Doesn't look familiar to me at all, but I don't do much work with numerics. |
19:28:52 | Araq | it's what the C lib produces on Windows |
19:29:03 | Araq | both mingw and visual c++ do this |
19:29:25 | dumdum | nim -v : Nim Compiler Version 0.10.3 (2015-03-01) [Linux: amd64] |
19:29:26 | Araq | but I guess mingw does it for compat |
19:33:04 | dumdum | Ah, I found a err msg: could not load: libX11.so |
19:33:13 | dumdum | strange! |
19:37:07 | * | filwit joined #nim |
19:38:26 | dumdum | Sorry for stupid questions, but how do I ask nim to link against libX11.so.6 which I have in my system.. |
19:40:15 | dumdum | ok, i created a soft link to the filename it wants and it works |
19:40:15 | filwit | dumdum: you can use {.passL:"-lX11".} probably: http://web.mit.edu/nimrod-lang/arch/i386_linux26/doc/nimrodc.html#passl-pragma |
19:41:04 | * | petrus joined #nim |
19:41:10 | filwit | dumdum: or you can use linke (i think this is preferable): http://web.mit.edu/nimrod-lang/arch/i386_linux26/doc/nimrodc.html#link-pragma |
19:41:19 | filwit | link* |
19:42:55 | filwit | dom96, Araq: have any time this weekend to review my Aporia PR? no worries if you're busy, it's working great for me here (tried with compiler source and my own). |
19:44:05 | Araq | dumdum: use --dynlibOverride:X11 and then some other linking options |
19:44:42 | * | gsingh93 quit (Ping timeout: 246 seconds) |
19:48:12 | dumdum | hmm, Thanks filwit, Araq |
19:48:56 | Araq | filwit: I guess I can review it now |
19:50:30 | filwit | Araq: cool, thanks. Let me know if you don't like something (i only barely touched the existing color themes, so your darknim theme should be mostly the same.. but where it did change, i can revert if you really want). Also, please read the comment I left on the PR. |
19:51:53 | Araq | well Trustable's patch hasn't been merged yet, I'll ping dom96 |
19:53:40 | filwit | Araq: just took a look at his PR, none of his changes overlap mine (mine is all style-changes + one minor change to the mime type Nimrod -> Nim) |
19:56:03 | Araq | filwit: did you happen to update the list of keywords too? |
19:56:14 | filwit | Araq: yes |
19:56:33 | Araq | nice :D |
19:56:39 | filwit | added all the cint, cstring types, made array/seq types again, etc |
19:56:55 | filwit | let me know if you find anything that's missing, but I think I mostly got everything |
19:57:16 | Araq | I want to make 'concept' a keyword before it's too late ... |
19:57:35 | filwit | okay... what is the plan for that one, btw? |
19:57:47 | filwit | we're supporting concept programming in the future? |
19:58:22 | filwit | (ps. I already made 'func' a keyword.. and 'static' acts as both a keyword or type if it's followed by '[') |
20:00:01 | BlaXpirit | filwit, the plans for func are going to be reality? |
20:00:25 | filwit | BlaXpirit: last I heard, yes |
20:00:30 | BlaXpirit | cool |
20:00:34 | filwit | yep :) |
20:01:19 | Araq | filwit: we'll rename 'generic' to 'concept' |
20:01:28 | Araq | type Foo = concept x |
20:01:29 | Araq | ... |
20:01:59 | filwit | Araq: okay, that sounds interesting, when is this happening in the code? 0.10.4? |
20:02:16 | Araq | no idea |
20:02:30 | Araq | probably |
20:05:43 | * | Mat4 joined #nim |
20:05:46 | Mat4 | hello |
20:06:03 | * | banister joined #nim |
20:06:07 | * | banister quit (Max SendQ exceeded) |
20:09:48 | filwit | Araq: If you read my PR notes, you'll notice I made any "command" (ie, 'foo' in 'foo x' not 'foo(x)' or 'y.foo x') highlight like a keyword.. I can make this more theme, controlled, but really I'm loving the way it effects the code as is. Basically my 'impl'/'class' macros feel right out-of-the-box, and 'parallel'/'spawn' just work like seen on the website banner.. plus, things like 'assert x = 0' and 'echo x' feel more "built in" this |
20:09:49 | filwit | way, IMO. Let me know what you think. |
20:10:31 | filwit | theme-controlled** |
20:11:17 | Araq | will test it soon |
20:19:17 | * | reem joined #nim |
20:21:19 | * | gokr joined #nim |
20:22:56 | filwit | Araq: one more note, and I'll stop bugging you: All the new color themes highlight declarations (type/proc names) very distinctly. IMO this really helps glancing you 'take in' the important module structure at a glance... I know you don't like much color, and I don't want to mess with the existing colors, but if you want me to change your favorite theme(s) to include that feature, just let me know and I'll work with you to get it how you |
20:22:56 | filwit | want. |
20:24:26 | filwit | Araq: crap you merged that too soon... i didn't push the 'concept' keyword change yet... |
20:26:05 | filwit | Araq: https://github.com/nim-lang/Aporia/pull/73 |
20:26:09 | Araq | filwit: you can always create a new PR |
20:26:17 | filwit | (see above) |
20:27:01 | filwit | thanks for the merge :) |
20:27:50 | * | gsingh93 joined #nim |
20:30:35 | filwit | Araq: great! now I need to put in work towards the forums again.. then I plan on adding a document tree-view to Aporia, and de-indent |
20:33:59 | * | aidanh quit (Ping timeout: 252 seconds) |
20:34:40 | * | aidanh joined #nim |
20:39:13 | * | dumdum quit (Ping timeout: 256 seconds) |
20:39:14 | * | gsingh93 quit (Ping timeout: 246 seconds) |
20:40:43 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
20:46:35 | * | zahary quit (Ping timeout: 256 seconds) |
20:56:17 | * | reem quit (Remote host closed the connection) |
21:01:21 | * | reem joined #nim |
21:01:47 | * | fizzbooze quit (Ping timeout: 264 seconds) |
21:03:10 | Shoozza | hi, how difficult is it to use nim with out gc? Isi it even possible? |
21:05:32 | Araq | Shoozza: short answer: I can avoid the gc. apparently nobody else. |
21:05:42 | filwit | Shoozza: it's not difficult to use "Nim" without GC, just pass --gc:none... however, much of the standard-libs will leak to my understanding, so you'll be needing to roll much of your own solutions there. I've never actually tried doing this seriously, and don't know much more than that. |
21:06:22 | Mat4 | it's possible, however you are somewhat restricted because libraries depend on it |
21:06:54 | Araq | I just wish people would take their time to understand the GC instead of avoiding it and then use reference counting instead |
21:07:11 | Araq | hint: The GC uses reference counting. |
21:08:34 | filwit | Shoozza: note that when you use --gc:none, Nim will warn you of memory leaks. Also, what Araq said.. Nim's GC is awesome, and really shouldn't be a problem for you if you're concern is realtime performance. The only place a GCless would really be needed would maybe be embeded. |
21:09:09 | Araq | filwit: it also kind of sucks for throughput ... ;-) |
21:09:14 | Mat4 | that's for sure |
21:10:34 | dom96 | filwit: de-indent is shift+tab |
21:11:38 | * | BlaXpirit quit (Remote host closed the connection) |
21:11:59 | filwit | dom96: i meant auto de-indent when you press backspace above whitespace > indentLevel |
21:12:48 | filwit | dom96: it's very annoying to me (coming from Kate which does this) to have to hit backspace a bunch of times, and then have to make sure i'm on the correct division of whitespace to match my previous level |
21:13:23 | * | BlaXpirit joined #nim |
21:14:09 | filwit | dom96: ps, Araq merged the Aporia PR.. if you have any feedback or change request about the new highlighting, please let me know |
21:15:21 | dom96 | Araq: dude |
21:15:28 | dom96 | I was going to review that... |
21:16:14 | filwit | yeah i was surprised he merged it as well.. but you can always revert, and I can remake the PR |
21:16:24 | Araq | dom96: but I wanted to see the "style like the website" :P |
21:16:47 | dom96 | Araq: what? |
21:16:57 | dom96 | Araq: You shouldn't merge PRs to test them. |
21:17:06 | dom96 | You should clone filwit's repo and test it. |
21:18:36 | filwit | i completely agree with dom96... either way, i'm happy to remake the PR if you want to revert. At this point I would say just test things out and let me know if you want anything changed... though it's annoying you can't seem my PR comments anymore.. |
21:19:57 | filwit | is there a way to view previous PR comments? |
21:20:04 | dom96 | well |
21:20:09 | dom96 | From what I can see it's fine. |
21:20:24 | dom96 | I am however annoyed by Araq. |
21:21:01 | filwit | dom96: it's not too hard to revert either, though I agree you shouldn't pull PRs to test them.. either way, lets talk about the actual changes |
21:21:07 | Araq | well it's not like I haven't reviewed it |
21:22:35 | flaviu | Araq: git remote add filwit [email protected]:PhilipWitte/Aporia.git; git checkout filwit/master |
21:23:07 | Maxdamantus | Probably want a fetch there. |
21:23:09 | filwit | dom96, Araq: now that you're both here, I want to point out that my new colors highlight type/proc declarations (test some of them out).. I could make any of the previous colors also do that (to whatever degree) if you want.. just let me know. |
21:23:47 | filwit | dom96: also, noticed I already did this to your peikno theme (type/proc declarations are bold) |
21:24:01 | def- | Araq: Hm, found another similar bug: https://github.com/Araq/Nim/issues/2243 |
21:24:59 | dom96 | Araq: Good. Next time don't say you merged it just because you wanted to "see [the changes]" though. |
21:25:30 | * | lnr joined #nim |
21:26:17 | * | reem quit (Remote host closed the connection) |
21:26:58 | * | reem joined #nim |
21:27:05 | Araq | dom96: if you don't want me to merge PRs, don't give me write access to the repo |
21:27:29 | flaviu | Araq: That's impossible without github enterprise. |
21:27:48 | flaviu | wait, no |
21:29:03 | dom96 | Araq: I want you to merge PRs, as long as you don't then give me silly reasons for merging them. |
21:31:29 | dom96 | But it doesn't matter. I know you meant well, i'm just having a bad day. |
21:32:49 | Araq | no worries, I'm way too busy to care about anything |
21:33:32 | Araq | def-: can you fix it on your own this time? |
21:33:52 | def- | Araq: I'm still trying to understand how you fixed the last one |
21:34:13 | Araq | you have to distinguish between strong and weak dependencies |
21:34:29 | Araq | weak means we can get a away with a struct forward declaration |
21:34:39 | Araq | since we only use a pointer to it |
21:35:01 | Araq | a strong dependency means we need to emit the struct *before* the current type |
21:35:29 | Araq | in principle this doesn't work for any type graph that Nim allows |
21:35:51 | Araq | so there will always be bugs |
21:36:25 | Araq | do avoid these we would need to introduce dummy structs since that's the only thing that can be forwarded in C |
21:36:56 | Araq | but dummy structs imply different alignments etc. so ... not worth the trouble until version 1.0 is out |
21:37:31 | Araq | *to avoid |
21:39:19 | * | filwit quit (Quit: Leaving) |
21:39:41 | * | filwit joined #nim |
21:42:52 | def- | no idea how to find out where to fix this |
21:43:28 | dom96 | Araq: tested suggest in Aporia yet? |
21:45:58 | Araq | dom96: I'm about to do that, but got distracted and I'm cleaning up the test suite now |
21:46:02 | * | fizzbooze joined #nim |
21:46:03 | * | superfunc joined #nim |
21:48:07 | filwit | dom96: just tested. still fails on a very basic test (website Person code) |
21:48:31 | * | Menche quit (Quit: Leaving) |
21:49:54 | Araq | def-: for the handling of tyOpenArray, tyVarargs replace getTypeDescAux with getTypeDescWeak |
21:50:05 | filwit | but i'm using new-suggest aporia branch with devel... is there nimsuggest nim branch i should be using? |
21:50:20 | Araq | nope devel is it |
21:50:42 | filwit | oh wait... i'm stupid.. forgot to rebuild nimsuggest... |
21:51:02 | filwit | now i cannot reopen aporia.. god that's annoying :P |
21:51:30 | Araq | developing aporia in aporia is indeed annoying :-) |
21:51:51 | dom96 | never had that problem |
21:51:54 | Araq | dom96: but I made the compiler shut up in serving mode |
21:52:06 | dom96 | filwit: how are you closing Aporia? |
21:52:27 | dom96 | Araq: did you make it send errors through the socket? |
21:52:32 | Araq | yes |
21:52:37 | filwit | dom96: i type '.', aporia crashes, cannot reopen ("an instance of aporia is already running") |
21:53:02 | dom96 | good, but Aporia won't be able to handle that... |
21:53:11 | dom96 | filwit: what's the crash? |
21:53:32 | filwit | dom96: SocketThread -> connect |
21:53:46 | filwit | dom96: you said before the port needs to timeout before i can reopen or something |
21:54:20 | dom96 | filwit: That's like the reason, yes. |
21:54:26 | dom96 | *likely |
21:54:39 | dom96 | but then I don't get why Aporia can still connect to it |
21:54:52 | dom96 | I guess I need to make it reply. |
21:57:26 | filwit | dom96: is there any other process i can kill to make it work? the problem is i'm not sure how long to wait.. and the only alternative i've found is to restart... i waited a good 5mins before and it still didn't work.. i'm not sure if that was because i kept trying to reopen though |
21:57:50 | ekarlso | nim c 31c4026f_3724_4b1b_93fa_cc45d78d48cf.nim < so that's not valid ? |
21:57:58 | ekarlso | fails with invalid module name :P |
21:58:10 | Araq | ekarlso: starts with a digit |
21:58:21 | Araq | a module name has to be a valid nim identifier |
22:03:24 | flaviu | ekarlso: Try mktemp |
22:06:10 | dom96 | filwit: best way is to fix Aporia |
22:06:17 | dom96 | make it use file sockets |
22:06:50 | filwit | i'll just avoid nimsuggest for the moment and work on adding a document treeview instead |
22:07:35 | filwit | either way, the forums have been put off for too long, so I need to make a PR against those next anyways |
22:08:00 | filwit | lunch. bbl |
22:09:19 | Araq | Jehan_: can you please look into https://github.com/Araq/Nim/issues/2242 if you find the time? |
22:09:35 | * | epichero joined #nim |
22:11:17 | Jehan_ | Araq: Hmm, doesn't start for me, I may have to update my installation. |
22:11:46 | * | pregressive quit (Remote host closed the connection) |
22:12:04 | Jehan_ | No, looks like I may be missing some packages. |
22:12:27 | Araq | yeah I don't like these bug reports either |
22:12:35 | Araq | "that stuff over there doesn't work, fix it" |
22:12:56 | Araq | onionhammer: can you hear me? make a test program without external dependencies |
22:13:06 | Araq | it doesn't have to be minimal |
22:13:12 | Araq | but it surely helps |
22:14:08 | dom96 | Araq: Can you get nimsuggest working outside of the compiler dir? i.e. as a nimble package? |
22:14:36 | def- | Araq: I don't think I can figure it out |
22:14:39 | ekarlso | does aceeditor work with nim ? |
22:14:55 | Araq | def-: tried my idea? |
22:15:40 | Araq | dom96: no, I don't know how to make these things nimble packages |
22:16:57 | def- | Araq: yes, in multiple locations. didn't change anything |
22:17:03 | dom96 | Araq: IIRC there was a compilation problem |
22:17:39 | Jehan_ | Hmm, I can get a crash with mark and sweep, too. Sometimes. |
22:17:50 | Araq | dom96: yeah I know but I don't know what to do about these things. |
22:18:56 | Jehan_ | Crash disappears when I turn off -d:release, sigh. |
22:19:24 | * | Mat4 quit (Quit: Verlassend) |
22:20:24 | Araq | Jehan_, onionhammer ws.buffer = cstring(newString(4000)) # unsafe |
22:21:10 | Jehan_ | Araq: Yeah, that would do it. |
22:22:34 | Jehan_ | And the boehm GC survives because it traces memory conservatively. |
22:22:43 | Araq | exactly |
22:36:31 | OderWat | @Araq I need help with what the pragmas mean for the change in repeatStr(). What is: rtl, extern: "nsuRepeatStr" ? will the new be: rtl, extern: "nsuRepeat" ? |
22:37:03 | Araq | sure why not |
22:38:34 | Araq | OderWat: that's just for DLL support |
22:39:50 | OderWat | @Araq ok. you guys will correct me anyway if I mess that up :) |
22:53:45 | * | brson joined #nim |
22:56:39 | * | superfunc quit (Ping timeout: 244 seconds) |
22:58:43 | Araq | def-: one problem is that closures are not forwarded at all currently. getTypeDescWeak needs to learn how to do that |
22:59:15 | * | brson_ joined #nim |
22:59:15 | * | brson_ quit (Client Quit) |
23:00:08 | * | brson_ joined #nim |
23:02:23 | * | brson quit (Ping timeout: 240 seconds) |
23:03:04 | * | pregressive joined #nim |
23:05:25 | onionhammer | araq thats only done at the start of the program |
23:06:22 | onionhammer | Araq I can work on that a bit tomorrow/tonight |
23:06:26 | onionhammer | making a smaller program |
23:06:46 | * | awesomo4000 joined #nim |
23:06:48 | Araq | it doesn't matter if it's only done at the start of the program |
23:07:04 | Araq | you lie about the type, it's a 'cstring' aka not traced |
23:07:13 | Araq | the GC can free it immediately |
23:07:27 | onionhammer | i'll experiment |
23:08:00 | Araq | use GC_ref and GC_unref if you really need the cstring here |
23:08:07 | onionhammer | i dont see how it would account for the prog size growing though |
23:08:41 | onionhammer | afk |
23:08:50 | awesomo4000 | why was the sockets module deprecated ? |
23:09:18 | def- | awesomo4000: "Warning: Since version 0.10.2 this module is deprecated. Use the net or the rawsockets module instead." |
23:09:21 | Araq | onionhammer: true, but note that I left the bug open ;-) |
23:10:09 | dom96 | awesomo4000: Because it is superseded by the `net` module. The sockets module mixed low-level and high-level procs too much. |
23:11:13 | * | brson_ quit (Quit: leaving) |
23:11:28 | * | brson joined #nim |
23:11:40 | awesomo4000 | will the module name “sockets” be returned to use or retired permanently ? |
23:13:04 | Araq | awesomo4000: hard to say, deprecated stuff stays in Nim for quite some time |
23:14:15 | awesomo4000 | Is there a firm time or version-based process for removing support completely? |
23:15:01 | Araq | it's version based. at least 1 version keeps the deprecated stuff. usually 2 versions or more when we forget about it ;-) |
23:15:46 | Araq | speaking of which, I will de-deprecate the parseopt module. everything still uses it and I forgot what parseopt2 fixes |
23:16:09 | Araq | but I do remember parseopt2 doesn't work with the compiler anyway |
23:17:32 | BlaXpirit | o.o |
23:18:20 | awesomo4000 | when i saw the module name rawsockets i thought it meant sock_raw which have traditionally been known as raw sockets. |
23:18:45 | BlaXpirit | "has issues with spaces in arguments." |
23:19:16 | BlaXpirit | diff of the 2 modules doesn't help |
23:22:36 | dom96 | we need to remove deprecated things in this release |
23:22:47 | dom96 | it's about time to do so |
23:23:33 | reactormonk | dom96, you can have sockets as files. |
23:24:30 | * | sillesta quit (Ping timeout: 246 seconds) |
23:24:35 | dom96 | reactormonk: Nim's Socket type cannot be converted to a File type. |
23:25:28 | onionhammer | Araq i can just keep another reference to the string object |
23:25:31 | onionhammer | on the same object |
23:25:44 | reactormonk | dom96, no, but a File can be a socket. |
23:25:54 | Araq | onionhammer: hrm yeah should work |
23:25:57 | reactormonk | on the filsystem level |
23:26:07 | dom96 | reactormonk: then you probably shouldn't use readAll on it. |
23:26:15 | reactormonk | point taken. |
23:27:20 | onionhammer | araq ok updated the code |
23:29:44 | Araq | onionhammer: ok, dunno when I will find the time to look into it |
23:30:04 | onionhammer | araq ok, i can still come up w/ a simpler case perhaps |
23:30:31 | Araq | keep in mind that I need to add it to the testsuite anyway ;-) |
23:30:46 | onionhammer | ok |
23:30:48 | Araq | so yeah, everything you do here helps |
23:33:02 | * | untitaker quit (Ping timeout: 272 seconds) |
23:38:25 | * | untitaker joined #nim |
23:39:25 | * | fizzbooze quit (Ping timeout: 255 seconds) |
23:40:50 | awesomo4000 | is anyone working on a pcap interface |
23:42:39 | * | fizzbooze joined #nim |
23:45:41 | filwit | dom96: just came back from lunch. aporia still doesn't open... |
23:46:47 | filwit | dom96: oh well, i guess we know it's not going to reset after a certain amount of time. I need to restart I guess, unless you know of a way to kill the process responsible for the open socket? |
23:47:48 | * | petrus quit (Quit: WeeChat 1.1.1) |
23:47:54 | filwit | nevermind, found the process (nimsuggest, duh) |
23:48:20 | Araq | yeah if aporia crashes, it doesn't shut down nimsuggest |
23:48:27 | Araq | really annoying |
23:49:47 | awesomo4000 | is it a socket bind problem ? |
23:50:03 | filwit | Araq: just kill the nimsuggest process, that fixes it for now |
23:50:24 | filwit | dom96: new nimsuggest still fails on basic test though (Person website example) |
23:50:54 | melvanis | sorry for asking a library rather than a language question, I'm new to the channel and not sure if this is the place... but I've searched through the forums and nimble package list extensively and haven't found a usable matrix library, the existing ones (linagl, etc.) don't work on current Nim versions. is there anything usable at the moment or under development? |
23:51:19 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:51:51 | Araq | melvanis: afaict everybody develops his own ... and doesn't share it |
23:52:16 | filwit | dom96: not sure if it's because I wired up nimsuggest differently thought (i have a ~/.local/bin/ added to my PATH with local aliases there, including nimsuggest). Can you or Araq test out the banner Person example and let me know if that actually works for you (whenever you have time, I'm just going to disable suggest atm and do other things) |
23:53:41 | * | Trustable quit (Remote host closed the connection) |
23:54:02 | melvanis | Araq: that's really unfortunate, Nim seems like an excellent language for numerical work. thank you for answering. if I manage to put together something useful, I'll make sure to share it on the forums. |
23:56:38 | Araq | melvanis: gmpreussner is working on one too, but he's currently not in #nim |
23:57:07 | Araq | maybe you two can work together |
23:58:03 | melvanis | I'll try to track him down and see if I can help |
23:59:54 | filwit | g'damnit.. i just fond a (very small) issue with my aporia regex.. one sec |