00:02:23 | * | NimBot joined #nim |
00:02:35 | dom96 | hm |
00:03:53 | * | jamesroseman quit (Ping timeout: 244 seconds) |
00:04:13 | CodeVance | ? |
00:21:42 | FromDiscord | <exelotl> if I have `proc foo(n:cint)` is there a nicer way to allow `foo(some_int)` without having to make a wrapper which takes int? |
00:21:53 | * | find0x90_ joined #nim |
00:23:00 | * | find0x90 quit (Ping timeout: 244 seconds) |
00:23:33 | FromDiscord | <exelotl> cause I was happily doing foo(0) until I tried to put 0 in a variable and got a compiler error :| |
00:23:49 | FromGitter | <Varriount> exelotl: Why not just have the proc take an int? |
00:24:12 | FromDiscord | <exelotl> it's imported from C |
00:24:16 | FromGitter | <Vindaar> well, you can call `.int` on the argument to convert it. Personally would write a wrapper though |
00:24:37 | FromGitter | <Vindaar> unless you only call it in one place or something |
00:27:58 | FromGitter | <Varriount> And what are you going to do it the input is preside the range of a cint? |
00:29:35 | FromDiscord | <exelotl> hmm I took a look at some existing library bindings and they all seem to just expose functions with cint and call it a day |
00:29:40 | FromDiscord | <exelotl> so I guess I'll just do that |
00:29:45 | FromGitter | <Vindaar> well sure, depending on what kind of function we're talking about that matters and one needs to check for the size of the input |
00:30:23 | FromGitter | <Vindaar> there's plenty of libraries, which don't do that. some obviously only want to be pure wrappers |
00:30:42 | FromGitter | <kayabaNerve> @exelotl afaik, you most do cint and int (or SomeiIteger) |
00:30:59 | FromGitter | <kayabaNerve> *SomeInteger |
00:31:21 | * | craigger_ joined #nim |
00:33:15 | FromDiscord | <exelotl> I'm exporting sunvox music functions like `sv_play(slot)` where slot is a running instance of the sunvox engine. Generally you would only have a handful of slots, so if the input exceeds the size of a cint, something probably went wrong already xD |
00:33:20 | * | craigger quit (Ping timeout: 244 seconds) |
00:35:23 | * | craigger joined #nim |
00:35:57 | * | craigger_ quit (Ping timeout: 240 seconds) |
00:38:13 | * | BitPuffin quit (Remote host closed the connection) |
00:39:47 | skrylar | huh. sunvox was neat |
00:40:00 | * | craigger quit (Read error: Connection reset by peer) |
00:41:57 | FromDiscord | <exelotl> ye ;) |
00:42:04 | * | craigger joined #nim |
00:43:38 | FromDiscord | <exelotl> I mostly use Renoise nowadays but I think SunVox could be really cool for game audio. The API is really simple and you can have all these fancy realtime effects. |
00:45:31 | * | riidom joined #nim |
00:49:36 | * | krux02 quit (Remote host closed the connection) |
00:50:26 | * | krux02 joined #nim |
00:52:39 | skrylar | i haven't done a lot with renoise in quite a while. |
00:53:09 | skrylar | haven't really got a good enough grasp on the rigid grids for composing |
00:54:54 | FromDiscord | <exelotl> it's all about using cut and delay commands for triplets and stuff x) |
01:19:16 | CodeVance | what's the equivalent of C++ `new GLUint[128]` in nim? |
01:30:18 | * | donlzx joined #nim |
01:32:59 | FromGitter | <data-man> ```var seq = newSeqGLUint (128)``` |
01:37:15 | skrylar | is that even allowed? wouldn't it be var birds: GLUint <newline> newSeq(birds, 128) |
01:37:32 | skrylar | or array[0..127, GLUint] |
01:39:27 | * | dddddd quit (Remote host closed the connection) |
02:01:02 | FromGitter | <data-man> @skrylar: If @CodeVance would ask about ```std::array<GLUint, 128>``` then I'd suggest ```array[0 .. 127, GLUint]``` :-D |
02:08:48 | skrylar | bleh i guess tomorrow is either table layouts or tinkering with glib/gobject |
02:13:58 | * | endragor joined #nim |
02:20:48 | skrylar | it looks like it might be a good idea to have side-channel data for a property assignment |
02:21:41 | skrylar | reading about loops that happen when you try to update a text field from a database and then the gui tries to kick an event from the text change which would set the database and then THE END IS NEVER THE END IS NEVER |
02:23:24 | CodeVance | or just raw assignment, skipping the text change |
02:23:29 | CodeVance | event |
02:30:06 | * | endragor quit (Remote host closed the connection) |
02:32:58 | skrylar | CodeVance, doesn't that require you to break out of the model |
02:33:52 | CodeVance | your going to have to do it in anycase |
02:34:24 | CodeVance | Might as well hard code it and keep track of the places you do |
02:34:56 | CodeVance | input -> raw set output -> trigger events while ensuring no looping occurs |
02:35:33 | skrylar | what i'm thinking of is borrowing emacs concept of the interactive flag so you can have ex. a FRP Property for the current record in a db (example code) which has a listener for changes and then can propagate to the property of a text field (but the side-channel would be {interactive: false}) and thus the listener to the text field can do keep(interactive == true) which kills the loop |
02:37:06 | skrylar | or something |
02:38:07 | * | FromGitter quit (Remote host closed the connection) |
02:38:15 | * | FromGitter joined #nim |
02:39:36 | CodeVance | okay wait. You have a DB and a front end? Then when the DB changes it sends an event to the frontend saying its value has changed. Ok. then When the front end changes you send an event to the DB that your frontend has changed. Ok. Is the DB like some sort of server which broadcasts events to all other listeners? |
02:39:52 | CodeVance | You can also just keep track of the "origin" of the event and if it comes back it gets ignored |
02:42:25 | skrylar | i don't have the db [yet], just reading and working out how FRP event handling works with UIs |
02:42:51 | skrylar | i ran in to a post where people were talking about simple CRUD gui's need .. mental help, in order to avoid infinite loops |
02:45:36 | skrylar | (i did have a situation like this in an old pomodoro app; instead of a db, a timer would tick down a slider control and it had some edge case code to avoid the looping) although that was spaghetti coded |
02:46:39 | CodeVance | Well here's a tip. Don't use the "paradigm" to run the "paradigm" its not turtles all the way down its only turtles on the grass |
02:47:04 | CodeVance | You don't have to make your code entirely work within a system |
02:47:37 | CodeVance | whats the problem though? |
02:49:24 | skrylar | the problem is that semantic information about an event is lost when you assign the property value |
02:53:04 | CodeVance | what about having a "current event" |
02:53:36 | CodeVance | or just removing the origin from the listener list |
02:55:34 | skrylar | the listener list is terrifying atm |
02:59:00 | * | craigger_ joined #nim |
03:01:21 | * | craigger quit (Ping timeout: 248 seconds) |
03:03:58 | CodeVance | Do you have a event server thingy? Just skip the sender when propogating the event |
03:06:18 | skrylar | it's a nim clone of baconjs, which does FRP events. at present there is an observer object, and then you tell it things like "filter with this function" which creates a new observervable and subscribes a closure to the old observable to run the filter logic. so it's not a 1:1 caller-callee like signals and slots or callbacks, it's a stream of data filtered through closures |
03:08:19 | skrylar | reading stuff from elm/haskell to see how they dealt with it |
03:08:40 | * | craigger joined #nim |
03:09:04 | * | craigger- joined #nim |
03:09:53 | * | craigger_ quit (Ping timeout: 244 seconds) |
03:09:55 | CodeVance | filter( not it in ignorelist) ? |
03:10:10 | * | craigger quit (Read error: Connection reset by peer) |
03:10:10 | skrylar | theres no source data ;p |
03:10:41 | * | krux02 quit (Remote host closed the connection) |
03:10:43 | skrylar | it's actually a really easily avoidable problem, so will probably just put in some simple integer tag or whatever somewhere |
03:11:04 | * | craigger joined #nim |
03:11:11 | skrylar | even in the db case i mentioned you would more sanely just route the output of the text field to a temp object (so you can validate, or compare it to the original values before sending data) not loop it |
03:11:12 | CodeVance | gd luck? |
03:14:32 | * | craigger- quit (Ping timeout: 244 seconds) |
03:16:00 | * | craigger_ joined #nim |
03:17:32 | skrylar | CodeVance, yeah. |
03:18:21 | * | craigger quit (Ping timeout: 264 seconds) |
03:19:07 | skrylar | have seen some impressive sample code in places where the spaghetti was massively cleaned up with frp |
03:19:53 | FromGitter | <data-man> Looks like you found each other, guys. But why do not you use private messages? What you are discussing relates to Nim? |
03:25:57 | skrylar | data-man does writing a module in nim relate to nim? |
03:26:33 | skrylar | https://github.com/skrylar/cobweb :P |
03:29:13 | * | craigger_ quit (Read error: Connection reset by peer) |
03:31:00 | * | craigger joined #nim |
03:37:18 | * | rockcavera quit (Remote host closed the connection) |
03:47:47 | FromGitter | <rayman22201> @Varriount are you online and feeling like working on better-doc-search? |
03:51:31 | * | donlzx quit (Remote host closed the connection) |
04:02:02 | * | craigger_ joined #nim |
04:02:24 | * | craigger quit (Quit: bye) |
04:07:09 | * | ftsf joined #nim |
04:11:22 | FromGitter | <citycide> is it possible to fix the links to stdlib imports with generated docs? |
04:19:38 | * | craigger joined #nim |
04:21:27 | * | craigger_ quit (Ping timeout: 240 seconds) |
04:22:41 | * | craigger_ joined #nim |
04:24:48 | * | craigger quit (Ping timeout: 268 seconds) |
04:35:03 | * | craigger joined #nim |
04:35:35 | * | craigger- joined #nim |
04:36:58 | * | craigger_ quit (Ping timeout: 264 seconds) |
04:39:27 | * | craigger quit (Ping timeout: 240 seconds) |
04:46:38 | * | craigger joined #nim |
04:50:14 | * | craigger- quit (Ping timeout: 260 seconds) |
04:52:36 | * | craigger_ joined #nim |
04:53:44 | * | craigger quit (Ping timeout: 260 seconds) |
05:00:09 | * | craigger joined #nim |
05:01:21 | * | craigger_ quit (Ping timeout: 248 seconds) |
05:02:35 | * | craigger_ joined #nim |
05:05:10 | * | craigger quit (Ping timeout: 264 seconds) |
05:16:57 | * | craigger_ quit (Ping timeout: 240 seconds) |
05:21:12 | FromGitter | <rayman22201> delayed reaction, but I think I found the bug in re module that @tim-st was having |
05:21:54 | FromGitter | <rayman22201> ```code paste, see link``` |
05:22:08 | FromGitter | <rayman22201> oh gawd. copy pasta has failed |
05:25:04 | FromGitter | <rayman22201> https://gist.github.com/rayman22201/63d571e7c58bd496d4f299cc84da0bea |
05:28:52 | * | ftsf quit (Ping timeout: 244 seconds) |
05:38:23 | * | craigger joined #nim |
05:40:52 | FromGitter | <Varriount> @rayman22201 I'm awake now. |
05:41:17 | FromGitter | <rayman22201> Good (insert timezone appropriate greeting here) |
05:41:55 | FromGitter | <rayman22201> :-) |
05:42:27 | FromGitter | <Varriount> How are the import links currently broken? |
05:43:39 | FromGitter | <rayman22201> I don't know. @citycide are you still here? |
05:50:23 | * | nsf joined #nim |
05:56:06 | * | arecacea1 quit (Remote host closed the connection) |
05:56:27 | * | arecacea1 joined #nim |
06:10:17 | * | ftsf joined #nim |
06:10:57 | * | skrylar quit (Ping timeout: 240 seconds) |
06:15:53 | * | miran joined #nim |
06:22:58 | * | Pisuke joined #nim |
06:23:37 | * | MyMind quit (Ping timeout: 256 seconds) |
06:25:58 | * | wildlander joined #nim |
06:26:20 | * | endragor joined #nim |
06:36:20 | * | Trustable joined #nim |
06:46:19 | * | wildlander quit (Quit: Konversation terminated!) |
07:04:23 | * | Trustable quit (Remote host closed the connection) |
07:23:55 | * | Gnjurac joined #nim |
07:26:27 | FromGitter | <tim-st> @rayman22201 thanks! |
07:28:23 | FromGitter | <tim-st> nimble.directory uses jester 0.1.0 and needs 0.3.0 asap |
07:28:55 | * | endragor quit (Remote host closed the connection) |
07:29:19 | FromGitter | <tim-st> well, maybe this is the reason for the downtime |
07:38:45 | FromGitter | <Bennyelg> or httpbeast :P |
07:43:51 | FromGitter | <tim-st> I meant because of security |
08:02:56 | Gnjurac | does jester have like some kind of DataAnotations like in c# |
08:03:01 | Gnjurac | for validating |
08:11:28 | * | le94 joined #nim |
08:11:38 | * | Vladar joined #nim |
08:12:24 | * | le94 is now known as le98 |
08:13:38 | * | le98 quit (Client Quit) |
09:05:25 | * | rockcavera joined #nim |
09:10:44 | FromGitter | <Varriount> Gnujurac: For validating what? |
09:19:09 | * | fastrom quit (Ping timeout: 260 seconds) |
09:22:33 | dom96 | It doesn't |
09:27:33 | FromGitter | <Vindaar> @rayman22201 your example is different. The reason the case with `seq` doesn't work in your example, is that `match` does not resize the given input sequence. Since `matchesSeq` is of size 0, nothing will be stored. Change the declaration to ⏎ ⏎ ```var matchesSeq = newSeq[string](10) # random size``` ⏎ ⏎ and it works fine with seqs as well [https://gitter.im/nim-lang/Nim?at=5b4b1385c02eb83d7c76175c] |
09:30:04 | * | fastrom joined #nim |
09:34:09 | * | dddddd joined #nim |
09:34:42 | Gnjurac | incoming stuff :) |
09:35:19 | FromGitter | <tim-st> Does someone know if this `$castcstring (cstringPtr)` is the same as newStringOfCap + copyMem + setLen? |
09:35:42 | FromGitter | <tim-st> I tried to find the implementation but it's a bit hidden |
09:40:26 | miran | can anybody (maybe dom96) explain this behaviour? http://ix.io/1heK/ |
09:43:57 | FromGitter | <bevo009> With the func keyword, is the {. noSideEffect .} pragma not implemented yet in Nim 0.18.0? |
09:44:15 | miran | it is 0.18.1 feature AFAIK |
09:45:16 | FromGitter | <bevo009> Is 0.18.1 released, or is that devel? |
09:45:25 | miran | devel |
09:46:54 | FromGitter | <bevo009> I don't suppose there's an easy guide to installing chooseNim/devel anywhere? |
09:47:18 | miran | https://github.com/dom96/choosenim#installation |
09:47:35 | miran | it is quite straight-forward |
09:49:43 | FromGitter | <bevo009> Ta. I might try it next weekend...windows installations don't always go smoothly with Nim, from what I've seen |
09:50:19 | miran | oh, on windows choosenim installs 32-bit version of nim, IIRC |
09:53:19 | FromGitter | <bevo009> Is this guy Fred Heath around the forums/IRC at all? Stellar video https://youtu.be/_HeU8yg_WaE?t=1306 |
09:59:36 | * | ftsf quit (Ping timeout: 244 seconds) |
10:00:22 | * | FromGitter quit (Read error: Connection reset by peer) |
10:00:30 | * | FromGitter joined #nim |
10:05:26 | * | fastrom quit (Quit: Leaving.) |
10:06:50 | FromGitter | <tim-st> does this proc works for the empty string? https://github.com/status-im/nim-rocksdb/blob/840d470eb9f0bd8115d26ee66017d4bc20197c7e/rocksdb.nim#L122 |
10:07:16 | FromGitter | <tim-st> saw this addr(result[0]) pattern quite often... |
10:07:33 | * | krux02 joined #nim |
10:09:21 | FromGitter | <Vindaar> `addr result[0]` for a `seq` or `string` returns a pointer to the first element of the data, i.e. what you need if C demands a pointer to some buffer etc |
10:09:40 | FromGitter | <tim-st> exactly, but has the empty string a first element? |
10:10:04 | FromGitter | <tim-st> well, I tested it, and it doesnt work |
10:11:11 | FromGitter | <Vindaar> well, if it's empty there's no data to point to, no? |
10:11:35 | FromGitter | <tim-st> yes, but the proc should return the empty string, instead it raises |
10:12:00 | FromGitter | <tim-st> I didnt test the exact proc, but implemented the same idea, I think it doesnt work for this code too |
10:13:27 | FromGitter | <Vindaar> that depends on the context imo. there's many cases where you might not want to have that check inside of that proc, because e.g. you always do the check in the calling scope |
10:13:51 | FromGitter | <Vindaar> if it's supposed to be a safe proc, sure |
10:14:10 | * | fastrom joined #nim |
10:14:26 | FromGitter | <tim-st> ok, thanks |
10:14:40 | FromGitter | <tim-st> maybe @mratsim can say if in this context it is safe |
10:17:10 | * | fastrom quit (Client Quit) |
10:18:35 | FromGitter | <tim-st> oh, I see, actually release version proc the check is done; https://github.com/status-im/nim-rocksdb/blob/840d470eb9f0bd8115d26ee66017d4bc20197c7e/rocksdb.nim#L138 |
10:18:54 | FromGitter | <tim-st> *in the |
10:29:55 | FromGitter | <Vindaar> @tim-st @rayman22201 regarding the regex. I understand the "issue" with `findAll` now. Araq said yesterday: https://irclogs.nim-lang.org/14-07-2018.html#21:38:40 and well, he's right (as usual :D). What `findAll` returns is the matched substring (!) and the matched groups within that substring! |
10:31:45 | FromGitter | <Vindaar> take a look here: https://regex101.com/r/kat7jB/1/ ⏎ `findAll` returns everything marked in blue and not (as you expected) the matched group marked in green :) |
10:32:54 | FromGitter | <Vindaar> the relevant code: https://github.com/nim-lang/Nim/blob/master/lib/impure/re.nim#L341-L342 |
10:33:14 | FromGitter | <tim-st> yes, I understood that too, but that's quite different from e.g. python (and maybe other langs) |
10:33:32 | FromGitter | <tim-st> I didnt expected (and wanted) the result I got in nims way |
10:34:34 | FromGitter | <Vindaar> but then just use the`match` proc to get what you need. I don't understand your problem then? |
10:35:12 | FromGitter | <tim-st> match returns a bool?! |
10:35:14 | FromGitter | <Vindaar> would it be nice to have an iterator, which returns the matched groups and not substrings? maybe yea, but that's a different topic :) |
10:35:43 | FromGitter | <tim-st> I wanted seq[string(that is matched result)] |
10:36:19 | FromGitter | <tim-st> these iterators are available: https://nim-lang.org/docs/re.html#15 |
10:36:41 | FromGitter | <tim-st> every one of them matches "blue" |
10:37:04 | FromGitter | <Vindaar> and you can have that if you simply define do: ⏎ ⏎ ```var matchesSeq : seq[string] = newSeq[string](1) ⏎ echo match(data, yourRegex, matchesSeq)``` ⏎ ⏎ then you have your seq containing the matched group [https://gitter.im/nim-lang/Nim?at=5b4b23d095e03e3d7b4d20fd] |
10:37:16 | FromGitter | <Vindaar> yes, I know |
10:37:38 | FromGitter | <tim-st> ah, ok thanks, that could have a clear proc name |
10:38:19 | FromGitter | <tim-st> now I see it too, but it's not findable for average nim user |
10:38:21 | FromGitter | <Vindaar> but take note that the given `seq` needs to have capacity to store your number of expected matched groups :) |
10:38:49 | FromGitter | <tim-st> that's not known before? |
10:39:16 | FromGitter | <Vindaar> the `match` proc simply does not resize your `var seq` in case it's not long enough |
10:39:25 | FromGitter | <tim-st> lol, that's not good.. |
10:39:43 | FromGitter | <Vindaar> since you define your `regex`, you know how many groups you can match anyways, so it's not a problem |
10:40:11 | FromGitter | <tim-st> ok, I thought it was about the total number of matches, not about the number of groups per match |
10:41:03 | * | fastrom joined #nim |
10:46:39 | * | miran quit (Ping timeout: 260 seconds) |
11:06:35 | * | Gnjurac quit (Remote host closed the connection) |
11:09:08 | * | BitPuffin joined #nim |
11:27:40 | * | gangstacat quit (Ping timeout: 256 seconds) |
11:41:18 | * | Ven`` joined #nim |
12:04:24 | * | Perkol joined #nim |
12:10:16 | * | ftsf joined #nim |
12:12:26 | * | nc-x joined #nim |
12:13:16 | nc-x | Is it expected that this code https://pastebin.com/i98DaBww gives error `redefinition of A` ? |
12:14:11 | Araq | yes |
12:17:07 | nc-x | Okay |
12:22:49 | krux02 | nc-x, there is a pure enum if I am correct |
12:24:42 | nc-x | Yes, that fixes the problem. But i was thinking that it should have been an error at the time of usage that it is ambiguous and not this redefinition error. |
12:25:38 | krux02 | within the same package it is an "early" error. But when you split the two enums in two packages it will tell you that it is ambiguous |
12:25:50 | krux02 | and then you can disambiguate with the package prefix |
12:25:59 | krux02 | but within the same package you can't |
12:26:37 | nc-x | But isn't `a.A` and `b.B` two different entities even within the same package |
12:26:57 | nc-x | Sorry, I mean `a.A` and `b.A` |
12:27:30 | krux02 | for pure enums it is |
12:29:58 | nc-x | That is what I was thinking about when I said they should give error: ambiguous. Maybe the compiler should say they are ambigious and we need to disambiguate by prefixing the enum name. |
12:30:07 | nc-x | But anyways, this is good enough. |
12:30:42 | * | Perkol quit (Remote host closed the connection) |
12:36:28 | * | nc-x quit (Quit: Page closed) |
13:02:45 | FromGitter | <tim-st> Araq: I now tried htmlparser but it doesnt work on html.findall("P") only one html.findall("p") although the actual name is "P", is it a bug? |
13:04:18 | FromGitter | <tim-st> https://nim-lang.org/docs/xmltree.html#findAll,XmlNode,string,seq[XmlNode] |
13:04:44 | FromGitter | <tim-st> *on |
13:08:56 | Araq | I guess. |
13:08:56 | Araq | I guess it's normalized to lowercase tags |
13:09:31 | FromGitter | <tim-st> ok |
13:12:30 | * | knx joined #nim |
13:12:38 | * | knx left #nim (#nim) |
13:13:30 | * | Perkol joined #nim |
13:15:00 | Perkol | I've got this program: https://bpaste.net/show/4c4df64397db Sometimes it's outputs every supposed file, other only some. It's very inconsistent in it's behaviors. What may be the reason? |
13:18:42 | Araq | Perkol: strange. antivir protection? |
13:18:56 | Araq | unreliable hard disk? |
13:19:38 | * | miran joined #nim |
13:20:11 | * | stefanos82 joined #nim |
13:21:48 | dom96 | cosmic rays? :) |
13:23:15 | Perkol | When I use a walkDirectory function without spawn it works okay |
13:23:55 | krux02 | w3m |
13:24:03 | krux02 | xtem |
13:24:06 | krux02 | xterm |
13:25:36 | miran | can anybody explain this behaviour? http://ix.io/1heK/ |
13:26:04 | miran | why in the first example is it ok to have non-exhaustive `case`? |
13:26:14 | * | endragor joined #nim |
13:28:55 | FromGitter | <tim-st> Perkol: tried sync() ? maybe it exits before finished |
13:29:12 | FromGitter | <tim-st> https://nim-lang.org/docs/manual.html#parallel-spawn-spawn-statement |
13:30:13 | Perkol | Yeah, my bad thanks. |
13:30:27 | * | endragor quit (Ping timeout: 240 seconds) |
13:31:58 | FromGitter | <citycide> @Varriount @rayman22201 the stdlib imports point to a URL on the same domain when they should point to nim-lang.org |
13:33:04 | FromGitter | <citycide> Unless I have to build docs with --project but that doesn't work, it doesn't create directories if they don't exist so it fails |
13:33:28 | FromGitter | <citycide> (Which I should probably file as a bug) |
13:35:30 | * | Ven`` quit (Read error: Connection reset by peer) |
13:40:08 | * | Ven`` joined #nim |
13:45:25 | FromGitter | <kaushalmodi> miran: About your example about non-exhaustive case, I haven't tried, but looks like a big if the first example didn't fail. |
13:45:32 | FromGitter | <kaushalmodi> *bug |
13:46:29 | FromGitter | <kaushalmodi> But what do you mean by the comment " why is now needed and not before?" in the second snippet? |
13:46:54 | miran | @kaushalmodi all examples run as they are written. |
13:47:05 | FromGitter | <kaushalmodi> The second snippet also has a case statement for string type. |
13:47:30 | miran | i mean - if it is not needed when you do `return xy`, why it is needed when you do `xy` |
13:49:09 | FromGitter | <tim-st> it seems the htmlparser has some problems about the `innerText` :( |
13:49:13 | FromGitter | <kaushalmodi> Hmm, so you mean that Nim allows non-exhaustive case for string type if returns are used? |
13:49:47 | miran | i have no idea what's going on, that's why i'm asking hoping that someone (Araq, dom96?) might know more |
13:50:06 | FromGitter | <kaushalmodi> krux02: FWIW pure enums are broken on devel |
13:50:26 | krux02 | that is sad |
13:50:29 | FromGitter | <kaushalmodi> You can use the pure pragma enums without the prefix and it still works. |
13:51:12 | krux02 | I rarely use enums and then I don't esup pure enums. But I think the overall trend of enums in programming language is this "pure" enum |
13:52:12 | * | FromGitter quit (Remote host closed the connection) |
13:52:20 | * | FromGitter joined #nim |
13:56:51 | FromGitter | <kaushalmodi> miran: There some delay here on Gitter.. I didn't get your earlier replies in time.. my last question was rhetoric :). So what does `first("z")` return in your example? Uncaught exception? |
13:57:28 | FromGitter | <narimiran> @kaushalmodi seems like a bridge is down. you get `0`, as this is the default value for `int` |
13:58:21 | FromGitter | <narimiran> there are no exceptions/warnings/errors |
13:58:46 | Araq | miran: no bug here. if 'case' produces a value, every branch must produce a value |
13:59:17 | Araq | if 'case' doesn't produce a value, you don't have to write the 'else'. |
13:59:38 | Araq | kaushalmodi: that is not a bug. |
13:59:49 | Araq | need to update the spec though. |
13:59:51 | FromGitter | <kaushalmodi> Hmm.. I kind of understand that. |
13:59:52 | miran | oh! so case doesn't have to be exhaustive *always* |
14:00:00 | FromGitter | <kaushalmodi> Yes, need to update the spec and docs |
14:00:04 | miran | i had no idea! |
14:00:27 | FromGitter | <tim-st> me too, thought it always needs to have all cases |
14:00:28 | FromGitter | <bevo009> A noob question...I'm using system.writeLine() to write 2 lines to a notepad file ⏎ It's supposed to insert `\n` after writing the line ⏎ But I'm getting both on the same line? ie `Line 1 ⏎ Line 2` ⏎ ... [https://gitter.im/nim-lang/Nim?at=5b4b537c866e0c6b15ab1ecf] |
14:00:53 | FromGitter | <kaushalmodi> Araq: So the case needs to be exhaustive it for "intermediate" values.. not if used for final returned values, right? |
14:01:00 | miran | Araq: but now there is another question - why does then `first` work, but `third` doesn't without `else`? |
14:01:37 | FromGitter | <kaushalmodi> Would non exhaustive case work if you did "result = .." instead of "return .." then? |
14:01:52 | krux02 | Araq: would be nice, if `case` can produce a value, even if some of the branches end on {.noreturn.} procedures, like exit |
14:02:01 | krux02 | or raise |
14:02:15 | miran | @kaushalmodi: nope |
14:02:19 | krux02 | functional languages call this the Nothing type |
14:03:17 | miran | you get "Error: expression '1' is of type 'int literal(1)' and has to be discarded" |
14:04:09 | * | krux02 quit (Remote host closed the connection) |
14:04:50 | miran | that's when i change `second` to use `result =`, but when i change `third` i get a different message: "Error: not all cases are covered" |
14:05:33 | miran | so there is something going on, depending if you evaluate string or char!? |
14:12:49 | FromGitter | <bevo009> anyone? this is the description in module system: ⏎ ⏎ `proc writeLineTy (f: File; x: varargs[Ty, `$`]) {..}` ⏎ ` writes the values x to f and then writes "\n". May throw an IO exception.` [https://gitter.im/nim-lang/Nim?at=5b4b5661582aaa63076ceecc] |
14:15:16 | FromGitter | <kaushalmodi> bevo009: No idea.. should have worked (about newline after line when using `writeLine`) |
14:16:36 | FromGitter | <kaushalmodi> miran: Whether that non-exhaustive case is a bug or not, I think it would be great to open an issue and put your snippets and outputs there. Something needs to be fixed: doc or code. |
14:17:02 | miran | agreed. but that will happen after the world cup final :) |
14:17:23 | FromGitter | <bevo009> lol |
14:17:36 | Araq | did you read the docs? :P |
14:18:06 | Araq | krux02: that has been implemented |
14:18:51 | * | Perkol quit (Remote host closed the connection) |
14:19:35 | dom96 | ugh, why did my merge fail? :/ |
14:21:53 | * | donlzx joined #nim |
14:22:08 | * | fastrom quit (Quit: Leaving.) |
14:23:58 | FromGitter | <kaushalmodi> miran: understood. That's why I am not on computer right now |
14:24:03 | FromGitter | <kaushalmodi> Watching the pre finals |
14:35:19 | * | miran quit (Ping timeout: 260 seconds) |
14:35:42 | FromGitter | <bevo009> I can get a newline using system.writeLine to a notepad++ file |
14:35:48 | FromGitter | <bevo009> But not to notepad |
14:36:18 | FromGitter | <bevo009> What's the trick with notepad I wonder |
14:37:07 | Araq | use \p to create a Windows newline |
14:37:39 | FromGitter | <tim-st> I think "\n" should do it on all systems |
14:37:49 | FromGitter | <tim-st> this is how python does afaik |
14:39:01 | FromGitter | <bevo009> @Araq thanks mate, that worked |
14:39:47 | Araq | and stop using Notepad, it's terrible ;-) |
14:40:02 | dom96 | tim-st: it doesn't work that way in Python |
14:40:24 | FromGitter | <bevo009> I've got them all...notepad, notepad++, sublime |
14:40:38 | FromGitter | <bevo009> notepad is default on windows though for other users |
14:40:58 | Araq | windows 10's notepad can handle Unix newlines though |
14:41:15 | FromGitter | <tim-st> dom96: how does it work in python then? |
14:41:21 | Araq | so it works for "other users" too. |
14:41:54 | dom96 | tim-st: It's line feed on all systems |
14:42:48 | FromGitter | <tim-st> I'm pretty sure when I write print("abc\nabc") this will writes a new line in python on every system that exists for python |
14:43:21 | dom96 | https://docs.python.org/2.0/ref/strings.html |
14:43:41 | FromGitter | <bevo009> So `\p` always has to be added manually to work correctly on a pc using notepad then? |
14:43:43 | FromGitter | <tim-st> that's python 2.0 |
14:43:54 | FromGitter | <tim-st> I started using python 2.7 |
14:44:20 | dom96 | ... |
14:44:30 | FromGitter | <tim-st> also I think line feed makes a new line? |
14:44:40 | dom96 | It does |
14:44:53 | dom96 | Windows uses a different character to delimit newlines in files though |
14:45:18 | FromGitter | <tim-st> will try that now |
14:45:20 | dom96 | https://en.wikipedia.org/wiki/Newline#Representation |
14:45:44 | Araq | Python's IO layer does the translation of \n to CR-LF. |
14:45:50 | Araq | on Windows. |
14:46:04 | Araq | and we don't have an IO layer to speak of :P |
14:46:07 | FromGitter | <tim-st> so it works on every system as I said |
14:46:12 | FromGitter | <tim-st> (in python) |
14:46:29 | Araq | yes, but it works differently \n is always just LF in Python too. |
14:47:11 | FromGitter | <tim-st> ok |
14:56:22 | FromGitter | <kaushalmodi> Araq: So `\p` should be used instead of `\n` in `writeLine` and such? |
14:56:35 | FromGitter | <bevo009> If I use `\p` to create a newline on notepad, it creates 2 newlines on notepad++ |
14:56:49 | FromGitter | <bevo009> Anyway to get the same result on both? |
14:57:03 | Araq | don't use writeLine with \p |
14:57:09 | Araq | use 'write' with \p |
14:57:43 | Araq | kaushalmodi: no, users should use a real text editor or update their OS |
14:58:54 | Araq | CR-LF sucks on Windows too, need special logic to compare these files in unit tests etc yadda yadda |
14:59:32 | dom96 | Notepad is even getting support for the Unix newlines |
14:59:38 | FromGitter | <bevo009> perfect boss |
14:59:42 | FromGitter | <kaushalmodi> Araq: I was just suggesting that for better Windows support (I don't use Windows) |
14:59:56 | FromGitter | <bevo009> that works fine |
15:00:10 | FromGitter | <kaushalmodi> `writeLine` works as is on my system as `\n` is good for GNU/Linux systems |
15:00:37 | Araq | it's good for Windows too, but not for crappy notepad |
15:01:17 | FromGitter | <bevo009> fyi I also compiled it on ubuntu, and notepad had the same problem as a windows compilation |
15:01:50 | Araq | notepad on Ubuntu? |
15:01:58 | * | nsf quit (Quit: WeeChat 2.1) |
15:02:26 | FromGitter | <bevo009> ubuntu subsystem, same machine (pc) |
15:03:58 | Araq | dom96: I thought it already got that support |
15:04:15 | dom96 | perhaps |
15:04:50 | FromGitter | <bevo009> My ubuntu subsystem isn't the latest one |
15:06:14 | FromGitter | <bevo009> not the 'creators fall update' or whatever it's called |
15:08:40 | FromGitter | <bevo009> anyhoot thanks for fixing that...I'll check the unix line endings on notepad again when I update my subsystem |
15:14:41 | * | ftsf quit (Ping timeout: 248 seconds) |
15:28:23 | stefanos82 | off topic: I wanted to ask people in here; has anyone of you gone through an existential-career / path crisis even before? If yes, how did you deal with it? |
15:34:05 | FromGitter | <bevo009> damn! good game |
15:37:09 | * | skrylar joined #nim |
15:40:02 | * | edcragg quit (Quit: ZNC - http://znc.in) |
15:40:19 | * | edcragg joined #nim |
15:59:03 | stefanos82 | Araq: which file should I look to see how object is implemented? |
15:59:36 | Araq | object? |
15:59:46 | stefanos82 | yes, when we say type something = object |
16:00:13 | stefanos82 | I want to see how object is implemented |
16:14:01 | * | rauss joined #nim |
16:14:09 | * | rauss quit (Client Quit) |
16:27:10 | FromGitter | <tim-st> how can I get the tag name that is around the current xml tag like <b><span>...</span></b> when I'm in span and want to know "b"? |
16:27:28 | FromGitter | <tim-st> I saw `child` but need parent or so |
16:36:20 | * | Ven`` quit (Read error: Connection reset by peer) |
16:38:49 | * | Ven`` joined #nim |
16:44:38 | Araq | stefanos82: it's mapped to a C 'struct' |
16:44:51 | Araq | in compiler/ccgtypes.nim |
16:57:05 | stefanos82 | thank you Araq |
17:02:18 | stefanos82 | Araq: those who would like to contribute, where should they look at so they can read more about the project development, the files' order they should read to get a rough idea? |
17:03:08 | Araq | https://nim-lang.org/docs/intern.html |
17:04:06 | stefanos82 | perfect! thank you Araq |
17:04:55 | Araq | still seems reasonably up-to-date |
17:06:22 | FromGitter | <bevo009> My code compiles, but how do I get rid of this warning? I need to insert {.base.} somewhere? ⏎ `type.nim(4, 8) Warning: use {.base.} for base methods; baseless methods are deprecated [UseBase]` ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b4b7f0e95e03e3d7b4ebb9a] |
17:07:15 | skrylar | correct, you have to mark methods of the base type with base |
17:07:26 | FromGitter | <Bennyelg> Greeting to France |
17:07:31 | FromGitter | <bevo009> example? |
17:07:32 | FromGitter | <Bennyelg> For taking the World Cup |
17:07:53 | skrylar | type foo* = object {.inheritable.} \n method dance(self: var foo) {.base.} |
17:09:05 | FromGitter | <bevo009> Is it just the first line I need to change? |
17:09:12 | FromGitter | <Bennyelg> `method` is not a deprecated keyword ? |
17:09:38 | skrylar | bevo009: the base method yes, overrides no |
17:09:41 | FromGitter | <bevo009> I got it from a 2016 video, so maybe |
17:10:43 | skrylar | you know how in c++ you mark a function as virtual |
17:10:48 | skrylar | or in java you use override |
17:10:59 | skrylar | its like that but the origina lcall is {.base.} and the overrides aren't |
17:11:21 | FromGitter | <bevo009> I'm a bit of a noob, so how exactly should I rewrite that first line? |
17:11:35 | skrylar | https://nim-lang.org/docs/manual.html#multi-methods |
17:12:20 | * | donlzx quit (Quit: Leaving) |
17:14:23 | FromGitter | <Bennyelg> is static dispatch referring to if the compiler know the types in compilation ? and dynamic is when it needed to infer it dynamiclly ? |
17:14:53 | skrylar | static dispatch means the compiler knows exactly which call to use, dynamic dispatch means it has to check the object's type at runtime |
17:15:36 | FromGitter | <Bennyelg> yea this is what i ment |
17:15:37 | FromGitter | <Bennyelg> thanks |
17:16:25 | FromGitter | <bevo009> cheers, I worked it out, the warnings go with this ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b4b8169866e0c6b15abfc81] |
17:17:29 | skrylar | why is age a method? |
17:17:31 | FromGitter | <Bennyelg> why not just using proc |
17:18:12 | skrylar | Bennyelg well `speak` being a method makes sense, another type of animal would speak differently |
17:18:36 | FromGitter | <bevo009> yeah there's other animals in the rest of the code |
17:18:40 | skrylar | an interface that accepts the animal type would not be aware of other animal types, so it has to use dynamic dispatch to support ex. giraffe |
17:19:52 | Araq | skrylar: FRP is not for me. |
17:20:04 | Araq | unsurprising, I know. |
17:20:14 | skrylar | is this due to an implementation related trouble or a conceptual one |
17:24:10 | FromGitter | <Bennyelg> FRP ? = |
17:24:21 | FromGitter | <Bennyelg> @Araq you have a unique language |
17:24:26 | FromGitter | <Bennyelg> too many shortcats |
17:24:36 | FromGitter | <Bennyelg> cuts |
17:26:17 | Araq | skrylar: I think the cyclic dep problem in FRP is unsolved |
17:26:34 | * | find0x90_ quit (Quit: find0x90_) |
17:26:43 | Araq | and "randomly insert 'onNextTick' annotations" is not something I enjoy doing |
17:27:48 | skrylar | i'm not particularly familiar with the onNextTick problem |
17:28:14 | Araq | plus I'm a fan of immediate mode UIs, so for me FRP solves the problem in an overly complex way |
17:29:08 | Araq | "The only obstacle to topological ordering is the presence of cycles in the graph. Cyclic dependencies without delays would, however, be ill-defined. Flapjax therefore expects that every cycle is broken by at least one delay (either the primitive delayE or a higher-level procedure, such as integration, that employs delays). This restores the delay-free sub-graph to a partial order." from flapjax's docs |
17:31:37 | Araq | Bennyelg: FRP = Functional reactive programming. |
17:32:24 | skrylar | I guess that's one way to solve it. I was reading/watching things from reflex and they were suggesting *not* using delays |
17:33:44 | FromGitter | <kayabaNerve> My Nimble package was published :D |
17:33:59 | FromGitter | <kayabaNerve> Have I succeeded at life now? |
17:34:45 | skrylar | yes |
17:34:56 | FromGitter | <kayabaNerve> BTW does the stdlib use new, init, or a mix? |
17:35:26 | FromGitter | <kayabaNerve> Because I think it's newSeq/initTable, right? Do we plan on standardizing that or offering either? |
17:38:39 | skrylar | my guess is nobody has gotten around to doing it |
17:38:58 | skrylar | filestreams still use get_position and set_position for instance |
17:39:26 | * | find0x90 joined #nim |
17:42:43 | FromGitter | <GULPF> @kayabaNerve new is for ref types, init is for non-ref types |
17:45:42 | FromGitter | <GULPF> for example both newTable and initTable exists, with different meaning |
17:46:08 | FromGitter | <tim-st> can I also use new for non ref types? |
17:46:15 | FromGitter | <tim-st> I think that sounds better |
17:47:08 | * | skrylar used to use open/close/make/free for that, although i don't think anyone else ever did |
17:47:28 | skrylar | make/free being the malloc/free variants, and open/close being the init/deinit for pre-existing memory |
17:47:44 | FromGitter | <tim-st> I also used new for tuples |
17:47:53 | FromGitter | <GULPF> better to use init for consistency with the stdlib imo. there's been talks about changing the convention though, see #7832 |
17:49:47 | FromGitter | <tim-st> I always found initTable and initSet are names that could have better names |
17:50:33 | FromGitter | <tim-st> btw I tried to use `destroy` but it doesnt work, it wanted some specific code signature which I hadnt |
17:50:56 | FromGitter | <tim-st> I just wanted to use it like in python to call at destroy what I want |
17:50:59 | * | vivus joined #nim |
17:51:36 | FromGitter | <tim-st> or which types can have destructurs? object too? |
18:00:57 | * | Ven`` quit (Ping timeout: 240 seconds) |
18:25:37 | * | nsf joined #nim |
18:28:59 | * | Ven`` joined #nim |
18:29:36 | * | miran joined #nim |
18:33:12 | FromGitter | <Vindaar> uggh to myself. sometimes RTFM really is the best way... |
18:36:18 | FromGitter | <tim-st> I now realized this like the 10th time over several monthes: something is really wrong with counTable.sort, it's really slow |
18:36:45 | FromGitter | <tim-st> it feels like bubble sort |
18:36:56 | * | find0x90 quit (Quit: find0x90) |
18:38:21 | FromGitter | <kayabaNerve> @skrylar Isn't there a Nim language thing where get_p and getP both thing? Part of the... ah hell, what's it called. The syntax can be a b c or b a c |
18:38:38 | FromGitter | <kayabaNerve> For some reason I feel that's part of it too |
18:39:00 | * | find0x90 joined #nim |
18:39:03 | FromGitter | <tim-st> lol: `# we use shellsort here; fast enough and simple` |
18:39:11 | FromGitter | <kayabaNerve> Of course, it's not case sensitive for some reason, so the question isn't if _lower works as Upper, but rather if _ is needed |
18:39:11 | FromGitter | <tim-st> no, it's not fast at all |
18:40:17 | FromGitter | <kayabaNerve> !eval proc get_lower() = echo "True"; getLower() |
18:40:19 | NimBot | <no output> |
18:41:12 | FromGitter | <kayabaNerve> That works if you use a newline over a semi colon |
18:41:29 | FromGitter | <kayabaNerve> I'm guessing the proc call is treated as part of the proc itself |
18:41:44 | FromGitter | <kayabaNerve> *Or rather it is. |
18:42:06 | FromGitter | <kayabaNerve> That said, I have no idea how to handle it the other way. skrylar |
18:45:19 | FromGitter | <kayabaNerve> And of course, something shouldn't be acceptable as defined if other features allow it to be ok. The definition itself should be ok. I'm just commenting it balances out. |
18:51:25 | * | Ven`` quit (Read error: Connection reset by peer) |
18:52:34 | * | Ven`` joined #nim |
18:56:02 | stefanos82 | is there a particular reason why the search in documentation page is case-sensitive? |
18:56:43 | stefanos82 | I'm searching for concept and should have returned Concepts back from Generics |
18:56:47 | stefanos82 | it doesn't... :/ |
18:57:10 | * | Perkol joined #nim |
18:58:03 | FromGitter | <Vindaar> I don't think it's case sensitive. It's just that some things simply don't pop up in the search bar |
18:58:25 | stefanos82 | well, some times I need to use capital letters to "fool" the searching to return them |
18:58:28 | FromGitter | <Vindaar> I personally always just Ctrl-f on https://nim-lang.org/docs/theindex.html |
18:58:45 | stefanos82 | then I try again with the same keyword, all lowercase this time and returns it normally |
18:58:57 | stefanos82 | yeah, now I use the Ctrl-f myself as well |
19:01:18 | Perkol | https://bpaste.net/show/ca35ab78de1b I want to pass poDemon to my comand, but it gives me errors type expected |
19:04:05 | FromDiscord | <awr> what algo does nim std library use for non-crypto hashes |
19:09:37 | FromGitter | <tim-st> Araq: I updated countTable.sort to use system.cmp it's now much quicker, is it ok to also sort keys after values (which I have currently implemented) or has it downsides? |
19:10:27 | FromGitter | <tim-st> sry I meant to use algorithm.sort |
19:10:47 | stefanos82 | question: why when I place --hints:off inside my project/src/nim.cfg still prints one hint "Hint: used config file '/etc/nim.cfg' [Conf]" and when I type it in nim c --hints:off src/foo.nim, it turns hints completely? What am I doing wrong? |
19:11:10 | stefanos82 | *turns hints off completely |
19:11:23 | miran | stefanos82: i find that behaviour nice - it reminds me of my custom .cfg |
19:12:06 | stefanos82 | personally I don't like it |
19:12:26 | stefanos82 | when I disable hints, I want them disabled completely |
19:12:45 | FromGitter | <alehander42> nsz |
19:13:13 | miran | well, you disable them by --hints:off. and that warning reminds you that *all* various settings from your .cfg are used |
19:13:24 | miran | but i get your point |
19:13:37 | stefanos82 | yeah, but why does not do so with nim --hints:off? |
19:13:57 | FromGitter | <tim-st> can someone pull request my code changes I dont have the things installed? |
19:13:59 | miran | because you manually and on purpose turned off all hints |
19:14:09 | stefanos82 | nearly all miran |
19:16:41 | * | arecacea1 quit (Remote host closed the connection) |
19:17:05 | * | arecacea1 joined #nim |
19:18:41 | stefanos82 | miran: it seems I cannot disable Conf hint from inside src/nim.cfg for some reason |
19:19:12 | FromGitter | <tim-st> is >(a, b) defined for all types? |
19:19:37 | miran | why is that one line so problematic for you? :) |
19:20:31 | FromGitter | <Vindaar> @Perkol: you need to hand the option like so: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b4b9e7e582aaa63076dcc62] |
19:20:36 | miran | @tim-st i would say it isn't |
19:21:04 | FromGitter | <tim-st> how can I findout? |
19:21:13 | Araq | stefanos82: wasn't that fixed on devel? |
19:21:19 | FromGitter | <tim-st> when compiles ? |
19:21:22 | miran | by searching the index? |
19:21:32 | FromGitter | <Vindaar> the `set[ProcessOption]` defines a type. A set which contains `ProcessOption` values. You want to hand a set with a specific value though |
19:22:05 | stefanos82 | Araq: ah I use version 0.18.0 that comes with Debian testing 64-bit |
19:22:25 | FromGitter | <tim-st> I have this code, I want to sort keys too if type is sortable: https://gist.github.com/tim-st/9522522feb1a9684ed5ea8634b3eef22 |
19:23:02 | miran | stefanos82: Araq is right, no such message in devel |
19:23:13 | stefanos82 | miran: cool. |
19:23:54 | * | Vladar quit (Quit: Leaving) |
19:24:18 | FromGitter | <tim-st> Araq: how should I do the check if type is comparable? or should I just skip key comparison? |
19:27:33 | Araq | via system.cmp |
19:27:52 | Araq | well, you need to ensure it's an "open symbol" |
19:28:31 | FromGitter | <tim-st> should I use when compiles? |
19:28:58 | FromGitter | <tim-st> I mean does system.cmp work for all types? |
19:29:06 | FromGitter | <tim-st> I currently use system.cmp for it |
19:29:51 | FromGitter | <tim-st> it's a generic type |
19:30:32 | * | Vladar joined #nim |
19:32:27 | FromGitter | <tim-st> the nim docs doesnt say if == works for all types |
19:33:18 | Araq | use 'mixin cmp' in the generic proc body |
19:33:28 | Araq | as the first statement |
19:33:35 | Araq | and then call 'cmp' |
19:36:19 | FromGitter | <tim-st> I have no idea... like this? https://gist.github.com/tim-st/9522522feb1a9684ed5ea8634b3eef22 |
19:39:48 | stefanos82 | Araq: OK, I removed my 0.18.0 and installed the latest git version. Indeed I don't have any problems now with --hints:off |
19:39:55 | Araq | t.data.sort(cmp=cmpCountTablePair[A]) |
19:40:00 | Araq | but yes |
19:40:15 | FromGitter | <tim-st> why is the [A] needed |
19:40:25 | FromGitter | <tim-st> and is mixin at right place, and what does it? |
19:40:28 | stefanos82 | I have noticed though that nim c src/foo has added an extra 0.10s on compilation for some reason :/ |
19:40:43 | FromGitter | <Bennyelg> my friend which used scala for the past 5 years is now started to switch his projects to Nim :O |
19:40:51 | FromGitter | <Vindaar> nice! |
19:41:29 | * | find0x90 quit (Quit: find0x90) |
19:42:42 | stefanos82 | Araq: next time I fetch the latest repo updates, should I repeat the https://github.com/nim-lang/Nim#readme 's compiling procedure? |
19:45:48 | Araq | git pull && koch boot -d:release |
19:45:57 | Araq | is how you can update Nim. |
19:45:58 | stefanos82 | awesome |
19:46:13 | skrylar | @kayabanerve yes everything becomes lowercase without snakes (except the first character, because socialism happened) |
19:47:14 | FromGitter | <Bennyelg> @Araq why don't you put this as a core json parse lib on nim ? ⏎ https://github.com/Araq/packedjson |
19:48:59 | Araq | we also need high quality Nimble packages :P |
19:49:15 | FromGitter | <tim-st> Araq: OrderedTable.sort also does use some custom slow algo?! |
19:50:32 | Araq | tim-st: it's not "custom", it's usually shellsort :P |
19:51:08 | Araq | why? because Sedgewick said so. |
19:51:28 | FromGitter | <tim-st> that was slowing very much down |
19:51:34 | FromGitter | <tim-st> is my code correct now? https://gist.github.com/tim-st/9522522feb1a9684ed5ea8634b3eef22 |
19:51:49 | FromGitter | <tim-st> is mixin at correct place? I try to fix the other sort too |
20:10:11 | stefanos82 | out of curiosity Araq, when you first released Nim back in 2005, was it something that you created in a short period of time or what it something that came after years of personal R&D? |
20:13:29 | * | Perkol quit (Quit: Leaving) |
20:15:49 | Araq | stefanos82: years of research. |
20:15:58 | stefanos82 | I thought so lol |
20:16:20 | stefanos82 | you should definitely release a book about it one day |
20:19:20 | dom96 | Araq: Didn't you only release it publically in ~2008? |
20:19:37 | Araq | dunno |
20:22:05 | FromGitter | <tim-st> Araq: for the OrderedTable.sort I wrapped proc in proc because it's easier there, is it ok? https://gist.github.com/tim-st/9522522feb1a9684ed5ea8634b3eef22 |
20:22:38 | FromGitter | <tim-st> ah, needs mixin again |
20:23:45 | FromGitter | <tim-st> no, the proc is manually passed so it should be ok... |
20:25:34 | stefanos82 | dom96: based on Wikipedia (which I don't know whether it's true or false), it says Araq started the initial development in 2005 and in 2008 was the first version of Nim that was compiled with Nim itself. |
20:27:05 | Araq | tim-st: the tests will tell you if you got it right |
20:27:24 | FromGitter | <tim-st> you mean the travis? :0 |
20:27:29 | Araq | stefanos82: yeah, 2005 or 2006, but it was released then |
20:28:14 | Araq | *was not |
20:30:59 | FromGitter | <tim-st> what is the command to run all tests on my pc? |
20:32:07 | dom96 | http://web.archive.org/web/20110704041631/http://force7.de:80/nimrod/ |
20:32:18 | dom96 | 2008-06-22 "This page is finally online!" |
20:32:27 | dom96 | I'd say that's the first time it was publically released |
20:33:25 | FromGitter | <tim-st> "Roadmap to 1.0" |
20:34:50 | stefanos82 | dom96: I can confirm this with git log --reverse |
20:35:30 | stefanos82 | anyhow, this project is really awesome |
20:36:24 | * | krux02 joined #nim |
20:37:57 | * | miran quit (Ping timeout: 240 seconds) |
20:38:10 | * | miran joined #nim |
20:38:51 | FromGitter | <Bennyelg> very nice |
20:44:09 | * | miran quit (Quit: Konversation terminated!) |
20:44:22 | Araq | dom96: uh, don't remind me, lol |
20:49:18 | stefanos82 | feels like it was yesterday |
20:49:48 | Araq | definitely. not. |
20:50:02 | stefanos82 | I still have vivid memories from school...I can't believe it's been nearly 20 years now |
20:50:45 | FromGitter | <Bennyelg> @Araq where do you work these days? |
20:54:47 | Araq | living from donations. working on Nim fulltime. |
20:56:20 | * | rockcavera quit (Remote host closed the connection) |
20:56:40 | stefanos82 | I wish I knew what to do with my life Araq |
20:56:58 | stefanos82 | I live a nightmare for 3 years now and I feel trapped. |
20:57:29 | FromGitter | <Bennyelg> @Araq Wow, thought you are working on google or something big |
20:57:47 | Araq | I'm not good enough for G :-) |
20:57:49 | FromGitter | <Bennyelg> An summit soon ? |
20:58:05 | FromGitter | <Bennyelg> @Araq You probably are ;] |
20:58:42 | Araq | stefanos82: burned out? join #nim-offtopic |
20:59:09 | krux02 | is nim-offtopic even active? |
20:59:19 | Araq | yeah. |
21:02:42 | FromGitter | <tim-st> Araq: good that've run the tests using koch, there were two things that `nim check hasnt found` :\ |
21:02:56 | FromGitter | <tim-st> 1) `nim check` |
21:04:12 | * | find0x90 joined #nim |
21:05:06 | FromGitter | <Bennyelg> Someone read this? |
21:05:07 | FromGitter | <Bennyelg> https://mail.python.org/pipermail/python-committers/2018-July/005664.html |
21:05:17 | FromGitter | <Bennyelg> Python core dev is leaving |
21:05:36 | Araq | yeah, we know |
21:05:55 | FromGitter | <Bennyelg> how old is he ? |
21:06:12 | krux02 | 31. Januar 1956 |
21:06:17 | krux02 | that is his birthday |
21:06:47 | * | nsf quit (Quit: WeeChat 2.1) |
21:07:02 | FromGitter | <tim-st> wow didnt know that |
21:07:05 | stefanos82 | he's not leaving, he just withdrew from his Benevolent Dictator For Life position. He will remain as part of the core |
21:07:06 | FromGitter | <Bennyelg> he need rest hehehe |
21:07:10 | FromGitter | <tim-st> but I'm not reading this reddit things |
21:09:19 | krux02 | in two weeks Guido van Rossum will be back because he is bored. |
21:09:53 | FromGitter | <tim-st> maybe he switches to nim, who knows? |
21:10:13 | Araq | more importantly, he needs to remove := from Python. |
21:10:39 | krux02 | You know the episode of Spongebob where Mr Crabs sells his restaurant and then after Lunch he did everything he never had time to do it. And he wanted the Restaurant back. |
21:11:04 | FromGitter | <tim-st> the last time I watches this is like ten years ago |
21:11:12 | Araq | hmm omg, I think I know this episode... |
21:11:30 | krux02 | Araq: is := that = that can be used in an expression? |
21:11:40 | Araq | yeah |
21:11:44 | FromGitter | <Bennyelg> I cant belive they add := in python |
21:12:08 | FromGitter | <Bennyelg> gland I sticked 2.7.15 and now moving or at least trying moving to nim |
21:12:12 | FromGitter | <Bennyelg> porting * |
21:12:19 | FromGitter | <Bennyelg> glad* |
21:12:44 | krux02 | Bennyelg: I don't think that sticking to old pything is anything that you can be pround of. |
21:13:00 | krux02 | it's not like that you ever have to use new features |
21:13:40 | krux02 | sometimes it's just not worth switching to a new technology, because the benefit isn't there. |
21:13:47 | FromGitter | <Bennyelg> I wrote and something still write py3.6 code |
21:14:07 | FromGitter | <tim-st> btw why is guido called a "python dictator"? |
21:14:17 | FromGitter | <tim-st> isnt it his language? |
21:14:29 | krux02 | because that is his official position in the python community. |
21:15:03 | krux02 | But when he is/was a dictator I don't get why he had so much struggle with getting a decesion thgouh. |
21:15:07 | FromGitter | <tim-st> yes, but this sounds like something bad, when I type his name in google every news page writes this as title |
21:15:15 | krux02 | I mean isn't that the one thing a dictator can do fast? |
21:16:16 | krux02 | I don't know. Befere anybody wrote about that here in the chat, I didn't know about him at all. |
21:16:24 | FromGitter | <tim-st> ah, now I read it's a typical name for people around programming languages |
21:16:35 | FromGitter | <tim-st> Araq is this person too?^^ |
21:16:57 | krux02 | yea Araq is our dictator. |
21:17:23 | krux02 | The only difference to a dictatorship is, that we can just leave if we don't want to stay any longer |
21:17:29 | FromGitter | <Bennyelg> Breaking News: (2018-07-16) ^ ⏎ ```"Dictator Araq is quiting Nim-lang developing to be core Go dev"``` |
21:18:10 | krux02 | But a leading commitee of smart people is really very important for a Programming language to stay successfull. |
21:18:35 | FromGitter | <tim-st> I think, he also did it because python is good enough |
21:18:43 | FromGitter | <tim-st> for the things it aims |
21:19:48 | Araq | Bennyelg: well one should never say never, but ... never gonna happen. |
21:20:41 | krux02 | Well I would say it is just a matter of how much money they offer you. |
21:20:49 | FromGitter | <Bennyelg> Hehehe I'm sure |
21:21:31 | FromGitter | <Bennyelg> @krux02 I guess it wont accept any money. nim is like his baby |
21:21:46 | stefanos82 | like his baby? |
21:21:52 | stefanos82 | it IS his baby! |
21:22:15 | FromGitter | <Bennyelg> hehe what ever my english is suck |
21:22:48 | krux02 | I just remember Notch complaining about how hypocritical it was for Oculus Rift to sell themself to Facebook after the successful kickstarter instead of staying independent. And then He sold Mincreft not a long time after that to Microsoft. |
21:23:16 | Araq | we sold NimForum to Microsoft. |
21:23:53 | FromGitter | <Bennyelg> hehehe |
21:40:21 | * | jamesroseman joined #nim |
21:40:43 | * | xet7 joined #nim |
21:48:03 | * | find0x90 quit (Quit: find0x90) |
21:52:37 | skrylar | *to be fair* notch did not take kickstarter money and run |
21:53:02 | skrylar | he offered a functional [lol] product that people could buy and use, and then after years of shipping sold it off |
21:53:19 | skrylar | occulus used public funds to prep a sell-off to a whale and never actually shipped a product |
21:53:36 | skrylar | [SDKs do not count] |
21:54:08 | skrylar | people basically got duped in to paying to debug a product for zuck to sell to them :P |
21:55:17 | krux02 | skrylar: Notch always promoted that Minecreft will release it's source after the selling of the game has settled. |
21:55:46 | * | xet7 quit (Quit: Leaving) |
21:56:26 | krux02 | skrylar, I used the official sdk for oculus before it was sold to Facebook. |
21:56:34 | krux02 | And I used it to develop on Linux. |
21:56:57 | krux02 | After it was sold to FB, Linux support was quickly dropped. |
21:57:56 | krux02 | to be honest, fb is the last company that I would want a VR experience from. |
22:00:52 | * | jamesroseman quit (Ping timeout: 244 seconds) |
22:01:00 | skrylar | minecraft's source has been released indirectly :) |
22:01:15 | skrylar | the mod community reverse engineered it all :^) |
22:01:36 | krux02 | Platforms like youtube, facebook and other anti social notworks, are incretibly harmful to people. |
22:01:51 | skrylar | now im getting flamed out for dissing immguis again |
22:02:09 | krux02 | I know |
22:03:24 | krux02 | but the name "Minecraft Java Edition" tells me a lot about Microsoft and their plans on the future of minecraft. |
22:03:41 | krux02 | if "frameing" is a keyword to you. |
22:04:08 | krux02 | Java is usually related to bad things like this annoyibg "java has an update" on Windows. |
22:04:16 | skrylar | i still haven't been sold on the immgui craze. people mention there are state of the art caching/identity reuse algorithms but that sounds no less complicated than wiring event graphs to retained mode |
22:04:49 | krux02 | skrylar, are you talking to somebody I don't see? |
22:04:56 | krux02 | I only see irc chat |
22:05:38 | * | Vladar quit (Quit: Leaving) |
22:05:47 | skrylar | the immgui thing is in another network yes |
22:05:56 | skrylar | but immguis get talked about here too |
22:06:33 | krux02 | what network? |
22:06:44 | skrylar | mastodon |
22:06:55 | krux02 | I am confused |
22:07:20 | krux02 | how are you able to see mastodon and I am not? |
22:07:34 | krux02 | do mastodon people see me? |
22:07:54 | krux02 | am I in a parallel universe |
22:08:09 | skrylar | because ones a twitter clone and we don't have a bot that forwards osocial/activitypub to irc? |
22:09:09 | krux02 | I don't use twitter, and I kind of don't want to. |
22:09:38 | krux02 | it is yet another of these anti social networks that bring out the worst in humans. |
22:11:24 | skrylar | gnusocial, mastodon and pleroma are based around osocial/activitypub, so the're more like diaspora than facebook (self hostable, federated, etc) |
22:12:43 | krux02 | I believe in IRC now. |
22:12:46 | skrylar | i guess i'll have to go try and find these supposed "efficient immguis" |
22:12:51 | * | jamesroseman joined #nim |
22:12:56 | krux02 | IRC is big enough to stay relevant |
22:13:09 | krux02 | you know network effect. |
22:13:10 | skrylar | irc could use a couple extensions to be honest |
22:13:31 | krux02 | yes, but as far as I have heared. They are being developed on. |
22:13:38 | skrylar | biggest win with matrix over irc is that user authentication and history are codified |
22:14:03 | krux02 | And IRC needs some streamlined clients. |
22:14:27 | krux02 | the important things more visible, the less important things less visible |
22:15:32 | krux02 | for example, why do I need to know the server command /join? |
22:15:40 | krux02 | why don't I just get a channel list |
22:15:41 | * | Ven`` quit (Quit: q+) |
22:15:56 | krux02 | I mean /join is nice |
22:16:04 | skrylar | 'cause all the money is in proprietary lock-in crap, and not making generic irc clients |
22:16:05 | krux02 | sometimes I am just guessing channel names |
22:16:28 | krux02 | skrylar, that is not entirely true |
22:16:58 | krux02 | even though irc decreased in size a lot over the last 10 years, Freenode actually grew in size. |
22:17:42 | krux02 | for open source projects it becomes more and more a common thing to have a freenode chat room |
22:18:00 | skrylar | i said money, not users |
22:18:12 | skrylar | programmers are more likely to do public unpaid work than artists |
22:18:21 | * | find0x90 joined #nim |
22:18:26 | skrylar | and the artists are who make the clients pretty / more usable |
22:19:03 | krux02 | well, the problem is in the network effect, and the non-caring in the average user abot how bad it actually is when a single company owns a communication network with all the messages sent |
22:19:57 | skrylar | thomas hobbs :) |
22:20:07 | krux02 | who is thomas hobbs? |
22:21:09 | skrylar | a deceased philosopher who wrote about things like mankinds spring-like attachment to central authority |
22:21:18 | krux02 | it is the same with windows. The average user does't care how bad it is that Microsoft owns basically the entire Desktop World. |
22:22:01 | krux02 | They just complain "Ugh... I don't like this new style, I stick to Windows 7" |
22:22:25 | skrylar | https://tvtropes.org/pmwiki/pmwiki.php/Main/HobbesWasRight is the short version, but there's a lot of reality to it |
22:23:23 | skrylar | well, i was 'happy' as a mac user. but i don't have the income to sustain the constant deprecation and recycling of their hardware |
22:23:37 | skrylar | the other alternative is what? plan9? |
22:24:24 | krux02 | plan9 is one alternative |
22:24:28 | skrylar | there exists a populace who is not married to windows but the alternatives are not sufficiently acceptable |
22:24:56 | krux02 | There is Linux, and Linux is actually widely adopted. It is just not in the average User. |
22:25:19 | skrylar | ex. omnifocus does the whole gtd / project management stack and then cross integrates with ical which can cross integrate with a phone or other calendar systems and this doesn't require me to drop to CLI even once |
22:25:28 | skrylar | on linux that stack is a good joke |
22:26:00 | krux02 | skrylar, it is not about usability. Usability is something that can be fixed over time when people care enough. |
22:26:34 | skrylar | usability is part of the core loop or it's not a factor at all :p |
22:27:01 | skrylar | i mean we literally use reST instead of raw groff because usability no? |
22:27:18 | krux02 | I have no idea what you use |
22:27:21 | krux02 | and I don't use rest |
22:27:32 | skrylar | nim semiofficially does |
22:27:37 | krux02 | I also don't use groff, because I don't even know what it is. |
22:27:51 | skrylar | groff is gnu troff, which is what produces man pages |
22:28:13 | krux02 | interesting |
22:28:33 | krux02 | it would be nice, if man could actially open links in the "see also" section |
22:29:00 | krux02 | that really sucked on cli man. |
22:29:05 | * | jamesroseman quit (Ping timeout: 240 seconds) |
22:29:12 | skrylar | i don't want to sound super harsh and etc etc, but ever so often i go to check simple technical questions that show up in business but not FOSS concerns. like "how do i ship contextual help?" |
22:29:18 | krux02 | but I use woman now (emacs) and it is all so much better |
22:29:32 | skrylar | FL Studio takes you to contet help from basically anywhere from F1, and it tells you how to use whatever crap you're looking at |
22:29:56 | skrylar | on windows this is a single winapi call to pop open the program's CHM file at a given anchor |
22:30:21 | krux02 | chm? |
22:30:27 | skrylar | compiled help manual |
22:30:29 | FromGitter | <Vindaar> holy crap, TIL krux02. Why did I not know about WoMan until this minute? :D |
22:30:48 | krux02 | I don't know |
22:30:49 | skrylar | windows/microsoft help is basically html files with a special table of contents and index blob that it compiles in to a zipped up thing. |
22:30:54 | krux02 | you are welcome |
22:31:15 | skrylar | osx also has something like this, you can do a cocoa call to trip the help file |
22:31:37 | krux02 | interesting |
22:31:41 | skrylar | linux just assumes you didn't include a manual and why would anyone ever do that, neither qt nor gtk support it |
22:31:58 | skrylar | fltk, amusingly, actually does have a help system |
22:32:26 | krux02 | I actually do like man pages. |
22:32:38 | skrylar | they are fine for simple cli applications |
22:32:44 | skrylar | they are a non-starter for GUI applications |
22:32:46 | krux02 | I am tired of the delay of web help pages. |
22:33:21 | skrylar | i think my last report from a deep dive on linux help was "fuck it, no context help and just ship a PDF with it" |
22:36:15 | krux02 | skrylar, what type of application did you want to ship with context help? |
22:37:06 | skrylar | i have actually gotten bad reviews for releasing a simple desk timer without a context help system, so. |
22:37:22 | skrylar | apparently people expect everything to have them? |
22:37:59 | skrylar | http://www.softpedia.com/get/Desktop-Enhancements/Clocks-Time-Management/Dayslice-Lite.shtml |
22:40:02 | krux02 | skrylar, I don't know what you think about it. But I just got asked if that website may collect my data. And I said "no" |
22:40:08 | * | arecacea1 quit (Remote host closed the connection) |
22:40:16 | krux02 | it makes me really happy that I can actually say "so you may not" |
22:40:33 | * | arecacea1 joined #nim |
22:40:38 | skrylar | i think that concept is silly |
22:40:48 | krux02 | why? |
22:41:02 | skrylar | if i visit someone's house i don't get to sic the government on them and say "he wrote notes about me!!" |
22:41:14 | * | thomasross quit (Ping timeout: 260 seconds) |
22:41:27 | krux02 | but it is the exact opposite |
22:41:37 | krux02 | the website is in *MY* house |
22:41:48 | * | FromGitter quit (Read error: Connection reset by peer) |
22:41:56 | * | FromGitter joined #nim |
22:42:15 | skrylar | they gather information that you made available to them; the servers not in your house, nor the router. unless they use spyware, they used nothing your system didn't gladly hand over |
22:43:44 | krux02 | the website is shown in my house and runs on my computer. The javascript it runs should obey my house rules. And I prefer not to get tracked. |
22:44:00 | skrylar | i would have just treated it like we do other kinds of data; fair use applies to personal / local use but you don't have th eright to give it / sell it to other parties |
22:44:35 | krux02 | there is no "fair use" in Europe |
22:44:44 | skrylar | that's your deficiency |
22:44:54 | krux02 | that is American Law |
22:45:33 | Araq | Lynx! |
22:45:55 | krux02 | I don't fully understand the terms of Fair Use. But from what I know about it, I don't really like it. |
22:46:32 | skrylar | fair use is supposed to explicitly indicate that non-commercial use of goods is allowed; so making meme photos doesn't equate to a criminal/civil offense |
22:46:33 | krux02 | if I understand it correctly it means, just because I am not making money of somethign I am allowed to use copyrighted material |
22:47:01 | skrylar | you have to specifically do something with it, just making no money doesn't count |
22:47:28 | krux02 | there is a difference on using meme, or uplaoding Lord of the Rings to Youtube. |
22:47:38 | skrylar | it allows ex. a news organization to take photos of something withotu permission, assuming the picture represents a public interest etc |
22:48:09 | skrylar | its not well enforced but it means well |
22:48:19 | krux02 | so uploading "Lord of the Rings" with commentary is ok then? |
22:49:05 | skrylar | technically yes, you can upload a movie as long as the entire work appears [to the judge] as a legitimate commentary |
22:49:24 | skrylar | if you clip from the film and talk over it or cite scenes as reference |
22:49:54 | stefanos82 | question: when we print AST with dumpTree, should we expect a ! right next to Ident or not? |
22:50:06 | krux02 | Here in the Germany we have the right to Quote. And then it is also required to actually bring the quote into some sort of context. |
22:51:01 | krux02 | stefanos82, I think the `!` is a relic |
22:51:43 | skrylar | its a shame krux isn't in #nim-offtopic |
22:52:06 | krux02 | hey I am back to topic already |
22:52:23 | skrylar | ! had something to do with interned things didn't it? |
22:52:34 | skrylar | like separating strings from symbols |
22:52:58 | krux02 | not really |
22:53:17 | krux02 | you can separete by the node kind |
22:53:35 | krux02 | it was that there was the type NimIdent |
22:53:53 | krux02 | and the nim Ident could be constructed with the `!` operator before a string |
22:54:14 | krux02 | but that type completely disappeard and you create an identifier directly as a NimNode now |
22:54:41 | stefanos82 | the reason I'm asking is because I'm in chapter 9 of "Nim in Action" and shows an exclamation mark right next to "*" and "+" operators, but I'm using the latest Nim from git repo and the printed AST does not include this character next to Ident |
22:55:19 | krux02 | it got removed, because it has no purpose anymore |
22:55:41 | krux02 | I think I did the change |
22:56:49 | stefanos82 | I see |
22:57:03 | * | jamesroseman joined #nim |
22:57:35 | stefanos82 | I have a weird behavior when I compile my code and I would like your feedback if you don't mind krux02 |
22:57:53 | krux02 | ``Ident !"*"`` is now ``Ident "*"`` I think this is simpler to understand, less visual noise |
22:58:03 | krux02 | no problem |
22:58:08 | stefanos82 | when I run the standard nim c foo.nim, it compiles as expected, but you can see it delays just a bit to produce an output |
22:58:30 | krux02 | what do you mean? |
22:58:33 | stefanos82 | now, if I turn --hints:off and --verbosity:0, it feels like it executes immediately |
22:59:11 | krux02 | I can only guess here, because I did not write the Nim compiler |
22:59:22 | stefanos82 | when I time the compilation procedure with both time and /usr/bin/time -v, they produce similar results, even though it feels a bit slow |
23:00:17 | stefanos82 | but with the aforementioned flags added in my local nim.cfg, it feels like it executes immediately, even though the time and /usr/bin/time -v produces the same times as above |
23:00:21 | stefanos82 | and I feel confused |
23:00:24 | krux02 | well that I can't explain at all, but I could explain why the one might be faster than the other |
23:00:32 | * | gangstacat joined #nim |
23:00:49 | stefanos82 | krux02: something with open and close to print string messages? |
23:01:31 | krux02 | I doubt it |
23:01:50 | krux02 | I mean if you don't really print something that won't be the bottleneck |
23:01:57 | krux02 | even if print would be slow |
23:02:02 | krux02 | (print is always slow) |
23:02:14 | krux02 | (on terminals) |
23:03:10 | stefanos82 | OK, feel free to explain why case #1 could be faster than #2 |
23:03:19 | krux02 | the way a hint is implemented is a compiler is by checking the ast for a certain condition. And this would be done everwhere, on all nodes of the ast. So disabling them could reduce a lot of checks at compile time. |
23:03:49 | krux02 | But if this is really the reason for the performance difference, I can't say with guarantee, that is just my guss |
23:05:00 | krux02 | but if it really causes slower compilation speed, then it should be measreable |
23:05:14 | stefanos82 | oh I thought --hints:off was to turn off the echoed messages during compilation |
23:05:18 | stefanos82 | isn't that the case?! |
23:05:43 | Araq | gah, can't have generic compilerProcs. time to sleep. |
23:05:51 | stefanos82 | rest well brother |
23:06:00 | Araq | annoying problem. |
23:06:09 | stefanos82 | :) |
23:08:22 | krux02 | stefanos82, I don't know exactly what --hints:off does, it could be that the messages are generated but just not printed, or it could mean that the compiler skips checking for conditions that would emit hints. |
23:08:54 | stefanos82 | I hope Araq can answer this type of question tomorrow |
23:09:05 | krux02 | well I have to go to bed as well |
23:09:08 | krux02 | I am very tired |
23:09:12 | stefanos82 | because if --hints:off means it complete turns off hints from doing their job, then I don't need this flag |
23:09:17 | Araq | it's the latter |
23:09:37 | Araq | the compiler skips checking for stuff that would produce the hints |
23:09:37 | stefanos82 | which latter? |
23:09:41 | stefanos82 | oh shit |
23:09:45 | stefanos82 | then I don't need this flag! |
23:09:48 | Araq | for the expensive hints. |
23:10:06 | stefanos82 | can't I get the checking without the string output messages? |
23:10:12 | * | FromGitter quit (Read error: Connection reset by peer) |
23:10:16 | Araq | huh? |
23:10:20 | * | FromGitter joined #nim |
23:10:28 | stefanos82 | when we compile it produces a series of Hints |
23:10:50 | Araq | if you disable the hints, why would the compiler need to check for them? |
23:10:51 | * | jamesroseman quit (Ping timeout: 240 seconds) |
23:11:13 | stefanos82 | all I want is to disable their printing on terminal |
23:11:36 | stefanos82 | but since they are doing something important to the compilation procedure, then I need them |
23:12:10 | krux02 | stefanos82, they don't do anything important to the compilation process, that is why you can disable them |
23:12:19 | krux02 | they only do something important to you the human. |
23:12:42 | stefanos82 | ah cool then |
23:14:20 | stefanos82 | in other words it's just like what its name says it does: it provides me with hints to let me know which modules are used with the current state of this compiled module |
23:14:30 | stefanos82 | I hope I got it right |
23:24:56 | stefanos82 | is there a way to turn off echo()'s newline? |
23:28:28 | FromGitter | <Vindaar> nope, for that use stdout.write |
23:29:38 | * | find0x90 quit (Quit: find0x90) |
23:31:16 | FromDiscord | <exelotl> would it be possible to improve the nim docs search? I often don't find what I'm looking for on there |
23:32:09 | FromDiscord | <exelotl> for example, I was wondering if `/` is suitable for integer division so I searched `integer division` and nothing came up |
23:32:17 | stefanos82 | you are not alone on this one exelotl |
23:32:20 | FromGitter | <Vindaar> @exelotl: 1. there's this PR currently: https://github.com/nim-lang/Nim/pull/8260 and 2. https://nim-lang.org/docs/theindex.html plus Ctrl-f is useful :) |
23:36:40 | FromDiscord | <exelotl> oh neat @ both of those |
23:36:47 | * | donlzx joined #nim |
23:38:52 | * | NimBot joined #nim |
23:40:27 | * | krux02 quit (Remote host closed the connection) |