<< 28-11-2017 >>

00:01:49dom96Wouldn't `reCase` be a better name? :P
00:12:16*couven92 quit (Quit: Client Disconnecting)
00:14:49Araq'reCase' is cryptic
00:26:23Araq:test: works :-)
00:26:31Araqand already found some issues in our tutorials
00:51:42*MJCaley joined #nim
00:54:06shashlickis it possible in nimscript to detect whether nim is 32-bit or 64-bit
00:54:16*noonien joined #nim
00:55:15dom96have you tried the normal way?
00:55:35Araqsystem.targetCpu or something
00:55:40AraqI added it recently
00:56:14subsetparkquit committing to nim-lang/Nim for a while, Araq... I am reprovisioning a service and it recompiles every time #head is different!
00:57:08Araqwhat does that mean?
00:57:29subsetparknothing, don't worry about it...
01:01:06dom96you should probably consider pinning to a commit
01:07:31shashlickaraq: there's system.hostCPU
01:08:34Araqnimscript.nim has buildCPU
01:12:20shashlickneat, not in stable though - for some reason, docopt crashes on #head so I'm stuck with stable
01:14:28dom96shashlick: please report it
01:25:04FromGitter<Quelklef> What's the best way to restrict a number to a positive real?
01:26:19Araqassert()
01:26:47FromGitter<Quelklef> no way to do it with types? I want to restrict a parameter
01:27:08*MJCaley quit (Quit: MJCaley)
01:27:17subsetparkI think that's a dependent typing kind of thing
01:27:28*endragor joined #nim
01:28:05Araqrange[1.0 .. Inf]
01:28:18AraqI don't know if I ever implemented that lol
01:28:29FromGitter<Quelklef> yeah that's system.Positive iirc
01:28:35FromGitter<Quelklef> but wouldnt that be only integers
01:29:33Araq"Error: ordinal type expected"
01:29:38Araqstupid compiler...
01:31:45*endragor quit (Ping timeout: 248 seconds)
01:31:53*MJCaley joined #nim
01:32:17*vlad1777d quit (Ping timeout: 248 seconds)
01:35:30FromGitter<Varriount> For integers, wouldn't it be `range[0..high(int)]`?
01:36:03FromGitter<Quelklef> yeah, that's the system.Positive implementation. I was mistaken
01:48:32*skrylar joined #nim
01:49:51*marenz__ quit (Ping timeout: 248 seconds)
01:54:15*byte512 quit (Ping timeout: 258 seconds)
01:55:06*byte512 joined #nim
02:00:52skrylarhandwriting gui code reminds me of how bad that migui clone needs to exist
02:01:13skrylarhave one in nim but it only does linear flows atm
02:07:58*endragor joined #nim
02:10:08*chemist69 quit (Ping timeout: 276 seconds)
02:12:17*endragor quit (Ping timeout: 248 seconds)
02:19:42*Snircle_ quit (Quit: Textual IRC Client: www.textualapp.com)
02:23:33*chemist69 joined #nim
02:25:25*arecaceae quit (Remote host closed the connection)
02:25:44*arecaceae joined #nim
02:29:36*joebo quit (Ping timeout: 246 seconds)
02:38:50*vivus quit (Quit: Leaving)
02:39:25*joebo joined #nim
02:45:42*endragor joined #nim
02:50:46*MJCaley quit (Quit: MJCaley)
02:56:34shashlickdom96: looks like it's fixed in #head, I was out of date
02:58:35*Jesin joined #nim
03:31:23*ftsf quit (Read error: No route to host)
03:32:33skrylari still think using head is a bad idea
03:32:42*ftsf joined #nim
03:37:19*skrylar_ joined #nim
03:38:54*endragor quit (Remote host closed the connection)
03:44:14*skrylar_ quit (Ping timeout: 255 seconds)
03:53:11*dddddd quit (Remote host closed the connection)
04:06:59shashlickI'm usually forced to use head for c2nim
04:10:01*SenasOzys joined #nim
04:12:01*endragor joined #nim
05:04:22*EastByte quit (Ping timeout: 252 seconds)
05:06:00*EastByte joined #nim
05:42:14*endragor quit (Remote host closed the connection)
05:42:46*skrylar_ joined #nim
05:52:33*skrylar_ quit (Ping timeout: 248 seconds)
06:03:48*zippyy joined #nim
06:07:00*endragor joined #nim
06:07:08*endragor quit (Remote host closed the connection)
06:07:37*endragor joined #nim
06:18:41*zippyy quit (Ping timeout: 248 seconds)
06:23:49*BitPuffin|osx joined #nim
06:24:00*skrylar_ joined #nim
06:33:55*nsf joined #nim
06:41:21alexdaywhy isn't yaml inheritance not working with nimyaml
06:41:41alexday<< operator
06:43:27FromGitter<Varriount> @dom96 @Araq Amy word from @zah on vtrefs and vtptrs?
06:43:32FromGitter<Varriount> *any
06:45:03*zippyy joined #nim
06:49:36*zippyy quit (Ping timeout: 248 seconds)
06:57:28alexdayoh its actually my mistake, the << is not matching my object type declaration :( . what to do
06:58:36alexdayhttps://w.awalgarg.me/d/hURa73C_4 https://w.awalgarg.me/d/8jNEov4tz these are the yaml and code
07:00:16alexdayhttp://yaml.org/type/merge.html not sure how to construct object for !!merge
07:00:40alexdayhopefully the nimyaml tests have something :P
07:02:14alexday:(
07:46:52*Vladar joined #nim
07:52:32*SenasOzys quit (Ping timeout: 248 seconds)
07:59:34*skrylar quit (Quit: Leaving)
08:02:20*SenasOzys joined #nim
08:32:08*sendell joined #nim
08:34:21*PMunch joined #nim
08:35:00sendellmy brand new forum account seems to be "moderated" do I need to do something special? :)
08:40:42alexdaycan someone please help me with the yaml parsing
08:48:53alexdayin https://nimyaml.org/yaml.taglib.html#yTagYaml
08:48:59alexdayproc initExtendedTagLibrary(): TagLibrary {.
08:49:01alexdayraises: [], tags: []
08:49:03alexday.}
08:49:10alexdaywhat do I have to do with this?
08:57:19*floppydh joined #nim
09:00:42alexdayhttps://nimyaml.org/schema.html#standard-yaml-types meeeeennnnnn its not supported
09:00:46alexdaysheeeet
09:01:18*couven92 joined #nim
09:03:24alexdaywhen will this support come? merging hash?
09:07:10alexdayduh
09:07:12*alexday left #nim ("WeeChat 1.8")
09:20:54*xkapastel quit (Quit: Connection closed for inactivity)
09:32:28*gokr joined #nim
09:38:41*nvl joined #nim
09:39:37nvlwhat are the opinions regarding shrinking the stdlib and making the libs available as a nimble package something like rust does and crystal is also planning to do
09:39:40nvlhttps://github.com/crystal-lang/crystal/issues/5215
09:40:57nvlI personally prefer a batteries-included stdlib but if it helps the libs to evolve independently of the compiler releases, maybe it is worth some consideration
09:42:27*floppydh quit (Ping timeout: 240 seconds)
09:44:07*floppydh joined #nim
09:44:15gokrTihi, playing with asciinema - pretty darn neat. Made a small movie about installing Nim and then building spry: https://asciinema.org/a/149847
09:44:24gokrPerhaps something one can use on the nim homepage too?
09:44:55gokrI am going to use this embedded in HTML slides, for a presentation on spry.
09:45:44*nvl quit (Ping timeout: 260 seconds)
09:45:45gokr(if you watch it - a hint - use arrow right repeatedly to skip ahead when it compiles Nim etc)
09:55:12FromGitter<andreaferretti> @nvl It is ok to have batteries included, just for things that are actually used
09:55:22FromGitter<andreaferretti> An HTTP client is batteries included
09:55:37FromGitter<andreaferretti> a library to parse roman numerals is not
09:55:43FromGitter<andreaferretti> NIm used to have both
09:56:03FromGitter<andreaferretti> It can have batteries included *and* still have the stdlib trimmed down
09:56:06*zippyy joined #nim
10:00:45*zippyy quit (Ping timeout: 250 seconds)
10:02:46*ShalokShalom quit (Remote host closed the connection)
10:19:39*miran joined #nim
10:25:01skrylar_i suppose for handling web stuff we have jester. wonder how 'production ready' it is
10:25:58skrylar_dom96, have you tried running jester through a fastcgi situation?
10:26:18skrylar_i remember wsgui being a very nice thing for managing a cluster of fastcgi processes
10:36:31FromGitter<mratsim> @nvl maybe create a RFC.
10:41:08FromGitter<mratsim> IMO some things are moved out (basic2d/3d), some things are clearly issues (regexp, re/nre), some things are confusing (asyncdispatch, asyncnet, asynchttpserver, what do I need?). I don't care about the stdlib size as long as everything is properly maintained and reasonably fast.
10:44:26FromGitter<mratsim> Also compared to Rust/Crystal, Nim compiles extremely fast (due to LLVM) so there is less need to separate them.
10:45:14skrylar_rust also does an awful lot of things in those compile phases
10:45:26FromGitter<mratsim> *due to LLVM meaning LLVM-based language are slow to compile (even though clang is usually faster than GCC on C code :? )
10:45:33skrylar_they rely on the "sufficiently advanced compiler" pretty hard for everything
10:46:22skrylar_it is ironic that lisp-style metaprogramming is the most powerful yet fastest to compile, compared to all the silly shit in other langs (ex. C++, which isn't as powerful but takes significantly longer)
10:46:32skrylar_although c++ would likely not take as long if they would stop deferring blocks
10:47:07skrylar_somehow every random-ass feature under the sun makes it in those C++0xNever updates but the one that matters "stop compiling all files as 200+mb of text using a slow ambiguous parser" never does
10:47:11skrylar_endrant
10:47:56*JappleAck joined #nim
10:49:02FromGitter<mratsim> How fast is D compilation by the way?
10:49:38Araqaccording to blog posts, on par with Nim
10:49:47Araqsometimes faster than Nim, sometimes slower
10:50:20AraqI haven't even started to optimize the Nim compiler btw...
10:51:17Araqthat said, most of my ideas to speed it up significantly require pervasive refactorings :-)
10:52:57skrylar_mratsim: D1 compiled pretty quick
10:53:17skrylar_Contrary to what the baffoons in #cpp say, most of the compile time is NOT optimization
10:53:34skrylar_The compile time is that C++ grammar is ambiguous and requires multiple passes and symbol table lookups
10:53:40euantorDMD is pretty quick, about the same as Nim
10:53:46skrylar_gdc is also quick
10:53:47euantorLMD (the LLVM based D compiler) is slow
10:54:02skrylar_Compounded by textual inclusion which means, take a look at the size of those precomp'd headers some day. or better yet, gcc -E some files
10:54:20skrylar_It's actually compiling 80mb text files every .cc file
10:54:30euantorAt the end of my blog post "Faster command line tools in Nim", I did a quick `time` of compilation speeds: https://www.euantorano.co.uk/posts/faster-command-line-tools-in-nim/
10:54:32skrylar_versus pascal which is compiling ... a 4kb file
10:54:42FromGitter<mratsim> Wow lol, that's crazy.
10:55:48skrylar_well to be fair python is bad in all ways :)
10:55:52FromGitter<mratsim> That's template inlining gone wrong.
10:56:28skrylar_it boggles my mind how python can be so slow AND so big
10:56:46FromGitter<mratsim> Python is interpreted though. If benchmarks included compilation-time + runtime it could be faster than C++ :P.
10:56:46dom96nvl: that is the plan, the question is which modules should stay and which should go
10:56:47skrylar_I understand and accept the slowness in that everything is a hash table upon hash tables. But shouldn't the implementation of that be basic (as it is in Lua)?
10:56:47Araqskrylar_, I think C++'s grammar is not really an issue, the header files are though
10:56:58skrylar_Araq, the grammar isn't doing them any favors
10:57:07skrylar_it's just that it compounds with the header files
10:57:22Araqc2nim parses most of C++
10:57:25skrylar_if they had pascal units they could sideline the bad grammar, but they always fucking defer that feature
10:57:50AraqI think I know a little about C++'s grammar :P
10:58:02skrylar_i'm not saying you don't
10:58:12skrylar_it's just inevitable that freepascal is going to parse faster than c++
10:58:15FromGitter<mratsim> By the way: another topic where Nim could shine: https://www.reddit.com/r/programming/comments/7fwlzw/what_can_you_make_with_ada/
10:58:21skrylar_it only needs one pass and never stops to disambiguate symbols
10:58:51skrylar_ah well. i kinda liked ada. and dylan
10:59:16Araqit's like x86. the cruft isn't that bad with proper engineering
10:59:59Araq3 frontend passes and 20 backend passes
11:00:00Araqvs
11:00:07Araq1 frontend pass and 20 backend passes
11:00:38Araqworse is that the grammar is actually also really bad for humans to understand
11:00:53FromGitter<mratsim> And in the programing by contract there is the Udiknedormin lib post to upvote at the bottom: https://www.reddit.com/r/programming/comments/7fxz1v/introduction_to_contract_programming/
11:01:56Araqyou can't compare to FPC since it doesn't have 20 backend passes
11:02:57skrylar_does it need them, though?
11:02:59Araqin fact, last time i checked it didn't even have an IR, instead they use OO polymorphism for their code generators
11:03:17Araqwhich is a big WTF for me lol
11:03:34skrylar_i remember when their amd64 support was new i tried to use it and it did bad things to structs
11:03:39skrylar_otherwise it seemed to work great
11:03:57skrylar_but then i liked delphi so
11:04:13Araqit does its job but don't expect useful CSE or vectorization
11:05:23skrylar_it amazes me that they are still around
11:05:42dom96mratsim: You raise a good point. Should I make breaking changes and split up the async modules into async/future async/dispatcher async/net async/httpserver etc?
11:05:58Araqno ... or maybe yes.
11:06:04Araqbut have a migration path
11:06:13skrylar_alternatively dom96 could make it a nonbreaking change by having the old module import and export the new ones and put up a deprecation flag
11:06:21dom96The migration path would need to be mandatory (as my book depends on this pretty severely)
11:06:21skrylar_stanley decided not to break all the things
11:06:40Araqwell no, the book is canon
11:06:45dom96:D
11:06:47Araqdon't deprecate what's in the book
11:06:59Araqjust improve the docs instead
11:07:09Araqas I said, "body" is filled for POST
11:07:15Araqnot everybody knows this.
11:07:21dom96Araq: Have you changed your mind about async/blah style imports?
11:07:45FromGitter<mratsim> Yes agree with Araq. I don't use those but looking from the outside I don't know which one I would need at first glance.
11:07:47Araqyes because we now have import x / [y, z]
11:08:04dom96wish we had that earlier :)
11:08:15Araqme too.
11:08:43dom96but on the other hand, Python modules are also very "flat"
11:09:05dom96mratsim: "at first glance" would require a rename
11:09:14dom96If you're just glancing you won't read the docs
11:10:46dom96Araq: okay, so to make that more clear we need more examples
11:11:27Araqwe also need the "cook book" and "explanation" parts in our docs
11:11:57dom96A cook book is what I mean by examples I think
11:12:13dom96"Reading the body of a POST request"
11:12:16dom96would be a "recipe"
11:12:18Araqasync needs an "overview" page
11:13:50dom96We need feedback from the community. I rarely use lib.html for example because I have memorised all the modules by now.
11:14:10dom96So please, everyone, give us ideas on how to make it better
11:14:29Araqread that blog post that was shared here in #nim
11:14:30dom96One thing is definitely to remove this Nimble script from lib.html and link to nimble.directory
11:14:35Araqdon't remember the link
11:15:02dom96Which one? https://www.euantorano.co.uk/posts/faster-command-line-tools-in-nim/?
11:15:27dom96euantor: your code snippets aren't formatted properly btw
11:16:20euantoryeah, it's a problem with Hugo running on the service I'm using
11:16:36euantorIt formats them correctly locally, but I then push to netlify and they rebuild it and break it
11:16:48euantorI'm going to move it to my own server this week, just have to find the time
11:17:50Araqmratsim: can you share that link again?
11:18:39FromGitter<mratsim> Yes
11:19:03FromGitter<mratsim> This one? https://www.divio.com/en/blog/documentation/
11:20:33Araqyes, thanks
11:21:27dom96Nice.
11:21:40dom96Sadly, after writing a book I am mostly tired of writing docs :)
11:22:24FromGitter<mratsim> We have the technical reference (the manual, the index, nim doc). We have a tutorial. Examples/cookbook/how-to are sometimes there, sometimes not but only basics, explanation are in Araq's forum posts and GitHub replies ;).
11:22:39federico3*cough* #6492
11:24:29FromGitter<mratsim> I think the epitome of Opensource "how-to" is Archwiki.
11:27:41dom96Yeah, for some reason the GitHub wiki doesn't inspire as much will to contribute
11:27:53dom96Perhaps we should set up mediawiki again (yep, we used to have one ;))
11:28:08cremSomehow I find nim documentation hard to navigate.
11:29:03federico3dom96: IMO being able quickly show docs updates could also help #6781
11:29:44cremI may make sense also to set up a code search for all nim projects/packages like https://codesearch.debian.net/. Because it's often more useful to look into sources than to doc.
11:30:00livcddom96: i am still reading your book :)
11:30:24federico3crem: other than searching on GH?
11:30:27cremSources include doc anyway, and also they have some snippets to copy, as there's no much stackoverflow for nim.
11:31:07cremGithub code search is awful. I still didn't find how can I just find by filename.
11:31:47*dexterk quit (Read error: Connection reset by peer)
11:31:49cremI to look into system.nim. How long it takes to find it?
11:32:32dom96crem: press 't'
11:32:34cremAlso when you google for nim or nimlang, github is not on the first page for me.
11:32:38cremt
11:32:46dom96on github...
11:32:50dom96to search by filename
11:35:44cremOk, didn't know that. Still missing much on search. When I use some lib (for example, sdl2), first it takes 1 minute to find it's github repo, then a minute for inconvenient search. Only to know what sdl2.createWindow returns in this version of wrapper.
11:36:34cremAlthough maybe if suggest worked in sublime, it wouldn't be such a problem, probably then it could just open a library for identifier under cursor.
11:38:02cremBut 't' will improve things a lot I guess, I'll try.
11:39:28Araqwell tell us what to do :P
11:39:41Araq"seach is bad" doesn't lead to any immediate actions
11:40:14Araq(which search? why is it "bad"?)
11:41:02cremSet up an instance of https://github.com/Debian/dcs for nim packages? :)
11:41:04crembut
11:41:31cremactually there's something which sounds reasonable easy, but will help a lot.
11:42:20cremMake it possible to pass search term as a parameter/fragment of this URL https://nim-lang.org/docs/lib.html so that search starts immediately at loading
11:42:36cremThat way I can set that up as a search engine in browser
11:43:13cremand type e.g. "nim exit" so that "exit" is searched immediately
11:56:37FromGitter<mratsim> Haskell is not bad for search within the whole packages ecosystem, but before getting there, targeted tutos at "Nim for the web", "Nim for games", etc might be just enough so that people have the keywords to search for.
11:59:31cremNim is great for ludum dare-style games indeed. Maybe some set of tutorials for people for which nim is the first language and they want to write a game would be nice indeed. But it does'nt feel like a top priority though.
11:59:52FromGitter<mratsim> documentation is marketing!
12:00:40cremWhat worries me about nim, is that if Araq becomes bored with it, nim will die. Unlike other languages of similar size.
12:00:52FromGitter<mratsim> Actually I would love a “Nim for web documentation” because I want to release a new version of Arraymancer this weekend and the current one page of docs does not fit it anymore :/.
12:01:14FromGitter<mratsim> “What is Nim bus factor"
12:02:07Calinouwe could have a docs.rs-like site for Nim, I guess
12:02:15Calinouhttps://docs.rs/
12:02:42Araqcrem, it continues to be a valid point. any ideas about that? zahary also knows everything but is not as active as me :P
12:02:42livcdcrem: I would not worry about that. Languages can die for whatever reason. Look at what happened / is happening with Perl
12:02:55Calinouyeah, or even Ruby (which is much less popular now)
12:03:03livcdRuby is fine
12:03:33Araqthe number of stdlib vs compiler contributions is a strong indication that the compiler needs to be more accessible
12:03:40livcdRuby seems to be decreasing in popularity and usage because everyone measures against Rails
12:04:05federico3Calinou: what's docs.rs doing?
12:04:07CalinouI still use Jekyll but that's about it
12:04:15Calinou(I find Hugo too difficult to use, even though I tried for 15+ hours)
12:04:18Araqcan we stick to the topic please? Ruby is not Nim.
12:04:21euantornimble.directory creates docs for packages too
12:04:21Calinoufederico3: it hosts documentation of crates
12:04:38Calinouah, I forgot about that site entirely
12:04:45euantorhttps://nimble.directory/docs/pledge
12:05:00euantorIt could be improved upon a bit, but it does do it
12:06:00livcdAraq: sorry :(
12:07:37*itPuffin|osxB joined #nim
12:07:53AraqI'll write some compiler document in the hope it attracts more compiler developers :-)
12:08:49dom96crem: he hasn't become bored in the 10+ years he's been working on it so far, why would he become bored now? :)
12:09:35*BitPuffin|osx quit (Ping timeout: 248 seconds)
12:09:54dom96wow, docs.rs sure is nice
12:10:11*itPuffin|osxB is now known as BitPuffin|osx
12:10:55euantorI like that you can view documentation for different releases - that would be nice to add to nimble.directory for definite
12:11:01cremdom96: I don't know anything about Araq personal life, but for example it happens often that when people have kids, they become much less active otherwise. Or marry. Or something happens with them.
12:11:22dom96crem: well, I'll let Araq fill you in if he wants
12:11:24Araqthese things all have happened to me already :P
12:11:29dom96^^
12:11:42cremThat's good to hear! :)
12:12:03euantorI like some things about Rust's docs that would be very nice to add to Nim's. Things like clicking on names of types returned from functions and jumping to the type definitions are really useful
12:12:52federico3euantor: +1
12:15:40dom96+1
12:17:33miranhttps://devdocs.io/
12:17:44miranit has documentation for nim, and it is searchable
12:19:04*itPuffin|osxB joined #nim
12:19:50FromGitter<mratsim> But documentation for Nim libraries cannot be done there (unless they reach the size of Numpy, bootstrap or whatever)
12:20:17*BitPuffin|osx quit (Ping timeout: 248 seconds)
12:20:29*floppydh quit (Ping timeout: 276 seconds)
12:20:41*itPuffin|osxB is now known as BitPuffin|osx
12:21:11*floppydh joined #nim
12:21:23miranmratsim - i think this is just nim manual in another format
12:22:26mirannow i see - not only manual, some other stuff too, e.g. tutorial
12:37:17Araqeuantor, these things overlap with 'nimsuggest' though and given our limited resources I'd rather improve nimsuggest
12:38:02euantorYep, problem with that is that to use nimsuggest I need to open a terminal or something. I can read docs on a phone or a tablet as long as I have an internet connection
12:38:22euantorIt would be nice to have in the future - I'm not saying somebody should drop everything and implement it right now :)
12:38:47FromGitter<mratsim> Wow I don’t know when it changed but the new features page is much more attractive: https://nim-lang.org/features.html
12:39:16*Snircle joined #nim
12:39:41FromGitter<mratsim> I even learned something new: ⏎ ⏎ ```code paste, see link``` ⏎ ⏎ —> `foreignDep` ? :O [https://gitter.im/nim-lang/Nim?at=5a1d590ce5ed52e26c9a9031]
12:43:23Araqhttps://www.lua.org/source/5.3/lgc.c.html links to types is an old hat
12:43:46Araqit's super nice to have this but it's just a poor man's online IDE
12:44:39Araqit's much simpler to implement than a "show things during edit" though
12:47:28AraqI wonder what tool they use to generate these
12:50:05*floppydh quit (Ping timeout: 255 seconds)
12:50:43euantorI've wondered why GitHub didn't implement such a thing in their code browser, where it would be even more useful
12:51:20*zippyy joined #nim
12:51:35cremAt google for codesearch clang's ast output is used I believe.
12:51:57AraqI dunno, I don't like browsers and prefer to improve the editors
12:52:24Araqhaving to leave the editor to look at some documentation is friction
12:52:44cremEveryone uses different editors. For example there's no way to use nimsuggest in sublime in linux.
12:52:54*floppydh joined #nim
12:53:11dom96while having everything in an editor would be the "perfect solution"
12:53:24FromGitter<mratsim> You can use Aporia :P
12:53:25dom96getting there is tough
12:53:40dom96so we should make easy improvements that will get us 80% of the way there
12:53:42*SenasOzys quit (Ping timeout: 240 seconds)
12:55:22*skrylar_ quit (Ping timeout: 240 seconds)
12:55:30euantormost edtiros are browsers now anyway (VS Code, Atom, Brackets, etc.)
12:55:34euantor*editors
12:56:14Araqcrem, fix sublime's plugin?
12:56:53*zippyy quit (Ping timeout: 276 seconds)
12:58:57cremTo send patches to github, I need to notify my employer. While they made it easy, it's still enough additional work to stop me from making any patches.
12:59:09cremHm, ptobably not a valid excuse. :)
13:03:01*SenasOzys joined #nim
13:04:40*miran quit (Ping timeout: 260 seconds)
13:23:54*laas joined #nim
13:25:32*sakalli joined #nim
13:25:36laasHow does one have mutually recursive closures, that aren't bound to a variable?
13:26:21laasIf I try to do `proc name(args): ret_type` and then later the same but also put in the body, any call says it's ambigious which one to call
13:26:32laasIs this not the correct way to do forward declarations?
13:30:57FromGitter<Varriount> crem: If you want to submit a PR with working Nimsuggest support, I would be very happy
13:31:48laasnvm it was my fault
13:46:08*dddddd joined #nim
14:27:29*PMunch quit (Quit: Leaving)
14:27:41*PMunch joined #nim
14:28:35subsetparkIf I ever had a free week of hacking, I would totally make a working nimsuggest vim plugin too
14:30:37*dddddd quit (Ping timeout: 260 seconds)
14:31:06FromGitter<mratsim> That's some slick static doc generator for GitHub pages: https://lord.github.io/slate/
14:31:45*dddddd joined #nim
14:38:56subsetparki was at recurse center with that dude
14:39:05subsetparkhe was, i think, 16 or 17 when he wrote that
14:40:53*SenasOzys quit (Ping timeout: 276 seconds)
14:43:51*dddddd_ joined #nim
14:45:08*gokr quit (Ping timeout: 268 seconds)
14:45:10*dddddd quit (Ping timeout: 252 seconds)
14:46:11*zippyy joined #nim
14:57:58*sakalli quit (Ping timeout: 264 seconds)
14:58:40*zippyy quit (Ping timeout: 248 seconds)
14:59:49*MJCaley joined #nim
15:13:18*sakalli joined #nim
15:16:48*zippyy joined #nim
15:25:23nivcan someone explain to me why marking something as .threadvar. and then turning on threads doubles the access time to that variable?
15:25:35*floppydh quit (Ping timeout: 240 seconds)
15:27:44cremYou can check generated C code.
15:28:03*floppydh joined #nim
15:28:38*NimBot joined #nim
15:38:52dom96Araq: Still think this is a fool's errand? :) https://github.com/nim-lang/Nim/issues/2251
15:40:44Araqyes. we have no experience whatsover with "evalute all when branches"
15:41:04Araqyou might as well wish for fairy dust.
15:41:19dom96lol
15:41:48dom96Okay, what about this? https://github.com/nim-lang/Nim/issues/1837#issuecomment-347563913
15:44:08*laas quit (Quit: WeeChat 1.9.1)
15:45:10Araqormin supports json in order to support NULL in a clean way
15:45:25Araqsadly the db_* modules cannot do the same, or maybe they can?
15:45:39Araqwe really need to fix this for version 1...
15:45:56dom96Option[T] is a less disruptive solution I think
15:46:13dom96we can even make it optional, no pun intended
15:46:47dom96Here is a doc gen issue that would be useful and won't require any fairy dust https://github.com/nim-lang/Nim/issues/1211
15:47:18*skrylar_ joined #nim
15:48:27Araqyes but it's just another feature request. we have hundreds of them, what makes this special?
15:49:49dom96it would allow us to write docs more effectively
15:50:51Araq**Warning** -- is that so hard to write?
15:50:53*noonien quit (Quit: Connection closed for inactivity)
15:51:04*floppydh quit (Ping timeout: 258 seconds)
15:51:08dom96no, but it's not as nice as having a box with a warning icon
15:51:41dom96well I went through all the stdlib issues
15:51:54dom96Curious what you meant here: https://github.com/nim-lang/Nim/issues/149
15:52:14Araqso write a box via .. container:: box and some CSS
15:53:18*floppydh joined #nim
15:53:30AraqI changed my mind about this. 'with' support for distinct is not going anywhere
15:54:18dom96yeah, I can do the box thing. But rst supports this syntax, it would be nice to support it too.
15:54:24dom96But it's not important in any case.
15:54:49dom96What did we decide to do about TaintedString?
15:59:42Araqwe decided to remove it...
16:00:13Araqbut people like it, so I vote for keeping it as it is. it doesn't harm us
16:00:53dom96if we keep it then we need to make sure the stdlib works with it
16:00:56dom96which will be painful
16:01:24dom96perhaps I should create an issue so that we can all discuss
16:01:40Araqtestament uses much of the stdlib and is built with --taintMode:on
16:01:45Araqfor this reason.
16:02:09Araqwe can write a better test that imports every stdlib module
16:02:45Araqso ... yeah it's some work but seems ok
16:03:43dom96To properly support it though we'd need to introduce it in the sockets modules :\
16:03:54dom96This feature to me feels too disruptive
16:07:16Araqopen an issue for this already
16:09:13AraqI think we should make it the default for writing server apps
16:09:44dom96here you go https://github.com/nim-lang/Nim/issues/6833
16:10:20Araqin fact, enable it for asynchttpserver and see if gains us some insights
16:10:26Araq:P
16:10:39dom96I think we should also look into which modules support JS
16:10:52dom96I might write a script which does that
16:12:15sendellabout that: I was wondering what "unsupported by the JS target" means? does not compile at all? or UB?
16:12:51Araqwon't compile.
16:13:11Araqif you're very unlucky you would get UB, but it's not likely
16:13:43sendellbecause of the "slightly different" ptr semantics?
16:14:03sendellwhat else could cause it?
16:14:07Araqthat's a small part of the problem, os.nim doesn't support JS
16:14:20Araqeverything that imports os.nim can't support JS
16:15:17Araqno file system, no process management. if I base my random.nim on /usr/bin/urandom it can't run on JS.
16:17:44sendellobviously
16:18:21sendellso maybe that kind of modules must use conditional compilation to provide an alternative for js
16:18:47FromGitter<andreaferretti> some do
16:19:31FromGitter<andreaferretti> for instance the bit twiddling operations in `bitops` use compiler intrinsics for assembler primitives where available, and a pure nim implementation otherwise
16:19:51FromGitter<andreaferretti> but it's a lot of work even to review everything for js
16:26:11dom96On a side note, anybody doing Ludum Dare this weekend?
16:27:37FromGitter<alehander42> one thing I wondered was, for the `defined(nodejs)` a lot of the os etc modules can be supporte
16:28:07Araqwe don't support nodejs though. we only use it for testing.
16:29:13Araqif the patches are clean enough I'll accept improvements but nodejs is really not a target for us
16:29:38*gokr joined #nim
16:29:52FromGitter<alehander42> I see, I maintain some Nim->nodejs code in an electron app
16:30:14Araqthat's cool anyway ;-)
16:30:35FromGitter<alehander42> so if I decide to add support for some stdlib modules for it, that's no problem (it's not that you don't want to support nodejs, but it's not a priority ?)
16:31:16Araqit needs to be reasonably clean and come with tests
16:31:22FromGitter<alehander42> ofc
16:32:14FromGitter<alehander42> and the other thing I wondered was (it's important for browser-based js too) are there any plans for jscompatible async / await ?
16:33:11Araqthere are plans but nobody is working on it
16:33:20Araqit's not even that hard, I can guide you
16:34:07FromGitter<alehander42> I've actually done it in a fork branch of mine, but I am directly reusing modern ecmascript's async/await which is a bit of a hack
16:34:43FromGitter<alehander42> I imagine a proper impl will reimplement a state machine with behavior closer to nim's async ?
16:35:59Araqyep. it's only two AST node kinds that you need to implement
16:36:10AraqnkGotoState and nkState
16:36:30Araqoh and you need to touch every other control flow construct in the JS backend
16:37:14*zippyy quit (Ping timeout: 276 seconds)
16:39:05*PMunch quit (Quit: Leaving)
16:39:24dom96yeah, that would be nice to support
16:41:23FromGitter<alehander42> ok, I'll take a look at it this week
16:43:03FromGitter<alehander42> I guess the hardest thing would be actually to think of a way to be easily compatible with js async functions (eg await a lib function from async nim function)
16:44:13sendellwhat is wrong with wrapping the native async/await like you did?
16:45:03sendellas it will provide compatibility with libs out of the box
16:45:09sendellsounds like a good idea :)
16:45:29dom96browser support for that is poor I guess
16:45:31FromGitter<alehander42> it's not supported in all js versions yet
16:45:41sendelleh.. ok
16:45:45sendellweb world haha
16:46:08*Trustable joined #nim
16:48:31FromGitter<alehander42> otherwise I am not sure if there are any differences in nim's async behavior and js' ones (any edge cases where they differ)
16:49:57Araqwell ... maybe better map it to JS's native solutions and wait a couple of years
16:50:31Araqthere are transfinitecomplaters for new JS to old JS already
17:03:58FromGitter<alehander42> I've already done that part, so I can PR it tomorrow for discussion
17:06:14FromGitter<alehander42> Otherwise we can also have a fallback "native nim" async for older versions, but I admit I am not sure if it's worth the trouble (even typescript seems to fallback onto
17:07:44dom96another option is to generate newer JavaScript and then use some sort of convertor to convert it to older JS :)
17:08:20FromGitter<alehander42> Yep
17:08:42FromGitter<alehander42> Web people are used to building and piping 10 tools anyway :D
17:12:36Araqyeah produce the more modern stuff for async, I don't mind
17:12:38*sendell quit (Remote host closed the connection)
17:15:05*skrylar_ quit (Ping timeout: 240 seconds)
17:32:51FromGitter<mratsim> I tried to learn TypeScript React-Native a year ago, Typescript —> React-Native —> Javascript —> Build Android and iOS. Of course you needed grunt, webpack, babel and whatever as a build system. (Though VS code breakpoints worked with the iOS simulator which is kind of cool)
17:35:44*sakalli quit (Ping timeout: 276 seconds)
17:40:39*xkapastel joined #nim
17:41:10*miran joined #nim
17:43:49*floppydh quit (Quit: WeeChat 1.9.1)
17:45:27*BitPuffin|osx quit (Ping timeout: 240 seconds)
17:47:17FromGitter<kayabaNerve> I remember when websites were HTML + CSS + Apache.
17:47:22FromGitter<kayabaNerve> Those were the good days..
17:48:01FromGitter<kayabaNerve> Like, I love NodeJS and don't Apache nowadays. I also think PHP is the devil on Earth and think client side software is great for decentralization.
17:48:10FromGitter<kayabaNerve> But it gets so complicated so fast...
17:49:25FromGitter<kayabaNerve> HTML + CSS + Apache ⏎ HTML + CSS + JS + Apache + PHP ⏎ HTML + CSS + JS + Apache + nGinx + PHP ⏎ HTML + CSS + JS + NodeJS + NPM ⏎ HTML + CSS + JS + Typescript + NodeJS + NPM [https://gitter.im/nim-lang/Nim?at=5a1da1a5540c78242d5c50bc]
17:49:47FromGitter<kayabaNerve> Oh. And then there's the people who put NodeJS and nGinx together...
17:52:41FromGitter<kayabaNerve> I just do HTML + CSS + JS + NodeJS with Express/Middleware (not using multiple web servers, build tools, TypeScript, jQuery, Vue, Bootstrap...) but as @alehander42 said, it's ridiculous.
18:01:17*MJCaley quit (Quit: MJCaley)
18:04:35*gokr quit (Ping timeout: 240 seconds)
18:08:14mirananybody here plans to participate in advent of code?
18:09:54FromGitter<zetashift> Yes! I will
18:10:46mirannice to hear, because here https://www.reddit.com/r/adventofcode/comments/7ftrie/which_language_will_you_use_this_year_why_do_you/ i was the only one who mentioned nim
18:11:52miranand this might be a good opportunity to promote nim a bit ;) (cc dom96 Araq)
18:12:39*sendell joined #nim
18:13:06dom96yeah, I'll tweet about it :)
18:15:26mirandom96: don't only tweet, post your solutions in the daily threads
18:15:46dom96I doubt I'd get time
18:15:49mirani'm sure they will be much better representation of nim's possibilities than my solutions
18:16:06dom96Does it take much time to do?
18:16:27miranfirst couple of tasks is about 15-30min
18:16:38miranlater they become a bit harder
18:16:57dom96maybe I'll do some Twitch streams trying to solve them :)
18:17:14miranhehe, if you want, take a look at 2015 or 2016 tasks
18:17:17dom96I'll be doing Ludum Dare this weekend though
18:17:47mirannice!
18:17:52miranin nim?
18:18:41*claudiuinberlin joined #nim
18:19:01dom96of course
18:19:17federico3dom96: with which library?
18:19:23dom96Still not sure whether to use ftsf's package or sdl2 or sfml
18:19:37*arnetheduck quit (Remote host closed the connection)
18:19:38dom96I'll be doing it with my girlfriend as well, should be fun :)
18:30:55FromGitter<zetashift> I liked nimgame2 a lot
18:34:51FromGitter<kayabaNerve> dom96: The SFML lib is pretty good and easy to setup. It also has good examples and you can easily search for the few things that aren't documented.
18:35:46FromGitter<kayabaNerve> I built a 2D RPG Framework in it (I got map loading up and you can move tile to tile, scales to fullscreen properly, displays a cursor, centers the X axis...). Am now doing a map maker for it
18:38:01dom96cool, only problem with sfml for me might be that I won't be able to get it running in the browser via emscripten
18:38:04dom96sdl2 supports this
18:41:29*Trustable quit (Remote host closed the connection)
18:42:42*qwertfisch is now known as qwertotter
18:46:56FromGitter<zacharycarter> o/
18:47:25FromGitter<zacharycarter> I think I'm LDing this weekend too
18:51:24FromGitter<kayabaNerve> dom96: It does require DLLs so I doubt it.
18:51:54dom96kayabaNerve: sdl2?
18:52:03FromGitter<kayabaNerve> SFML ;)
18:52:44dom96I don't think that matters, they just don't support emscripten
18:52:58dom96zacharycarter: :D
18:53:10FromGitter<zacharycarter> hey dom96 :D
18:53:41FromGitter<kayabaNerve> True, if you compile the DLLs with the project (and that's supported by Emscripten)...
18:53:54FromGitter<zacharycarter> emscripten doesn't play nice with dynamic linking fyi
18:53:59FromGitter<zacharycarter> you can do it but it's a PITA
18:54:05FromGitter<zacharycarter> and static linking is the recommended way to go
18:54:21FromGitter<kayabaNerve> https://en.sfml-dev.org/forums/index.php?topic=18824.0
18:54:35FromGitter<kayabaNerve> That's two years old but covers the topic of SFML with emscripten well
18:54:38FromGitter<zacharycarter> I just wouldn't use SFML - I'd use SDL2 or GLFW3
18:55:08FromGitter<zacharycarter> or use godot-nim or something
18:55:15FromGitter<kayabaNerve> OFC, you wouldn't use SFML with the bindings on GitHub, you would use CSFML
18:55:43FromGitter<kayabaNerve> (Oprypin's)
18:57:14Araqcan somebody try to update some wrapper to use the new destructors?
18:57:59*endragor quit (Remote host closed the connection)
18:58:09FromGitter<kayabaNerve> Araq: I might if I continue to use it (not an expert on it, if I use it I'll learn, will also have a bigger incentive to)
18:58:42FromGitter<kayabaNerve> I'm likely to open source everything I'm working on if it gets to a decent point
19:00:01sendelloh it's possible to use godot with nim? that's huge
19:00:39*endragor joined #nim
19:00:59FromGitter<zacharycarter> yes
19:01:13FromGitter<zacharycarter> https://github.com/pragmagic/godot-nim
19:01:27FromGitter<zacharycarter> note - I haven't tested this, I use my own engine
19:01:39FromGitter<zetashift> How's zengine faring?
19:01:39*endragor_ joined #nim
19:02:03FromGitter<zacharycarter> I haven't worked on it in a while, but I plan to change that this weekend for LD :)
19:02:16FromGitter<zacharycarter> life has had me busy with stupid non programming related stuff
19:02:28FromGitter<zacharycarter> how are you doing @zetashift ?
19:03:05FromGitter<zetashift> I'm okay I've been sick awfully for like 3 weeks but I've atleast recovered enough to get back to dom's book
19:03:19*JappleAck quit (Quit: Leaving)
19:03:23FromGitter<zetashift> I might join in with the LD and godot-nim
19:03:34*endrago__ joined #nim
19:03:42FromGitter<zacharycarter> good, glad you're feeling better!
19:04:11*couven92 quit (Quit: Client disconnecting)
19:04:57*endragor quit (Ping timeout: 240 seconds)
19:05:20*zippyy joined #nim
19:05:33sendelloh I tried to use zengine last week
19:05:51sendellmaybe you fixed it, but there was an issue with glm dep
19:06:09*endragor_ quit (Ping timeout: 248 seconds)
19:06:11sendellwhich required nim nightly, and zengine doesnt compile on nightly
19:06:50FromGitter<zacharycarter> sendell - sorry I've been out of the loop for about a monthish, I'll take a look this evening
19:07:01sendellnp :)
19:08:41*endrago__ quit (Ping timeout: 276 seconds)
19:10:18*zippyy quit (Ping timeout: 268 seconds)
19:14:31*ipjk joined #nim
19:17:15sendellcan nim compiler use emscripten instead of gcc as backend?
19:17:27Araqyes
19:17:31sendellout of the box?
19:18:10sendellno trace of that in "Nim Compiler User Guide"
19:18:18Araqthere is an article that describes the setup steps
19:18:32Araqcheck def-'s blog
19:20:14FromGitter<zacharycarter> it's not the easiest thing in the world, esp when you have external dependencies
19:20:20*jjido joined #nim
19:20:23FromGitter<zacharycarter> zengine uses emscripten / wasm and has examples if you want to take a look at how I did it there
19:20:46sendellI will :)
19:21:09sendellAraq are you talking about this ? https://hookrace.net/blog/porting-nes-go-nim/
19:41:08*couven92 joined #nim
19:43:27Araqpossibly
19:48:00FromGitter<zetashift> yea that one
19:48:18FromGitter<zetashift> I want more def-'s blogposts about Nim :(
19:52:55*salewski joined #nim
19:53:54salewskiWhat do you think, is my example ivalid code for Nim: https://github.com/nim-lang/Nim/issues/6834
19:54:47salewskiI guess so -- so I would have to use fixed array sizes or seqs.
19:54:59*gokr joined #nim
20:15:41FromGitter<nitely> I don't even know what you are trying to do, but AFAIK generics is just or types, no?
20:15:42FromGitter<nitely> https://play.nim-lang.org/?gist=770977f537af612cdeaa606ad263ba08
20:15:52FromGitter<nitely> *for types
20:16:57jjidoOr types is a good term too
20:18:28salewskiYes, that may be true. I was not sure, so I did a test.
20:19:27Araqsalewski: I think you need to use static[int] for the array size parameter
20:20:01salewskiAh interesting, I will try that.
20:24:00FromGitter<nitely> well that works
20:24:01FromGitter<nitely> https://play.nim-lang.org/?gist=41c5bcf53e2d5f7a4e031ee63762f406
20:26:17*marenz__ joined #nim
20:28:01FromGitter<nitely> I did not know that, I've use for it :)
20:28:25salewskiGreat, thanks.
20:36:57*jjido quit (Ping timeout: 260 seconds)
20:38:13*jjido joined #nim
20:38:17*salewski quit (Quit: WeeChat 1.9.1)
20:39:30Calinoutrying to break the world record… https://media.hugo.pro/firefox_2017-11-28_21-39-24.png
20:39:36Calinouclose :(
20:39:46CalinouI'll attempt the boring and long method, should work
20:40:02dom96:D
20:40:18dom96Unfortunately I'm pretty sure a bot did this
20:40:44Calinounah, an human can do it
20:46:37dom96124
20:46:59dom96I store the replays though, so we can check, as soon as I implement replay playback :)
20:50:10dom96I also think it'd be more fun if some bots always played
20:50:22Calinouyes, like in CS:GO, amirite
20:50:24Calinou:P
20:50:29dom96it's always more fun to play if you think others are playing :)
20:51:46dom96Araq: These two are ready for a merge, and don't need squashing https://github.com/nim-lang/Nim/pull/6817 https://github.com/nim-lang/Nim/pull/6823
20:54:13federico3#6723 is good to merge I suppose
20:58:06federico3Araq: a little hint on where to start for #6492 ?
20:59:30AraqI don't remember how the other edit buttons work.
21:00:08Araqbut it's all configurable, I think, every section could get an edit button
21:01:18federico3the usual Source/Edit buttons are added automatically to procs docstrings
21:01:45federico3while the manual is not generated from procs so that's why I was asking :)
21:02:02*miran quit (Ping timeout: 260 seconds)
21:02:27dom96So, should json.to work with inherited objects? Can anyone see any potential problems with this? https://github.com/nim-lang/Nim/issues/5856
21:03:05Araqhow can it load an inherited object?
21:03:27dom96here is a PR that implements it https://github.com/nim-lang/Nim/pull/5879
21:03:33Araqhow do you construct the type to fill it with values? macros.getType gives you the static type
21:04:48dom96It just looks at the types that you're inheriting from and adds their fields to the constructor.
21:04:48Araqoh so it assumes the static type is the correct one
21:05:05Araqyeah, that should have been done from the beginning
21:05:25dom96I guess you were thinking about giving it a variable and it deciding at runtime?
21:05:40Calinousign me up for the Guinim World Records book: https://media.hugo.pro/firefox_2017-11-28_22-05-29.png
21:05:53dom96Calinou: waatttt
21:05:54dom96how
21:06:17Calinou1) Wait for the 5+ bonuses and collect them all for a while (do this until you are bored)
21:06:22Araqno I thought about the typical programmer who is confused
21:06:23Calinou(I did it until getting to 151 points)
21:06:27Calinouthen I just picked +1 bonuses until I died
21:06:34dom96Calinou: ahhh, tactical :)
21:06:36Calinou(the game started being extremely fast at 167 points, then I died shortly after)
21:07:32dom96Calinou: ideas on how to improve the game welcome btw :)
21:09:03*ipjk quit (Quit: Leaving)
21:09:29xet7Today I installed Nim to Windows 10 laptop. After extracting packages, setting path to environment variable, testing with included executeable (got warning from Windows), logout and login, I did notice that Nim and mingw compiler directories had disappeared. Thanks Microsoft, nice going there with all protections and Defender :D
21:10:13Calinoudisable Windows Defender permanently using https://winaero.com/download.php?view.1812
21:10:18Calinou(be sure to get the actual .reg file, not malware from an ad)
21:10:33Calinouand thank me for the saved CPU/IO :)
21:10:37Araqxet7, had that avira antivir iirc
21:10:54Araqremoved it, no problem with MS's defender
21:11:19xet7what's the difference between malware, .reg file, and Windows? none, they work the same ;D
21:11:45Araqmalware doesn't delete things, usually.
21:11:58xet7Yes malware actually works better
21:12:34*zippyy joined #nim
21:12:35xet7their authors even sometimes have paid support available :D
21:13:23Calinouthe .reg file just sets values into the Windows registry
21:19:21*claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com)
21:24:17*zippyy quit (Ping timeout: 248 seconds)
21:32:01*Vladar quit (Quit: Leaving)
21:32:33*zippyy joined #nim
21:40:58*couven92 quit (Remote host closed the connection)
21:41:17*couven92 joined #nim
21:41:41*zippyy quit (Ping timeout: 240 seconds)
21:48:24*vivus joined #nim
21:52:18*iAmSlow joined #nim
21:52:59*iAmSlow left #nim ("Leaving")
22:11:21FromGitter<Varriount> xet7: Odd. I have Windows, and that never happened with me.
22:11:45FromGitter<Varriount> How come it's other people that always get the interesting bugs in Windows, and never me?
22:38:51*xet7 quit (Ping timeout: 246 seconds)
22:39:42*vlad1777d joined #nim
22:40:01FromGitter<Quelklef> never before have i seen someone be envious over bugs
22:50:10*nsf quit (Quit: WeeChat 1.9.1)
22:52:33*xet7 joined #nim
23:02:14*sendell quit (Remote host closed the connection)
23:03:57*gokr quit (Ping timeout: 260 seconds)
23:25:53*zippyy joined #nim
23:29:04*jjido quit (Read error: No route to host)
23:38:31*couven92 quit (Quit: Client Disconnecting)
23:42:54FromGitter<Varriount> @Quelklef I'm part of the small group of programmers who believes Windows and Linux are as bad as each other.
23:43:36FromGitter<Varriount> I also seem to be exceedingly lucky when it comes to Windows . :/
23:48:18*libman joined #nim
23:48:44GitDisc<treeform> Varriount, I don't think its that small. I believe linux is better for servers and windows for games.
23:49:49dom96Was nice to see Nim mentioned on Jonathan Blow's livestream
23:50:10dom96Sadly I don't think many were convinced to try it.
23:50:33FromGitter<Varriount> :<
23:52:35FromGitter<Varriount> My view is this: When it comes to the core OS (kernel, etc), Windows and Linux are about the same. Unfortunately, each OS has flaws in userspace (gui, filesystem, etc).
23:53:17FromGitter<Varriount> Windows userspace has ~20 years of cruft on top, compounded by needing to solve and provide everything for everybody.
23:53:58FromGitter<Varriount> Linux userspace has the horrid filesystem architecture and lack of central configuration for anything.
23:54:48FromGitter<Varriount> I actually felt some delight last week when using Systemd unit files for the first time - finally, something that doesn't feel fragmented and isolated!
23:59:14*zippyy quit (Ping timeout: 276 seconds)