<< 11-04-2019 >>

00:00:13noonienand remove --noMain and --noLinking
00:00:20ryukopostingoooh okay yeah
00:00:52ryukopostingI don't know exact details about that, I almost never cross compile for anything but bare metal, but it'll be similar yeah
00:00:55noonienalso, $CC points to the right cc, which is `gcc`(yes, gcc is actually arm-linux-gnueabihf-gcc, i'm on nixos)
00:01:03noonienawesome, thanks!
00:01:19ryukopostingdeech: https://dailyprog.org/f/uybv this compiles for me
00:04:50ryukopostingnp noonien, lmk if you need a hand. What's the project?
00:05:13noonienwill do. just wanted to test nim on an arm board i'm working with
00:05:29nooniensomething not too disimillar from a rPI
00:05:48ryukopostingwhat board? I do a lot of embedded stuff, mostly ARM
00:08:43nooniena beaglebone black
00:09:17FromGitter<deech> @ryukoposting: Try it with a variant, this doesn't compile for me: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5cae85ad93fb4a7dc20b228d]
00:11:51*Jesin quit (Quit: Leaving)
00:13:37ryukopostingI think it's because of the object variant, but I don't know why having a const of an object variant type would be invalid.
00:13:54ryukopostingnoonien nice, whatcha doing with it?
00:14:27noonienjust playing atm, evaluating different development environments
00:14:50noonieni quite like go, especially its stdlib, but i need something that i can control a bit better
00:15:13nooniennim also uses a gc in its stdlib, right?
00:15:35ryukopostingit does, it's a bit of a different gc than you might be used to
00:15:57noonienimeplemntation wise, or usage wise?
00:16:05ryukopostingimplementation wise
00:16:32ryukopostingimagine a bunch of tiny, super fast GCs and they each are in charge of one thread of your program
00:17:23noonienwhat kind of gc is it?
00:17:47noonienalso, is it built into the language? can it be avoided if needed? i'm not planning to, just curious
00:18:24ryukopostingthe default one is a thread-local reference counting mark-and-sweep gc, but there's a couple you can choose from if the normal one doesn't fit your specific application
00:18:37ryukopostingit's not built into the language, you can use nim without a garbage collector
00:19:13*Jesin joined #nim
00:20:26ryukopostingif you're into soft real-time stuff like a/v streaming, decoding, encoding, games, etc. then the realtime gc might be of interest to you
00:20:42ryukopostingI've never used it but from a technical standpoint it's pretty nifty
00:22:06noonienpretty interesting, i prefer not to mess with memory unless i have to
00:22:25noonienparts of my toolchain are compiling atm, can't wait to build the binary and see if it runs
00:24:18ryukopostingyeah, virtually everything I do with embedded is asm and C, but Nim is my go-to for pretty much everything else now
00:24:31noonienwhy not nim for embedded?
00:24:38*stefanos82 quit (Remote host closed the connection)
00:24:57ryukopostingI'm shifting towards it, I plan on making CMSIS bindings for nim
00:25:02ryukopostingthat will make my life waaay easier
00:25:04noonienah, yeah
00:25:23noonieni wanted to use nim on a cortex m4 a while ago
00:25:30noonieni remember CMSIS being the painpoint
00:26:09ryukopostingthe biggest problems for any language in embedded are platform support, ease of implementing the runtime, and manufacturer support
00:26:32ryukopostingany lang without manufacturer libraries is gonna be a hard sell in the industry
00:26:53ryukopostingand right now, the only language that has that is C
00:27:43noonieni like go's way of doing it, you can just pop a .c, cc, etc file in the package, and it gets compiled along with the other go code
00:27:55noonienAFAIR nim had something similar
00:28:20ryukopostingwell, with nim it's pretty straightforward since it uses C as an IR
00:28:39noonienso you can have platform specific code in simple C
00:28:57noonienyeah, but i remember nim making you jumps through some hoops to get the correct c out
00:29:00ryukopostingpotentially, yeah
00:29:22ryukopostingnah not really, C bindings are pretty easy
00:30:03*rnrwashere quit (Remote host closed the connection)
00:30:19ryukopostingwhat I like to do is compile the C code into static libraries that get linked in with the nim code
00:31:41noonienhmm, that sounds simple for coding, but building sounds like hell
00:32:01ryukopostingI'm an embedded software developer
00:32:05ryukopostingall my builds are hell
00:32:11noonienhaha
00:32:23*gmpreussner quit (Quit: kthxbye)
00:32:25ryukopostingrelatively speaking, the nim stuff I've played with is actually pretty straightforward
00:32:38ryukopostingdude, I've seen some things that no human should ever have to see
00:32:40*gmpreussner joined #nim
00:32:51noonienthey don't have to be, nix is pretty great, maybe even bazel
00:32:59noonieni've heard good praise of meson as well
00:33:01ryukopostingI've dealt with embedded OSes that are more preprocessor than they are actual code
00:33:19ryukopostingI've been thinking about trying out nix or guix, but devuan is comfy
00:33:24noonienoh man, i hate preprocessors with passion
00:33:32*rnrwashere joined #nim
00:33:44noonien#include especially
00:33:49ryukopostingdon't get me wrong, the C preprocessor is a very powerful and useful tool, and used wisely it can be immensely helpful
00:34:22ryukopostingbut when you literally have more lines of macro functions and calls to them than normal C code, there's a problem
00:34:33noonientoo bad everyone has a different idea of what "wisely" means
00:34:45ryukopostingyou wanna see some slick macro abuse
00:35:00ryukopostinghttp://dunkels.com/adam/pt/ check this out
00:35:06noonieni'm looking forward to getting armv7 linux support as well in zig, it also looks interesting
00:35:24ryukopostingeh, I'm kind of skeptical of zig
00:35:57noonienhaha, i've seen some go-inspired C goroutine macros
00:36:05noonieni've note dared look at the source code
00:36:08*rnrwashere quit (Remote host closed the connection)
00:36:21ryukopostingprotothread is powered by gotos covered by macros
00:36:34ryukopostingthe result is that, between yields, the stack frame is not preserved
00:36:43*c3v0axz quit (Ping timeout: 246 seconds)
00:36:58ryukopostinghowever, it requires zero assembly code to implement multitasking using protothread, which is an extremely helpful property
00:37:19*rnrwashere joined #nim
00:38:16noonienhmm, that actually sounds pretty useful
00:38:28ryukopostingthere's entire embedded operating systems based on it
00:39:13ryukopostingwait, why couldn't zig target armv7? I thought zig used LLVM
00:40:11noonienit does, freestanding works, just not on linux, probably just missing the main entrypoint
00:40:26ryukopostingooooh yeah, makes sense
00:46:00*rnrwashere quit (Remote host closed the connection)
00:59:51*rnrwashere joined #nim
01:23:58ryukopostingpeep this backoff algo https://gitlab.com/dailyprog/awsome/snippets/1846291
01:28:44*rnrwashere quit (Remote host closed the connection)
01:47:12disruptekryukoposting: isn't the aws api "leaky bucket"?
01:48:11disrupteki wrote the python api for MWS, which is, but i don't remember if the AWS stuff is. i remember that isn't not formally implemented in boto in any event (though my MWS stuff is, of course ;-P).
01:48:17ryukopostingthe spec says that all of the SDKs use exponential
01:48:56disruptekdo you have a link for the models?
01:49:24ryukopostingif you go to any of the github repos for the official SDKs, the spec is in a folder called "models"
01:49:46disruptekneat, that stuff used to be very carefully guarded.
01:50:05ryukopostingyeah, they put it all out there
01:52:27disrupteki need to try awsome against the route53 stuff; i gotta update contact records on a bunch of domains. :-(
01:52:55ryukopostingyeah, awsome's still a big WIP but the codegen is in a good spot
01:53:20ryukopostingsigning code and credentials management are still in the works
01:53:34disrupteki'm happy with what i saw. good job. :-)
01:53:41ryukopostingty
01:54:09ryukopostingyeah the json branch is where pretty much everything is right now lmao
01:57:00disruptekhmm, i was able to get it to complete tests earlier, but now i'm getting strformat errors.
01:57:34ryukopostingwat
01:58:16ryukopostingmaster hasn't been updated in a hot minute, if you're using that, the code is completely different than what it is now
02:00:30disrupteksomehow i'm ahead of the json branch.. 😳
02:00:39*theelous3__ joined #nim
02:00:55ryukopostingooooh boy
02:01:08ryukopostingwhen you run the tests, you regenerated the SDK
02:05:32disruptekup to date and still not working. might be an issue with nim (i'm on head).
02:06:30ryukopostingpastebin error?
02:06:44disruptekhttps://gist.github.com/disruptek/4779b64ed32324a5a16142aa4a37fdb5
02:07:00*banc quit (Quit: Bye)
02:08:12ryukopostinghmmm
02:08:15ryukopostinglemme take a look
02:09:55disrupteksomeone was just talking about strformat and templates. maybe this is that. 😕
02:10:28ryukopostingwhat version of the compiler are you on?
02:11:10disruptekhead
02:11:24ryukopostingno, the compiler
02:11:43ryukopostingor are you actually on the latest development version of the nim compiler
02:11:45*I_Right_I joined #nim
02:11:46disrupteknim's devel branch, the head of same. :-P
02:12:08ryukopostingoh man, uh yeah that doesn't happen in 0.19.4
02:12:32disruptekagain, this is semver for ya. a minor revision that breaks.
02:13:06ryukopostinga nightly release isn't stable, ya dummy
02:14:10disrupteki mean, sure, so here i am, about to bisect nim to find a working git hash. you see where i'm going with this... 😄
02:15:05disruptekanyway, don't worry about it. i'll figure it out. it was working earlier today.
02:15:34ryukopostingI really can't take anyone seriously who thinks "go find the right git hash bro xd" isn't the most braindead stupid thing on the planet
02:16:34*theelous3__ quit (Read error: Connection reset by peer)
02:16:36disruptekit's less stupid than depending on someone else's idea of stability. 😂
02:16:53ryukopostingand that's why the stable compiler release is stable, right
02:17:16ryukopostingsure, lmk when you're banging git hashes into choosenim
02:18:07disrupteki'm not gonna do that; i'm just trying to make a point about semver.
02:18:36ryukopostingthat it works when people actually do it? Instead of half-ass it then go piss and moan on IRC?
02:19:44ryukopostinggod, it really makes me wonder why the compiler follows semantic versioning pretty tightly
02:19:45disruptekbut, it doesn't always work. and if it doesn't always work, it may as well never work, as far as i'm concerned. if you care that much about your users, i'm surprised you wouldn't agree with me.
02:20:17ryukopostingmaybe it's because proper project management facilitates a strong strong versioning standard
02:20:20ryukopostinghmmmm
02:20:25ryukopostingreally make grug wonder
02:20:40disrupteknim is not following semver, for one thing.
02:20:57disrupteksecondly, we started this discussion talking about your dependencies, not the compiler.
02:21:13disruptekhttps://semver.org/
02:23:46ryukopostingmy point is that, again, any project that takes itself seriously is going to follow some kind of structured release system, be it semver or something else. If you're a library writer and you don't take your crap seriously enough to version it, then I don't want it within a mile of my codebase
02:24:25ryukopostinga git tag is literally no more complex than a commit, but it makes a world of difference when tracking down package versions
02:24:29disruptekgreat, that should make your selection of dependencies much easier. so what's the problem? if you want a version tag from software you'd like to use in your project, just ask the publisher.
02:25:00disruptekotherwise, you clearly don't want to depend upon that software. done.
02:25:16ryukopostingespecially when the package manager uses git hashes as version fetching mechanism, tagging your code is extremely helpful.
02:25:42disrupteklook, i don't disagree with your premise.
02:26:22disrupteki just think it's silly to say i don't live in the real world, when in the world i live in, people break semver intentionally or unintentionally all the time.
02:26:30ryukopostingthat's half the problem, most of the libraries have pitiful documentation, so I'm stuch with chatever I can get
02:26:43ryukopostinggetting a tag is like poking a dormant project with a stick, praying it isn't dead
02:26:55disruptekhey man, this is early days (and it's not that early). but it's nim. it's worth it.
02:27:37ryukopostingit's worth it enough that I'm going to finish awsome, then not document or version any of it ecks dee
02:28:07disruptekthat'll learn 'em! 😛
02:28:14*banc joined #nim
02:28:53ryukopostingit's just a terrifically bad way to get a package ecosystem off the ground imo
02:29:03ryukopostingbut whatever dude
02:29:54disruptekit solves a practical problem that you yourself have.
02:30:15ryukopostingwhich is??????
02:30:38ryukopostingthe total lack of usable packages is helping me?
02:30:56disruptekinability to specify immutable and working package versions.
02:31:30ryukopostingyes, that is my problem
02:31:38ryukopostingand the solution is to have some proper versioning
02:31:57disruptekwell, let me put it to you like this... don't hold your breath. :-(
02:32:17ryukopostingit's an easily solvable problem
02:32:31ryukopostingthere are some decent packages, let them shine by unburying them
02:32:57disruptekmaybe you should just create your own package ecosystem. you can fork packages and version them.
02:33:12ryukopostinglel
02:33:15shashlick@ryukoposting - so what is your proposal here?
02:33:37shashlickeven a perfectly tagged package that worked when tagged can be broken if unmaintained as nim evolves
02:33:49ryukopostingI'm not saying semantic versioning should be a requirement, but here's my dream nimble:
02:34:17ryukoposting1. require that the docs get posted, github pages and gitlab pages are braindead simple to use and there are tutorials everywhere
02:35:01shashlickit almost sounds like you want a curated list of packages that are hand maintained by some authority who has write access to every package in question so that they can be fixed if broken
02:35:03ryukoposting2. require at least one tag, on the package's addition to packages.json, that has been looked at by someone to be sure it passes tests and there isn't some glaring problem
02:35:30ryukopostingI want code reviews, a github issue thread is an easy peanut gallery for that kind of thing
02:35:54ryukopostingand since nimble uses those for its package additions, there's a lot of potential there
02:36:03disruptekmy question to you is, why can this not be automated?
02:36:06ryukopostinga community-driven code review process
02:36:15ryukopostingif you want to automate it, sure
02:36:18ryukopostingall the better
02:37:14disruptekthere's nothing that says we can't run homu, add a dox publish flow, and maybe a test coverage element.
02:37:56shashlickok so say all that is in place, if you only have 38 packages in total that fit that quality requirement, are you good with that? and what do you want to do with all the other packages in the repo today? throw them out?
02:38:06shashlickwhat happens when packages break, do we throw them out?
02:38:33disruptekit could even be done automatically under a special github user. you could add any packages you want -- or at least submit them for automatic consideration. you could even support multiple branches and forks from different users.
02:38:36ryukopostingthey get frozen, pm ignores new commits to that repo until it's fixed
02:38:56shashlickperfectly functioning pacakges break all the time as nim evolves
02:39:02disruptekany package in the repo works for some combination of dependencies (already in the repo) and a nim compiler.
02:39:21disruptekso, nothing ever gets thrown out. it just becomes stale for more recent combinations of deps/compiler.
02:39:40ryukopostingshashlick that's something I really hope there will be less of as nim approaches 1.0, but there's not much I can do on that front
02:40:16shashlickwell, that's the thing, everyone is comfortable with using devel all the time, which means no one is really using nim in production
02:40:23disruptekthe nice thing about this system is that it achieves both our goals -- you get semver (fwiw) and i get automatic validation of commit hashes.
02:40:56shashlickand package writers have to provide n, n-1, n-2 support and few are motivated enough to do it
02:41:03ryukopostingshashlick so what you're saying is that nim is unstable because people don't use it in production?
02:41:13disruptekplus, it centralizes testing, docs, and tagging, so that if you're the developer, you don't need to do any of that if you don't want to.
02:41:41ryukopostingI rather thought it was the other way around, honestly
02:42:22shashlickno you want stability in production, which means you aren't enamoured by every cool new compiler feature that you git pull every day
02:42:49shashlickthe fact that few packages work even on stable shows you what the community is doing in general
02:43:00ryukopostingnot maintaining their packages?
02:43:11ryukopostinghalf this crap hasn't been touched in years
02:43:11shashlickthey are maintaining for devel, if at all
02:43:16shashlickwhich is a moving target
02:43:32shashlickor falling off because it is impossible to keep up
02:44:32shashlickat least now we have a maintained stable so you are seeing 0.19.4 while devel moves on
02:45:16disruptekbetter tooling and a better effort to write tests would allow people to disengage from individual compiler branches. if their code passes the tests, great. if not, well, there's a version that used to work and others can contribute updates.
02:45:38ryukopostingdon't develop libraries for a development version of a compiler, that's just foolish
02:45:43FromGitter<arnetheduck> relevant starting point: https://github.com/nim-lang/nimble/issues/127
02:46:01ryukopostingit's a moving target for niche use cases by definition, there's no point in writing libraries for that
02:46:44shashlickbut most of the community does that since its mostly hobby projects and just a nuisance to keep up, no real world consequences
02:46:56FromGitter<arnetheduck> most of the echo chamber in this chat sit on devel :)
02:47:47ryukopostingthe real world consequence is that it's hard to sell nim to any company that would dedicate money and resources to its development, since there seems to be no drive for a reliable ecosystem
02:48:01shashlickhell, nimgen and all wrappers are tested daily on Win/Lin/OSX on 0.18.0, 0.19.2 and devel
02:48:26shashlickbut i cannot do the same with nimterop cause cligen couldn't - it's not that we didn't try - https://github.com/c-blake/cligen/issues/85
02:48:52shashlickso it is possible but how many are that motivated
02:50:22shashlicki know @arnetheduck and others have raised this as well since they are building a real business on nim
02:51:01ryukopostingand I and a couple of my friends are trying to push it with our employers, too
02:51:11*rnrwashere joined #nim
02:51:53disruptekwell, i am building a business on nim, but i don't care too much about the goal posts moving. i'm all up in the cloud and don't need to rebuild large parts of my platform at any given point in time.
02:52:46shashlickya you can pull a snapshot of everything you want and stick with it as long as you can, but the moment you have to update, it will become a huge effort to port, regress and verify
02:52:53shashlickand the longer you wait, the worse off you are
02:53:21shashlickbut really, that's how any big org treats changes - i don't expect upgrading my compiler to be a free effort
02:53:34shashlickeven if everything compiles 100%, without tests, it's meaningless
02:53:58disruptekright, which is why i don't build anything without extensive tests.
02:54:18shashlickya but not everything is automatable
02:55:07disruptektests are. i have homu running in a container and it'll run all my tests and deploy my platform alongside production, perform integration tests, and then cut traffic over.
02:55:09FromGitter<arnetheduck> so fwiw, we locked all deps down with git submodules and ended up with a makefile: https://github.com/status-im/nimbus/
02:55:28*rnrwashere quit (Remote host closed the connection)
02:55:29shashlickcompanies don't spend millions in testing for fun
02:55:30disruptekhow 1994. :-D
02:55:43FromGitter<arnetheduck> it's a hammer for a screw, but hey, it works
02:56:07disruptekwow. 277 lines of Make.
02:56:20ryukopostingmagnificent, I've done submodules-in-makefiles before
02:56:26shashlick@arnetheduck - are you on devel or a stable for status
02:56:35ryukopostingembedded has made me into a makefile whisperer
02:56:44shashlickalso what's your opinion on nawabs
02:57:22rayman22201this feels a bit like a chicken and egg problem / small community / pre 1.0 problem...
02:57:22rayman22201I'm pretty sure there has been an effort to add a set of core "blessed" packages to the official automated testing of nim, though idk the details.
02:57:22rayman22201That being said, I definitely agree that lock files are super important, especially to make nim be taken more seriously at an enterprise level...
02:58:18disruptekthey should be as simple as possible, and no simpler, imo.
02:58:33disruptektoml makes a lot of sense, given the climate.
03:00:07*rnrwashere joined #nim
03:00:22rayman22201I'm a sad Panda that Status had to resort to make. I'm also sad that Status had to make some pretty hard forks of parts of Nim.... but I understand their reasoning. They had to get shit done TM.
03:01:19shashlickthere's 70 odd packages being tested in the CI with the compiler
03:01:20shashlickhttps://github.com/nim-lang/Nim/blob/devel/testament/important_packages.nim
03:08:23*rnrwashere quit (Remote host closed the connection)
03:28:44FromGitter<arnetheduck> @shashlick stable, locked with a subirle
03:29:13FromGitter<arnetheduck> submodule
03:30:16shashlickso what's your opinion on nawabs
03:33:10FromGitter<arnetheduck> haven't tried really, paltry feature set for production use though, even if it seems to get the basics right, from description
03:35:41*rnrwashere joined #nim
03:37:03FromGitter<arnetheduck> we actually tried devel for a few months but having a whole team held up by daily bugs is no good for your productivity
03:39:20*rnrwashere quit (Remote host closed the connection)
03:40:41*rnrwashere joined #nim
03:41:24FromGitter<arnetheduck> well, half the team held up while the other half is trying to fix them - we have compiler devs on board, after all :)
03:41:31I_Right_Ihey has anyone tried out this 2D vector graphics engine? ---> blend2d.com
03:41:59shashlicktrue - so using stable now?
03:45:07*rnrwashere quit (Ping timeout: 258 seconds)
03:54:48*rnrwashere joined #nim
03:55:29FromGitter<arnetheduck> yeah. we keep a fork in case we need to fix something really critical, but 0.19 has been mostly good to us, or we've found reasonable workarounds for most things.
04:06:04shashlickgood to hear
04:08:53*rnrwashere quit (Remote host closed the connection)
04:09:26*rnrwashere joined #nim
04:13:13*rnrwashere quit (Remote host closed the connection)
04:15:52FromGitter<Varriount> ryukoposting: You could vendor the packages.
04:16:03FromGitter<Varriount> Or just use a specific commit
04:24:46*kapil____ joined #nim
04:29:53*noonien quit (Quit: Connection closed for inactivity)
04:41:26*nsf joined #nim
04:44:34*neceve quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
04:53:49*I_Right_I quit (Remote host closed the connection)
04:56:54*Tanger joined #nim
05:06:07*narimiran joined #nim
05:17:36*solitudesf joined #nim
05:21:28Araqhttps://github.com/apple/swift/blob/master/docs/OwnershipManifesto.md now look at this.
05:21:46Araqeverybody wants moves and single ownership and speed and safety
05:22:43Araqneedless to say, Nim's design is far better IMO. it uses better keywords, it's more clear about what happens and is quite far in its implementation
05:23:40disruptekahead of the curve or not, you'll be first to make a solid contribution to the research.
05:27:26shashlickhello Araq - running into a nimble error - nimdevel\lib\pure\includes\oserr.nim(4, 10) Error: This is an include file for os.nim!
05:27:50shashlicklooks like the vm in nimble is loading oserr.nim directly for some reason
05:28:14disruptekthis manifesto is ridiculous.
05:28:24disruptekBore, n.:
05:28:25disruptek A guy who wraps up a two-minute idea in a two-hour vocabulary.
05:28:27disruptek -- Walter Winchell
05:30:24shashlickworks fine on 0.19.4, broken on devel
05:34:26*dddddd quit (Remote host closed the connection)
05:37:17disrupteki don't see anything in the swift semantics that the new runtime won't be able to do; it's just more formally (read: verbosely) presented.
05:45:23Araqshashlick, how to reproduce?
05:45:57Araqdisruptek, well it doesn't say anything about "when you get it wrong, it crashes"
05:46:05disruptekseems like half of this proposal is workarounds for their compiler's inability to analyze closures or logic flow.
05:46:39Araqoh I wouldn't say that, "compiler's inability"
05:46:54Araqthey know how to write an optimizer
05:47:04Araqor a control flow analyser
05:47:15disrupteki mean, given the semantics.
05:48:57*krux02 joined #nim
05:49:16disruptek"The fact that our design does not attempt to provide first-class facilities for ephemerals is a well-considered decision, born from a trio of concerns:" -- "we can't implement anything else fast enough", "we aren't sure we want a more sophisticated solution", "please don't switch to rust."
05:49:35Araqlol
05:50:20shashlickaraq - all i did was checkout nimble, set NIM_LIB_PREFIX, built nimble and tried running it in same dir
05:51:50Araqwhen not declared(os):
05:51:50Araq {.error: "This is an include file for os.nim!".}
05:52:04Araqhow would Nimble import oserr directly? It makes no sense
05:52:16Araqah I know
05:52:40Araqlook, the "import hook" that Nimble uses is crap
05:52:59Araqand there are only so many workarounds we can put into the compiler to compensate for it
05:53:17AraqNimble needs to stop using that hook. asap.
05:53:22AraqI can guide you
05:55:01shashlickokay i'm going to remove the entire compiler anyway, so i'll continue refactoring with 0.19.4
05:55:18shashlickonce its out, i will revert back to using devel
05:55:30shashlickeither case it shouldn't matter since that's what we want anyway, no compiler dep
05:55:40Araqoh yeah
05:56:00Araqbut if it doesn't work out I can guide you how it should have been done
05:56:15Araqand it will be backwards compatible with other Nims too
05:56:40shashlick0.19.4 is running for now, but ya, this will cause others problems with nimble
05:56:51shashlicki don't know if it is because of how i'm building and running it
05:57:22Araqwell setting NIM_LIB_PREFIX doesn't help
05:57:41disruptekhard to believe nimble will survive nim-1.0.
05:58:03Araqwhy?
05:59:43disruptekeven the early adopters seem unsatisfied with it.
06:00:31rayman22201Lol @ swift ownership. As usual Araq is ahead of the trends...
06:02:37disruptekyeah, but the imposition on coders is much less significant with nim's version. they are really proposing a huge change here.
06:03:17rayman22201Nim is a better language. No surprise there...
06:04:14disruptekwell, it wasn't a forgone conclusion that implementing ownership would be as surgical -- i mean, it's not like apple is staffed by imbeciles, and yet here we are.
06:05:09disruptekdid you read to the end? it's bananas.
06:06:39rayman22201Not yet. Still reading... It just keeps going lol
06:07:36disruptekthere needs to be a way to get my 2MM values out of my table without iterating over them. i think the underlying datastore should be exported; why not?
06:13:29FromGitter<data-man> @disruptek Is it your PR? ;) https://github.com/nim-lang/Nim/pull/11002
06:14:34disruptektry it with a couple million items.
06:15:28disruptek(in a counttable, as per the pr)
06:19:01FromGitter<data-man> It doesn't matter.
06:19:35disruptekwell, it seems that way, but my testing suggested otherwise, as did that of chickendan.
06:20:37disruptekit should probably precalculate gaps all the way out. i forgot to implement that.
06:30:07*PMunch joined #nim
06:39:39PMunchHmm, I get an error when I try to use Jester with multipart form data
06:45:24leorizeping dom96 I suppose?
06:45:38*Vladar joined #nim
06:49:29Araqdisruptek, don't export it put have some 'proc take()' that moves? Somehow...
06:50:38disruptekhow do i reach in and grab it when it's not exported? beyond my nim skills (which are quite limited).
06:51:05disruptekdata-man: generating all the gaps is rather critical. ;-)
06:54:41FromGitter<data-man> @disruptek I added more gaps, see comments.
06:55:02Araqdon't use shellsort, use mergesort
06:56:36disruptekdata-man: did you update the timings? i generated all the gaps and now the sort takes ~1.5s. still 2x slower than naive seq sort.
06:58:05FromGitter<data-man> @disruptek Sure, the timings are updated.
06:59:03disrupteknow we're talkin'.
07:00:00*gmpreussner quit (Quit: kthxbye)
07:00:18leorizePMunch: I've tried this example https://github.com/dom96/jester/blob/master/tests/fileupload.nim
07:00:54leorizeit doesn't crash, but ballooned my firefox ram usage and almost got my system :p
07:01:52disruptekdata-man: thanks for the catch on that. now maybe you can tell me why it's so slow in the table. :-/
07:03:13FromGitter<data-man> Just write cmp proc for ```tuple[key: A, val: int]``` and use algorithm.sort for seq of this.
07:04:00PMunchleorize, that is very similar to what I do, but I get an index out of bounds error from the parseMultiPart procedure
07:04:43*gmpreussner joined #nim
07:05:07disrupteki mean, yeah, but i was trying to avoid the import (and learn why it's so slow).
07:05:20PMunchleorize, hmm the example seems to work though..
07:08:57leorizecan I have your implementation? maybe I can figure out how to debug it
07:10:20leorizeis there a way to build project-wide documentation using `nimble`? `nimble doc` can only build for 1 file
07:12:26Araq'nim doc --project ' iirc
07:19:13leorizethat works, thanks Araq
07:23:04*jjido joined #nim
07:24:36PMunchleorize, I found the issue. The input that had type="file" must also have name="file"
07:24:47PMunchWell, any name I guess, but it needs a name
07:25:19leorizethat's great :) meanwhile I might have found a way to DoS firefox :p
07:32:00PMunchHmm, there must be more to this.. I don't get the error when I remove the field from the fileupload example..
07:35:48*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:45:38*narimiran_ joined #nim
07:47:07*narimiran quit (Ping timeout: 245 seconds)
07:49:37*solitudesf quit (Ping timeout: 245 seconds)
07:57:01*shomodj joined #nim
08:07:07*floppydh joined #nim
08:27:27*pi1 joined #nim
08:28:51*pi1 quit (Client Quit)
08:29:27*pi_ joined #nim
08:37:56*Tanger quit (Quit: Leaving)
08:47:48*narimiran_ is now known as narimiran
09:04:12*chickendan joined #nim
09:13:37*Tanger joined #nim
10:08:10*Trustable joined #nim
10:13:21*ikan-keli_2 quit (Ping timeout: 244 seconds)
10:16:32*ikan-keli_ joined #nim
10:26:31*jjido joined #nim
10:45:01*chickendan quit (Ping timeout: 246 seconds)
11:06:03PMunchAnyone know of a good word list for generating identifiers?
11:06:39PMunchLike a list of 10000 adjectives and one with 10000 substantives, so you can pick one from each and have a human rememberable id
11:08:15FromGitter<mratsim> You can use the one used by blockchains to wordify private keys
11:09:16FromGitter<mratsim> see: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki#Wordlist
11:09:29*clyybber joined #nim
11:10:08FromGitter<mratsim> wordlist is there: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt and can be used to generate passwords in the order of 2^256
11:10:20FromGitter<mratsim> bits size*
11:12:16PMunchYeah I guess that would work
11:36:34FromGitter<liquid600pgm> I'm trying to compile shashlick's nimterop soloud wrapper, but I'm getting a *ton* of C++-related linker errors: https://termbin.com/pbns
11:44:49clyybberam I retarded or did this syntax used to work: `for i in 0..^someInt:` ?
11:46:12*dddddd joined #nim
11:49:07clyybbernevermind, my mind rotated the < in ..< apparently
11:50:09jjidoNo space before <
11:51:12clyybberThanks, I know.
11:54:09PMunchclyybber, you probably just mixed it with negative array notation myseq[^2]
11:54:42clyybberyeah :D
11:55:13*abm joined #nim
11:55:17clyybber<^> too many
11:55:24clyybber v symbols for my head :D
11:57:47*Trustable quit (Remote host closed the connection)
11:57:56shashlick@liquid600pgm link with cpp?
11:58:04FromGitter<mratsim> 1) .^1 used to work
11:58:14FromGitter<liquid600pgm> shashlick: what do you mean?
11:58:25FromGitter<mratsim> it meant to the last item of the collection
11:59:01FromGitter<mratsim> indexing with [^1] used to be magic (and broken for custom collection) now it's just BackwardsIndex
11:59:09shashlickhttps://github.com/nimterop/nimterop/blob/master/config.nims
12:00:14FromGitter<liquid600pgm> aah, that makes sense
12:00:14FromGitter<liquid600pgm> thanks
12:00:36*ng0 joined #nim
12:01:56shashlickI'm not 100% sure if Nim looks at that nims file
12:02:25shashlickNot clear in appveyor logs what link command is run
12:02:37shashlickBut that might do the trick
12:03:26FromGitter<liquid600pgm> is it possible to enforce this for a library?
12:03:52FromGitter<liquid600pgm> or does it have to be added for each program using it?
12:04:22Araqshashlick, nim says which config files have been processed
12:05:42FromGitter<mratsim> unfortunately added to each program :/ have the same issue with nim.cfg
12:06:06FromGitter<liquid600pgm> I might as well compile with `nim cpp`, it will be much simpler
12:10:54*sendell[m] quit (Ping timeout: 252 seconds)
12:10:56*serialdev[m] quit (Ping timeout: 252 seconds)
12:11:28*Miguelngel[m] quit (Ping timeout: 240 seconds)
12:11:28*TheManiac[m] quit (Ping timeout: 240 seconds)
12:11:29*forkbomb9[m] quit (Ping timeout: 252 seconds)
12:11:31*zielmicha[m] quit (Ping timeout: 252 seconds)
12:11:31*federico3[m] quit (Ping timeout: 252 seconds)
12:11:32*flaviut[m] quit (Ping timeout: 268 seconds)
12:11:33*sg-james[m] quit (Ping timeout: 250 seconds)
12:11:34*k0mpjut0r quit (Ping timeout: 250 seconds)
12:11:34*planetis[m] quit (Ping timeout: 265 seconds)
12:11:35*GitterIntegratio quit (Ping timeout: 265 seconds)
12:11:36*junk[m] quit (Ping timeout: 250 seconds)
12:11:37*ArchieT[m] quit (Ping timeout: 250 seconds)
12:11:41*dyce[m] quit (Ping timeout: 252 seconds)
12:11:48*macsek1911[m] quit (Ping timeout: 240 seconds)
12:11:52*Demos[m] quit (Ping timeout: 252 seconds)
12:11:55*xomachine[m] quit (Ping timeout: 264 seconds)
12:11:55*pqflx3[m] quit (Ping timeout: 264 seconds)
12:11:55*spymasterd[m] quit (Ping timeout: 264 seconds)
12:11:56*Manny8888 quit (Ping timeout: 264 seconds)
12:11:58*narimiran[m] quit (Ping timeout: 250 seconds)
12:11:58*isaac[m]1 quit (Ping timeout: 250 seconds)
12:12:00*xylef quit (Ping timeout: 250 seconds)
12:12:02*leorize quit (Ping timeout: 252 seconds)
12:12:05*Connor[m] quit (Ping timeout: 252 seconds)
12:12:05*TheKing[m] quit (Ping timeout: 252 seconds)
12:12:06*lqdev[m] quit (Ping timeout: 264 seconds)
12:12:06*libman[m] quit (Ping timeout: 264 seconds)
12:12:11*yglukhov[m] quit (Ping timeout: 252 seconds)
12:12:24clyybberlooks like matrix broke down once again...
12:12:30*gh0st[m] quit (Ping timeout: 264 seconds)
12:12:31*jugash[m] quit (Ping timeout: 264 seconds)
12:14:45*kungtotte joined #nim
12:16:15*shomodj quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:22:05PMunchHmm, I'm trying to use threadpool to just spin of a thread to do something. But the odbc library isn't GC safe, what would be the best way to work around this?
12:24:40Araq--gc:boehm and {.gcsafe.} callHere()
12:26:06PMunchHuh?
12:26:22PMunchDoing just {.gcsafe.} myCall() doesn't seem to work
12:26:26*Snircle joined #nim
12:26:45PMunchAttempting to call undeclared routine gcsafe
12:29:02clyybberAraq: It's probably too early to report bugs/errors with the new runtime, but I just wanted to report that compiling my projects always fails with this:
12:29:05clyybber`Error: unhandled exception: /home/clyybber/builds/nim/compiler/liftdestructors.nim(301, 14) `t.destructor != nil` [AssertionError]`
12:29:46Araq {.gcsafe.}: myCall()
12:30:49Araqclyybber, huh?
12:31:02Araqnever seen that happening
12:31:35AraqI'm working on callbacks and async and then it's ready and production quality :P
12:32:08clyybberAraq: Perhaps it only happens with nimble build --newruntime
12:32:13Araqwell I'm kidding but I never saw your problem, is it easy to reproduce?
12:32:21clyybberI think so, yes
12:34:09Araqreport it please
12:34:16clyybberAraq: Ok, will do.
12:34:42clyybberAraq: Can you try reproducing it first, maybe its a local problem?
12:34:44*seni joined #nim
12:36:00clyybberAraq: Cloning and trying to build this with nimble build --newruntime should reproduce the error: https://gitlab.com/Clyybber/spritepacker.git
12:40:56*Cthalupa quit (Ping timeout: 250 seconds)
12:42:13Araqsorry no, please come up with a smaller example that fails
12:42:29clyybberI'm trying to rn, but I get other errors then...
12:43:12*Cthalupa joined #nim
12:43:29PMunchhttpbeast doesn't seem to like boehm :( http://ix.io/1FUn/
12:44:22*drewr quit (Remote host closed the connection)
12:45:07seniif I have `s = '\u0110'; print(s)`, why does python2 work and python3 fail (locale is set to C) ??
12:46:32AraqPMunch, huh well you also only use .gcsafe and assume it's gcsafe
12:46:50PMunchHmm, yeah I guess that's an option..
12:46:52Araqseni, because Python 3 unicode changes, but this is #nim
12:47:11senioops :D sorry
12:49:09shashlickAraq right, it does tell me which config files were used
12:49:22shashlickLuckily nimble didn't suppress that
12:52:38*solitudesf joined #nim
12:55:14clyybberAraq: I managed to extract a 2 line snippet that reproduces the failure, gonna open an issue
12:56:10clyybberjust compile this with nim c --newruntime:
12:56:18clyybberfunc test(): (seq[int], int) =
12:56:20clyybber return (@[1], 5)
12:56:22clyybberyyy
12:56:45clyybberignore the "yyy" :D
12:57:23FromGitter<mratsim> who in his right ind return tuples :D
12:57:26FromGitter<mratsim> mind*
12:57:47FromGitter<mratsim> you don't even need to call test()?
12:57:52clyybberno
12:58:14dom96PMunch: interesting, please report it
13:00:29PMunchdom96, github.com/dom96/httpbeast/issues/24
13:00:35PMunchOr did you mean report in in Nim?
13:00:59PMunchAnd I don't really have a minimal example, so it's not a very good bug report..
13:04:09*drewr joined #nim
13:06:30clyybberAraq: Reported: https://github.com/nim-lang/Nim/issues/11004
13:14:33FromGitter<mratsim> Why are newruntime and gc:destructors flags both available? Is there a difference?
13:24:13Araq--gc:destructors is GC for ref, destructors for strings and seqs
13:24:21Araq--newruntime is destructors for everything
13:24:55Araqbut --gc:destructors is even more vaporware than --newruntime
13:30:50FromGitter<mratsim> so newruntime doesn't imply gc:destructors?
13:31:37Araqit does but it's much more tested
13:31:50Araqunless you use tuples, of course :P
13:33:28*neceve joined #nim
13:33:35*solitudesf quit (Quit: Leaving)
13:45:28*neceve quit (Remote host closed the connection)
13:59:02*noeontheend joined #nim
14:02:20*c3v0axz joined #nim
14:02:20*shomodj joined #nim
14:03:37*chickendan joined #nim
14:06:48FromGitter<arnetheduck> cut out the excess fat and a lithe killer nim will emerge
14:08:13*NimBot joined #nim
14:09:01*solitudesf joined #nim
14:11:24livcdPMunch: i should just bookmark all the questions you ask now as I am going to do the same thing :X
14:12:31PMunchlivcd, haha just ask if you know I've asked about something before
14:12:45PMunchI was actually going to create a small series of videos on how to use Jester
14:12:58PMunchOr less specifically how to do web-dev in Nim
14:13:07PMunchBut then life happened and I never got around to it..
14:26:47*PMunch quit (Remote host closed the connection)
14:36:52*floppydh quit (Quit: WeeChat 2.4)
14:37:52*stefanos82 joined #nim
14:45:22*rnrwashere joined #nim
14:55:09*jjido quit (Quit: Connection closed for inactivity)
14:56:30*rnrwashere quit (Remote host closed the connection)
14:57:08*rnrwashere joined #nim
15:01:22*rnrwashere quit (Remote host closed the connection)
15:01:35*rnrwashere joined #nim
15:04:17*seni quit (Quit: Leaving)
15:09:03*clyybber quit (Quit: WeeChat 2.4)
15:11:31*clyybber joined #nim
15:14:31*vlad1777d quit (Ping timeout: 246 seconds)
15:31:29*rnrwashere quit (Remote host closed the connection)
15:32:02*shomodj quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:37:38*narimiran_ joined #nim
15:37:57*narimiran quit (Ping timeout: 245 seconds)
15:38:42*c3v0axz quit (Ping timeout: 268 seconds)
15:44:35*rnrwashere joined #nim
15:46:01FromDiscord<Zireael> type mismatch: got ref seq[string], expected seq[string]
15:46:19FromDiscord<Zireael> any way to make it play ball? I don't want to get rid of ref in my seq sliding function...
15:46:27FromDiscord<Zireael> (for performance reasons)
15:46:52FromDiscord<Zireael> oops, sliding should be slicing 😛
15:49:08*rnrwashere quit (Remote host closed the connection)
15:51:08*rnrwashere joined #nim
15:54:11clyybberZirael: What function are you calling?
15:54:34clyybberTheres two ways: Either change the signature of that function, or dereference it.
15:54:44*noeontheend quit (Ping timeout: 268 seconds)
15:55:52FromDiscord<Zireael> my own 😃 half an hour of googling somehow led me to the correct solution [] operator
15:56:03FromDiscord<Zireael> but I agree with the poster, the error is completely confusing...
15:56:27FromDiscord<Zireael> https://matthiashager.com/nim-object-oriented-programming (under Object Inheritance)
15:56:41FromDiscord<Zireael> can it get a hint saying 'try a [] operator?'
15:57:35*rnrwashere quit (Read error: Connection reset by peer)
15:58:24*rnrwashere joined #nim
15:59:51Araqhttp://troubles.md/posts/the-stack-is-not-the-stack/
16:00:46*shomodj joined #nim
16:01:18*rnrwashere quit (Remote host closed the connection)
16:08:20disruptekinteresting.
16:09:44clyybberZirael: I don't think its confusing. If you are using ref objects, you should know how to dereference them.
16:10:11clyybberOr at least it's helpful knowledge, we should expect of users using seq.
16:10:15clyybbers/seq/ref
16:10:20*clyybber quit (Quit: WeeChat 2.4)
16:10:35narimiran_https://nim-lang.github.io/Nim/manual.html, ctrl+F "deref" gives "An empty subscript [] notation can be used to derefer a reference" as the first result
16:10:41*narimiran_ is now known as narimiran
16:11:05*mosORadi joined #nim
16:11:10*hoijui joined #nim
16:11:19*c3v0axz joined #nim
16:16:41*nsf quit (Quit: WeeChat 2.4)
16:20:19FromGitter<iffy> Is there something like Python's BytesIO/StringIO that I can use to store output in memory in places where I'm testing something that writes to stdout?
16:21:13FromGitter<iffy> So, an in-memory `var File` type?
16:25:58AraqA StringStream ?
16:31:17FromGitter<iffy> oh, maybe that will work
16:36:01*c3v0axz quit (Ping timeout: 252 seconds)
16:36:17*narimiran quit (Remote host closed the connection)
16:36:58*narimiran joined #nim
16:37:05*c3v0axz joined #nim
17:00:05*Trustable joined #nim
17:02:31*leorize joined #nim
17:15:38*fanta7531 joined #nim
17:41:24*jjido joined #nim
17:45:44*hoijui quit (Ping timeout: 268 seconds)
17:49:24FromGitter<iffy> Yep, that works; thanks!
17:51:21*Trustable quit (Remote host closed the connection)
17:54:36*vegai_ quit (Remote host closed the connection)
17:55:30livcdPMunch: I cant use Jester atm I am not on linux
18:20:49*mosORadi quit (Quit: Connection closed for inactivity)
18:29:36*shomodj quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:31:27*kapil____ quit (Quit: Connection closed for inactivity)
18:37:44*hoijui joined #nim
18:44:48disruptektoo bad we'll never see that microwasm impl in practice.
18:45:33*stefanos82 quit (Remote host closed the connection)
18:54:39*hoijui quit (Ping timeout: 264 seconds)
18:55:10ZevvIf I make a lib that has functions that create some kind of complex object that users might want to pass around, should the lib use refs everywhere by default?
19:00:30*Elronnd quit (Ping timeout: 264 seconds)
19:01:25*Elronnd joined #nim
19:06:56disruptekZevv: i'd let the compiler figure that out unless you need to expose memory management to the user.
19:08:38Zevvthat was my idea as well; so - no refs in the lib, thanks
19:09:22dom96PMunch: I meant to httpbeast repo, thanks
19:09:25disruptekjmo; take it with a grain of salt. i'm a nim newbie. ;-)
19:09:37dom96it'll probably end up in the Nim repo eventually though :)
19:10:34*nsf joined #nim
19:11:03FromGitter<arnetheduck> disruptek, which microwasm?
19:11:51disruptekhttp://troubles.md/posts/microwasm/
19:12:10disruptekthe asm speaks for itself. :-/
19:18:23FromGitter<arnetheduck> well, looks like wasm impl folks claim information loss between the two
19:19:10*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
19:20:44*Snircle joined #nim
19:23:35disruptekno one is claiming compat. the problem is that it won't be supported by browsers in any event.
19:47:26*Vladar quit (Remote host closed the connection)
20:08:47FromGitter<deech> @Araq: Regarding this post about finalizers being called on a type T instead of an instance (https://forum.nim-lang.org/t/4780) will it work it's way up the hierarchy and run finalizer of T's parent as well?
20:09:16*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
20:17:08*narimiran quit (Ping timeout: 252 seconds)
20:20:46*shomodj joined #nim
20:25:03*Snircle joined #nim
20:42:16*fanta7531 quit (Quit: fanta7531)
20:42:40*nsf quit (Quit: WeeChat 2.4)
20:45:24*hoijui joined #nim
20:54:21*hoijui quit (Remote host closed the connection)
20:59:27*rnrwashere joined #nim
21:03:44*rnrwashere quit (Ping timeout: 250 seconds)
21:18:39*krux02 quit (Remote host closed the connection)
21:22:33*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:24:13*jjido joined #nim
21:28:21*solitudesf quit (Ping timeout: 268 seconds)
21:29:49*chickendan quit (Quit: Quit)
21:43:55*d10n-work joined #nim
21:46:50FromDiscord<Hel> found a bug in `c2nim`
21:47:33FromDiscord<Hel> it gives me this error `a.c(2, 24) Error: token expected: ;` when i use it on this code
21:47:33FromDiscord<Hel> https://cdn.discordapp.com/attachments/371759389889003532/566016508141240321/unknown.png
21:47:43FromDiscord<Hel> it gives me this error `a.c(2, 24) Error: token expected: ;` when i use it on this code
21:47:43FromDiscord<Hel> https://cdn.discordapp.com/attachments/371759389889003532/566016508141240321/unknown.png
21:48:05*rnrwashere joined #nim
21:56:24FromDiscord<Hel> i think i found a bug in `c2nim`
21:57:27*rnrwashere quit (Remote host closed the connection)
22:01:39*thomasross quit (Ping timeout: 255 seconds)
22:02:09*thomasross joined #nim
22:04:13*ng0 quit (Ping timeout: 256 seconds)
22:05:37*ng0 joined #nim
22:16:32*bozaloshtsh quit (Quit: ZNC 1.7.1 - https://znc.in)
22:16:42*bozaloshtsh joined #nim
22:16:42*bozaloshtsh quit (Changing host)
22:16:42*bozaloshtsh joined #nim
22:21:40*ng0 quit (Quit: Alexa, when is the end of world?)
22:22:08*Calinou quit (Ping timeout: 245 seconds)
22:32:58*rnrwashere joined #nim
22:37:15*rnrwashere quit (Ping timeout: 250 seconds)
22:40:57*bozaloshtsh quit (Quit: ZNC 1.7.2 - https://znc.in)
22:41:06*bozaloshtsh joined #nim
22:41:06*bozaloshtsh quit (Changing host)
22:41:06*bozaloshtsh joined #nim
22:50:40*Calinou joined #nim
23:01:17*abm quit (Read error: Connection reset by peer)
23:18:13*Calinou quit (Quit: No Ping reply in 180 seconds.)
23:18:32*I_Right_I joined #nim
23:19:32*Calinou joined #nim
23:20:15shashlickIt didn't recognize register mostly
23:21:42*ikan-keli_ quit (*.net *.split)
23:21:42*Tanger quit (*.net *.split)
23:21:42*gmpreussner quit (*.net *.split)
23:21:42*arecacea1 quit (*.net *.split)
23:21:42*cyraxjoe quit (*.net *.split)
23:21:42*jxy quit (*.net *.split)
23:21:42*onionhammer quit (*.net *.split)
23:21:42*hogeland quit (*.net *.split)
23:21:42*sknebel quit (*.net *.split)
23:27:56*ikan-keli_ joined #nim
23:27:56*Tanger joined #nim
23:27:56*gmpreussner joined #nim
23:27:56*arecacea1 joined #nim
23:27:56*cyraxjoe joined #nim
23:27:56*jxy joined #nim
23:27:56*onionhammer joined #nim
23:27:56*hogeland joined #nim
23:27:56*sknebel joined #nim
23:36:50FromDiscord<Hel> just reporting it
23:37:23*rnrwashere joined #nim