<< 25-11-2023 >>

00:00:41*lucasta joined #nim
00:06:29FromDiscord<raynei486> sent a code paste, see https://play.nim-lang.org/#ix=4Mnb
00:06:55*azimut joined #nim
00:13:05FromDiscord<odexine> Wrong field name
00:13:15FromDiscord<odexine> you wrote object type it should be obj type
00:14:03FromDiscord<odexine> The error just means that you can’t initialise using the value on the specified field because of the discriminator (the case field)
00:14:18FromDiscord<odexine> In this case it’s because you incorrectly wrote the discriminator field name
00:14:41FromDiscord<odexine> In Nim types are traditionally in pascal case
00:15:10FromDiscord<bostonboston> https://media.discordapp.net/attachments/371759389889003532/1177764376892162058/Screenshot_2023-11-24-18-14-35-38_0b2fce7a16bf2b728d6ffa28c8d60efb.jpg?ex=6573b18d&is=65613c8d&hm=570bcd08e0394b8440aa0dde01dda4a3301024d8ddedaf7542a221b7ce0bb50c&
00:28:27FromDiscord<raynei486> In reply to @odexine "you wrote object type": ohh okay
00:28:30FromDiscord<raynei486> that fixed it thanks
01:11:04FromDiscord<gbolahan> sent a long message, see http://ix.io/4Mni
01:14:35*krux02 quit (Remote host closed the connection)
01:19:05*Guest70 joined #nim
01:20:49*Guest70 quit (Client Quit)
01:35:09*rockcavera quit (Remote host closed the connection)
01:39:08*rockcavera joined #nim
01:43:16FromDiscord<Elegantbeef> `importc` for the headers
01:48:53FromDiscord<gbolahan> Can you reference me to any sample or doc that describes such situation
01:50:07FromDiscord<Elegantbeef> If you use `importc` it should emit a `include` corresponding to that include
01:50:18FromDiscord<Elegantbeef> No example or docs there
02:13:56*lucasta quit (Remote host closed the connection)
02:22:17*PMunch quit (Quit: leaving)
04:24:45*xet7 quit (Quit: Leaving)
06:03:01*xet7 joined #nim
06:42:07*azimut quit (Ping timeout: 240 seconds)
07:58:40*xutaxkamay_ joined #nim
07:59:11*beholders_eye joined #nim
07:59:41*xutaxkamay quit (Ping timeout: 252 seconds)
07:59:41*xutaxkamay_ is now known as xutaxkamay
08:19:57*beholders_eye quit (Ping timeout: 256 seconds)
09:17:11FromDiscord<meow5656> I can't import the Nim CSFML module. What to do? https://media.discordapp.net/attachments/371759389889003532/1177900781052116993/image.png?ex=65743096&is=6561bb96&hm=52ed232d8509b89d644810e81da0f9e6fef38119450033d6578c5954b114dfe7&
09:17:52FromDiscord<meow5656> Don't pay attention to the rest of the code, I'm just starting to learn
09:23:38FromDiscord<griffith1deadly> In reply to @meow5656 "I can't import the": maybe you need ".."/csfml
09:24:43FromDiscord<meow5656> Like this? https://media.discordapp.net/attachments/371759389889003532/1177902676223217695/image.png?ex=6574325a&is=6561bd5a&hm=3078416a60acfb9350ff7e2b7aa61ecb231ea9600eae16ff033626a99badbcaf&
09:27:31FromDiscord<griffith1deadly> yep
09:32:40FromDiscord<odexine> Insert warnings about include and advice to use import instead
09:42:20FromDiscord<meow5656> In reply to @griffith1deadly "yep": Thanks, bro, but now the library files don't see the files in other folders, what should I do? https://media.discordapp.net/attachments/371759389889003532/1177907113238999090/image.png?ex=6574367c&is=6561c17c&hm=0a824e9d1255679faa7fa27e51b1e3eab2091ed201ccced5504ed2d07e5372b7&
09:42:48FromDiscord<meow5656> In reply to @odexine "Insert warnings about include": I've already done that.
09:44:18FromDiscord<griffith1deadly> In reply to @meow5656 "Thanks, bro, but now": tell me why you create your project in library src instead from install library with nimble and use just import in your project
09:45:21FromDiscord<griffith1deadly> also i don't recommend use intelij tool's with nim, poor support
09:45:32FromDiscord<griffith1deadly> use vscode and nimlangserver instead
09:46:00FromDiscord<Elegantbeef> If you want to be silly about it you probably can do `--nimblePath:"csfml"` but really stop it, if you want to do a venv use atlas, if you want to install packages use nimble
09:47:50FromDiscord<meow5656> In reply to @griffith1deadly "tell me why you": Nimble will make a mistake https://media.discordapp.net/attachments/371759389889003532/1177908495325069333/image.png?ex=657437c5&is=6561c2c5&hm=2d11dbb565f9838c12e4154414ce1b5e386b5c6016c3532101f7fcb2760232c0&
09:48:30FromDiscord<Elegantbeef> Install git
09:48:31FromDiscord<Elegantbeef> nimble requires git in your path
09:48:31FromDiscord<Elegantbeef> If it's not in your path it does not work
09:48:36FromDiscord<griffith1deadly> In reply to @meow5656 "Nimble will make a": bro, just type in browser install git and go
09:55:26NimEventerNew thread by satoshi: Is Nim Dead?, see https://forum.nim-lang.org/t/10681
10:01:15FromDiscord<Phil> In reply to @meow5656 "Thanks, bro, but now": Note that generally in nim you do relative import paths, at least I'm not aware of a way to do "absolute" import paths
10:01:35FromDiscord<Elegantbeef> There are some 'hidden' import paths you can use
10:02:21FromDiscord<Phil> The way you're writing that makes it sound like a "Can but really shouldn't because it's non obvious"
10:02:39FromDiscord<Elegantbeef> https://nim-lang.org/docs/nimc.html#compiler-usage-commandminusline-switches
10:03:16FromDiscord<Elegantbeef> Those all work inside of `import` strings afaik
10:04:54FromDiscord<Elegantbeef> You should be capable of doing absolute paths, not that it's sane to do
10:05:02FromDiscord<Phil> Wait, then you should be able to do "absolute imports" by which I mean imports relative to the project root
10:05:22FromDiscord<Elegantbeef> Yep
10:05:39FromDiscord<Elegantbeef> Though only at top level, inside a library it'll fail
10:05:42FromDiscord<Phil> What does nim identify as the projectpath?
10:05:59FromDiscord<Phil> Like the dir in which the nimble file of the project is?
10:06:13FromDiscord<Phil> (edit) "Like the" => "The"
10:06:27FromDiscord<Phil> Or the root file from which you're compiling?
10:06:58FromDiscord<Elegantbeef> Given that my test's config does `"$projectDir/../src"` probably the source dir
12:08:23FromDiscord<redmechanics> if i have a program.exe written in nim and i double click it it will open cmd and when the program finishes it will close that cmd but is there a way of keeping it open after program finishes ?
12:08:42FromDiscord<redmechanics> (edit) "if i have a program.exe written in nim and i double click ... it" added "from file explorer"
12:29:30FromDiscord<takemichihanagaki3129> In reply to @redmechanics "if i have a": Yes, a trick to do it is putting the program to expect an user's input.
12:30:07FromDiscord<takemichihanagaki3129> I don't remember the function that do that in Nim, but in Python his would be `input()`.
12:33:52FromDiscord<TӨMΛ ☠> `readLine(stdin)`
13:20:52FromDiscord<fabric.input_output> In reply to @fabric.input_output "like can you do": ?
13:30:04FromDiscord<ebahie> hello, i had a question about the nim compiler, where in the source code is the implementation of the keyword import situated?
13:30:14FromDiscord<ebahie> (edit) "import" => ""import""
13:33:44FromDiscord<Phil> In reply to @fabric.input_output "?": I would assume so.↵In owlkettle we use this to add the cdecl pragma to things en masse
13:34:28FromDiscord<fabric.input_output> In reply to @isofruit "I would assume so.": ok thanks
13:34:32FromDiscord<Phil> In reply to @ebahie "hello, i had a": I think that is a question best asked in #internals , the folks there aren't all that active in here
13:34:45FromDiscord<Phil> (edit) "In reply to @ebahie "hello, i had a": I think that is a question best asked in #internals , the folks there aren't all that active in here ... " added "and they'll be the ones with the necessary knowledge"
13:34:54FromDiscord<ebahie> In reply to @isofruit "I think that is": alright thank you
14:39:28*beholders_eye joined #nim
14:41:05FromDiscord<glomdom.> is bitwise `or (|)` in nim like `or`?
14:46:11*beholders_eye quit (Ping timeout: 264 seconds)
15:01:11FromDiscord<griffith1deadly> sent a long message, see http://ix.io/4Mpm
15:06:56FromDiscord<glomdom.> does anyone know how i can namespace my procs?↵↵for example in a file `revision.nim` i would have 3 procs `new(major: uint16, minor: uint16)`, `major(self: Revision)` and `minor(self: Revision)`.↵how can i use these procs as `let rev = revision.new(2, 2)`, `rev.major()` and so forth?
15:09:16FromDiscord<griffith1deadly> sent a code paste, see https://play.nim-lang.org/#ix=4Mpr
15:10:27FromDiscord<griffith1deadly> (edit) "https://play.nim-lang.org/#ix=4Mpr" => "https://paste.rs/0v63f"
15:10:57FromDiscord<glomdom.> it gives me `implementation of 'revision.new(major: uint16, minor: uint16)' expected`
15:11:26FromDiscord<glomdom.> and a multitude of other errors if i change return type to object, Revision
15:12:49FromDiscord<odexine> Can we see the code as is
15:12:57FromDiscord<glomdom.> without the changes or with the changes?
15:13:12FromDiscord<glomdom.> sent a code paste, see https://paste.rs/Gas87
15:16:16FromDiscord<odexine> You can qualify procedures even if the module was imported normally, so you can rename new revision as is
15:16:42FromDiscord<glomdom.> yeah but what if i have other procs with the same type of args
15:16:46FromDiscord<glomdom.> (edit) "args" => "parms"
15:16:47FromDiscord<glomdom.> (edit) "parms" => "params"
15:18:00FromDiscord<odexine> Only ambiguous if it is in the same module
15:18:21FromDiscord<odexine> Though in this case yeah okay wait here
15:19:21FromDiscord<odexine> `proc new(_: typedesc[Revision], major: uint16, minor: uint16): Revision =` will force you to call it Revision.new(...)
15:20:25FromDiscord<glomdom.> yep that works, thanks
15:27:29*lucasta joined #nim
15:41:07FromDiscord<glomdom.> sent a code paste, see https://play.nim-lang.org/#ix=4MpA
15:45:28*jmdaemon quit (Ping timeout: 276 seconds)
15:46:14FromDiscord<odexine> Make them procedures? You don’t need parentheses to call a procedure
15:47:14FromDiscord<odexine> proc EFI_...(_: typedesc[Revision]): Revision = Revision.new...
15:47:23FromDiscord<odexine> (edit) "proc" => "`proc" | "Revision.new..." => "Revision.new...`"
15:48:53*Mister_Magister quit (Ping timeout: 256 seconds)
15:52:10*Mister_Magister joined #nim
16:12:10*beholders_eye joined #nim
16:14:58NimEventerNew thread by bobbersen: Capture atomics in closure, see https://forum.nim-lang.org/t/10682
16:41:07FromDiscord<glomdom.> In reply to @odexine "Make them procedures? You": isnt that just redundant?
16:41:14FromDiscord<glomdom.> the amount of procedures
16:44:33*beholders_eye quit (Ping timeout: 268 seconds)
16:52:01FromDiscord<redmechanics> do you have to be logged into discord to use the dimscord library ?
16:52:21FromDiscord<sOkam! 🫐> In reply to @redmechanics "do you have to": the bot needs to be logged, not the user
16:53:15FromDiscord<redmechanics> ok
16:58:17FromDiscord<odexine> In reply to @glomdom. "isnt that just redundant?": I mean to replace the constants with procedures
17:33:14FromDiscord<redmechanics> In reply to @heysokam "the bot needs to": how do you do it ?
17:36:43*beholders_eye joined #nim
17:39:00FromDiscord<sOkam! 🫐> In reply to @redmechanics "how do you do": I don't remember. I only used the lib for a couple of days↵But they have an official discord server, best to ask in there ✍️
17:39:43FromDiscord<sOkam! 🫐> more likely to get a quick answer about dimscord specifically
17:46:56*lucasta quit (Quit: Leaving)
17:47:49FromDiscord<Chronos [She/Her]> Cursed idea, what if: LSP that runs on a server while you program on your PC
17:49:00FromDiscord<glomdom.> In reply to @odexine "I mean to replace": is there another way? and is there a way to dynamically generate these procs
17:49:34FromDiscord<odexine> Personally I have no idea why you’d want these procedures when you can just quite literally call the new procedure with the desired numbers
17:49:48FromDiscord<odexine> Since the numbers are in the name there’s no real difference
17:49:53FromDiscord<glomdom.> versioning purposes
17:50:22FromDiscord<glomdom.> id much rather keep them as properties because those are the only available versions
17:50:28FromDiscord<glomdom.> and anything other than that will break other code
17:54:59FromDiscord<Chronos [She/Her]> In reply to @glomdom. "what if i want": Why not use an enum? An enum is more suitable here if there's only limited versions
17:55:19FromDiscord<glomdom.> oh thats right enums existed
17:55:27FromDiscord<Chronos [She/Her]> :P
17:56:42*azimut joined #nim
17:58:54FromDiscord<redmechanics> In reply to @heysokam "I don't remember. I": the thing is that the dimscord server isn't active and no one responds
18:01:20FromDiscord<sOkam! 🫐> In reply to @redmechanics "the thing is that": it was active last time I tried the lib 😦
18:10:30FromDiscord<meow5656> sent a long message, see http://ix.io/4Mqq
18:28:15*PMunch joined #nim
18:42:46*Guest48 joined #nim
19:06:21*beholders_eye quit (Remote host closed the connection)
19:12:37FromDiscord<raven_team.leader> sent a code paste, see https://play.nim-lang.org/#ix=4Mqy
19:17:15FromDiscord<bostonboston> Method is for dynamic dispatch, func is an alias for proc with no side effects
19:17:58FromDiscord<bostonboston> `proc foo() {.noSideEffects.} =`
19:18:48FromDiscord<nasuray> I updated my UI for `nim-lang/packages` with version/commit info and calculated some general metrics (https://nimpkgs.dayl.in/#/metrics). Found out disturbingly only 852 of the ~2200 valid packages have any git tags associated with versions. Also, @juancarlospaco wins the award for most published modules.
19:20:41FromDiscord<raven_team.leader> In reply to @bostonboston "Method is for dynamic": wdym dynamic dispatch and no side effects???
19:21:11FromDiscord<sOkam! 🫐> In reply to @raven_team.leader "whats the diff between": func : for writing functional-style procedures, that are enforced to not have side effects↵proc : your regular "function" in other languages should be called procedure, so nim does call it proc↵method : For class-like behavior when using inheritance with objects _(think virtual methods in cpp and similars)_
19:21:52FromDiscord<sOkam! 🫐> In reply to @raven_team.leader "wdym dynamic dispatch and": in simple terms, side effects means that the function does not touch anything outside of itself
19:21:57FromDiscord<raven_team.leader> i see
19:22:34FromDiscord<sOkam! 🫐> In reply to @raven_team.leader "wdym dynamic dispatch and": dynamic dispatch means that the exact function that should be called at runtime is decided at runtime based on the runtime data/information
19:22:53FromDiscord<raven_team.leader> i get that now yea
19:22:55FromDiscord<michaelb.eth> note: Nim’s definition of “no side effects” is a bit funky, not intuitive if you’re familiar with the idea from another language
19:23:02FromDiscord<bostonboston> In reply to @heysokam "in simple terms, side": Which isn't strictly true for Nim but it still gets you places
19:23:06FromDiscord<sOkam! 🫐> so if you have 3 functions that -could- fit that description, static dispatch asigns that at compile time, but dynamic dispatch asigns it at runtime
19:23:16FromDiscord<sOkam! 🫐> In reply to @bostonboston "Which isn't strictly true": > in simple terms
19:23:36FromDiscord<sOkam! 🫐> there is a big benefit to not clogging the mind of new learners with TMI 🤷‍♂️
19:24:28FromDiscord<michaelb.eth> Nim’s term isn’t simple, though, as usual
19:38:26FromDiscord<bostonboston> I am the beginner and my mind is clogged 😔
19:49:37NimEventerNew thread by AntonioFS: RAD system for Nim?, see https://forum.nim-lang.org/t/10685
20:01:27*jay-tuckey joined #nim
20:06:53*xet7 quit (Quit: Leaving)
20:07:09*Onionhammer quit (Quit: The Lounge - https://thelounge.chat)
20:12:05*Onionhammer joined #nim
20:13:08*Onionhammer quit (Client Quit)
20:15:37*Onionhammer joined #nim
20:16:57*Onionhammer quit (Client Quit)
20:18:07*jay-tuckey quit (Ping timeout: 260 seconds)
20:18:30FromDiscord<Phil> For the uneducated, the heck is RAD?
20:18:57FromDiscord<Phil> All I'm finding is "Rapid Application Development" and that seems wrong
20:23:07PMunchWell, from Lazarus' home page: Lazarus is a Delphi compatible cross-platform IDE for Rapid Application Development.
20:27:05FromDiscord<Phil> Quite frankly: The hell is that supposed to be in an IDE?
20:27:56FromDiscord<Phil> That's a non-informative statement like like "Inputting text feature now in your IDE"
20:28:04FromDiscord<Phil> (edit) "That's a non-informative statement ... like" added "from them"
20:28:07FromDiscord<Phil> (edit) removed "like"
20:28:33FromDiscord<Phil> I guess thats its own IDE or something?
20:30:11FromDiscord<Phil> PMunch! Question for genui, did you wrap the Stack widget?
20:30:24FromDiscord<bostonboston> I think it's like a ide and cross platform UI/app framework all in one
20:30:39PMunchHmm, I think the RAD part is the integrated visual designer
20:30:45PMunch@Phil, what do you mean?
20:31:09PMunchOh, missed the genui part
20:31:14FromDiscord<Phil> If so, how did you wrap all the features provided by the StackPage class which is not a GtkWidget and currently driving me insane 💀
20:31:18PMunchWell it doesn't really wrap anything
20:31:55PMunchIt just used some existing Gtk wrapper and only does a syntax transform to more easily build UIs
20:32:29FromDiscord<Phil> So I take it you didn't check how well that works for Stack ? Mostly asking because in terms of behaviour it really is an odd one compared to most other widgets
20:32:59FromDiscord<Phil> The fact that it's not a widget nor does it have constructor procs on its own is driving me mildly nuts
20:33:53FromDiscord<Phil> I'm like half torn between expressing it as a bunch of adder-parameters (that's like 6 of them) in owlkettle and making it a "fake" Widget
20:34:00FromDiscord<Phil> Neither approach works well
20:35:09FromDiscord<Phil> (edit) "Neither approach works well ... " added "as they can only be instantiated in the context of a Stack where they instantly get added via specific procs.↵You can't just first create a GtkStackPage and then add that to the stack, that'd be too easy (and is typically how owlkettle operates)"
20:37:01PMunchHmm, not entirely sure how you would normally interact with a Stack
20:38:16FromDiscord<Phil> Generally: Instantiate your widgets, add them via proc to a Stack, get a StackPage instance back and then set attributes on that StackPage instance if you want.
20:38:22FromDiscord<Phil> Which is incredibly ass backwards in my opinion
20:39:50PMunchAh I see
20:40:11FromDiscord<Phil> That's what makes it so odd
20:40:25FromDiscord<Phil> You can't just instantiate a StackPage, add widgets and properties as you want and then add that StackPage to a Stack
20:40:40FromDiscord<Phil> You can instantiate a StackPage generally, but there's no proc to add a StackPage on its own
20:42:09PMunchBut if Owlkettle has full control over the AST and output wouldn't that be an easy fix?
20:43:31PMunchJust wait with applying the options until it has been added and you have a StackPage back?
20:50:10FromDiscord<Phil> You assume I understand how owlkettle does its magic
20:50:41FromDiscord<Phil> My brain is currently cooking even just trying to understand my problems
20:54:50PMunchWell that's unfortunate..
20:55:20PMunchI haven't looked at it at all, so not sure if I could help
20:56:08FromDiscord<Phil> Waaaaaaaiiiiiiiit.↵There may not be a direct proc, but you do have a get_pages proc
20:56:18FromDiscord<Phil> Which returns a Gio.ListModel.↵Which is mutable
20:56:49FromDiscord<Phil> So if I have a proc to add an entry to a ListModel I may be able to programmatically add a StackPage instead of using the available procs
20:58:24PMunchBut can you get a StackPage from anywhere?
20:58:33PMunchI would assume it was only created when you added it
21:00:24FromDiscord<Phil> Generally that's true, it has no constructors and the only procs that directly create them are ones that create them by adding a GtkWidget to the stack and transforming it into a GtkStackPage that you get the reference back from
21:00:25FromDiscord<Phil> BUT
21:00:58FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4MqU
21:01:27PMunchBut would it be valid in the eyes of owlkettle
21:01:28FromDiscord<Phil> Well that's for Widgets but g_object_new just returns a pointer, I can only make it return a StackPage type instead since GtkWidget is just distinct pointer (and so is StackPage)
21:02:22FromDiscord<Phil> I think if I can nail the adding of StackPage to Stack it would be valid enough
21:02:39FromDiscord<Phil> This wouldn't be the first "fake" GtkWidget in owlkettle, DialogButton is the first afaik
21:02:47FromDiscord<Phil> Icon would be another
21:03:10FromDiscord<Phil> Well "fake" in the sense that in the DSL they look like Widgets when in truth's they're GObjects or the like
21:06:05PMunchAah I see
21:06:49FromDiscord<Phil> Really the current roadblock I see is mostly How the hell do you add a GtkStackPage to a GtkStack
21:07:15PMunchSo annoying when toolkits like this mixes stuff up
21:07:22FromDiscord<Phil> I can get the ListModel<GtkStackPage> from a GtkStack, but no proc to add to it >_<
21:10:31*azimut quit (Ping timeout: 240 seconds)
21:10:55*azimut joined #nim
21:14:52*xet7 joined #nim
21:19:14FromDiscord<user2m> sent a code paste, see https://play.nim-lang.org/#ix=4MqY
21:19:31FromDiscord<Phil> In reply to @user2m "is it possible to": You mean add a flag programmatically?
21:20:53FromDiscord<Phil> because you can call `nim -d:blabla main.nim` any time you want.↵You can access it using `defined`.↵In fact you can even pass it a value, we do that in owlkettle where you can define `-d:adwminor=4` to define the minor version of libadwaita you want to compile against
21:30:09FromDiscord<bostonboston> In reply to @user2m "is it possible to": https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-compileminustime-define-pragmas
21:45:40*lucasta joined #nim
21:54:55*Guest48 quit (Quit: Client closed)
22:30:07*jmdaemon joined #nim
22:38:59PMunchHas anyone benchmarked the Nim random module for randomness?
22:44:56FromDiscord<Elegantbeef> I give it psuedo/10
22:45:33PMunchHuh?
22:45:52PMunchI'm just seeing some weird behaviour. Like it just rolled 13/98 five times in a row..
22:46:17PMunchWhich isn't impossible, since it's random, but it's just seems consistently non-random
22:49:32PMunchHmm, just ran some tests, seems random enough..
22:49:46FromDiscord<Elegantbeef> If speed and seeding is not a concern sysrand is probably a fine random alternative
22:56:08FromDiscord<redmechanics> is it possible for a nim program to execute a function before the pc shuts down
22:56:29PMunch@redmechanics, that's not really Nim specific
22:56:48FromDiscord<Phil> That sounds more like you need to interact with OS systems
22:56:49FromDiscord<redmechanics> In reply to @PMunch "<@927619710672060488>, that's not really": yes but is it possible to implement in nim ?
22:56:52FromDiscord<Elegantbeef> Hook up to your OS's event system and there you go
22:57:01FromDiscord<Elegantbeef> I mean you do not need to implement anything in Nim
22:57:02PMunchYour OS has to provide a way to do that, but if it does, then it could definitely call a Nim program or signal a running Nim program to do something
22:57:09FromDiscord<Phil> Sure, how I don't know since I don't know how to interact with the OS in that way
22:57:25FromDiscord<Elegantbeef> I mean on linux you'd likely use systemd 😄
22:57:31FromDiscord<Elegantbeef> Unless you think that's hell on earth
22:57:33rockcaveraPMunch, if you are looking for more prng algorithm options, check this out: https://github.com/rockcavera/nim-randnimgulins
22:58:02rockcaveraI haven't put in the necessary "love", but there are some things
22:58:16FromDiscord<Elegantbeef> https://askubuntu.com/a/1163373 it's simple as if you are using systemd
22:58:38PMunch@redmechanics, if you're on Linux (and run systemd) you create a service like this: https://unix.stackexchange.com/questions/39226/how-to-run-a-script-with-systemd-right-before-shutdown
22:59:02PMunchrockcavera, well I benchmarked random against sysrand and for my case they appear about the same
22:59:35PMunch@Elegantbeef, never got why some people seem to hate systemd with such passion
23:00:03FromDiscord<Elegantbeef> "It does too much" or something like that I guess
23:00:27rockcaveraPMunch, if you're looking for speed, on 64-bit architectures, I recommend using Wyrand
23:12:36FromDiscord<Phil> sent a long message, see http://ix.io/4Mre
23:13:15FromDiscord<Phil> It makes me overall rather glad that stuff like Artix at least exists as a sort of "emergency fallback", though I can't say I'd care to use it (at the moment)
23:19:56FromDiscord<redmechanics> how can i block user input in a program ?
23:27:59FromDiscord<Phil> The question confuses me, in what sense?↵By default in a CLI just don't read anything from the terminal and you're done
23:29:20*dtomato joined #nim
23:30:00FromDiscord<redmechanics> In reply to @isofruit "The question confuses me,": i want that on any app user can't do anything if possible
23:30:37FromDiscord<Phil> So you want that your application can block the user access to their system?
23:30:45FromDiscord<ElegantBeef> Disable the ctrl + c hook and there you go
23:30:49FromDiscord<Phil> (edit) "So you want that your application can block the user access to their ... system?" added "entire"
23:31:11FromDiscord<michaelb.eth> In reply to @redmechanics "i want that on": beef beat me to it
23:31:24FromDiscord<ElegantBeef> Disabling entire user IO reaks of malware
23:31:31FromDiscord<Phil> Agreed
23:31:40FromDiscord<Phil> Which, even if I knew how, would not support.
23:31:47FromDiscord<Elegantbeef> What does that even mean?
23:31:50FromDiscord<ElegantBeef> Ah there we go
23:31:53FromDiscord<ElegantBeef> bridge is alive again
23:57:26FromDiscord<user2m> In reply to @isofruit "You mean add a": yeah I was hoping to do it programmatically in the code but I'm sure tthat's probably a bad practice