<< 20-02-2019 >>

00:22:59*leorize joined #nim
01:05:30*smitop quit (Quit: Connection closed for inactivity)
01:05:58*zachk quit (Quit: Leaving)
01:54:25*chimez joined #nim
01:55:01*rnrwashere quit (Remote host closed the connection)
01:55:19*rnrwashere joined #nim
02:02:44*stefanos82 quit (Remote host closed the connection)
02:06:39*a_b_m quit (Quit: Leaving)
02:17:50FromDiscord<Boom> Is there a way to run nim check with thread support through nim suggest? Something like `nim check --threads:on`.
02:23:13*ng0_ joined #nim
02:23:40*Marumoto joined #nim
02:26:15*Marumto quit (Ping timeout: 246 seconds)
02:26:35*ng0 quit (Ping timeout: 256 seconds)
02:35:48*rnrwashere quit (Remote host closed the connection)
02:40:36*rnrwashere joined #nim
02:45:46*Tyresc quit (Quit: WeeChat 2.4-dev)
03:02:31*banc quit (Quit: Bye)
03:16:01*dddddd quit (Remote host closed the connection)
03:19:44*rockcavera quit (Remote host closed the connection)
03:20:21*rockcavera joined #nim
03:24:10*banc joined #nim
03:31:32*chimez quit (Quit: chimez)
03:53:24*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
03:58:48*noeontheend quit (Ping timeout: 245 seconds)
04:03:29*nsf joined #nim
04:22:16*rnrwashere quit (Remote host closed the connection)
04:23:47*rnrwashere joined #nim
05:08:16*leorize quit (Quit: WeeChat 2.3)
05:15:28*nif_ quit (Read error: Connection reset by peer)
05:16:38*nif joined #nim
05:55:26*narimiran joined #nim
06:39:50*sealmove joined #nim
06:53:14*oculux quit (Ping timeout: 268 seconds)
07:16:05*rnrwashere quit (Remote host closed the connection)
07:20:26*krux02 joined #nim
07:28:15*leorize joined #nim
07:51:42*sealmove quit (Quit: WeeChat 2.3)
07:52:01*sealmove joined #nim
08:00:00*gmpreussner quit (Quit: kthxbye)
08:02:31*chimez joined #nim
08:04:56*gmpreussner joined #nim
08:05:04*Vladar joined #nim
08:06:13*chimez quit (Client Quit)
08:26:57*PMunch joined #nim
08:32:18*oculux joined #nim
08:59:16sealmoveguys are you aware of xonsh?
08:59:44sealmovehttps://xon.sh/index.html
09:03:42*kapil____ joined #nim
09:03:46PMunchCertainly interesting
09:03:53PMunchIs that what you want to do in Nim?
09:04:04*chimez joined #nim
09:05:01*chimez quit (Client Quit)
09:07:28Araqinteresting
09:07:43sealmoveI want to make Nim more viable for scripting since that's the only thing "missing".
09:08:09sealmoveBut how to compete with that...?
09:10:02Araqwrite a REPL loop around the Nimscript API
09:10:17Araqand have a single, simple rule like:
09:10:31Araqa b c path/with/slash
09:10:34Araqis turned into
09:10:51Araqa(b, c, "path/with/slash")
09:11:06Araq# Nim syntax, obviously.
09:12:14sealmoveyesterday I was considering how/if to use operators for common shell tasks like putEnv, getEnv and execCmd, but I couldn't come up with nice syntax.
09:15:00AraqI don't think putEnv and getEnv are that frequent
09:15:11Araqbut execCmd needs short-cut
09:15:33sealmovehow about `\`? for example \ls
09:16:49sealmovei wonder if it's possible to evaluate the identifier and figure out if it's a command, and then be able to just write ls
09:21:11Araqit is possible but hard and gets messy, better is
09:21:28Araqproc ls(args: openArray[string]) = exec "ls", args
09:21:49Araqand do that for the about 20 commands that people actually use
09:22:02sealmoveyeah that's an idea
09:23:37Araqand for execCmd I would use '#' because it's easy to type on German keyboards
09:23:45Araq#gcc -o file stuff
09:24:23Araqwould do exec "gcc -o file stuff" # do no parsing in this line
09:24:45Araqif I need backticks etc I can use the non-# Nim mode like
09:25:03AraqexecCmd("gcc", myVariable, "args")
09:25:48sealmoveoh nice
09:26:11sealmove`#` is overloadable? I didn't even consider it
09:27:02Araqit's not, in your REPL you special case line[0] == '#'
09:27:09sealmovei see
09:30:41sealmovething to watch out for is not turning it into a special language. ideally it should be a superset of Nim
09:31:14sealmovenormal Nim with extra shortcuts for common scripting stuff
09:34:18sealmoveand the big one is how to make piping (|) work
09:35:12PMunchYeah pipes are the bread and butter of the shell
09:35:42FromGitter<kayabaNerve> Nim has a preprocessor sealmove
09:36:01FromGitter<kayabaNerve> I'm trying to find the docs; I've only ever seen it to replace tabs with spaces though
09:36:26FromGitter<kayabaNerve> It used to be #!, is now #?, doesn't need to be imported, but has its own doc page. It allows you to call a function over the entire file.
09:36:40FromGitter<kayabaNerve> https://nim-lang.org/docs/filters.html
09:36:44FromGitter<kayabaNerve> This ^^
09:37:17PMunchOh yeah, that could definitely help for this
09:37:25sealmovegreat!
09:37:27PMunchBut aren't they deprecated?
09:37:45FromGitter<kayabaNerve> Aw. Just saw they only work with three provided filters.
09:37:56FromGitter<kayabaNerve> You can't use any function you want.
09:38:16FromGitter<kayabaNerve> So I think the work around is a two line filter-decl at the top that just wraps the entire file in a macro
09:38:32FromGitter<kayabaNerve> So you save a 2/4 space ident with a trade off of two lines at the top of the file to enable it.
09:38:54FromGitter<kayabaNerve> PMunch: I don't think they are officially, but I think they aren't officially because no one remembered too lol
09:40:06FromGitter<kayabaNerve> I don't see any comments about deprecation and these docs aren't dated 0.12.0, but I don't think anyone recommends using it tbh. I also haven't seen any updates or changes in a few versions.
09:40:41FromGitter<kayabaNerve> sealmove: You may be able to replace the multi-line filter decl with a single include statement. IDK. You'd have to play around. I hope I helped.
09:41:51sealmovethanks kayabaNerve, I'll see if it's useful. for completeness's sake, what do we currently have in REPL area? there is nim secret and inim, anything else?
09:42:19FromGitter<kayabaNerve> Oh. You can write your own filter. I totally messed up when I did a quick glance. Just went back to read a bit more and saw that.
09:42:46FromGitter<kayabaNerve> `nim secret` isn't a Nim interpreter
09:42:54*krux02 quit (Remote host closed the connection)
09:42:57FromGitter<kayabaNerve> *REPL
09:42:57FromGitter<kayabaNerve> It's a Nimscript REPL
09:43:08FromGitter<kayabaNerve> Isn't INim a discontinued Nim REPL?
09:43:21sealmoveI don't know, that's why I am asking
09:45:30*abm joined #nim
09:45:42sealmovelast commit was 4 months ago
09:45:47FromGitter<kayabaNerve> INim looks to be Nim, not Nimscript, yet it hasn't been pushed too in months. I have no idea if it's version locked at 0.17 or if it'll work with newer compilers and I'd bet my hat it's either buggy or far from complete. ⏎ ⏎ I don't know of any projects in the field except the clang version of Nim, which I only bring up since it's alternative from the Nim compiler (just as an interpreter is also an alternative).
09:46:16FromGitter<kayabaNerve> Here's the link to that https://github.com/arnetheduck/nlvm
09:46:33FromGitter<kayabaNerve> Devs a great guy. Here on the Gitter IIRC.
09:48:13sealmoveso essentially what we are discussing is improving nim secret? (or at least make a better version of it)
09:50:50FromGitter<kayabaNerve> I don't think nim secret is going to move from Nimscript; whether or not Nimscript becomes more capable is a different question.
09:51:09FromGitter<kayabaNerve> So I'd work from INim
09:51:28sealmoveso you suggest Nim over NimScript
09:51:52sealmovewhy?
09:52:33FromGitter<kayabaNerve> Nim is Nim
09:52:38FromGitter<kayabaNerve> Nimscript isn't Nim
09:53:14FromGitter<kayabaNerve> You asked about Nim REPLs. I don't believe nim secret is ever meant to be a Nim REPL; just a Nimscript REPL. If you want a Nim REPL...
09:54:24FromGitter<kayabaNerve> Nimscript may be expanded to the point where it doesn't matter/Nimscript may become interpreted Nim... but I don't believe Nimscript is meant to be full Nim either.
09:54:35sealmoveif you read above, Araq first suggest "a REPL loop around the Nimscript API"
09:55:08FromGitter<kayabaNerve> Yeah I wasn't there for that :P Sorry.
09:55:19sealmovenp :P just thinking out-loud
09:55:44FromGitter<kayabaNerve> For that, Nim secret would be your starting point
09:56:44sealmoveyeah, can't decide... but I think the work will be applicable in both direction, so maybe it doesn't really matter. I could make 2 versions, one where code is compiled and other where Nimscript interpreter is invoked
10:01:01Araqa Nim REPL is not the same as a shell
10:01:19Araqyou can use Nim for a shell and if you wanna do that, I described how I would do it
10:02:37FromGitter<kayabaNerve> I honestly only read a couple of messages from before I got here :P Sorry if I obscured the convo or derailed it with irrelevant info.
10:02:51Araqdon't worry
10:03:07Araqbut please don't use source code filters :P
10:03:20Araqtotally different technique, not applicable
10:03:22sealmoveAraq, xonsh is both a Python REPL and a shell, but of course I am strechting too much here
10:04:49FromGitter<kayabaNerve> I suggested that as a preprocessor; combine a SCF with a full file macro?
10:05:26FromGitter<kayabaNerve> (with that macro installed by the filter)
10:05:42FromGitter<kayabaNerve> That said, are SCFs supposed to be deprecated
10:05:55FromGitter<kayabaNerve> *? They don't seem to be.
10:08:55Araqthey are not but they are in feature-freeze mode
10:09:01Araqno new filters
10:09:37narimiranimma let you finish, but guys, please enjoy this historic moment (which might not last long): we are down to "just" 50 pages of open issues :D
10:12:11Araq:D
10:14:14FromGitter<mratsim> wait i’m gonna find some new static, ranges, generic, macros issues
10:14:33*narimiran grabs a screenshot for a long-lasting memory
10:22:38Araqmratsim: If the compiler doesn't crash, it's adheres to the spec :P
10:23:05Araqand the spec needs have a rule "if otherwise unspecified, the compiler is always right"
10:23:11AraqXD
10:23:15FromGitter<mratsim> generics and static tends to crash the compilers though :p
10:23:29FromGitter<mratsim> and a variable geometry spec is not a spec ;)
10:25:25Araqa spec is about what it enables, trust rich hickey
10:26:41FromGitter<mratsim> hopefully it also prevents bugs ;)
10:27:34Araqnah...
10:28:10Araqyou edit the code until it compiles, you restart the program when it crashes
10:29:08Araqwhen you get non-sensical output you go out and enjoy the sun, life is good
10:29:39*narimiran decides to go out and enjoy the sun :)
10:30:05FromGitter<mratsim> I tried that when I learned Rust
10:30:24FromGitter<mratsim> try everything until the compiler stops complaining
10:30:34FromGitter<mratsim> I also tried that with static 2 years ago :p
10:30:36narimiranyou never came back and got some serious sunburns?
10:30:42FromGitter<mratsim> yeah :p
10:31:58Araqhappened to me 5 minutes ago
10:32:06Araqgit decides to garbage collect
10:32:15Araqcannot unlik file, retry? y
10:32:17Araqcannot unlik file, retry? y
10:32:25Araqthen I killed it and restarted, works
10:33:02FromGitter<mratsim> it happens to me everytime I use windows on Status repo
10:33:07AraqI wasn't aware that 'unlinking' is a thing on Windows, but *shrug*
10:33:16FromGitter<mratsim> nimsuggest just chokes on a file and never releases its lock
10:33:31Araqthat's the way.
10:33:51Araqno idea why it would have a lock, it uses readonly mode
10:34:08FromGitter<mratsim> when a file is in use on windows it’s locked
10:34:57FromGitter<mratsim> was fun on Excel files on shared filesystems :P, you had to track down people at lunch so that they close the file
10:35:25*dom96_w joined #nim
10:35:25narimiranlunch driven development :D
10:37:21Araqwhy does it open in exclusive mode, I don't understand. libc problem?
10:40:15FromGitter<mratsim> windows problem
10:40:34FromGitter<mratsim> something about file handle I think
10:40:39Araqafaik you can open in "shared" mode but we don't
10:40:58Araqand fopen has no "shared" flag, so libc problem
10:43:55FromGitter<kayabaNerve> There's actually a bug on Windows about this
10:44:17FromGitter<kayabaNerve> If you try to open the MFT really fast, you can lock yuour filesystem
10:44:34AraqDWORD dwShareMode
10:44:39Araqhttps://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-createfilea
10:44:49FromGitter<kayabaNerve> (master file table; works on Windows 10 but may be patched in the most recent versions)
10:45:00Araqwith io.nim out of system.nim we could use the Windows API directly
10:45:23FromGitter<kayabaNerve> Also, I don't think it's speed versus just repeated attempts (1/10?).
10:45:37FromGitter<mratsim> https://stackoverflow.com/questions/196897/locking-executing-files-windows-does-linux-doesnt-why and https://en.wikipedia.org/wiki/File_locking#In_Microsoft_Windows
10:51:23Araqah yeah, nice answers here. You can update without restarts, nice. And then the old process keeps running, unpatched for weeks and months.
10:52:02Araqgood thing Unix isn't used for servers.
10:52:02FromGitter<mratsim> I wonder what happened to this “splice” update that red hat wanted for the linux kernel
10:58:15FromGitter<kayabaNerve> If I have a cstring, convert it to a string using $, and then modify said string, is there ever a chance the cstring will be modified?
10:59:02Araqno.
10:59:07FromGitter<kayabaNerve> Thanks.
11:07:24*rnrwashere joined #nim
11:07:33*rnrwashere quit (Remote host closed the connection)
11:09:03federico3mratsim: ksplice and kpatch are both used in production but the address a small niche
11:09:26Araqoh the joys of dependencies. strutils imports algorithm.reverse for rsplit
11:09:56FromGitter<mratsim> rebooting a server takes hours sometimes and scheduling that during the day is not possible and during the weekend quite costly, and big companies have hundreds of those
11:10:12FromGitter<mratsim> so I think it’s quite a big niche.
11:10:16federico3not really
11:11:54federico3I can give you details but we are offtopic here
11:27:36*sealmove left #nim ("WeeChat 2.3")
11:32:04*neceve joined #nim
11:43:51FromGitter<mratsim> yeah 0.20 is coming: https://github.com/nim-lang/Nim/commit/7e404c670d5ff55f4316b2ae0a6749161c4bb47d
11:50:48Zevvvapourware!
11:51:05*napalu joined #nim
11:51:27AraqZevv, since you complained before, what should the focus be on instead?
11:51:34ZevvI'm not complaining :)
11:52:42*kapil____ quit (Quit: Connection closed for inactivity)
11:54:00ZevvI'm just trolling, and pretty happy with what Nim is offering at this time. I think the documentation work being done is a great step forward and imho the most important for wider adoption.
11:55:27*stefanos82 joined #nim
11:56:14Zevvapologies for the seemingly negative outburst
11:56:38*napalu left #nim ("Konversation terminated!")
11:56:50Araqno offense taken
11:57:46Araquh oh
11:57:48Araq..\system.nim(2564, 18) template/generic instantiation of `seqToPtr` from here
11:57:48Araq..\system.nim(2562, 18) Error: expression cannot be cast to pointer
11:58:03Araqand the compiler is right, this cast cannot work
11:59:40FromDiscord<juan_carlos> Work on Docs is awesome.
12:00:54*narimiran blushes
12:05:19*nsf quit (Quit: WeeChat 2.3)
12:20:43*chimez joined #nim
12:22:03*neceve quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
12:22:17*dddddd joined #nim
12:22:26*neceve joined #nim
12:23:08*lritter joined #nim
12:23:44*sealmove joined #nim
12:27:30*Snircle joined #nim
12:33:48*napalu joined #nim
12:34:50sealmoveis rdstdin standard?
12:37:41napaludepends what you mean by standard - it's part of the standard library and will work on windows and unix-likes
12:37:59napalu(as far as I know) ;)
12:39:52sealmovegood
12:40:08napaluwhat are you using it for?
12:41:54napaluasking because if you're looking to read passwords from stdin you should be using the terminal module
12:42:29sealmoveerm, a shell. also curious for how to intercept keys, for example up-arrow for cycling through history
12:42:55napaluah okies then doesn't apply
12:44:51*chimez quit (Quit: chimez)
12:45:48*dom96_w quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:48:03*ng0_ is now known as ng0
12:51:36FromGitter<SolitudeSF> you might wanna use existing line reading solutions like https://github.com/jangko/nim-noise https://github.com/surf1nb1rd/nim-prompt
12:56:43sealmoveoh great
13:10:18*napalu left #nim (#nim)
13:37:22*aguspiza joined #nim
13:41:03*dom96_w joined #nim
13:43:08ZevvWhy is it that macros use nnk instead of nk kinds?
13:44:40ZevvI mean, NimNodeKind vs TNodeKind
13:44:42FromGitter<mratsim> nimnodekind
13:45:01FromGitter<mratsim> tnode are in the compilers?
13:45:53Zevvyeah, but wy is TNodeKind not simply exposed? Is that to make sure the macros api can be kept stable if the internals ever change? At this time I believe there's a one-to-one mapping between those kinds?
13:46:20*Zevv is missing something obvious, probably
13:46:36Araqexactly
13:46:50Araqthe internals can change
13:46:52Zevvexactly on the stable api, or exactly on the missing something obvious :)
13:47:07Araqthere is also a historical reason:
13:47:25AraqI didn't even know if I can implement the macro system
13:47:30FromGitter<kaushalmodi> Can the deprecation warnings be made errors?
13:47:34FromGitter<kaushalmodi> like a "strict" mode?
13:47:52Zevvwell araq, seems you can :)
13:47:54Araqso the code duplication didn't bother me, nor was the macros API designed much
13:48:07FromGitter<kaushalmodi> I have hundreds of code blocks in my notes and I can batch eval all at once. I can easily catch errors in those, but the deprecation warnings don'
13:48:18FromGitter<kaushalmodi> *don't as they don't go to stderr
13:48:40FromGitter<kaushalmodi> Araq: I know that you are not a fan of stderr :) But that is great utility for me ..
13:48:43Zevvthanks, makes perfect sense
13:49:10FromGitter<kaushalmodi> so only if there's a way to make the deprecation warnings go to stderr based on a switch, I can make my notes better
13:49:27Araqkaushalmodi: there is a switch for this
13:49:32FromGitter<kaushalmodi> yay!
13:49:37FromGitter<kaushalmodi> what is it?
13:50:22FromGitter<kaushalmodi> I tried `nim --fullhelp | rg dep`
13:51:02FromGitter<kaushalmodi> hmm, there is `--warning[X]:on|off turn specific warning X on|off`
13:51:28FromGitter<kaushalmodi> but turning off a warning makes it go away completely or makes it an error?
13:51:29FromGitter<kaushalmodi> :)
13:52:04Araq--stdout:off
13:52:09Araqno guarantees though
13:52:43FromGitter<kaushalmodi> but I need to just upgrade deprecation warnings to errors
13:53:08FromGitter<kaushalmodi> stdout:off will send everything to stderr, not what I want
13:53:36narimirando we finally have somebody who doesn't just ignore these deprecation warnings until is too late? wow!
13:54:01FromGitter<kaushalmodi> I am OCD about warnings
13:54:10FromGitter<kaushalmodi> I am a verification engineer by profession :P
13:54:18FromGitter<kaushalmodi> warnings are errors
13:54:43*sz0 joined #nim
13:54:50sealmoveIs it possible to execute a string as Nim code inside Nim (without opening new process)?
13:54:55FromGitter<kaushalmodi> I know that lc has been deprecated and need to update my notes about that
13:55:10FromGitter<kaushalmodi> but now I wonder what else from my snippets has been deprecated so far
13:55:19Araqnil strings?
13:55:41FromGitter<kaushalmodi> well, those are easy to fix, and also fixed :)
13:56:13sealmovestring containing Nim code (taken from stdin in this case)
13:56:47FromGitter<kaushalmodi> Araq: I am looking for fixing my notes even for small things
13:56:59FromGitter<kaushalmodi> recently I was pleasantly surprised to see this fixed: https://scripter.co/notes/nim/#randomize--0--disables-randomization
13:57:01narimirani've removed lots of stuff which was deprecated long time ago. if your snippets still work, that's just a confirmation that you deal with these warnings on time, kudos
13:57:19Araqwell there is no flag to turn warnings into errors, sorry
13:57:20FromGitter<arnetheduck> lol, so the strategy to not have deprecation warnings apparently is to not put deprecated pragmas, even if in principle the stuff should be deprecated because it was a bad idea (https://github.com/nim-lang/Nim/pull/9029#pullrequestreview-205132339)
13:57:24FromGitter<kaushalmodi> I had a note "Whether this is intended or not, this behavior is quite odd." and of course that gets fixed few months later :D
13:57:43FromGitter<kaushalmodi> Araq: may be a flag to upgrade just deprecation warnings to errors?
13:58:06Araqnor can you redirect warnings-only
13:58:08FromGitter<kaushalmodi> .. or have `--warning[X]:on|off|err turn specific warning X on|off|err`
13:58:19Araq^ that would be nice
13:58:35FromGitter<kaushalmodi> that is very common in SystemVerilog
13:58:49FromGitter<kaushalmodi> to upgrade warnings to errors selectively and even demote errors to warnings selectively
13:58:56narimiran"There is no func used in the compiler or standard library at all. " --> not really true, recently some `func`s were introduced in some PR
13:59:52FromGitter<kaushalmodi> narimiran: "if your snippets still work, that's just a confirmation that you deal with these warnings on time, kudos" Yep, all snippets work 100% as of yest's devel :D
14:00:16Araqcan these snippets be tested by patching important_packages.nim ?
14:00:38FromGitter<kaushalmodi> my snippets are inline in an Org file
14:00:39narimiranAraq: should we then also test rosetta code snippets?
14:00:57FromGitter<kaushalmodi> need to look for a way to auto-test those .. it's on my "some day" list
14:01:32Araqif only we had 'nim rst2hml foo.rst' which tests snippets automatically :P
14:01:35FromGitter<kaushalmodi> for now, once every few weeks I just run a command in Emacs and that updates the results of all snippets and flags if any of those results in error
14:03:15Araqanyway, --warning[X]:err would be a bit weird, currently we suppress warnings coming from different nimble packages
14:03:26Araqwould that keep that behaviour?
14:04:23FromGitter<kaushalmodi> > currently we suppress warnings coming from different nimble packages ⏎ ⏎ So if a nimble package has that X warning, it won't upgrade to err?
14:04:35Araqthat is my question
14:04:54FromGitter<kaushalmodi> I wouldn't know as I don't know the implementation details
14:05:09FromGitter<kaushalmodi> My guess would be that warnings in nimble packages should still be masked
14:05:39FromGitter<kaushalmodi> because I can fix warnings in my code, and not be in a position to immediately fix them in 3rd party nim code
14:05:42*nsf joined #nim
14:05:51Araqok, that makes sense
14:11:32*chimez joined #nim
14:11:38*chimez quit (Client Quit)
14:12:18*knack joined #nim
14:22:53FromGitter<theretromaniac> is there any nim playground?
14:23:37narimirani think you could try https://wandbox.org/
14:23:45*Marumto joined #nim
14:25:33FromGitter<theretromaniac> narimiran thank you for quick response. It is perfect
14:26:17*Marumoto quit (Ping timeout: 255 seconds)
14:29:30*seni joined #nim
14:49:17narimiran@kaushalmodi i just remembered something i find very nice, which could break some old code: "Error: invalid else, all cases are already covered"
14:50:47FromGitter<kaushalmodi> narimiran: hmm, I didn't happen to have such a snippet where I had cases covering 100% of the var space + else
14:50:55FromGitter<kaushalmodi> But I do remember seeing that commit
14:51:04FromGitter<mratsim> yep it breaks some code.
14:51:18FromGitter<kaushalmodi> may be that should be warning?
14:51:28FromGitter<kaushalmodi> because it doesn't hurt to have a failsafe else
14:51:36FromGitter<kaushalmodi> it's actually a great coding practise
14:51:51narimiranbut it is not failsafe else
14:52:28narimiranwithout it, your `else` could do more damage
14:52:54FromGitter<kaushalmodi> yes, I can see the issues with mindless elses too
14:53:20FromGitter<kaushalmodi> but so far, I haven't stumbled across that error :)
14:54:36FromGitter<kaushalmodi> any stderr out here?
14:55:16FromGitter<kaushalmodi> I was looking at all the issues I created, and this issue made me remind of unittest not liking stderr: https://github.com/nim-lang/Nim/issues/7913
14:55:33*krux02 joined #nim
14:55:40FromGitter<kaushalmodi> s/any stderr out here?/any stderr *fan* out here?
14:57:27*kapil____ joined #nim
15:14:29*arecaceae quit (Remote host closed the connection)
15:14:47*arecaceae joined #nim
15:25:49federico3kaushalmodi: huh?
15:26:56*PMunch quit (Remote host closed the connection)
15:31:43*Senketsu quit (Quit: WeeChat 2.3)
15:32:30*Senketsu joined #nim
15:32:48*neceve quit (Read error: Connection reset by peer)
15:36:24*rockcavera quit (Read error: Connection reset by peer)
15:36:45*rockcavera joined #nim
15:50:14*noeontheend joined #nim
15:50:27Zevvstderr fan?
15:51:30ZevvOooh, I see the quote: "But in general stdout vs stderr is just another design bug in Unix, deal with it. ;-)"
15:52:23*azuri5 joined #nim
16:00:06*rnrwashere joined #nim
16:15:38*noeontheend quit (Ping timeout: 255 seconds)
16:21:28*Senketsu quit (Quit: WeeChat 2.3)
16:21:58*Senketsu joined #nim
16:26:04*rnrwashere quit (Remote host closed the connection)
16:28:27*azuri5 quit (Quit: azuri5)
16:33:13*Snircle quit (Read error: Connection reset by peer)
16:33:58*Snircle joined #nim
16:36:54*azuri5 joined #nim
16:43:34sealmovewow, making a real REPL is involved. iNim just recompiles everytime and just keeps track of what is printed already, so it only prints new stuff.
16:44:37sealmovewhere is the source code for nim secret?
16:46:58*seerix quit (Remote host closed the connection)
16:48:00Araqthat's how iNim works? cool, I had no idea
16:48:12Araqawesome hack :D
16:49:00*rnrwashere joined #nim
16:49:02sealmoveyeah >_< cheat
16:49:33*rnrwashere quit (Remote host closed the connection)
16:52:20sealmoveso can you please point me to the source code of nim secret (just for reference)?
16:55:18*krux02 quit (Remote host closed the connection)
16:56:17*rnrwashere joined #nim
16:56:44*rnrwashere quit (Remote host closed the connection)
16:57:24leorizesealmove: trace from here: https://github.com/nim-lang/Nim/blob/devel/compiler/main.nim#L315
16:59:33FromGitter<mratsim> @sealmove Nim hot code reloading should be merged in March: https://github.com/nim-lang/Nim/issues/8927
17:03:27sealmoveIt seems nim secret is just implemented in main.nim
17:04:37*azuri5 left #nim (#nim)
17:11:49*krux02 joined #nim
17:23:26sealmoveI found what I was looking for, will see if it works out, good night guys
17:23:38*sealmove left #nim ("WeeChat 2.3")
17:25:22*Trustable joined #nim
17:25:34*Cthalupa quit (Ping timeout: 250 seconds)
17:26:25*Cthalupa joined #nim
17:44:09*rockcavera quit (Remote host closed the connection)
17:59:39FromGitter<Vindaar> Tried to stealthily pitch Nim today for the successor of my experiment. But of course, as expected, these people want to continue using C++ and ROOT :P
18:00:09*noeontheend joined #nim
18:01:48*rockcavera joined #nim
18:06:29*kapil____ quit (Quit: Connection closed for inactivity)
18:20:42FromGitter<mratsim> what is ROOT?
18:20:55FromGitter<mratsim> just generate C++ code :P
18:41:40FromGitter<Varriount> ROOT is a C++ interpreter, isn't it?
18:43:41FromGitter<brentp> it's a behemoth from CERN: https://root.cern.ch/
18:49:50*zachk joined #nim
18:50:04*dom96_w quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:50:47*zachk quit (Read error: Connection reset by peer)
18:51:10*zachk joined #nim
18:51:40*xet7 quit (Ping timeout: 264 seconds)
18:52:04*zachk quit (Changing host)
18:52:04*zachk joined #nim
18:58:17FromGitter<Vindaar> Sorry, was afk. Yep, this ^. ROOT can also be used as a C++ interpreter, indeed. But to me it's just an ugly DSL for LHC data analysis. And if you don't work on LHC you shouldn't use it
19:03:47*xet7 joined #nim
19:16:14*marcazar joined #nim
19:23:20*rockcavera quit (Remote host closed the connection)
19:26:30*noeontheend quit (Ping timeout: 246 seconds)
19:29:45Araqhttp://iacoma.cs.uiuc.edu/iacoma-papers/pact18.pdf question: how to figure out it was created with LaTex?
19:31:31xace_Araq: well it contains metadata: Producer: pdfTeX-1.40.18
19:32:05Araqno, it doesn't respect the margin.
19:33:02xace_lol, are you telling a joke or is there something im missing out on? in my experisnce latex doesn't always respect the margins, but that's mostly because i dont mind it
19:33:14xace_any example of these violations in the document?
19:33:26Araqscroll through it and you'll see
19:34:26narimiran`Increment`
19:34:35xace_Araq: well I see a indented line overextending, but unless you see the log and source its hard to guess
19:34:42narimiranxace_: you're speaking with the greatest LaTeX hater i know ;)
19:34:59xace_narimiran: yeah i hate it too, but i love it too
19:36:14*rockcavera joined #nim
19:36:23xace_Araq: also not all implementations of these latex producers are perfect, sometimes they render stuff incorrectly, but i find it's mostly related to your pdf viewer too... but in this case, I guess it's safe to say that indentation is incorrect, and was ignoed by the author of the document
19:36:45xace_*indented line
19:39:05AraqI'm also beginning to think this whole "type setting" stuff is pre-scientific like alchemy was.
19:39:19xace_in this case the word "increment" seems to carry special properties like it was wrapped in some \textcode{Increment} which doesn't respect line-breaking or word-breaking
19:39:47AraqYay, every line has the same width, let's compress the spacing between the letters to achieve it
19:40:19Araqit looks nicer and that's the same as "easy to read" (Right?!)
19:40:19xace_I find it's important... you should see who it looks when it fails...
19:40:34xace_how*
19:42:31xace_but really in this case it's a a "\monospace{}" or w/e that doesn't implement linebreaking/wordbreaking... Some of my biggest gripes with latex is the compilation speed and weird syntax... But other than that it produces very nice documents
19:48:18*stefanos82 quit (Remote host closed the connection)
19:48:19*abm quit (Ping timeout: 246 seconds)
19:50:42shashlickever since io.nim, all those procs no longer show up in theindex.html
19:50:55shashlicksee writeFile cannot be found on https://nim-lang.github.io/Nim/theindex.html
19:52:48*PMunch joined #nim
19:53:14Araqshashlick: huh
19:53:33Araqah system.nim forwards it
19:53:51Araqno wait kochdocs.nim lists lib/system/io.nim
19:58:18*abm joined #nim
20:02:09shashlickhttps://nim-lang.github.io/Nim/io.html is a 404
20:02:22shashlickalthough the link is in system.html
20:13:37*PMunch quit (Remote host closed the connection)
20:13:49*PMunch joined #nim
20:14:34shashlickWhat's the general opinion on libmill / libdill? Does it make sense to leverage in Nim world?
20:15:19FromGitter<Varriount> I think that Araq would prefer not to have C dependencies
20:16:01FromGitter<Varriount> Someone wrote support for true coroutines in Nim before... Though I don't know if it was ever merged.
20:16:15shashlickNot in the core language but as a package
20:17:02shashlickI guess I need to read up about threads vs coroutines
20:23:01FromGitter<brentp> would be nice to have go-style concurrency. How stable/widely-used are libdill/libmill?
20:23:52Araqvarriount: it was merged
20:30:10*abm quit (Ping timeout: 244 seconds)
20:33:33*rnrwashere joined #nim
20:34:07*rnrwashere quit (Remote host closed the connection)
20:35:38ZevvIs it possible to overload `=` with a template?
20:36:35*PMunch quit (Remote host closed the connection)
20:37:39Araqno
20:38:11Zevvbecause of the strict signature (a: var T, b: T)?
20:38:41Zevvhm no that doesn't make sense, nevermind
20:48:50*Tyresc joined #nim
20:49:58*Jesin quit (Quit: Leaving)
20:53:00*vegax87_ is now known as vegax87
20:53:08*vegax87 quit (Changing host)
20:53:09*vegax87 joined #nim
20:53:09*vegax87 quit (Changing host)
20:53:09*vegax87 joined #nim
20:56:58AraqZevv: mostly because assignments are already hard enough to implement in the compiler
21:03:45*Trustable quit (Remote host closed the connection)
21:10:23*aguspiza quit (Ping timeout: 255 seconds)
21:16:17FromGitter<Varriount> shashlick: https://nim-lang.org/docs/coro.html
21:16:20*Jesin joined #nim
21:17:03shashlicknice
21:20:33*rnrwashere joined #nim
21:22:32*vlad1777d quit (Ping timeout: 255 seconds)
21:22:33*rnrwashe_ joined #nim
21:23:24narimiran"please enjoy this historic moment (which might not last long): we are down to "just" 50 pages of open issues"
21:23:31narimirancorrection, now is 49 pages
21:24:13narimirana simple extrapolation tells us that in 2 months we will have negative number of open issues
21:25:24*rnrwashere quit (Ping timeout: 272 seconds)
21:27:18*rnrwashe_ quit (Ping timeout: 272 seconds)
21:29:07*vlad1777d joined #nim
21:34:14*rnrwashere joined #nim
21:38:22*rnrwashere quit (Ping timeout: 244 seconds)
21:49:33*rnrwashere joined #nim
21:58:22*rnrwashere quit (Remote host closed the connection)
21:58:27*noeontheend joined #nim
21:58:30*rnrwashere joined #nim
22:06:25*Vladar quit (Remote host closed the connection)
22:07:11AraqEureka!
22:07:33*narimiran quit (Ping timeout: 245 seconds)
22:08:12FromGitter<mratsim> I was trying to find this joke "what comes after 1, 2, 3, 4" and then you have 2147...... huge number :P
22:08:20FromGitter<mratsim> but I can't find it anymore :/
22:08:40AraqI solved it!
22:09:19*smitop joined #nim
22:13:15Araqaww nobody asks
22:14:21shashlickdo tell 🙂
22:16:14*ghost64 left #nim ("The Lounge - https://thelounge.github.io")
22:17:20*rnrwashere quit (Remote host closed the connection)
22:17:42*rnrwashere joined #nim
22:18:52Araqshashlick: how to do memory safety without a GC, how Nim's 'ref' works with --gc:destructors and everything else
22:21:50*rnrwashere quit (Remote host closed the connection)
22:23:25shashlickwow that will be awesome
22:23:42*noeontheend quit (Ping timeout: 250 seconds)
22:24:41FromGitter<mratsim> ooooooohhhhhhhh
22:24:51FromGitter<mratsim> I sense a disturbance in the force
22:24:53*rnrwashere joined #nim
22:26:18*rnrwashere quit (Remote host closed the connection)
22:26:45*rnrwashere joined #nim
22:27:17FromGitter<mratsim> so should I wait before going to sleep or all will be revealed tomorrow?
22:27:26*cozachk joined #nim
22:29:57*zachk quit (Ping timeout: 268 seconds)
22:30:57*rnrwashere quit (Ping timeout: 246 seconds)
22:32:20Araqoh I won't reveal it here. I'll write an RFC/blog post.
22:32:29*cozachk quit (Quit: Leaving)
22:36:17*rnrwashere joined #nim
22:36:26*zachk joined #nim
22:41:53*rnrwashere quit (Remote host closed the connection)
22:43:08*rnrwashere joined #nim
22:48:17*rnrwashere quit (Remote host closed the connection)
22:49:08*sealmove joined #nim
22:51:38sealmoveAraq: if you are seeing, quick question: is ModuleGraph the only way to handle module, even if it's a single one?
22:54:04*rnrwashere joined #nim
22:55:20*jeyr joined #nim
22:56:09Araqsealmove: if I understand you correctly, the answer is yes.
22:56:48*jeyr quit (Client Quit)
22:57:25sealmovethanks for the quick reply, i'll try to understand modulegraphs.nim better tomorrow, gn!
22:58:23*rnrwashere quit (Ping timeout: 255 seconds)
22:58:47*rnrwashere joined #nim
22:59:25*rnrwashere quit (Remote host closed the connection)
23:02:00rayman22201Araq loves to tease 😛
23:02:23rayman22201Tease us with features that is
23:05:24*krux02 quit (Remote host closed the connection)
23:16:57*rnrwashere joined #nim
23:17:45*rnrwashere quit (Read error: Connection reset by peer)
23:18:14*rnrwashere joined #nim
23:19:33*rnrwashere quit (Read error: Connection reset by peer)
23:19:40FromGitter<Varriount> Araq: I can't wait. Your blog posts are always so stimulating.
23:19:46*rnrwashere joined #nim
23:21:37*leorize quit (Quit: WeeChat 2.3)
23:22:48*abm joined #nim
23:26:19*sz0 quit (Quit: Connection closed for inactivity)
23:29:08*abm quit (Ping timeout: 250 seconds)
23:30:22sealmovewhich feature?
23:30:39rayman22201"how to do memory safety without a GC, how Nim's 'ref' works with --gc:destructors and everything else"
23:31:10sealmoveis there a new blog post on that?
23:32:06rayman22201Araq was teasing that there might be a new one soon.
23:34:18*abm joined #nim
23:34:44sealmoveI see ^^
23:35:08sealmove--gc:destructors? I thought it was --newruntime or something
23:35:22rayman22201they are the same thing
23:56:28*sealmove quit (Quit: WeeChat 2.3)