<< 17-07-2020 >>

00:01:26FromDiscord<Technisha Circuit (LGBTQIAP+)> Oh okay
00:01:41FromDiscord<Technisha Circuit (LGBTQIAP+)> Thanks!
00:05:58*endragor joined #nim
00:12:00PrestigeHm I always thought we had to manually init sequences, I didn't know this was possible: https://play.nim-lang.org/#ix=2rPo
00:13:03Yardanicowe don't
00:13:05Yardanicosince 0.19
00:13:27Yardanicobut in <=0.19 seqs and strings were nil by default
00:13:39Yardanicoso in some old nim code you might see checks for strings/seqs if they're nil
00:14:04PrestigeNeat
00:23:37*endragor quit (Ping timeout: 264 seconds)
00:27:53FromGitter<awr1> correct me if i'm wrong but i believe on the technical side of things seqs and strings are still "nil by default," they just don't require manual init.
00:28:06FromGitter<awr1> declaring a sequence without init still doesn't allocate on the heap
00:31:26leorizeyea
00:32:40leorizesemantically we just removed the "not initialized" state
00:33:13leorize!repo testutils
00:33:14disbothttps://github.com/status-im/nim-testutils -- 9nim-testutils: 11testrunner et al 15 8ā­ 3šŸ“
00:33:36leorizeOMGOMG: ^ that's a more complicated test runner if unittest is not good enough
00:34:00leorizetestament is cool and all but it's not the most intuitive to use
00:36:19PrestigeAttempting to use export modules from a top level module, not sure what I should be doing differently (or if this is possible): https://0x0.st/iv_q.png top right is the EasyECS module
00:37:08FromDiscord<Rika> whats the issue?
00:37:30*NimBot joined #nim
00:37:33FromDiscord<Rika> that should be just fine
00:38:38PrestigeSays newRegistry and Entity aren't defined
00:38:53Prestige'undeclared identifier'
00:44:41FromGitter<iffy> @ynfle I'm not sure what you mean; doesn't the second macro already accept a string type as the first argument? The second macro isn't being used (afaict) in that snippet, but its presence causes an error.
00:45:02FromGitter<iffy> So you don't have to hunt, here's the link again: https://play.nim-lang.org/#ix=2rOJ
00:46:53FromDiscord<Rika> Prestige, you also have to export the entity type from the entity module
00:47:02FromDiscord<Rika> Not sure why new registry isn't working
00:47:12leorize@iffy looks like a bug, have you reported it?
00:47:16Prestigehmm okay
00:47:26FromGitter<iffy> no, I haven't -- I can file it, though
00:47:43leorizeplease do
00:53:17FromGitter<iffy> done
00:54:57PrestigeDo I need to run nimble develop or something? @Rika
00:56:05FromGitter<awr1> importing `Entity` through that might not work
00:56:34FromDiscord<Rika> Ah
00:56:35FromGitter<awr1> `registry.nim` needs to export `Entity`
00:56:42FromDiscord<Rika> I know why
00:56:47FromGitter<awr1> either that or `EasyECS` needs to import/export `entity`
00:56:49FromDiscord<Rika> You aren't importing the module correctly
00:57:02FromGitter<Knaque> What's the difference between `import` and `include`?
00:57:23PrestigeHow do I need to import the module?
00:57:29FromDiscord<Rika> If you're importing in the tests folder, you have to use a relative import instead
00:57:36FromGitter<awr1> Also in `EasyECS` you need to import it as `EasyECS / registry`
00:57:46FromGitter<awr1> yeah what Rika said
00:57:54FromDiscord<Rika> Think it's "../src/easyecs" or so
00:58:15FromDiscord<Rika> Awr you don't in the easyecs file
00:58:17FromGitter<awr1> @Knaque `import` performs standard module import, `include` is "copy-paste" similar to C/C++ `#include`
00:58:20FromDiscord<Rika> Aait
00:58:21FromDiscord<Rika> Nvm
00:58:23FromDiscord<Rika> You do
00:58:25FromDiscord<Rika> Misread
00:58:36FromGitter<awr1> Use `import` unless you have a very good reason not to
00:59:22PrestigeTried a few things: https://0x0.st/iv_Q.png no cigar
01:00:02Prestigetree: https://0x0.st/iv_1.png
01:00:06FromGitter<awr1> the unittests - the way you had it before was fine i think
01:00:37*Tlongir joined #nim
01:00:42FromGitter<Knaque> Evidently you have to `include karax/prelude` because Pragmagic didn't use `export`, as far as I can tell.
01:05:56FromGitter<awr1> @Prestige try doing `import EasyECS`. the nimscript should have set the path anyway
01:09:54*oddp_ quit (Ping timeout: 260 seconds)
01:09:59FromDiscord<Avahe> I tried that first, and had the same problem
01:14:15FromDiscord<Avahe> Maybe I should upload it when I get back home, so someone could try playing with the code
01:29:17*apahl quit (Ping timeout: 260 seconds)
01:31:19*apahl joined #nim
01:38:15FromGitter<ynfle> @iffy, It's not a bug, the AST is illformed
01:38:51FromGitter<ynfle> It's an anonymous proc that isn't being assigned or given to a proc etc.
01:40:10FromGitter<iffy> @ynfle I still don't think I understand. What would you change to fix the error?
01:40:46FromGitter<ynfle> If you wrap the anon proc in `()` no error is thrown
01:41:02FromGitter<ynfle> Not sure why the second macro makes a difference
01:42:03FromGitter<iffy> Without the parens, if the second macro is absent, no error is thrown
01:42:37FromGitter<ynfle> I know
01:42:43FromGitter<ynfle> That is weird
01:45:15FromGitter<ynfle> It also solves the issue when you switch around the arguments
01:46:48*lritter quit (Quit: Leaving)
01:48:32FromGitter<ynfle> @iffy, Also, if you `import macros` and put ` echo fun.treerepr` in the first function there is no exception
02:04:56*Tongir joined #nim
02:06:59*Tlongir quit (Ping timeout: 240 seconds)
02:08:11*audiophile_ quit (Remote host closed the connection)
02:09:31*audiophile_ joined #nim
02:12:22FromDiscord<Zachary Carter> @shashlick - got another one for you that's causing issues - https://github.com/SanderMertens/flecs
02:13:19FromDiscord<Zachary Carter> seems to just be a simple ordering issue with some consts being declared before a type that they are defined using
02:16:46*waleee-cl quit (Quit: Connection closed for inactivity)
02:20:37*muffindrake quit (Ping timeout: 260 seconds)
02:22:26*muffindrake joined #nim
02:37:54FromDiscord<Technisha Circuit (LGBTQIAP+)> Is there a way to load all functions in a dll/so file in Nim?
02:38:51FromDiscord<Technisha Circuit (LGBTQIAP+)> I need to add all of the functions into a proc
02:40:08shashlick@zacharycarter that's an open issue
02:40:15shashlickBut there is a workaround
02:41:05shashlickhttps://github.com/nimterop/nimterop/issues/206
02:41:06disbotāž„ type section before constant section
02:41:29*endragor joined #nim
02:41:42FromDiscord<shashlick> @Zachary Carter
02:42:08shashlickwonder if highlighting from irc works when there's a space
02:43:30*audiophile joined #nim
02:46:08*audiophile__ joined #nim
02:46:59*audiophile_ quit (Ping timeout: 240 seconds)
02:47:07*audiophile__ is now known as audiophile_
02:49:23*audiophile quit (Ping timeout: 240 seconds)
02:52:25FromDiscord<Technisha Circuit (LGBTQIAP+)> Is there such thing as a C array in Nim?
02:54:17FromDiscord<Rika> UncheckedArray
02:54:27FromDiscord<Rika> also this may be a massively dumb question
02:54:48FromDiscord<Rika> but what happens if you put an (nim) async proc into a dll, and then load it
02:54:51FromDiscord<Rika> would that work?
02:54:51FromDiscord<Technisha Circuit (LGBTQIAP+)> Nothing is dumb compared to my questions :3
02:55:01FromDiscord<Technisha Circuit (LGBTQIAP+)> Load it in Nim?
02:55:04FromDiscord<Rika> yes
02:55:20FromDiscord<Technisha Circuit (LGBTQIAP+)> I've had issues loading it from a .so file
02:55:28FromDiscord<Rika> like? what issues?
02:55:31FromDiscord<Technisha Circuit (LGBTQIAP+)> But that might just be me being stupid
02:55:37FromDiscord<Technisha Circuit (LGBTQIAP+)> A type error
02:56:01FromDiscord<Technisha Circuit (LGBTQIAP+)> Even when i use the correct types and try to adapt the types according to the error
02:56:08FromDiscord<Rika> i have a feeling you put `{.async.}` in the proc type decl (you dont need to)
02:56:18FromDiscord<Rika> hm
02:56:22FromDiscord<Technisha Circuit (LGBTQIAP+)> Oh?
02:56:45FromDiscord<Rika> no clue whats wrong now
02:56:48FromDiscord<Zachary Carter> how can I do something like this - https://play.nim-lang.org/#ix=2rPO ?
02:56:58FromDiscord<Rika> i have a feeling it wouldnt work either since gc...
02:57:57FromDiscord<Technisha Circuit (LGBTQIAP+)> Can't you disable the gc?
02:58:22FromDiscord<Rika> async is pretty reliant on the gc i think?
02:58:43*vicfred quit (Ping timeout: 246 seconds)
03:02:02FromGitter<Knaque> Is there anything I can use/Is it possible to set the title of a terminal window?
03:02:28FromDiscord<Technisha Circuit (LGBTQIAP+)> Check the terminal module in the stdlib @Knaque
03:02:32FromDiscord<Technisha Circuit (LGBTQIAP+)> It might help you
03:02:45FromGitter<Knaque> I did, didn't see anything.
03:04:59FromDiscord<Zachary Carter> never mind - figured out my issue I think
03:05:31FromDiscord<Rika> knaque: `echo \e]0; BEL`
03:05:33FromDiscord<Rika> oops
03:05:37FromDiscord<Rika> early enter
03:06:38FromDiscord<Rika> `echo "\e]2;" + str + "\7"`
03:06:46FromDiscord<Rika> maybe?
03:06:50FromDiscord<Rika> only works for xterm
03:06:52FromDiscord<codic> nim allows concentating strings with `+`?
03:06:58FromDiscord<codic> i thought it used `&`
03:07:05FromDiscord<Rika> forgot
03:07:10FromDiscord<Rika> use &
03:09:25FromGitter<Knaque> Nevermind- I worked out that `execShellCmd("title <whatever>")` does the job for Windows, and that's all I need.
03:12:47*rockcavera quit (Read error: Connection reset by peer)
03:13:12*rockcavera joined #nim
03:13:56FromDiscord<Zachary Carter> hmmm
03:13:59FromDiscord<Zachary Carter> https://play.nim-lang.org/#ix=2rPT
03:14:13FromDiscord<Zachary Carter> not sure how to invoke a template from another template successfully
03:16:46FromDiscord<Zachary Carter> meh - I'm just going to make this simpler
03:32:49FromDiscord<Rika> okay lol i got segfault on trying the async proc on a dll thing
03:34:41FromDiscord<Rika> ah there it is, it works kinda
03:35:22*rockcavera quit (Remote host closed the connection)
03:36:23FromDiscord<Rika> ah no it doesnt šŸ˜›
03:42:38*bung joined #nim
03:48:52*hyiltiz joined #nim
03:48:52*hyiltiz quit (Changing host)
03:48:52*hyiltiz joined #nim
03:58:18leorize@Rika it'd work if you use libnimrtl or orc with -d:useMalloc
03:59:09FromDiscord<Rika> i'm just using orc w/o usemalloc
03:59:12leorize@Technisha wdym by "loading all proc from dll into a proc"?
03:59:43FromDiscord<Rika> now i'm getting "No handles or timers registered in dispatcher." lol
03:59:55FromDiscord<Technisha Circuit (LGBTQIAP+)> Oh I make no sense-
04:00:04FromDiscord<Rika> new avatar
04:00:13FromDiscord<Technisha Circuit (LGBTQIAP+)> Yes :P
04:01:58FromDiscord<Technisha Circuit (LGBTQIAP+)> But basically what I'm tryna do is split the programming lang I'm working on into alot of DLLs and SO files so it's easily extendable (for example i can just drop in a .so file for a new feature), but to make this idea work i was planning on making it so the 'modules' contained some syntax rules and they get loaded as procs
04:02:06FromDiscord<Technisha Circuit (LGBTQIAP+)> But that probably makes 0 sense
04:02:13FromDiscord<Rika> what
04:02:38leorizeah so you want a plugin system
04:02:43leorize!repo plugin
04:02:45disbothttps://github.com/genotrance/plugins -- 9plugins: 11Plugin system for Nim 15 22ā­ 1šŸ“ 7& 29 more...
04:02:56FromDiscord<Rika> all dlls have a "list of proc names they have", then its just your job to determine what they precisely return and get as args
04:03:29FromDiscord<Rika> i also want a plugin system, but i dont want to be limited in gc choice...
04:03:43leorizearc/orc is the future
04:03:44FromDiscord<Rika> and also no extra threads
04:03:49PrestigeWhat are the file naming rules for unittest? has to start with a t and can't contain special characters?
04:04:00leorizenah, that's just the rule for nimble
04:04:10Prestigeoh D:
04:04:16FromDiscord<Rika> perhaps i will just write a websocket-based or some sorta socket based plugin system
04:04:28leorize@Rika please don't
04:04:38leorizeactually it depends on what kind of plugin system do you want
04:05:05leorizeeach type solves a different problem, so you gotta base one on your problem
04:05:05FromDiscord<Rika> async
04:05:11Prestigetried like 4 different file names and couldn't get it to run, rip
04:05:11FromDiscord<Rika> gotta be async
04:05:22leorizewdym by async?
04:05:33FromDiscord<Rika> easy to use w/ asyncdispatch
04:05:45FromDiscord<Rika> since the plugins will be fetching from the internet šŸ˜›
04:06:01leorizelibnimrtl
04:06:01*supakeen quit (Quit: WeeChat 2.8)
04:06:03leorizeor...
04:06:09leorizeyou can just make mini programs that you can call
04:06:39FromDiscord<Rika> the mini programs thing i thought was pretty stupid but ill reconsider since you're recommending it too
04:06:46*supakeen joined #nim
04:06:46FromDiscord<Rika> what is libnimrtl?
04:07:08leorizestdlib as a library
04:07:28FromDiscord<Rika> what's the relevance? i dont see it
04:07:34leorizethe main usage is to have the gc shared between the main executable and the plugin
04:07:42leorizeso you can share memory between them
04:08:49FromDiscord<Rika> so how do i use it where do i see docs or w/e, still kinda confused about it
04:09:30leorizeyou first compile nimrtl.nim (it's somewhere in the stdlib folder)
04:09:40leorizethen you compile your programs with -d:useNimRtl
04:10:09leorizeit's super experimental
04:11:06FromDiscord<Rika> then why would this be recommended over using some sort of socket system?
04:11:20leorizebecause sockets take precious fd
04:11:31leorizeand sockets io is ridiculously slow
04:11:46leorizeeven subprocesses is better than sockets
04:12:06leorizesince pipe io don't require expensive protocols like tcp
04:12:34leorizeand pipe io is supported everywhere
04:12:38leorize!repo asynctools
04:12:39disbothttps://github.com/cheatfate/asynctools -- 9asynctools: 11Various asynchronous tools for Nim language 15 58ā­ 20šŸ“
04:12:51leorize^ asyncprocess with async read/write
04:14:03leorizeand plugins made with mini processes can be written in any language
04:14:21leorizethey can be blocking all they want, you the consumer can consume asynchronously
04:14:35leorizefor a big program that use a ton of mini processes, see `git`
04:15:13*audiophile_ quit (Quit: Default Quit Message)
04:16:13FromDiscord<Technisha Circuit (LGBTQIAP+)> leorize yeah but how will i:ā†µA) Make it so i can load .so files made in Cā†µB) Make it extend the syntax of my lang
04:16:37leorizeyou need a plugin manifest
04:16:42FromDiscord<Rika> leorize: this looks good, you're talking about `asyncproc` here right?
04:16:56leorizeyour .so may export a symbol called `init_<name>_plugin`
04:18:02leorizewhich will give you a list of function pointers and the name as well as argument list of the proc
04:18:19FromDiscord<Technisha Circuit (LGBTQIAP+)> Oh okay
04:18:22FromDiscord<Technisha Circuit (LGBTQIAP+)> Thanks!
04:18:23leorize@Rika yea
04:18:47FromDiscord<Rika> doesnt `dynlib.libCandidates` give a list of function names?
04:19:01leorizeit gives you a list of library name
04:19:18leorizeit's a dynlib regex expander :P
04:19:53FromDiscord<Rika> oh, misread the docs then
04:25:48*marnix joined #nim
04:26:46*Vladar joined #nim
04:31:30shashlickRika: when working with dlls, nothing beats boehm so far
04:32:14shashlickas for threads, if you use -d:binary, the thread only loads the dlls and exits
04:38:14FromDiscord<Rika> ah okay
04:40:38shashlicki've tried arc/orc with plugins, it doesn't work yet as is
04:41:06leorizewhy does it feel so horrible to write C++
04:41:17leorizeah, right, headers and multiple inheritance
04:48:33*narimiran joined #nim
04:52:02Zevvand the 11 ways to initialize a member, 9 of which have horrific syntax
04:55:25leorizein the future I should avoid jobs that want me to write C++
04:56:02ZevvI stopped caring. I just type stuff and get paid by the hour.
04:56:22ZevvThey hire me to do C++ while I loud and clearly stated I hate C++ and hardly know any
04:56:25Zevvwell, their problem now
04:56:36leorizelol
04:56:57ZevvI just do the make_shared() think and it passes the reviews. Works for me
04:57:03Zevvs/thing/
04:57:58FromGitter<ynfle> Sounds like masochism
04:58:00ZevvI recently did some Go work. First time for me doing the channel thing, which is not that bad at all. Does anyone ever use Nim channels like Go channels? Just whip up a whole bunch of them and use them for everything?
04:58:04*marnix quit (Ping timeout: 246 seconds)
04:58:18leorizeI've tried that, it's horrible to use them in nim though :P
04:58:23ZevvHow come
04:58:40ZevvGo got *some* things right
04:58:54Zevvgetting up to speed was a breeze, took me half an aftertoon at most
04:59:01leorizeNim's channel has to be a global var
04:59:09ZevvOh right, that kind of sucks :/
04:59:20leorizeand our channels are unidirectional
04:59:29Zevvthat's just fine with me
04:59:49leorize@mratsim's weave will save the day, once arc/orc is ready :P
05:00:12ZevvIts funny how go offers all this stuff with channels and goroutines, but does not protect at *all* against moving your filthy litlte hands in another threads memory.
05:00:32leorizeit's the go way
05:00:54ZevvI was under the impression Go was designed to defuse newbies
05:01:00Zevvfrom making that kind of mistakes
05:01:20leorizeobviously that wasn't the case :P
05:01:23Zevvhaha
05:01:32leorizethey do have a really nice subprocess api that I plan to steal
05:01:42ZevvSome things are really nice. The stdlib feels very coherent
05:01:47leorizeafter I'm done with this threaded C++ mess
05:02:04leorizeyea, their stdlib is pretty neat
05:02:21ZevvAs soon as the generics come in, I'm out of here
05:03:28leorizethe nice thing about reinventing the wheel is that you get a round one
05:03:55leorizegoogle certainly have all the man power to rewrite essentially anything in Go
05:04:16leorizeZevv: you'll return once you need them sweet macros :P
05:05:36*Vladar quit (Remote host closed the connection)
05:06:13FromDiscord<slymilano> @Varriount I confirmed my code as-is works perfectly fine as one would expect on Windows 10. It doesn't work on Mac! I think you were right, this could be a bug!
05:06:19FromDiscord<slymilano> *with Nim
05:07:26FromDiscord<slymilano> https://github.com/sergiotapia/torrentinim - latest master, asyncCheck works fine on windows, doesn't work at all on Mac.
05:08:02*Vladar joined #nim
05:21:27Zevvleorize: naah, that stuf is sooo overrated. Just like the other, watzitcalled, CTFE-thingy
05:22:02leorizelol
05:22:51FromGitter<ynfle> Anyone have nim.nvim working with vim8.1?
05:23:02leorizeit won't work with vim
05:23:45FromGitter<ynfle> Is there any code completion support in vim from a different package
05:23:56leorizethe vim people decided to use a totally different api from neovim and I'm too lazy to implement all that stuff, sorry :P
05:24:08leorizeyes, any lsp client can be used with nimlsp
05:24:42FromGitter<ynfle> How hard is it to setup?
05:24:59leorizemost people say that it's easy, I've never tried though
05:25:01leorize!repo nimlsp
05:25:02disbothttps://github.com/PMunch/nimlsp -- 9nimlsp: 11Language Server Protocol implementation for Nim 15 139ā­ 11šŸ“
05:26:22FromGitter<ynfle> It's in the README and seems pretty straight forward
05:27:04leorize!rfc #243
05:27:04disbothttps://github.com/nim-lang/RFCs/issues/185 -- 5deprecate macros.expectLen, expectKind, expectMinLen in favor of something generic or doAssert
05:27:10leorize!rfc interfaces
05:27:11disbothttps://github.com/nim-lang/RFCs/issues/243 -- 3Implement interfaces/traits instead of concepts 7& 14 more...
05:27:28leorizePrestige: ^ that's somewhere for you to post your multiple inheritance idea to
05:34:30icyphoxHow do I enable '-d:ssl' from within my nimble file?
05:34:41icyphoxSo it builds with SSL by default.
05:35:13leorizeadd a config.nims with `--d:ssl` as the content
05:35:23leorizeput it next to your main .nim file
05:35:27*hyiltiz quit (Ping timeout: 260 seconds)
05:35:36*hyiltiz joined #nim
05:35:36*hyiltiz quit (Changing host)
05:35:36*hyiltiz joined #nim
05:35:58icyphoxAh cool. The docs said something about a nimble.nim.cfg, but that didn't work.
05:39:25*maier joined #nim
05:41:18bunghttps://github.com/nim-lang/Nim/pull/15000 can be merged
05:41:20disbotāž„ fix #14822 TTest pass by ref , so can reset startTime before actully run ; snippet at 12https://play.nim-lang.org/#ix=2rQ5
05:41:46leorizewhy did you turn it into a ref?
05:41:50bunghttps://github.com/pragmagic/karax/pull/149 for karax
05:41:50disbotāž„ add static server,websocket refresh watching mode
05:42:07leorizewouldn't just being able to manipulate via a `var` parameter enough?
05:42:13bungleorize so can change start time before each spec run
05:42:54bungleorize the proc called pass to proc directly
05:43:12leorizethen make them all use `var`?
05:43:45leorizeusing ref to hide mutability is not a good way imo
05:43:58bungthat need add line var aTest = makeTest() everywhere
05:44:24leorizecorrectness is better than convenience
05:45:12leorizeor maybe we should make it so that matrix generate multiple tests with different flags instead of mutating the one test object
05:45:53bungok, let me think of it
05:55:46bungthat works, wait for CI pass.
06:04:41FromGitter<ynfle> I installed nimlsp and set up for vim but LspStatus say nimlsp is not running
06:04:53FromGitter<ynfle> No syntax highlighting etc.
06:05:01FromGitter<ynfle> What would I need to do?
06:05:51leorizeyou need a nim plugin like zah/nim.vim
06:05:57leorizethen maybe it'll work?
06:07:17FromGitter<ynfle> Even for code completion?
06:08:36leorizeprobably, you'd need to ask PMunch but he's not online atm
06:09:01FromGitter<ynfle> šŸ‘
06:09:09FromGitter<ynfle> Sleeptime
06:12:03bungI see webframework custom request type , add settings to request object, so that proc gc safe, is there alternative solution
06:25:57icyphoxI'm new to the whole Futures thing. How do I return a WebSocket, and not a Future[WebSocket]?
06:26:50leorize[m]use `waitFor` on a `Future` to block until the value is available
06:29:37*arecaceae quit (Read error: Connection reset by peer)
06:30:00*arecaceae joined #nim
06:30:33icyphoxAh okay.
06:32:04*debased quit (Ping timeout: 256 seconds)
06:32:27*silvernode joined #nim
06:32:43silvernodeMorning
06:33:00*solitudesf joined #nim
06:33:36silvernodeHaven't forgotten about the IRC, but have been pretty busy lately. opened up one of my projects for the first time in a month
06:33:52*debased joined #nim
06:34:28FromDiscord<Rika> welcome back
06:34:44silvernodewondering if I can have a proc take a seq with an endless amount of strings so that I can take arguments on the command line.
06:35:17silvernodeMaking a package manager wrapper but when supplying multiple packages, it only picks up the first arg
06:36:28FromDiscord<Varriount> silvernode: Isn't a sequence, by definition, of variable length?
06:36:30icyphoxsilvernode: Similar to *args/**kwargs in Python?
06:37:15*fredrikhr joined #nim
06:38:02silvernodehttps://play.nim-lang.org/#ix=2rQa
06:38:26FromDiscord<Rika> sure why not
06:38:54silvernodeApparently this is what I wrote over a month ago. Trying to figure out how things work, and not really having awareness of the logic apparently.
06:39:42FromDiscord<Elegant Beef> you can use varargs there
06:39:45FromDiscord<Varriount> silvernode: By "take arguments on the command line", do you mean, "start another program using a variable number of arguments", or "have my program take a variable number of arguments"?
06:40:07FromDiscord<Varriount> or, "have my procedure take a variable number of arguments"
06:40:22FromDiscord<Varriount> Because each of those has a different solution
06:41:36silvernodeWell, I think I want to have my program take a variable number of arguments and then pass them to a proc in the form of a seq
06:42:15silvernodeI didn't have anything in a proc at one point and that worked but looked messy so I created procs like the one in my snippet linked above.
06:42:16icyphoxI'm interested in knowing this as well. Just realized I'm writing something that requires exactly this.
06:43:05silvernodeonce I created procs to clean up the main code, my program would only read one argument and not multiple args.
06:43:40FromDiscord<Elegant Beef> `varargs[string]` in as a proc argument allows you to put 1 to infinity procs šŸ˜„
06:45:39silvernodeHere is a code example I used from some blog. I added the argv var part.
06:45:42silvernodevar argv = newSeq[string](paramCount())
06:45:48FromDiscord<Varriount> sent a long message, see http://ix.io/2rQc
06:46:28FromDiscord<Varriount> Those last two links are wrappers around argc for a C program, or sys.argv in Python
06:46:40FromDiscord<Varriount> *equivalent to
06:46:47FromDiscord<Elegant Beef> And this shows varags in actionā†µhttps://play.nim-lang.org/#ix=2rQd
06:49:46silvernodeMaybe I should replace newSeq with simply vargs in: var argv = newSeq[string](paramCount())
06:50:04silvernodevarags*
06:51:24silvernodetime for work, thanks for the help.
06:53:50*vegai quit (Ping timeout: 256 seconds)
06:55:57*silvernode quit (Ping timeout: 258 seconds)
06:58:38icyphoxCan I run a function when a Future resolves?
06:58:50icyphoxI simply want to echo, really.
07:00:00*Vladar quit (Quit: Leaving)
07:00:55FromDiscord<Rika> wdym?
07:01:01FromDiscord<Rika> in a sync or async function?
07:01:18FromDiscord<Rika> sync: use `waitfor` on the futureā†µasync: use `await` on the future
07:01:25FromDiscord<Rika> then echo after it
07:02:21icyphoxoh ok
07:02:22*debased quit (Ping timeout: 260 seconds)
07:02:24icyphoxThat's easy then.
07:15:19icyphoxhttps://nim-lang.org/docs/asynchttpserver.html from the example here, is it possible to pass other arguments to `cb`?
07:21:14*narimiran quit (Ping timeout: 240 seconds)
07:21:29*Vladar joined #nim
07:21:33FromDiscord<Varriount> icyphox: Like what?
07:21:49icyphoxA string?
07:22:02FromDiscord<Varriount> What would the string contain?
07:22:20icyphoxDoes it matter? lol
07:22:46FromDiscord<Varriount> Well, I would store my extra information in a global variable.
07:22:57FromDiscord<Varriount> And access it from the procedure.
07:23:30icyphoxhmm
07:23:41icyphoxYeah that's what I decided to do.
07:24:14FromDiscord<Varriount> I will say, the async stuff in Nim isn't as polished as it could be. It is functional though.
07:25:07*waleee-cl joined #nim
07:26:18ForumUpdaterBotNew thread by HashBackupJim: Packed tuple?, see https://forum.nim-lang.org/t/6551
07:26:25*nikita` joined #nim
07:28:43icyphoxVarriount: what do you think of me using it in prod
07:29:38FromDiscord<Varriount> Well, I would look at the module description, which says:ā†µ> This HTTP server has not been designed to be used in production, but for testing applications locally.
07:30:01FromDiscord<Varriount> If you want an HTTP server for production use, I would recommend Jester
07:38:32icyphoxVarriount: I'm using ws.
07:38:45icyphoxhttps://github.com/treeform/ws/
07:39:40icyphoxI'm basically writing a websocket relay.
07:48:10FromDiscord<Varriount> Hm, then I would put it behind Nginx, since it has no native SSL support.
07:48:43icyphoxI mean, I'm certainly not exposing this to the internet haha.
07:48:57icyphoxIt will run behind nginx.
07:49:08icyphoxAlso, it does have SSL support (wss?)
07:49:52FromDiscord<Varriount> Oh, perhaps it does.
07:50:22FromDiscord<Varriount> Hm, I wonder if this would be worth adding to the standard library: https://github.com/andreaferretti/interfaced/blob/master/interfaced.nim
07:51:17FromDiscord<Varriount> Certainly, I feel like Go's interfaces are more flexible than Java's, and it does fit with the whole "You can implement methods for other types" that Nim has.
07:51:19ZevvStuff only goes out of the stdlib afaik
07:52:05FromDiscord<Varriount> Zevv: Mostly. Sometimes we let the occasional wandering improvement in.
07:52:23FromDiscord<Elegant Beef> Varriount this version is cooler imoā†µhttps://github.com/slangmgh/interfaced
07:52:38FromDiscord<Rika> whats the diff
07:52:44FromDiscord<Elegant Beef> One works šŸ˜„
07:52:50FromDiscord<Varriount> I just wish I had the time and energy to redo some of the more notable/rough stdlib modules.
07:52:58FromDiscord<Rika> lol
07:53:32FromDiscord<Varriount> @Elegant Beef How is the other one broken?
07:54:36FromDiscord<Elegant Beef> I thought the first was broken for modern nim
07:54:39FromDiscord<Elegant Beef> I could be wron
07:54:40FromDiscord<Elegant Beef> (edit) 'wron' => 'wrong'
08:11:28*theelous3 quit (Ping timeout: 258 seconds)
08:20:54*Senketsu joined #nim
08:28:51*Senketsu quit (Read error: Connection reset by peer)
08:36:26*Tlanger joined #nim
08:36:44*oddp_ joined #nim
08:38:21*Senketsu joined #nim
08:39:18*Tongir quit (Ping timeout: 256 seconds)
09:05:40*Trustable joined #nim
09:21:23*Senketsu quit (Read error: Connection reset by peer)
09:26:31*silvernode joined #nim
09:27:13*pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
09:27:52*pbb joined #nim
09:33:56*Senketsu joined #nim
09:47:38*marnix joined #nim
09:53:28*Senketsu quit (Read error: Connection reset by peer)
10:01:21*abm joined #nim
10:04:31FromDiscord<lqdev> runtime interfaces are really simple to do with tuples and converters
10:04:57FromDiscord<lqdev> I use them in aglet
10:05:31*endragor quit (Remote host closed the connection)
10:05:34FromDiscord<dom96> icyphox: You can use asynchttpserver in prod behind nginx. I'd recommend httpbeast. Also I'm running Niv's websocket library in prod (https://stardust.dev/play) behind nginx and with ssl.
10:06:09*Senketsu joined #nim
10:06:10FromDiscord<dom96> (And lots of other things using async run in prod, the Nim forum and nitter are two examples)
10:06:46FromDiscord<dom96> > I will say, the async stuff in Nim isn't as polished as it could be. It is functional though.ā†µ@Varriount what do you think needs polishing? šŸ™‚
10:07:01icyphoxheh
10:07:17icyphoxdom96: Sick. That's enough for me. :)
10:09:17*Senketsu quit (Read error: Connection reset by peer)
10:12:18FromDiscord<dom96> Give me a ping if you need any advice
10:12:25FromDiscord<dom96> happy to help šŸ™‚
10:17:03*sagax quit (Read error: Connection reset by peer)
10:21:23Zevvleorize[m]: and also because of "const std::string &s"
10:21:33Zevvbecause apparently the compiler is not smart enough
10:27:57bungaraq please review https://github.com/pragmagic/karax/pull/149
10:27:59disbotāž„ add static server,websocket refresh watching mode
10:43:30FromDiscord<Varriount> @dom96 Streaming http uploads, newer http protocol support, contexts (like Go has)
10:44:23supakeenVarriount: the question is if you want to support these things in stdlib or not, aka is the goal of asynchttpserver to be production ready or not :)
10:44:33supakeen(or just a limited subset of HTTP to server some things over HTTP some times)
10:44:34FromGitter<alehander92> what
10:44:39FromGitter<alehander92> happened to zevv's work on cps
10:46:55FromDiscord<Varriount> And then stuff like this:ā†µ> it's weird because Jester's .serve() function actually called runForever() at the end of it's proc - so why would it not work exactly like my runForever in my main nim fileā†µ@slymilano
10:47:59FromDiscord<Varriount> (I don't know how to link to a specific message on Discord on mobile, that's the best I could do)
10:48:01supakeenI do agree that asynchttpserver might warrant some love and care maybe I should take another look at it since I did do the first tests for it though I don't have anything related to HTTP serving going on right now :(
10:51:11FromDiscord<Varriount> From an implementation perspective, I think performance and memory usage would be improved if async functions could be implemented in a fashion similar to Rust (although the biggest roadblock to such an implementation is unimplemented compiler optimization).
10:52:03FromDiscord<dom96> > @dom96 Streaming http uploads, newer http protocol support, contexts (like Go has)ā†µ@Varriount that's not polish, that's more features
10:52:35FromDiscord<dom96> the existing streaming support is not ideal, I agree. But please don't scare people away from Nim's async by saying it needs more polish šŸ™‚
11:01:14FromDiscord<Clyybber> Araq: Regarding cursors and your recent for var work; I think it makes sense to finally unify the concept of lent and cursor
11:01:54FromDiscord<Clyybber> Since iterators should yield lent anyways
11:04:11FromDiscord<dom96> I saw an interesting tweet recently by one of the Rust contributors talking about how Rust didn't get its highlight feature until a few years after its inception, and how Ruby was in a similar boat with dynamic typing.
11:04:25FromDiscord<dom96> I wonder if arc is going to be a similar thing for Nim
11:04:45FromDiscord<dom96> (Rust's highlight feature being the borrow checker)
11:05:45FromDiscord<Clyybber> hopefully
11:06:12FromDiscord<Clyybber> although its not so much a feature
11:06:28FromDiscord<impbox> hmm i'm trying to define nimble tasks in a loop, doesn't seem that's allowed ` ... C:\Users\user\git\nico\nico_20808.nims(66, 8) template/generic instantiation of `task` from here ... C:\Users\user\AppData\Local\Temp\nimblecache\nimscriptapi.nim(158, 19) Error: 'export' is only allowed at top level` i'm guessing if i did the loop at compile it'd be ok, is there a compile time equivalent of for?
11:06:43FromDiscord<Clyybber> i think many people don't really care
11:06:58FromDiscord<Clyybber> but it paves the way for a good future
11:07:27FromDiscord<impbox> arc is very cool, but it doesn't contribute greatly to my day to day productivity with the programming language
11:07:32FromDiscord<juan_carlos> Async needs more Poland.
11:07:40FromGitter<alehander92> guys
11:07:53FromGitter<alehander92> why can't we have monads for nim
11:07:56FromGitter<alehander92> like what i feel is
11:08:10*NimBot joined #nim
11:08:12FromGitter<alehander92> which makes it easier
11:08:20FromDiscord<dom96> > arc is very cool, but it doesn't contribute greatly to my day to day productivity with the programming languageā†µ@impbox This. I feel exactly this way.
11:08:20FromGitter<alehander92> but i am not sure what am i missing, like
11:08:50FromDiscord<Clyybber> @dom96 Yeah, its more under-the-hood
11:09:12FromDiscord<impbox> but if i was targeting embedded devices or something i'd probably care more
11:09:18FromDiscord<dom96> I just hope there won't be a huge proliferation of `lent` and `cursor` and whatever else
11:09:25FromDiscord<Rika> i dont see why it wouldnt
11:09:33FromDiscord<dom96> That said, I'd love to revisit nimkernel with it
11:09:35FromDiscord<Rika> oh
11:09:37FromDiscord<Rika> misread you
11:10:10FromDiscord<Clyybber> @dom96 Why? cursor/lent will solve many issues
11:10:29FromDiscord<Clyybber> The effort spent on them will give us safe views
11:11:16FromDiscord<juan_carlos> is that not inferred anywways
11:11:27FromDiscord<dom96> I'm still not convinced. I am still of the belief that a GC should be enough for all of my use cases.
11:11:39FromDiscord<Clyybber> *your* use cases
11:11:56FromDiscord<dom96> My use cases and the use cases of 99% of programmers
11:11:59FromDiscord<Clyybber> n
11:12:02FromDiscord<Rika> :EyesShaking:
11:12:02FromDiscord<Clyybber> haha no
11:12:33FromDiscord<dom96> Maybe not 99% but certainly in the high 90%s
11:12:42FromDiscord<Clyybber> did you see the issue about the memory issue with strings and async?
11:12:47FromDiscord<dom96> Seriously, most programmers are writing crud web apps
11:12:51FromDiscord<dom96> Why is a GC not enough for them?
11:12:56FromDiscord<Clyybber> stuff like that will be fixed
11:13:02FromDiscord<lqdev> I'd really love some of the promised features, like `lent` fields
11:13:06FromDiscord<Clyybber> @dom96 its is good enough for them
11:13:17FromDiscord<Clyybber> but nim is not a webdev only lang
11:13:20FromDiscord<Zed> zedus, what twitter api are you using with nitter?
11:13:29FromDiscord<lqdev> right now storing lineinfo in [insert my programming language's name here] requires me to copy strings with each LineInfo tuple generated
11:13:40FromDiscord<dom96> > did you see the issue about the memory issue with strings and async?ā†µ@Clyybber you mean the fact that Nim copies strings left and right?
11:13:46FromDiscord<Clyybber> and if no GC works better or as good as GC why would you want a gc
11:13:57FromDiscord<Clyybber> @dom96 yeah
11:14:00FromDiscord<lqdev> also ARC has much better performance and is more suitable for games and stuff
11:14:12FromDiscord<lqdev> and audio
11:14:19*pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
11:14:24FromDiscord<Rika> shashlick: what does -d:binary do in the plugins library exactly?
11:14:29FromDiscord<dom96> > but nim is not a webdev only langā†µ@Clyybber of course, that was just one example. There are far more examples, CLI apps? GC is fine. Games? GC is also fine for most. GUI programs? GC is also fine.
11:14:36FromDiscord<dom96> That covers 90%+ of programmers IMO
11:15:13FromDiscord<lqdev> GC starts becoming a bottleneck as your game grows larger and has many more objects
11:15:17FromDiscord<lqdev> that need to be collected
11:15:35FromDiscord<dom96> > and if no GC works better or as good as GC why would you want a gcā†µ@Clyybber if it does then sure, but we are far away from that. And it's a lot of investment which might not even pan out.
11:15:36FromDiscord<lqdev> this isn't as much of a problem with ECS, but classic OO hierarchies will benefit from ARC
11:15:45*pbb joined #nim
11:16:06*pbb quit (Client Quit)
11:16:38FromDiscord<Clyybber> @dom96 I suggest you just try it
11:16:41*pbb joined #nim
11:17:04FromDiscord<Clyybber> Because from what you are saying it seems like your fear stems from the fact that you didn't try to use it yet
11:17:06FromDiscord<impbox> there's definitely benefits from ARC, and it's really good, especially when it comes to optimisation time, but optimising programmer productivity is more important to me
11:17:39FromDiscord<impbox> but if the devs are excited by ARC they should totally work on it cause working on exciting stuff is good =)
11:17:39FromDiscord<lqdev> @impbox and ARC balances that very well. you still have the productivity benefits of a GC but the performance benefits of RC
11:17:50FromDiscord<dom96> > @dom96 I suggest you just try itā†µ@Clyybber the problem is that I keep seeing people try it and finding that simple things don't work, so I don't see a reason to try it right now
11:18:16FromDiscord<impbox> @lqdev i'm totally gonna use arc when it's stable, would totally choose it over a GC
11:18:31FromDiscord<juan_carlos> I think once is stable an arc should bring no more problems/overhead/complications than maintaining a gc anyways.
11:18:34FromDiscord<lqdev> though, regarding productivity, I'd like to see incremental compilation come back to life
11:18:51FromDiscord<Clyybber> @dom96 *try it*
11:19:04FromDiscord<Clyybber> otherwise your opinion is of no weight :p
11:19:17FromDiscord<Clyybber> there are 11 open arc issues afaict
11:19:20icyphoxdom96: You've written websocket code before right? How would you suggest I deal with client closing the socket? This causes the program to crash with a WebSocketError.
11:19:27FromDiscord<Clyybber> which is much less than the open GC issues
11:19:35FromDiscord<dom96> icyphox: catch the error
11:19:51FromDiscord<lqdev> @Clyybber but factor in the fact that not many people use ARC right now
11:19:56FromDiscord<dom96> I actually did try it btw, I tried to compile my game with orc and it failed
11:20:05FromDiscord<Clyybber> were you on devel?
11:20:08FromDiscord<dom96> yes
11:20:17FromDiscord<Rika> how long ago was this
11:20:17FromDiscord<Clyybber> you should try with the latest
11:20:25icyphoxdom96: But that still closes the program...
11:20:32FromDiscord<dom96> I will keep trying it, but in the meantime I have my opinions.
11:20:33FromDiscord<juan_carlos> Not fair comparison, gc is several years older.
11:21:00icyphoxI'm using treeform's ws, which is based on niv's code.
11:21:04FromDiscord<dom96> icyphox: how so?
11:21:27FromDiscord<dom96> really? treeform's ws is based on niv's code? I thought it was a clean room implementation
11:21:44FromDiscord<Clyybber> @dom96 I'd even argue that arc is worth the development time as compared to fixing GC bugs like https://github.com/nim-lang/Nim/issues/12273
11:21:45disbotāž„ Memory corruption ; snippet at 12https://play.nim-lang.org/#ix=24dJ
11:22:18FromDiscord<dom96> @Clyybber So what does that say to our users?
11:22:33icyphoxdom96: Quoting the readme: >Based on the work by niv https://github.com/niv/websocket.nim
11:22:33FromDiscord<dom96> We've released Nim 1.0 with a message "Please come and use our language"
11:22:39*xet7 quit (Quit: Leaving)
11:22:44FromDiscord<dom96> Now we're letting critical bugs go unfixed and chasing yet another new thing
11:22:52FromDiscord<Clyybber> which fixes all these bugs
11:23:10FromDiscord<dom96> and introduces many more šŸ™‚
11:23:10FromDiscord<Clyybber> is much simpler
11:23:15FromDiscord<Clyybber> and easier to maintain
11:23:26FromDiscord<juan_carlos> Software is never done.
11:23:31FromDiscord<Clyybber> the bugs that arc introduces are way easier to debug
11:24:03icyphoxdom96: https://termbin.com/xt2g this is what I'm doing right now.
11:24:06FromDiscord<dom96> But alright, it's different now then it was. At least now ARC/ORC will truly be an in-place replacement for the GC
11:24:14FromDiscord<Clyybber> yeah
11:24:26icyphoxIgnore the echo message, but yeah.
11:24:49FromDiscord<dom96> icyphox: how does your program still close?
11:24:53FromDiscord<dom96> do you get any errors?
11:25:07icyphoxNope.
11:25:25icyphoxIt literally just exits.
11:25:40FromDiscord<dom96> oh, I see what you're doing
11:25:53FromDiscord<dom96> waitFor runs the event loop for you
11:25:57FromDiscord<dom96> so the exception bubbles up
11:26:02FromDiscord<dom96> you catch it and your program does nothing else
11:26:04FromDiscord<dom96> so it exits
11:26:08icyphoxOhhh. So I catch this inside the loop then.
11:26:20FromDiscord<dom96> yep
11:26:24icyphoxGotcha.
11:27:02FromDiscord<dom96> @Clyybber as long as I can just switch to arc with no changes to my code and better stability I'll be happy šŸ™‚
11:27:21FromDiscord<dom96> and /that/ should be the marketing for ARC
11:27:34icyphoxBy the way, I've been away from the whole Nim scene for a while -- what's ARC?
11:27:54FromDiscord<impbox> https://www.youtube.com/watch?v=aUJcYTnPWCg
11:27:58icyphoxOr where can I read about it, to save you the typing.
11:28:13FromDiscord<impbox> 4raq's talk on it at nimconf ^
11:28:39icyphoxThanks! I'll check this out.
11:29:18FromDiscord<dom96> Also see https://forum.nim-lang.org/t/6549
11:33:01*rockcavera joined #nim
11:35:17FromDiscord<Varriount> My biggest hope for Arc is that it will help make multithreading easier.
11:36:14FromDiscord<Varriount> And it does have benefits when inter-operating with C
11:40:41icyphoxWhat are y'all's thoughts on Zig?
11:40:54FromDiscord<impbox> what's zig?
11:41:30icyphoxhttps://ziglang.org
11:41:59icyphoxhttps://github.com/ziglang/zig
11:42:24FromDiscord<impbox> sounds like it doesn't do much for you
11:42:37FromDiscord<impbox> by design
11:42:42icyphoxFor me?
11:42:43FromDiscord<impbox> but that's not what i'm looking for
11:42:54icyphox>for you
11:42:54FromDiscord<Clyybber> I find zig interesting
11:42:55FromDiscord<impbox> "generic you"
11:42:58icyphoxAh in general.
11:43:00icyphoxlol
11:43:04FromDiscord<impbox> https://en.wikipedia.org/wiki/Generic_you
11:43:16icyphoxI got it, lol.
11:43:34FromDiscord<impbox> sorry, not sure how common the usage is
11:43:58icyphoxIt's pretty common. I just thought it was targetted at my because I asked, heh.
11:44:04icyphoxme*
11:44:10FromDiscord<juan_carlos> I find Zig too kinda like D, also same with D.
11:44:35icyphoxZig and Nim have some common goals.
11:44:43FromDiscord<impbox> i want a language that lets me get shit done, write a small amount of code to do a lot
11:44:46icyphoxLike a better systems programming language, better C FFI, etc
11:45:07FromDiscord<impbox> from zig's description of itself it sounds like it wants me to do lots of work to get stuff done
11:45:08icyphoxYeah, Zig is more of a C replacement.
11:45:12FromDiscord<Clyybber> yeah
11:45:12icyphoxYep.
11:45:26FromDiscord<Zed> yeah
11:45:34FromDiscord<juan_carlos> Ye
11:45:54FromDiscord<lqdev> yes
11:45:55icyphoxI think Nim can be a C replacement, but it's also suited for higher level tasks too.
11:46:03FromDiscord<impbox> explicitness is nice, but i like that nim compiles to C so I can see what it looks like under the hood if i need to look (though i wish it was prettier C)
11:46:12*krux02 joined #nim
11:46:14icyphoxWhere Zig would probably be technical debt -- like writing webshit.
11:46:31FromDiscord<Zed> rust is a fucking ugly language
11:46:34icyphox^
11:46:39FromDiscord<Zed> it's worse then c++
11:46:55FromDiscord<Clyybber> if rust is ugly zig is too :p
11:47:08icyphoxI literally cannot understand Rust. It's like someone thought all ASCII symbols would be great to have in your code, all at once.
11:47:14FromDiscord<Clyybber> although zig has some cute syntax for stuff like sentinels
11:47:43icyphox&<>::()*^%
11:47:59icyphoxI probably wrote something that compiles in Rust.
11:47:59icyphox(not really)
11:48:00FromDiscord<Zed> and string and String
11:48:09icyphoxOh yeah.
11:48:11FromDiscord<Zed> (edit) 'and String' => '/String'
11:48:21FromDiscord<impbox> you could define that to be an operator in nim right?
11:48:22FromDiscord<Zed> i still dont know what the differnce is
11:48:42FromDiscord<Clyybber> @impbox yeah haha
11:49:38FromDiscord<juan_carlos> Maybe Rust is secretly done by Keyboard manufacturing corporations to sell more keyboards. *conspiracy theory intensifies*
11:50:28FromDiscord<Zed> more keyboards = more symbols
11:50:49FromDiscord<lqdev> hold up
11:50:57FromDiscord<lqdev> rust doesn't use *that* many symbold
11:50:58FromDiscord<lqdev> (edit) 'symbold' => 'symbol'
11:51:00FromDiscord<lqdev> (edit) 'symbol' => 'symbols'
11:51:01FromDiscord<Zed> imagine one of those japanese keyboards except just symbols rust uses
11:51:06FromDiscord<lqdev> that's what D is
11:51:19FromDiscord<Zed> D:
11:52:16FromDiscord<lqdev> off the top of my head, I can think of !, #, %, &, *, <>, ' as symbols in rust
11:52:30FromDiscord<lqdev> cut the %, it's for arithmetic
11:52:46FromDiscord<Zed> to many
11:52:52FromDiscord<Zed> my brain is hurting
11:53:28FromDiscord<lqdev> rust is ugly because it's attempting to combine verbosity with abbreviations
11:54:51FromDiscord<Zed> theres also $,? ::, ||, @, ^
11:55:25FromDiscord<lqdev> then we can also include +, -, and /
11:55:30FromDiscord<lqdev> and |
11:55:40FromDiscord<Zed> https://doc.rust-lang.org/book/appendix-02-operators.html
11:55:50FromDiscord<impbox> we need a #rust channel it seems
11:55:57FromDiscord<Zed> there are so many
11:56:03FromDiscord<lqdev> would you rather write your arithmetic like `2 plus 2 times 2`?
11:56:15FromDiscord<lqdev> nim is a bit better on that side
11:56:19FromDiscord<juan_carlos> Wait you werent talking about the Game?. :P
11:56:30FromDiscord<lqdev> what game
11:56:31FromDiscord<Zed> well we can
11:56:47FromDiscord<Zed> `as a naked on the beach`
11:57:00FromDiscord<Zed> rust is also a game
11:57:07FromDiscord<Zed> by facepunch
11:57:18FromDiscord<Rika> I HATE RUSTS string vs String
11:57:19FromDiscord<lqdev> a game of guessing what the code does
11:57:25FromDiscord<lqdev> rust has &str vs String
11:57:31FromDiscord<Zed> hardcore minecraft
11:57:32FromDiscord<lqdev> and the difference is honestly just retarded
11:57:33FromDiscord<Rika> It feels like it was ***made*** to be confusing in that regard
11:57:34FromDiscord<juan_carlos> Maybe people learn Rust the lang thinking they are learning Rust the game.
11:57:48FromDiscord<juan_carlos> Rename Nim to Fortnite.
11:57:55FromDiscord<Zed> please no
11:58:03FromDiscord<Rika> Fortnim
11:58:04FromDiscord<lqdev> &str is just char *, and String is a heap-allocated string buffer
11:58:26FromDiscord<nero> don't like the gameplay it's just building the same things over and over again, like command line tools
11:58:39FromDiscord<Zed> i would like to learn lisp, just to see why everyone likes it
11:58:43FromDiscord<lqdev> I don't like how rust uses sooooooooo many abbreviations. what's so damn difficult about typing `int32` instead of `i32`
11:58:53FromDiscord<impbox> lisp is cool, but i'm glad i don't need to use it
11:58:55FromDiscord<Zed> 2 letters you dont have to type
11:59:00FromDiscord<impbox> it's an "elegant design"
11:59:43FromDiscord<Zed> lol
11:59:46FromDiscord<lqdev> also, no type propagation! so your gaussian function looks like this https://media.discordapp.net/attachments/371759389889003532/733654167020634142/unknown.png
12:00:10FromDiscord<Zed> lovely
12:00:28FromDiscord<Zed> hurts my eyes to see that
12:00:36FromDiscord<lqdev> yeah why have `x, y, a, ox, oy, sx, sy: f32` when you can have `x: f32, y: f32, a: f32, ox: f32, oy: f32, sx: f32, sy: f32`
12:00:56FromDiscord<lqdev> there is no point in using types after names if you're not doing this imo
12:01:25FromDiscord<lqdev> (edit) 'this' => 'type propagation'
12:01:42FromDiscord<lqdev> defining math functions in rust becomes a chore
12:01:56FromDiscord<lqdev> oh, did i mention: it's 2020 and rust has no function overloading.
12:02:00*xet7 joined #nim
12:02:07FromDiscord<lqdev> just gtfo with this language. it's bad.
12:02:14FromDiscord<lqdev> the only selling point is its memory management
12:02:39FromDiscord<lqdev> and rust evangelists will say it's the best language ever even though it has these glaring flaws
12:02:46dv^_^yeah
12:02:50FromDiscord<lqdev> hopefully the nim community won't become like this.
12:03:09FromDiscord<Zed> ha ha nim is the best language fool
12:03:22FromDiscord<Zed> nothing can beat nim
12:03:29FromDiscord<lqdev> true
12:03:32FromDiscord<Zed> nim is love, nim is life
12:03:37FromDiscord<Rika> :ThonkDumb:
12:03:50FromDiscord<lqdev> https://cdn.discordapp.com/emojis/585835071538462721.png
12:03:51FromDiscord<Clyybber> > fortnim
12:03:59FromDiscord<Clyybber> pls no
12:04:06FromDiscord<lqdev> fortran + nim
12:04:14FromDiscord<Zed> that's even worse
12:04:15FromDiscord<Clyybber> nimtran
12:05:19FromDiscord<Zed> no
12:05:28FromDiscord<Zed> nust
12:05:41*endragor joined #nim
12:05:53FromDiscord<Clyybber> nut
12:06:01*supakeen quit (Quit: WeeChat 2.8)
12:06:44*supakeen joined #nim
12:07:45FromDiscord<Rika> I don't think nim is the best language, but it's pretty good.
12:08:37*fredrikhr quit (Read error: Connection reset by peer)
12:08:39FromDiscord<Zed> what would you ideal language be
12:08:43FromDiscord<Zed> *your
12:09:26FromDiscord<Shucks> compiled python ;p
12:09:31FromDiscord<Zed> cython
12:09:54FromDiscord<Shucks> bleh..
12:10:15FromDiscord<Rika> Nim with more libraries and less bugs lol
12:10:45FromDiscord<Rika> Really, nim is on spot for me on ideal language considering only capabilities
12:10:49FromDiscord<Zed> i wonder if we could setup automated library bindings
12:11:09FromDiscord<Shucks> Imo nims library support is pretty good. If were including 3rd ones ofcourse
12:11:17FromGitter<deech> The generics implementation really needs some love.
12:12:26FromDiscord<impbox> nim with better error messages and cyclic dependencies and code reordering by default
12:13:05FromGitter<deech> MOAR static introspection! :)
12:16:31*fredrikhr joined #nim
12:19:07FromDiscord<SirJosh> sent a code paste, see https://play.nim-lang.org/#ix=2rRu
12:19:44*maier_ joined #nim
12:20:06*endragor quit (Remote host closed the connection)
12:20:14Araqping Clyybber
12:20:49FromDiscord<Rika> Better error messages yes, cyclic imports no, code reordering maybe?
12:21:25FromDiscord<SirJosh> @Clyybber apologies for the ping but i was told to ping you for my question (macro question, 2 messages up <https://discordapp.com/channels/371759389889003530/371759389889003532/733659032572657665>)
12:21:27FromDiscord<Rika> Yes AFAIK @SirJosh it's in the 3rd tutorial
12:21:38FromDiscord<SirJosh> 3rd tutorial?
12:21:43FromDiscord<SirJosh> OH that series
12:21:59FromDiscord<Rika> The one in nim docs called tut3
12:22:33*maier quit (Ping timeout: 258 seconds)
12:24:04FromDiscord<SirJosh> hmm will definitely have to do a bit of reading
12:24:19FromDiscord<Rika> Just read your snippet, you will need to also pass in the Other Thing type AFAIK
12:24:39FromDiscord<SirJosh> can the macro somehow infer that from the context it's within?
12:24:44FromDiscord<SirJosh> (edit) 'can' => 'could'
12:24:49FromDiscord<SirJosh> or would doing that be more trouble than it's worth
12:25:44FromDiscord<Rika> Not that I know of
12:25:57FromDiscord<Rika> I don't know any way it could do that but then again I'm no macro guru
12:29:45FromDiscord<Clyybber> @SirJosh Yeah thats possible
12:29:48FromDiscord<Clyybber> Araq: pong
12:30:08FromDiscord<SirJosh> cool, trying to read the nim guide to figure things out atm
12:30:25FromDiscord<SirJosh> sent a code paste, see https://play.nim-lang.org/#ix=2rRx
12:30:33FromDiscord<SirJosh> (just making sure it's possible i guess)
12:31:15FromDiscord<Rika> Yes
12:31:37FromDiscord<juan_carlos> totes tut
12:33:17AraqClyybber: I might have figured it out finally
12:33:35Araqthe signature of channel send is:
12:33:52Araqproc send(chan: var Channel[T]; msg: owned T)
12:34:09Araqand 'owned' is different than today's owned
12:35:17Araqfirst of all, there is no conversion from 'owned ref T' to 'ref T', this gets rid of the x.weakRefs == 0 check in the destructor
12:35:23Araqso it cannot fail at runtime
12:36:59Araqand secondly, you can recover ownership via a conversion, recover(x) where 'x' has certain properties
12:37:19*audiophile_ joined #nim
12:38:08Araqrecover(x) = true if x is ObjectConstruction(y) and the y vector's expressions have ownership
12:38:38*narimiran joined #nim
12:38:55Araqrecover(x) = true if x is f(y) function call and f's return type is
12:38:59Araqeither owned T
12:39:15Araqor cannot alias anything from y and f is .noSideEffect
12:39:29Araqare the most interesting rules
12:40:11FromDiscord<Clyybber> yeah, like ponys recover block
12:40:27FromDiscord<SirJosh> do macros work well with IDE tooling? can i expect type inference from within vscode if i write this macro?
12:40:45FromDiscord<Clyybber> Araq: Basically own it by making sure no one else aliases it
12:41:10Araqyeah. and you can create singly linked lists but not doubly linked lists, yay
12:41:16Araq:-)
12:41:33FromDiscord<Clyybber> I mean we can still have a recover for runtime
12:41:43FromDiscord<Clyybber> Araq: Btw did you see my previous message?
12:41:47Araqno
12:42:03FromDiscord<Clyybber> You special case for vars in your cursorifier PR right?
12:42:15AraqI had to
12:42:28FromDiscord<Clyybber> But for vars should be lent anyways, so we could have a general rule
12:42:37FromDiscord<Clyybber> that lent assignments create a cursor when possible
12:42:44FromDiscord<Clyybber> Otherwise COW
12:42:50Araqmeh
12:43:16shashlickRika: the plugin monitoring thread simply finds the plugins to load and exits with -d:binary
12:43:20FromDiscord<Clyybber> I mean lent and cursor are the same thing in essence
12:43:30FromDiscord<Clyybber> So it makes sense IMO to finally unify them
12:43:35shashlickThere's no monitoring for changes or compiling plugins
12:43:49Araqbefore we do anything like that 'lent T' must be 'T' in the backend and not 'ptr T'
12:44:00shashlickSo good for production or no hot code reloading
12:44:15Araqor rather it must be "T or ptr T, depending on what it more efficient like parameter passing"
12:44:21FromDiscord<Clyybber> Araq: Yeah
12:44:59Araqand once we have that, we can use more 'lent' inside the compiler. you're right that cursor and lent is the same
12:46:02Araqanyway, now that we have cursor inference we cannot do runtime RC checking for isolated graphs...
12:46:23FromDiscord<Clyybber> Hmm,
12:46:40FromDiscord<Clyybber> although we could permit the recover block only if no lent/cursors of its contents exist
12:46:50Araqnot anymore, consider: let x {.cursor.} = root; send(root); x.field = "mutation!"
12:47:06FromDiscord<Clyybber> Does send consume root?
12:47:16Araqyes
12:47:24FromDiscord<Clyybber> Then thats illegal code IMO
12:47:39FromDiscord<Clyybber> because x outlives root
12:47:41Araqtrue
12:47:59Araqmaybe I'm wrong
12:48:07AraqI think I can construct an example though
12:49:51icyphoxWhat am I doing wrong here? https://termbin.com/dcy7
12:50:26Zevv" Annotate the proc with {.gcsafe.} to get extended error information"
12:50:51icyphoxIt worked just fine before...
12:51:41icyphoxHuh. That fixed it? I'm so confused.
12:52:56FromDiscord<Shucks> Nimpretty's line wrapping is that weird sometimes.
12:53:18FromDiscord<Shucks> Imo code gets less readable as before
12:54:01FromDiscord<lqdev> don't use nimpretty :P
12:54:17FromDiscord<lqdev> am i the only one whose code doesn't need a prettifyer?
12:54:26FromDiscord<impbox> nim is pretty as is
12:55:26*silvernode quit (Ping timeout: 265 seconds)
12:55:42federico3I use nimfmt
12:56:00FromDiscord<Shucks> agree but I like the idea of having some "same" formatting over all my project files
12:59:00FromDiscord<SirJosh> sent a code paste, see https://play.nim-lang.org/#ix=2rRC
12:59:01Oddmongeris it possible to have the last char of a string without computing its len first ?
12:59:06FromDiscord<SirJosh> (edit) 'https://play.nim-lang.org/#ix=2rRC' => 'https://play.nim-lang.org/#ix=2rRD'
12:59:17FromDiscord<Rika> shashlick: oh wow that's nice, does it have to be on another thread though in that case?
12:59:32FromDiscord<SirJosh> oddmonger: don't nim strings feature both a nul teminator `\0` and length?
12:59:48FromDiscord<impbox> Oddmonger myString[^1] ?
13:00:05shashlickRika: honestly it doesn't have to
13:00:07Oddmongerah nice !
13:00:11Oddmongerthank you
13:00:16*vicfred joined #nim
13:00:27shashlickOpen to PR's to remove threading in that case
13:00:43FromDiscord<Rika> Also nim strings don't need to compute length since it's stored with the char ptr internally afaik
13:00:57shashlickIf -d:binary, just call the monitoring thread as a regular proc
13:00:58FromDiscord<Rika> shashlick: I'll see if I can make one :P
13:01:12FromDiscord<Rika> But not today, bout to sleep lol
13:01:15FromDiscord<Rika> See you
13:01:44FromDiscord<impbox> Oddmonger https://nim-lang.org/docs/system.html#%5E.t%2Cint
13:01:55shashlickRika: sleep well
13:02:01FromDiscord<impbox> it's just a shorthand for using the length
13:02:35Oddmongeryes but i can use directly on a trimmed string
13:02:45*endragor joined #nim
13:02:54FromDiscord<impbox> yep, it's nice
13:04:54Oddmongerdoesn't seem good : var is_question = (captureBetween(sentence, " ", " "))[^1] == '?'
13:07:49Oddmongerah cannot do that
13:09:35Oddmongerit would return empty string if two or more consecutive spaces at the beginning (not speaking of spaces between words)
13:10:50*endragor quit (Remote host closed the connection)
13:13:24FromDiscord<SirJosh> sent a code paste, see https://play.nim-lang.org/#ix=2rRI
13:13:45FromDiscord<lqdev> that's not how you construct an option btw
13:14:02FromDiscord<lqdev> you just do `none(MyType)`
13:14:15FromDiscord<SirJosh> oh that works?
13:14:27FromDiscord<lqdev> try `newCall(bindSym"none", yourType)`
13:14:27FromDiscord<Clyybber> @SirJosh no problem, you can use quote
13:14:46AraqClyybber: so what do you think? sound?
13:14:47FromDiscord<lqdev> it works because `none` accepts a typedesc
13:14:58FromDiscord<Clyybber> Araq: I think so yeah
13:15:00FromDiscord<SirJosh> what's quote?
13:15:11FromDiscord<SirJosh> and i will try that ty lqdev
13:15:19FromDiscord<lqdev> @SirJosh this is quote: https://nim-lang.org/docs/macros.html#quote%2Ctyped%2Cstring
13:15:26Araqwriting an RFC then...
13:15:30FromDiscord<SirJosh> OH!
13:15:33FromDiscord<SirJosh> that's SO HANDY
13:15:40FromDiscord<SirJosh> sweet
13:15:56FromDiscord<lqdev> also if you want to construct an AST that doesn't have a dedicated proc, you can just use `newTree`, like so: `newTree(nnkBracketExpr, ident"mySeq", newLit(1))`
13:16:12FromDiscord<lqdev> results in `mySeq[1]`
13:17:46FromDiscord<Shucks> heh?
13:17:51FromDiscord<Shucks> sent a code paste, see https://play.nim-lang.org/#ix=2rRM
13:26:20*l1x quit ()
13:26:42*l1x joined #nim
13:37:36*vicfred quit (Quit: Leaving)
13:40:37FromDiscord<juan_carlos> Theres no Documentation for the notation `variable[]` ?, not the addr the `[]` thingy.
13:40:48FromDiscord<Rika> @Shucks bitwise not
13:41:03FromDiscord<Rika> Aaaa I really should be sleeping aaaaa
13:41:24*Trustable quit (Remote host closed the connection)
13:59:40*endragor joined #nim
14:04:28*xet7 quit (Quit: Leaving)
14:06:45icyphoxShould I explicitly pass a string to `initOptParser()`?
14:06:59icyphoxBecause it doesn't seem to be seeing my command line params.
14:07:11*endragor quit (Remote host closed the connection)
14:08:41icyphoxAh, nevermind. I forgot to iterate using `p.next()`
14:08:42icyphoxHeh.
14:09:59*audiophile joined #nim
14:13:23*audiophile_ quit (Ping timeout: 240 seconds)
14:13:31*audiophile is now known as audiophile_
14:22:33*theelous3 joined #nim
14:32:20*vicfred joined #nim
14:36:51*xet7 joined #nim
14:37:33*hoijui joined #nim
14:48:45FromGitter<ynfle> @Shucks https://nim-lang.org/docs/system.html#not%2Cint
14:55:34*narimiran quit (Ping timeout: 240 seconds)
15:00:13*pangey quit (Ping timeout: 272 seconds)
15:01:35*marnix quit (Read error: Connection reset by peer)
15:02:13Araqjuan_carlos: I think "pointer derefencing" is in the manual
15:03:56FromDiscord<juan_carlos> True, seen it.
15:04:19FromDiscord<juan_carlos> Is very good documentation actually.
15:05:09*pangey joined #nim
15:05:23*kungtotte quit (Read error: Connection reset by peer)
15:06:10*kungtotte joined #nim
15:08:07*sagax joined #nim
15:19:40*synshroud_ joined #nim
15:21:14*synshroud quit (Ping timeout: 240 seconds)
15:22:56*zielmicha__ quit ()
15:23:09*zielmicha__ joined #nim
15:23:29*lritter joined #nim
15:25:12*maier_ quit (Ping timeout: 256 seconds)
15:26:18FromGitter<ynfle> @PMunch Do I need to install a another plugin to get syntax highlighting and tab completion with your setup for nimlsp? I followed the instructions in the README
15:31:02*Vladar quit (Remote host closed the connection)
15:43:28FromDiscord<treeform> @dom96 My ws is based on niv's in that I looked at how they did some stuff, but its not a fork. It started out as a bunch of fixes to niv's code, then I rewrite it. I must give niv credit they they did figure out some confusing stuff so that I would not have to.
15:44:36*endragor joined #nim
15:48:31leorize@ynfle you need an another plugin for syntax highlighting
15:48:39*marnix joined #nim
15:49:54FromGitter<ynfle> Tab completion doesn't work and `:LspStatus` gives `nimlsp: not running`
15:51:27leorizeyou need a file type plugin
15:51:49leorizewithout one your lsp client might not know when to run nimlsp
15:52:01leorizeuse zah/nim.vim since you're on vim
15:55:06bungnimlsp does not support syntaxhight
15:55:35bungcheck Supported Protocol features section in readme
15:56:31FromGitter<ynfle> @leorize, in the (README)[https://github.com/PMunch/nimlsp#vim] he shows the setup using prabirshrestha/vim-lsp
15:56:49leorizeyes, but you need a file type plugin too
15:56:58FromGitter<ynfle> Ok
15:57:00leorizelsp doesn't cover all of integration to the editor
16:05:34*solitudesf quit (Ping timeout: 240 seconds)
16:15:26Araqhttps://github.com/nim-lang/RFCs/issues/244 feedback very welcome
16:15:28disbotāž„ 'isolated' data for Nim ; snippet at 12https://play.nim-lang.org/#ix=2rSC
16:16:17Araqit's the final ARC/ORC related RFC, finally addressing multi threading aspects
16:26:28*oriba joined #nim
16:29:04shashlickhow important is lz4 support
16:37:08leorizeshashlick: ?
16:42:06shashlickso i can include lz4 in nimarchive
16:42:28shashlickright now i only have zlib, lzma and bzlib
16:44:43leorizemaybe you should make it so that users can configure which backends to include?
16:45:09shashlickbut that would mean creating multiple binaries with or without the required backends
16:45:43shashlickI started out with libarchive as compiled by http://binarybuilder.org but it doesn't have static binaries since Julia doesn't really care for those
16:45:56shashlickso I am creating binaries using their framework with static binaries
16:45:59shashlickso now I can decide what deps to include
16:46:13shashlickhttps://bintray.com/genotrance/binaries/
16:47:47leorizeyou can provide a default set that contains everything
16:48:06leorizethen if developers would only use a subset, fallback to compilation?
16:48:09shashlicki wanted to include zstd and lz4 but zstd doesn't have static libs for windows
16:50:38leorizestatic libs doesn't exist on windows afaik
16:50:51leorizeon windows go dynlib all the way, devs know how to deal with that
16:51:18shashlickgcc's .a files work well on windows
16:52:06shashlickall this is focused on choosenim since it needs to extract zip, xz and gz files
16:52:20shashlickand we have all this as static libs across OS
16:52:35shashlicki'm just wondering how much nim community cares about zstd and lz4
16:52:52leorizehttps://packages.msys2.org/package/mingw-w64-x86_64-zstd?repo=mingw64
16:52:59leorizemsys2 provides .a
16:55:22shashlicknice find
16:55:27shashlickbut how do you extract the zst file šŸ˜„
16:56:01*marnix quit (Ping timeout: 264 seconds)
16:56:12leorizeuse a libarchive with zstd support :P
16:56:55shashlicknice work mingw
16:58:28shashlicklooks like i need to add mingw repo support to nimterop as well
16:59:16shashlicktoo many dependencies though
16:59:27shashlickwill end up downloading many other mingw libs
17:00:26leorizeI'm seeing the story of how JuliaBinaryWrappers repo come to life repeating :P
17:02:11*abm quit (Ping timeout: 240 seconds)
17:03:46shashlickya but they go beyond windows
17:04:10FromGitter<alehander92> "<juan_carlos> Async needs more Poland."
17:04:14FromGitter<alehander92> i just found that
17:04:20FromGitter<alehander92> and i really want to understand it
17:04:27FromGitter<alehander92> ah it's probably a reference to dom96
17:04:50FromDiscord<dom96> lol
17:04:59FromDiscord<dom96> Someone said "async needs more polish"
17:05:02FromDiscord<dom96> I think that's why
17:05:04leorizeshashlick: the idea is that all binaries have one authorative source :P
17:09:14*bung quit (Quit: Lost terminal)
17:13:51*fredrikhr quit (Ping timeout: 240 seconds)
17:17:11*marnix joined #nim
17:19:25*NimBot joined #nim
17:22:04FromDiscord<slymilano> Good afternoon Nim gang! Discord is terrible with search, was my "bug" a bug with Nim? Can't figure out why it works on Windows, and doesn't on Mac.
17:22:15FromDiscord<slymilano> @Varriount ^
17:54:51FromDiscord<Varriount> @dom96 ^
17:56:02FromGitter<alehander92> ahhhh but it works in two meanings
17:56:08FromGitter<alehander92> awesome
18:00:00*hoijui quit (Ping timeout: 256 seconds)
18:17:53FromDiscord<--HA--> Can someone recommend a good way to me to create a string filled with a variable number of spaces ` `? Currently I have a for loop 0 .. numberOfSpaces and call .add(" ") on my string var. Is that ok?
18:18:35FromDiscord<juan_carlos> strutils.repeat
18:20:34FromDiscord<--HA--> Perfect! Thanks
18:22:33FromDiscord<juan_carlos> YW
18:28:34*marnix quit (Ping timeout: 240 seconds)
18:29:04*hoijui joined #nim
18:32:30FromDiscord<dom96> @Varriount hrm?
18:32:47FromDiscord<dom96> oh, you're pointing me to @slymilano. @slymilano can you give context?
18:33:35FromDiscord<slymilano> definitely, thank you for your time! this works perfectly on windows but the crawlers don't actually run on mac. https://github.com/sergiotapia/torrentinim/blob/master/src/torrentinim.nim
18:33:57FromDiscord<slymilano> server.serve() has a runForever() at the end so it does the expected thing, but only on Windows, not on Mac.
18:36:58FromDiscord<dom96> that's a pretty big app, can you create a shorter example of what you're finding to be wrong?
18:39:28disruptekalehander92: i'm making progress on cps.
18:40:02disruptekprobably will start the poc web-server today.
18:45:46disruptekiirc, i ran torrentinim just fine on linux.
18:49:16*synshroud joined #nim
18:50:14*synshroud_ quit (Ping timeout: 240 seconds)
18:59:45FromDiscord<slymilano> thanks disruptek, yeah so now confirmed windows and linux work, mac it doesn't.
19:00:00FromDiscord<slymilano> @dom96 i'll write a smaller example this weekend, hope it helps discover a bug somewhere in Nim
19:06:00*marnix joined #nim
19:08:21*tane joined #nim
19:31:27FromDiscord<Shucks> Anything else I can do to push performance else of '--opt:speed'?
19:32:26FromDiscord<Vindaar> `-d:danger`?
19:32:37FromDiscord<Shucks> kills it ;D
19:35:23*oddp_ quit (Quit: quit)
19:44:58*bung joined #nim
19:44:59*solitudesf joined #nim
19:45:51federico3is the c2nim doc not build in an html page? https://nim-lang.org/docs/tools.html
19:46:33*narimiran joined #nim
19:49:53shashlickhttps://medium.com/better-programming/a-python-substitute-i-tried-out-the-best-programming-language-youve-never-heard-of-9e29cd1893c0
19:54:26FromDiscord<dom96> ooh
19:56:10FromDiscord<Clyybber> disruptek: A webserver with CPS?
20:10:32*marnix quit (Ping timeout: 246 seconds)
20:10:36*nikita` quit (Ping timeout: 258 seconds)
20:11:53*bung quit (Quit: Lost terminal)
20:12:03*opal quit (Remote host closed the connection)
20:12:04*oriba quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
20:13:14*nikita` joined #nim
20:13:41*opal joined #nim
20:16:33FromDiscord<Shucks> How could I open a file with fmAppend but replace it if it exists already?
20:20:01*synshroud quit (Ping timeout: 264 seconds)
20:20:06leorizehuh?
20:20:23leorizethen use fmWrite?
20:20:41leorize"append" means that you write extra to the end of an existing file
20:21:37*synshroud joined #nim
20:22:35leorizeand if you want to replace the file then it doesn't sound "append"-y at all :P
20:22:51*audiophile_ is now known as BlameTheRoomba
20:24:19disruptekclyybber: yeah
20:24:48FromDiscord<Shucks> oh. I was confused. writeFile actually reopens the file everytime so I thought fmAppend would be required lol
20:27:35*Senketsu joined #nim
20:32:06*oddp joined #nim
20:43:14FromDiscord<Clyybber> disruptek: Damn, awesome I'm hyped
20:44:15FromDiscord<Clyybber> disruptek: you didn't push your latest work yet right?
20:44:34rayman22201Child Protective Services? disruptek is always getting in trouble :-P
20:45:16*alehander92_ quit ()
20:45:38*alehander92_ joined #nim
20:47:26FromDiscord<Shucks> > https://medium.com/better-programming/a-python-substitute-i-tried-out-the-best-programming-language-youve-never-heard-of-9e29cd1893c0ā†µ@shashlick[IRC]#0000 wondering if he compiled with `--opt:speed` :p
20:47:49FromDiscord<Rika> prolly didnt
20:48:49FromDiscord<lqdev> @Shucks you can use `--stacktrace:off` to increase performance
20:48:55FromDiscord<lqdev> but the consequence is rather obvious
20:49:09FromDiscord<Shucks> lets give it a try
20:51:14*hoijui quit (Quit: Leaving)
21:05:00*rayman22201 quit ()
21:05:14*rayman22201 joined #nim
21:16:59*Cthalupa quit (Ping timeout: 240 seconds)
21:17:00*lmariscal0 quit (Quit: I'm Out!)
21:17:02FromGitter<Technisha> Discord is down so I'm gonna ask my stupid questions here-
21:17:07*FromDiscord quit (Remote host closed the connection)
21:29:02leorize@iffy have you figured out the asyncdispatch issue?
21:31:06*narimiran quit (Ping timeout: 258 seconds)
21:35:04*FromDiscord joined #nim
21:35:17*Cthalupa joined #nim
21:49:00PrestigeAre there any built-in macro utils?
21:49:22PrestigeLike high level utility functions
21:51:04leorizenope but
21:51:07leorize!repo macroutils
21:51:08disbothttps://github.com/PMunch/macroutils -- 9macroutils: 11A package that makes creating macros easier 15 10ā­ 1šŸ“
21:51:24*sagax quit (Quit: Konversation terminated!)
21:51:48*sagax joined #nim
21:52:26shashlick!repo gara
21:52:26disbothttps://github.com/alehander92/gara -- 9gara: 11 15 71ā­ 7šŸ“
22:05:26*Senketsu quit (Read error: Connection reset by peer)
22:22:18*krux02 quit (Remote host closed the connection)
22:24:50*solitudesf quit (Ping timeout: 260 seconds)
22:34:56*sz0 joined #nim
23:01:33*tane quit (Quit: Leaving)
23:40:30*canen joined #nim
23:57:36*Zevv quit (Remote host closed the connection)
23:57:51*Zevv joined #nim
23:57:52*Zevv quit (Changing host)
23:57:52*Zevv joined #nim