00:21:11*bozaloshtsh joined #nim
00:29:03*brainpro1 quit (Ping timeout: 265 seconds)
00:34:28*krux02 quit (Remote host closed the connection)
00:35:20*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
00:40:18*xet7 quit (Quit: Leaving)
00:45:45*dddddd quit (Remote host closed the connection)
00:47:35*brainpro1 joined #nim
01:16:31*bozaloshtsh left #nim ("ERC (IRC client for Emacs 27.0.50)")
02:02:26*arecaceae quit (Remote host closed the connection)
02:02:49*arecaceae joined #nim
02:04:14*rockcavera joined #nim
02:37:23FromGitter<gogolxdong> mapLiterals seems doesn't apply to template like i18n
02:39:39FromGitter<Varriount> @gogolxdong Can you give a code example?
02:45:14FromGitter<gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b271cbaf41ea926bc8b3ba9]
02:49:28*cspar joined #nim
02:52:25FromGitter<gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b271e69f3e3007371ba6a46]
02:53:50FromGitter<gogolxdong> #["id", "name", "type", "status", "provider", "cpu", "memory", "zone", "createTime"]
03:06:44*Electrux joined #nim
03:24:51*xkapastel quit (Quit: Connection closed for inactivity)
04:13:17*endragor joined #nim
04:27:54FromGitter<Varriount> @gogolxdong mapLiterals only works on literals, not variables.
04:40:33FromGitter<Varriount> @gogolxdong You would need to do ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b2737c18cef6c0add80ab91]
04:40:43FromGitter<Varriount> Bah
04:42:22FromGitter<Varriount> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5b27382e63cb0b1a2d201677]
04:44:01*Bevo_ joined #nim
04:51:11*Electrux quit (Quit: WeeChat 2.1)
04:56:47FromGitter<Varriount> @nitely Awesome regex library!
05:06:13FromGitter<arnetheduck> @dom96 explicit in this case would mean that versions without operators should not be supported at all - we've already established that versions without operators are ambiguous - it's hard to know what they mean, specially when minor/patch are taken into consideration or missing on one side, so you have to assign "some" meaning to them.. ie what's the first principle that guides version comparison function
05:06:13FromGitter... implementation? semver?
05:19:55*nsf joined #nim
05:22:14FromGitter<codenoid> i have coding mood
05:22:25FromGitter<codenoid> btw, can i hide my app from `ps aux `
06:00:31FromGitter<Varriount> @codenoid Not without using kernel stuff
06:00:49FromGitter<Varriount> Or replacing `ps`
06:04:05*Vladar joined #nim
06:20:24FromGitter<mratsim> You probably need to find some rootkit tutorials =)
06:21:06FromGitter<mratsim> an alternative is to piggyback on another executable (like bash, systemd, python)
06:21:21FromGitter<mratsim> or splice/patch a process
06:23:40FromGitter<mratsim> Also try to look into kernel level debuggers, I remember playing with SoftIce something like 15 years ago, it hid itself from the Windows Task Manager
06:26:21FromDiscord<bahm> Is it possible to pass a code block to an operator template?
06:26:41FromGitter<codenoid> i'll try something
06:27:39FromGitter<Varriount> bahm: Yes, however you would probably need to use back ticks
06:28:32FromGitter<Varriount> bahm: What are you aiming to achieve?
06:28:52FromGitter<Varriount> @mratsim How are things going?
06:29:04FromGitter<mratsim> hey, awesome =)
06:30:17FromGitter<mratsim> what about you?
06:32:29FromGitter<Varriount> Working on my independent project for school
06:32:47FromGitter<Varriount> A Nim bash-like thing
06:33:20FromGitter<mratsim> nice =)
06:33:27FromGitter<mratsim> Will you call it Nish? :P
06:34:10FromGitter<mratsim> I saw the fish shell, and it seemed interesting: https://gist.github.com/JoshCheek/02fc5cab78ffa0c7cc95
06:34:46FromGitter<Varriount> It's really only for educational purposes. The planned syntax is currently a mixture of bash and command prompt
06:35:55FromGitter<Varriount> For example, `set x = y`
06:36:09*yglukhov[i] joined #nim
06:38:00FromGitter<mratsim> what are you studying by the way? They allow you to use Nim?
06:38:16FromGitter<mratsim> (going out, coming back in ~45min)
06:39:21FromGitter<Varriount> @mratsim It's computer science, I'm taking the "Independent Study" course.
06:40:46FromGitter<Varriount> Also, I sent you an invite link, in case you want to see the code
06:52:49*Bevo_ quit (Ping timeout: 260 seconds)
06:58:25FromDiscord<bahm> I'm trying to implement list comprehension using templates, but I don't see how that's possible with generics, since a symbol lookup will fail:
06:58:25FromDiscord<bahm> template `<-`(a, b, body: untyped): untyped =
06:58:25FromDiscord<bahm> var result: seq[int] = @[]
06:58:25FromDiscord<bahm> for a in b:
06:58:26FromDiscord<bahm> result.add(body)
06:58:26FromDiscord<bahm> result
06:58:29FromDiscord<bahm> echo x <- @[2, 3, 4]: x*x #@[4, 9, 16]
07:02:50FromDiscord<bahm> To be specific, the above works but is limited to a integers. The following is my attempt with generics:
07:02:50FromDiscord<bahm> template `<-`[T](a: untyped, b: typed, body: T): seq[T] =
07:02:50FromDiscord<bahm> var result: seq[T] = @[]
07:02:51FromDiscord<bahm> for a in b:
07:02:51FromDiscord<bahm> result.add(body)
07:02:51FromDiscord<bahm> result
07:02:54FromDiscord<bahm> echo x <- @[2, 3, 4]: x*x #Error: undeclared identifier: 'x'
07:02:59FromDiscord<bahm> To be specific, the above works but is limited to integers. The following is my attempt with generics:
07:03:01FromDiscord<bahm> template `<-`[T](a: untyped, b: typed, body: T): seq[T] =
07:03:03FromDiscord<bahm> var result: seq[T] = @[]
07:03:04FromDiscord<bahm> for a in b:
07:03:06FromDiscord<bahm> result.add(body)
07:03:07FromDiscord<bahm> result
07:03:09FromDiscord<bahm> echo x <- @[2, 3, 4]: x*x #Error: undeclared identifier: 'x'
07:07:12*adeohluwa joined #nim
07:07:21FromGitter<Varriount> bahm: Have you looked at https://nim-lang.org/docs/future.html ?
07:08:25FromDiscord<bahm> I'm aware there's an implementation of list comprehension, but I don't like the syntax 😃
07:08:42*Perkol joined #nim
07:11:35FromGitter<Varriount> Well, an operator can usually only take 2 inputs, the left side and the right side.
07:12:33FromGitter<Varriount> I wouldn't attempt to use generics. This sound like something macros would need to be used for.
07:13:11FromGitter<Varriount> You could possibly use the quoting procedure in the macros module to help though.
07:14:21FromGitter<7sDream> Why simple function like `system.+` is not `procvar`?
07:18:00FromGitter<alehander42> I am using fish too
07:18:11FromGitter<alehander42> like it a lot
07:22:13*PMunch joined #nim
07:32:19*dddddd joined #nim
07:33:36*zahary joined #nim
07:34:21FromGitter<mratsim> @7sDream, + is a builtin function, builtin function like inline functions are not proctor, there is no function pointer to pass.
07:34:46FromGitter<mratsim> use a template for injection or wrap them in a proc
07:35:14FromGitter<7sDream> thx u for explaining!
07:36:43FromGitter<mratsim> procvar not proctor ...
07:41:05*Vladar quit (Ping timeout: 240 seconds)
07:41:30*Vladar joined #nim
07:46:48*floppydh joined #nim
07:47:03*SenasOzys joined #nim
07:47:28*cspar quit (Ping timeout: 268 seconds)
07:51:10*fanta7531 joined #nim
07:53:48PerkolOn windows install page, there are dlls archive where I am supposed to place them?
07:54:01*cspar joined #nim
07:59:45PMunchFor PCRE and OpenSSL?
08:07:00PMunchNot sure how Windows loads DLLs, but I would guess either some common DLL folder, in some kind of PATH variable, or just right next to the Nim compiler itself
08:08:55*xet7 joined #nim
08:12:18*Perkol quit (Quit: Leaving)
08:12:23FromGitter<mratsim> It loads DLL from hell ;)
08:13:11*Pisuke joined #nim
08:14:35*MyMind quit (Ping timeout: 240 seconds)
08:15:33FromGitter<mratsim> @Varriount, I had a look at commandant, interesting and super clean.
08:16:06FromGitter<mratsim> By the way, I’m not an expert on lexing, but what do you think of the lexbase module, what does it lack? https://nim-lang.org/docs/lexbase.html
08:19:19FromGitter<mratsim> This made me chuckle:
08:19:31FromGitter<mratsim> (https://files.gitter.im/nim-lang/Nim/7vLg/2018-06-18_10-18-59.png)
08:24:22*Perkol joined #nim
08:25:19Perkolhttps://bpaste.net/show/666283fda0f7 I try to find location of my exe's dir on windows, yet it doesnt prints it on screen for some reason
08:27:05PerkolMaybe it interprets \ as line breaks?
08:27:50Perkolas escape char i mean
08:46:12*Perkol quit (Remote host closed the connection)
08:53:13*krux02 joined #nim
09:07:22FromGitter<7sDream> ```code paste, see link``` ⏎ ⏎ New to Nim's Concept feature. What's wrong with my code? [https://gitter.im/nim-lang/Nim?at=5b27764afc041c70d9aa46a7]
09:08:17FromGitter<7sDream> it cause a type mismatch when compile ⏎ if anyone want to run it: https://glot.io/snippets/f23gfctae9
09:08:36*Vladar quit (Remote host closed the connection)
09:12:37*mzigora joined #nim
09:13:40*Vladar joined #nim
09:13:50*nc-x joined #nim
09:14:14nc-x@mratsim: Apparently me and Araq are the only ones bitten by it ;D
09:17:23nc-xPerkol: if `len` is 14 then something should have been printed. try `echo output.repr` and see what it prints.
09:17:53*nc-x quit (Client Quit)
09:18:23*sakalli_ joined #nim
09:23:00*sakalli_ quit (Client Quit)
09:28:45FromGitter<bevo009> Hey guys, I know the mod/%% operator is designed for remainder division with integers ⏎ Floats using mod do compile when you import math...what is enabling that?
09:28:55FromGitter<bevo009> #mod Vs %% - operand test ⏎ ⏎ import math ⏎ ⏎ echo 7 mod 2 # => 1 ... [https://gitter.im/nim-lang/Nim?at=5b277b56c016730d8667096d]
09:30:06FromGitter<bevo009> also, how do you guys paste code in here and get that ide look?
09:30:41FromGitter<bevo009> Sorry, that looks all messed up now
09:31:05dom96You can put the language name after the first three `
09:31:34FromGitter<bevo009> o h like the forum
09:31:39FromGitter<dom96> yep
09:33:08FromGitter<bevo009> ok fixed, thanks
09:35:01FromGitter<mratsim> @bevo009 https://nim-lang.org/docs/math.html#mod,T,T
09:35:05FromGitter<Vindaar> @bevo009 regarding your question: if you search for mod on the index of the documentation here: https://nim-lang.org/docs/theindex.html#%60mod%60 you'll see that `math` defines a mod for float
09:38:46FromGitter<bevo009> cheers, https://nim-lang.org/docs/math.html#mod,T,T
09:39:56FromGitter<bevo009> ouput looks a little inconsistent, or at least unintuitive
09:40:26FromGitter<bevo009> Why does echo 7 mod 2.0 fail?
09:42:16FromGitter<Vindaar> See my link. You'll see that there is no `mod` proc, which defines a mod for two different types. And in Nim implicit type casting does not happen between most types (e.g. an `int` cast to a `float` without you saying so)
09:44:25FromGitter<bevo009> Sorry, I meant, why does 7.0 mod 2 compile, and 7 mod 2.0 does not?
09:45:01FromGitter<GULPF> `7.0 mod 2` works because integer literals are magical and can be converted to floats automatically
09:46:00FromGitter<GULPF> but it's buggy and unreliable when combined with generic procs like mod, which is why `7 mod 2.0` fails
09:51:43FromGitter<bevo009> So the compiler uses the mod present in the system module to calculate remainder ⏎ But if you import math, is the mod present in the math module now working on all mod operations? ⏎ Or does the compiler determine if a float is present, and switch on the fly?
09:51:57FromGitter<mratsim> when a proc accepts 2 parameters that are supposed to be of the same type, Nim tries to convert the second one to the type of the first using a converter (or automatically if the second is an int literal). There is no converter from float to int.
09:52:24FromGitter<mratsim> you can import lenient_ops though if you want this behaviour
09:52:41FromGitter<mratsim> @bevo009 yes that’s called proc overloading
09:53:21FromGitter<mratsim> if you import math, it’s present on all operations in the current file/module
09:55:24FromGitter<bevo009> So that yes was to the math module mod taking over all mod operations once imported in
09:56:49FromGitter<bevo009> And I assume mod's alias, the %% operator, doesn't work on any floats because it's actually a IntMax32 variant
09:57:38FromGitter<bevo009> valuable info for me to log, cheers guys
10:01:53FromGitter<mratsim> it does not take over
10:02:59FromGitter<mratsim> the compiler choose which one to call depending on the types of the parameters. Note that int literals (123 for example not x) are are convertible silently to any other numeric type.
10:04:00FromGitter<mratsim> if you do 10 mod 2, it will still use the integer mod, and gives you an integer result
10:05:10FromGitter<mratsim> If you import my big int library: https://github.com/status-im/nim-stint, you will have mod for uint128, uint256, … uint2048 but it will be specialized to them, the compiler will choose which one to call depending on the types.
10:12:31def-bevo009: %% is not an alias for `mod`, it interprets the numbers as unsigned ints and comes from a time before Nim had unsigned int support
10:14:29def-strangely enough you're not the first one to assume that even though the documentation is quite clear
10:15:33def-I guess the %-suffixed procs should be deprecated in favour of using unsigned ints
10:18:13FromGitter<bevo009> the documentation might be clear but I haven't read it all yet
10:18:47FromGitter<bevo009> I thought it was Araq who said it t was an alias
10:19:02FromGitter<bevo009> but I can't remember exactly where now
10:20:17FromGitter<bevo009> thanks for the clarification
10:27:00*adeohluwa quit (Quit: Connection closed for inactivity)
10:30:49*fanta7531 quit (Quit: ...)
11:01:46*elrood joined #nim
11:02:20*Vladar quit (Quit: Leaving)
11:04:22*SenasOzys quit (Ping timeout: 245 seconds)
11:22:47*zahary1 joined #nim
11:30:38*noonien joined #nim
11:44:52*Ven`` joined #nim
11:45:26FromGitter<narimiran> hey @mratsim, maybe you could help me. i'm on a new linux computer, i have installed Neo and now i get either "could not import: cblas_sscal" or "could not load: libopenblas.so(||.3|.2|.1|.0)". do you maybe know what's wrong?
11:55:05FromGitter<mratsim> apt-get install openblas?
11:56:21FromGitter<mratsim> you can check my Travis here: https://github.com/mratsim/Arraymancer/blob/afc0c213316b4d98002fbb118551a4de9b67e217/.travis.yml#L45-L50
11:56:33FromGitter<mratsim> on Ubuntu: apt-get install libopenblas-dev
11:57:36FromGitter<mratsim> also depending on the name you might need to pass --define:blas=blas or --define:blas=openblas or --define:blas=libopenblas
12:00:24FromGitter<narimiran> i tried installing openblas and change my .cfg to have a line `define:"blas=openblas"`, but it didn't help
12:00:44FromGitter<narimiran> it seems it works with `define:"blas=cblas"` :/
12:01:05*fvs joined #nim
12:05:02*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:06:00FromGitter<narimiran> i think it might be because i use manjaro, which has openblas 0.3.0 - on a computer where i have an older version it seems it works without a problem
12:07:28*data-man joined #nim
12:10:33*elrood quit (Remote host closed the connection)
12:11:14*data-man quit (Client Quit)
12:11:55*elrood joined #nim
12:12:50*krux02 quit (Quit: Leaving)
12:14:18*Ven`` joined #nim
12:14:47FromGitter<mratsim> cblas is the default name I think, so it’s possible that the distro packager used that name instead of the more common blas/openblas/libopenblas
12:17:19elroodcblas is just the c interface to blas, it still requires blas or openblas to be installed. at least on arch / manjaro they're separate packages
12:18:05FromGitter<narimiran> indeed. by default i had blas and lapack. then i installed cblas, and defined "blas=cblas" - this works.
12:18:42FromGitter<narimiran> when i try to install openblas (blas is uninstalled automatically) and use it with "blas=openblas", i get an error
12:22:58*SenasOzys joined #nim
12:29:13*gangstacat joined #nim
12:37:36*chief_enzosha joined #nim
12:37:57*mzigora quit (Ping timeout: 240 seconds)
12:41:01*nsf quit (Quit: WeeChat 2.1)
12:51:07*rauss quit (Read error: Connection reset by peer)
12:53:04*rauss joined #nim
12:54:22*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:07:30*chief_enzosha quit (Quit: Leaving)
13:09:58*Electrux joined #nim
13:11:45*xkapastel joined #nim
13:11:52*Vladar joined #nim
13:36:02endragorIs it possible to make proc f[T: int]() also work on `distinct int`?
13:39:44subsetparkYou mean aside from making it `int | MyDistinctInt`?
13:40:07*endragor quit (Remote host closed the connection)
13:40:33*endragor joined #nim
13:43:59*zahary1 quit (Quit: Leaving.)
13:45:25*endragor quit (Ping timeout: 260 seconds)
13:48:15shashlickPmunch: check out nimpcre if you want to avoid the pcre dll
13:59:54*endragor joined #nim
14:04:17*endragor quit (Ping timeout: 248 seconds)
14:05:57*craigger quit (Quit: bye)
14:07:36*nc-x joined #nim
14:07:56nc-x@data-man: https://github.com/nim-lang/Nim/issues/7902#issuecomment-398058449 What happened?
14:08:41*craigger joined #nim
14:09:49PMunchshashlick, I wasn't the one asking about DLLs. I was trying to answer :P
14:10:03PMunchBut I've looked at nimpcre before, for compile-time running
14:11:40*Entropic quit (Ping timeout: 260 seconds)
14:17:17*Entropic joined #nim
14:18:39*nc-x quit (Quit: Page closed)
14:27:10FromGitter<Varriount> There's also nim-regex
14:31:55PMunchOh, maybe that was the one I looked at. Just remember it was a pure Nim regex implementation
14:32:05FromGitter<mratsim> @endragor @subsetpark proc f(x: YourDistintInt) {.borrow.}, note that borrow is broken with generics iirc
14:32:47FromGitter<mratsim> ah no, it’s broken with static, my bad - https://github.com/nim-lang/Nim/issues/7552
14:33:20FromGitter<mratsim> actually it’s broken with both, fix: https://github.com/nim-lang/Nim/pull/6232
14:35:22*SenasOzys quit (Ping timeout: 265 seconds)
14:40:05*Perkol joined #nim
14:40:23subsetparkmratsim - I know about borrow, but my interpretation was that he was trying to go in the other direction (which isn't possible with my suggestion either): "proc P should apply to all subtypes, even distinct ones", as opposed to "in the case of proc P, subtype T' should not behave like distinct"
14:41:34FromGitter<sivakon> How many threads can we create using threadpool?
14:42:13FromGitter<sivakon> Is there a good actor library for Nim?
14:42:19FromGitter<mratsim> I suppose a macro called {.superborrow.} should try to get all the valid types?
14:42:53FromGitter<mratsim> @sivakon, how many as you want. For actors there is Nimoy, monster ont he forum started one as well but I’m not sure he open-sourced it
14:43:30FromGitter<sivakon> 4 million threads?
14:45:36PerkolHow do I make already existing string a raw one?
14:46:57*miran joined #nim
14:47:05FromGitter<sivakon> @mratsim nimoy is no last committed 1year ago
14:47:08FromGitter<mratsim> @sivakon threadpools are heavy threads, what you’re looking for are coroutines/fiber/green threads
14:47:26FromGitter<mratsim> but there is no library that abstract that in Nim
14:47:50FromGitter<sivakon> @mratsim does Nim have coroutine short ?
14:48:17FromGitter<sivakon> Go style coroutines are implemented in C. Can I wrap that?
14:48:32FromGitter<mratsim> https://nim-lang.org/docs/coro.html
14:48:54FromGitter<mratsim> And fedback on writing an actor library: https://forum.nim-lang.org/t/3291
14:49:45FromGitter<mratsim> you can wrap any C code yes.
14:50:46FromGitter<tim-st> Good news: nim will get the quickest Unicode Collation Algorithm:
14:50:49FromGitter<sivakon> https://github.com/sustrik/libdill
14:51:52*cspar quit (Ping timeout: 245 seconds)
14:53:46FromGitter<sivakon> @mratsim Scala has akka which is awesome. Rust has actix now as well.
14:55:27Perkolhttps://bpaste.net/show/9c841ea2489b Still figuring out what this is about.
14:58:44*yglukhov[i] quit (Remote host closed the connection)
14:59:27*yglukhov[i] joined #nim
15:00:09PerkolIt writes this string perfectly normally to file, though
15:04:04*floppydh quit (Quit: WeeChat 2.1)
15:04:10*yglukhov[i] quit (Ping timeout: 260 seconds)
15:04:47*cspar joined #nim
15:05:37elroodsivakon, last we checked goroutines required some assembler though
15:06:56*Trustable joined #nim
15:10:53*Guest40451 quit (Ping timeout: 276 seconds)
15:11:02*pigmej joined #nim
15:11:56*pydsigner quit (Ping timeout: 256 seconds)
15:14:44*pydsigner joined #nim
15:16:15*NimBot joined #nim
15:23:50*zahary1 joined #nim
15:41:26FromGitter<Varriount> @mratsim I've been using the Nim compiler as inspiration for parts of the design.
15:43:39FromGitter<mratsim> I don’t see any object variant though ;)
15:47:12PMunchHmm, the Gitter bot seems to be a bit unstable today
15:51:55FromGitter<Varriount> @mratsim The compiler's AST nodes use variants
15:52:15FromGitter<mratsim> but not your code
15:52:26FromGitter<mratsim> well there is one but with no optional field
16:00:19*Yardanico left #nim (#nim)
16:02:02*Yardanico joined #nim
16:08:34FromGitter<ephja> nc-x: see the newer comments
16:10:30*Yardanico left #nim (#nim)
16:10:47*Yardanico joined #nim
16:10:57*Yardanico left #nim (#nim)
16:11:23*Yardanico joined #nim
16:11:27FromGitter<ephja> 😕
16:11:33*Yardanico left #nim (#nim)
16:11:59*Yardanico joined #nim
16:13:03*Yardanico left #nim (#nim)
16:13:21*Yardanico joined #nim
16:13:31*Yardanico left #nim (#nim)
16:14:14*Yardanico joined #nim
16:14:19FromGitter<sivakon> Why is asynchttp so slow? https://github.com/costajob/app-servers
16:15:26Yardanicobecause it's not supposed to be "blazingly fast"?
16:15:32Yardanicotry with mofuw or httpbeast :)
16:15:49Yardanicomofuw will surely be in top3
16:18:09Yardanicoand I consider this benchmark unfair
16:18:16Yardanicoit tests both one-threaded and multi-threaded servers
16:18:51Yardanicoah, sorry - https://github.com/costajob/app-servers/commit/2afce56331a9c7f74da748aef398a79264eced00
16:26:30*SenasOzys joined #nim
16:26:53FromGitter<ephja> note the lack of parallelism at this point in time
16:34:49*zahary1 quit (Quit: Leaving.)
16:39:29Electruxis there a push notifications library for Nim?
16:40:04Electruxhi everyone btw :)
16:40:39PMunchElectrux, push notification to what?
16:41:50Electruxto OS? like Mac's push notifications or Linux's
16:42:02ElectruxLinux has dbus, dunst and things like that
16:42:12Electruxand Mac has some API for notifications as well
16:42:44FromGitter<kaushalmodi> PMunch: Maybe Electrux is looking for something like this in Nim: https://github.com/variadico/noti
16:42:59PMunchOh you're wondering if there is a cross-platform way to create a desktop notification
16:43:46PMunchPush notification typically means that the notification comes from somewhere outside your system
16:44:08FromGitter<kaushalmodi> PMunch: That noti app does that
16:44:12Electruxalmost Kaushalmodi... i just wanna send a notification programmatically
16:44:48Electruxas in, in the most simplistic form, i call a function, a notification pops up on my system
16:45:20PMunchWell there is this for Mac: https://github.com/dom96/notifications
16:45:31PMunchAnd this for Linux: https://github.com/FedericoCeratto/nim-libnotify
16:46:09PMunchI could swear that there was a cross platform thing for this though..
16:46:15FromGitter<kaushalmodi> `nimble search noti` :)
16:46:29dom96Should be trivial to use both libraries :)