00:02:46 | * | jua_ quit (Quit: Leaving) |
00:27:05 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
00:30:07 | * | abm joined #nim |
00:48:41 | * | marquis_ joined #nim |
00:59:50 | * | abm quit (Quit: Leaving) |
01:00:07 | * | marquis_ quit (Quit: Leaving) |
01:07:25 | * | Hideki_ joined #nim |
01:09:13 | * | sealmove joined #nim |
01:28:57 | * | couven92 quit (Ping timeout: 240 seconds) |
02:01:05 | FromDiscord_ | <exelotl> hey, would anyone good with opengl be able to help me figure out why my damn hello-world triangle isn't rendering? :( |
02:01:11 | FromDiscord_ | <exelotl> https://gist.github.com/exelotl/d0d271fbc070bffbd665e9780581bba1 |
02:17:49 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
02:24:55 | * | pbb joined #nim |
02:29:01 | * | endragor joined #nim |
02:30:33 | * | endragor quit (Remote host closed the connection) |
02:31:05 | * | endragor joined #nim |
02:34:24 | * | krux02 joined #nim |
02:52:29 | * | mwbrown quit (Ping timeout: 246 seconds) |
02:53:00 | * | krux02 quit (Remote host closed the connection) |
02:57:23 | * | sealmove quit (Quit: WeeChat 2.6) |
02:59:12 | * | mwbrown joined #nim |
03:13:04 | * | uu91 quit (Read error: Connection reset by peer) |
03:13:16 | * | uu91 joined #nim |
03:24:20 | * | endragor quit (Remote host closed the connection) |
03:25:14 | * | endragor joined #nim |
03:26:13 | disruptek | !github googlesearch |
03:26:14 | disbot | https://github.com/xyb/googlesearch.nim -- Nim library for scraping google search results |
03:27:37 | FromGitter | <Willyboar> !github fullstack |
03:27:37 | disbot | https://github.com/itsumura-h/nim-basolato -- A fullstack web framework for Nim based on Jester |
03:27:38 | disbot | https://github.com/blakeanedved/fullstacknim -- A repository for testing a fullstack nim web development framework |
03:33:31 | * | Hideki_ quit (Remote host closed the connection) |
03:33:57 | * | endragor quit (Remote host closed the connection) |
03:34:16 | * | Hideki_ joined #nim |
03:36:43 | * | endragor_ joined #nim |
03:37:12 | * | Hideki_ quit (Remote host closed the connection) |
03:37:24 | * | Hideki_ joined #nim |
03:58:57 | * | endragor_ quit (Remote host closed the connection) |
04:15:28 | * | dchem joined #nim |
04:16:09 | dchem | hi everyone, is anyone working on a OAS generator for jester? |
04:16:23 | disruptek | oas? |
04:16:31 | dchem | openapi standard |
04:16:37 | dchem | like swagger |
04:16:48 | disruptek | !github disruptek/openapi |
04:16:49 | disbot | https://github.com/disruptek/openapi -- OpenAPI Code Generator for Nim |
04:17:07 | dchem | that's the client generator I think |
04:17:12 | disruptek | it only does the client at present, but you are welcome to modify it. |
04:17:27 | dchem | ok, will look into it, thank you |
04:20:33 | * | endragor joined #nim |
04:20:59 | * | chemist69 quit (Ping timeout: 252 seconds) |
04:22:50 | * | chemist69 joined #nim |
04:33:59 | * | theelous3 quit (Ping timeout: 246 seconds) |
04:43:55 | * | nsf joined #nim |
04:48:49 | disruptek | Araq and narimiran: any opinion on backporting #12602 ? |
04:48:50 | disbot | https://github.com/nim-lang/Nim/issues/12602 |
04:48:50 | disbot | ^ export nim.cfg parser for use by other tools |
05:08:37 | * | Hideki_ quit (Remote host closed the connection) |
05:09:41 | * | Hideki_ joined #nim |
05:10:45 | * | Hideki_ quit (Remote host closed the connection) |
05:11:01 | * | Hideki_ joined #nim |
05:20:43 | * | Hideki_ quit (Remote host closed the connection) |
05:21:33 | * | Hideki_ joined #nim |
05:26:11 | * | Hideki_ quit (Ping timeout: 276 seconds) |
05:34:27 | Araq | disruptek: was backported |
05:34:45 | disruptek | thanks 👍 |
05:35:10 | Araq | btw your bot is really awesome now |
05:35:13 | disruptek | wait, are you sure? |
05:35:20 | Araq | so helpful to expand these links |
05:35:32 | disruptek | happy to help. |
05:35:43 | Araq | disruptek: I'm not sure but Miran asked about it and I said "yes" |
05:35:48 | shashlick | Araq: up really late no? |
05:35:54 | disruptek | you guys put two other lil PRs in for nim.cfg but not that one. |
05:36:01 | shashlick | or perhaps it's morning already 🙂 |
05:36:27 | Araq | early morning here |
05:36:41 | Araq | disruptek: uoh my bad |
05:36:56 | disruptek | i forget what i was gonna add to the bot but i know someone will remind me. 😁 |
05:37:06 | disruptek | sup shashlick |
05:37:14 | Araq | it were the other nim.cfg features indeed |
05:37:39 | shashlick | disruptek: good good, finally the weekend |
05:37:54 | disruptek | yeah, time to do some work. |
05:39:42 | disruptek | 1.0.4 seems to work for my stuff except for that lil export issue. |
05:41:27 | FromDiscord_ | <demotomohiro> @exelotl try replacing your vertex shader with this minimal vertex shader. |
05:41:27 | FromDiscord_ | <demotomohiro> Or enable debug context. |
05:41:27 | FromDiscord_ | <demotomohiro> https://github.com/demotomohiro/nim-4k-intro-sample/blob/master/shaders/triangle.vs |
05:51:45 | * | endragor quit (Remote host closed the connection) |
05:54:04 | * | Hideki_ joined #nim |
05:57:27 | * | ftsf joined #nim |
06:04:23 | * | minierolls joined #nim |
06:04:46 | minierolls | hey, does anyone know how to specify latest Git version in nimble file? |
06:04:55 | minierolls | I know you can do nimble install [package]@#head |
06:05:11 | disruptek | "package#head" |
06:05:12 | minierolls | but not sure how to write that for a requires in a .nimble |
06:05:14 | minierolls | oooo |
06:05:16 | minierolls | thanks! |
06:05:19 | disruptek | np |
06:07:53 | disruptek | as requirements go, it's a pretty bad idea, of course. |
06:12:17 | * | Hideki_ quit (Ping timeout: 240 seconds) |
06:17:17 | minierolls | yeah, don't want to use it but a dependency that I rely on hasn't released a fix yet to nimble version |
06:17:19 | madprops | how do i return a property (orderedTable) of an object? it seems to get it as an iterator |
06:17:29 | madprops | if i do "return db.items" (the property is called items) |
06:18:30 | disruptek | madprops: use sequtils.toSeq to convert an iterator to a sequence. |
06:18:51 | disruptek | minierolls: just specify the commit hash you need instead of `head`. |
06:19:28 | madprops | disruptek: the thing is .. im trying to return the table itself, which is called items |
06:19:32 | madprops | db.items |
06:19:38 | madprops | db=object items=orderedTable |
06:20:31 | madprops | maybe i chose a bad name for a property |
06:20:48 | minierolls | oh ok, didn't know i could do that |
06:20:50 | minierolls | thanks |
06:21:10 | disruptek | it's not worse, and for a package manager like mine, it will be better. |
06:22:20 | disruptek | madprops: is db something that might be iterable otherwise? |
06:22:46 | disruptek | because i wouldn't expect it to match items()... |
06:22:47 | madprops | db is just an `object` |
06:23:42 | disruptek | can i see the error message? |
06:26:14 | disruptek | i'm having a hard time reproducing that problem. |
06:27:04 | disruptek | one work-around to disambiguate that occurs to me is `return db.SomeDbType.items` but again, it shouldn't be necessary. |
06:30:50 | * | solitudesf joined #nim |
06:31:57 | * | endragor joined #nim |
06:37:23 | * | endragor quit (Ping timeout: 252 seconds) |
06:58:36 | * | Hideki_ joined #nim |
07:00:08 | * | Hideki_ quit (Remote host closed the connection) |
07:00:46 | * | Hideki_ joined #nim |
07:04:31 | * | endragor joined #nim |
07:05:34 | * | Hideki_ quit (Ping timeout: 265 seconds) |
07:09:14 | * | endragor quit (Ping timeout: 240 seconds) |
07:12:43 | * | Hideki_ joined #nim |
07:18:57 | * | dchem quit (Ping timeout: 240 seconds) |
07:26:11 | * | narimiran joined #nim |
07:48:53 | Araq | GordonBGood: I think I found the problem with your lazy evaluation stuff |
07:50:36 | * | solitudesf quit (Ping timeout: 240 seconds) |
08:00:00 | * | gmpreussner quit (Quit: kthxbye) |
08:00:18 | * | Hideki_ quit (Remote host closed the connection) |
08:01:52 | * | Hideki_ joined #nim |
08:05:04 | * | gmpreussner joined #nim |
08:06:05 | * | Hideki_ quit (Ping timeout: 250 seconds) |
08:07:10 | * | Hideki_ joined #nim |
08:13:34 | * | endragor joined #nim |
08:18:13 | * | endragor quit (Ping timeout: 252 seconds) |
08:50:55 | * | endragor joined #nim |
08:55:17 | * | endragor quit (Ping timeout: 240 seconds) |
08:58:20 | Zevv | Sometimes I'm surprised by the lack of symmetry in generics: is there a technical reason why it is not possible to differentiate procs by return type? (apart from the abiguity it might cause when the compiler can not infer what the return type would need to be?) |
08:59:04 | Zevv | for example, I now have a nice bunch of `put()` procs to serialize data, whatever I feed them, but I still need `getu8()`, `getu16()` etc for deserialization. |
09:00:39 | * | npgm quit (Ping timeout: 264 seconds) |
09:02:05 | * | npgm joined #nim |
09:12:39 | * | madprops quit (Ping timeout: 264 seconds) |
09:13:00 | * | db93858 joined #nim |
09:24:55 | * | Hideki_ quit (Remote host closed the connection) |
09:27:56 | * | Hideki_ joined #nim |
09:28:33 | * | tklohna joined #nim |
09:32:02 | * | Hideki_ quit (Ping timeout: 240 seconds) |
09:33:23 | * | letto quit (Ping timeout: 252 seconds) |
09:41:57 | * | Hideki_ joined #nim |
09:42:30 | * | dddddd quit (Remote host closed the connection) |
09:48:25 | * | endragor joined #nim |
09:50:07 | * | sealmove joined #nim |
09:52:37 | * | endragor quit (Ping timeout: 240 seconds) |
09:57:58 | * | ng0 joined #nim |
09:59:23 | FromDiscord_ | <Lantos> anyone able to help me out with this async proc? |
09:59:23 | FromDiscord_ | <Lantos> https://play.nim-lang.org/#ix=22Bn |
10:10:58 | * | WilhelmVonWeiner left #nim (#nim) |
10:13:02 | * | couven92 joined #nim |
10:18:16 | * | ponyrider quit (Quit: WeeChat 2.6) |
10:18:45 | sealmove | how does importing a global var work? |
10:24:08 | * | ponyrider joined #nim |
10:27:39 | FromDiscord_ | <mratsim> @Zevv I suppose instantiation by return type would require some backtracking |
10:28:03 | FromDiscord_ | <mratsim> let's solve the need of forward declaration first 😉 |
10:28:23 | FromDiscord_ | <mratsim> Is there even a language that does inference by return type? |
10:28:58 | FromDiscord_ | <mratsim> @sealmove var myCvar {.importc: "my_imported_c_name".} = object |
10:29:31 | FromGitter | <alehander92> Lantos |
10:29:37 | FromDiscord_ | <mratsim> you can change it to cint, csize_t, array, or an object and specify the fields |
10:29:54 | FromGitter | <alehander92> hey just several things: change name: "lantos" to name="lantos" (thats how works) |
10:30:07 | FromGitter | <alehander92> import asyncdispatch |
10:30:13 | FromDiscord_ | <mratsim> @Lantos, don't waitFor in async, AFAIK it should be an error |
10:30:23 | FromGitter | <alehander92> yeah i never finished this pr sorry |
10:30:30 | FromGitter | <alehander92> or did at all i dont remember |
10:30:49 | FromGitter | <alehander92> and always follow what type is |
10:30:56 | FromGitter | <alehander92> see "hello" & name |
10:31:01 | FromGitter | <alehander92> its string : you cant await it |
10:31:05 | sealmove | mratsim: I am sure there are languages that infer type from return type |
10:31:07 | FromGitter | <alehander92> you can only await Future |
10:31:21 | FromGitter | <alehander92> so return directly => async automatically makes it future |
10:31:35 | FromGitter | <alehander92> in the same way you probably dont want to echo asyncCall() |
10:31:39 | FromDiscord_ | <mratsim> @sealmove, I'm not aware of any though |
10:31:42 | FromGitter | <alehander92> but echo await async_greet |
10:31:45 | FromGitter | <alehander92> there are |
10:31:46 | FromGitter | <alehander92> haskell |
10:32:05 | FromGitter | <alehander92> hm i just found this https://eli.thegreenplace.net/2018/return-type-polymorphism-in-haskell/ |
10:33:06 | FromDiscord_ | <mratsim> interesting |
10:33:26 | FromDiscord_ | <Lantos> it is requiring me to waitFor sleepAsync |
10:33:26 | FromDiscord_ | <Lantos> if I remove waitFor it fails: "sleepAsync must be descarded" |
10:33:35 | FromDiscord_ | <Lantos> discarded* |
10:34:14 | FromDiscord_ | <mratsim> asyncCheck |
10:34:40 | FromGitter | <alehander92> but noo |
10:34:42 | FromGitter | <alehander92> just use await |
10:34:50 | FromGitter | <alehander92> thats what you do when you have async calls |
10:35:10 | FromGitter | <alehander92> see, its confusing at first but its simple |
10:35:22 | FromDiscord_ | <mratsim> ah no await, asyncCheck doesn't wait |
10:35:26 | FromGitter | <alehander92> if you're in async function: you await(or asyncCheck only if you want to discard) |
10:35:39 | FromGitter | <alehander92> if you're into sync function: you waitFor or set callbacks i think? |
10:36:02 | FromDiscord_ | <mratsim> you waitFor if you want to block but discard |
10:36:05 | FromGitter | <alehander92> but yeah callbacks actually are the other option for async function sorry, in sync function you mostly waitFor imo |
10:36:10 | FromDiscord_ | <mratsim> you await if you want the result |
10:36:16 | FromGitter | <alehander92> no |
10:36:21 | FromGitter | <alehander92> you cant await in sync function |
10:36:35 | FromDiscord_ | <mratsim> ah, that's strange API, I'm confused |
10:36:41 | FromGitter | <alehander92> thats how it works |
10:36:45 | FromDiscord_ | <mratsim> I'll have a cleaner one for multithreading |
10:36:53 | FromGitter | <alehander92> because await was long time defined in async |
10:37:01 | FromGitter | <alehander92> with await template maybe we can unify |
10:37:05 | FromGitter | <alehander92> waitFor and await one day |
10:37:11 | FromGitter | <alehander92> good idea for rfc |
10:37:14 | FromDiscord_ | <mratsim> yeah that would be nice, it's confusing |
10:37:32 | FromGitter | <alehander92> it needs a good compile error |
10:37:34 | FromGitter | <alehander92> on the other hand i agree |
10:37:43 | FromGitter | <alehander92> that its useful to have it as different name |
10:37:49 | FromGitter | <alehander92> because await doesnt block and waitFor blocks |
10:37:54 | FromGitter | <alehander92> maybe blockWait |
10:38:39 | FromDiscord_ | <mratsim> > When a procedure is "awaited", the asynchronous procedure it is awaited in will suspend its execution until the awaited procedure's Future completes. |
10:38:52 | FromDiscord_ | <mratsim> await blocks (otherwise the name is strange) |
10:38:57 | FromGitter | <alehander92> no |
10:38:59 | FromDiscord_ | <Lantos> yeah |
10:39:03 | FromGitter | <alehander92> blocking is when it blocks the loop imo |
10:39:22 | FromDiscord_ | <mratsim> it blocks the async thread |
10:39:23 | FromGitter | <alehander92> waiting is when its function code doesnt continue |
10:39:34 | FromGitter | <alehander92> thats not how its used usually |
10:39:35 | FromGitter | <alehander92> i think |
10:39:49 | FromGitter | <alehander92> usually in async/await blocking is when something blocks the loop |
10:39:50 | FromGitter | <alehander92> iirc |
10:39:52 | FromDiscord_ | <Lantos> could you write an example? |
10:39:53 | FromGitter | <alehander92> but i might be wrong |
10:39:55 | FromDiscord_ | <mratsim> your async code will not block the spawner when you await |
10:40:03 | FromDiscord_ | <mratsim> but within the async context it's blocked |
10:40:08 | FromGitter | <alehander92> mratsim stay with me, we are talking about async/await |
10:40:13 | FromGitter | <alehander92> without multithreading yet |
10:40:19 | FromDiscord_ | <mratsim> that's the same |
10:40:34 | FromGitter | <alehander92> but "blocking" the async context |
10:40:36 | FromGitter | <alehander92> is called waiting |
10:40:38 | FromGitter | <alehander92> not blocking |
10:40:41 | FromGitter | <alehander92> i think |
10:40:54 | FromDiscord_ | <mratsim> when you async, you spawn a next execution context. You main execution context continues untl it hits a waitFor |
10:41:07 | FromGitter | <alehander92> no |
10:41:07 | FromDiscord_ | <mratsim> at a waitFor, it blocks until the futures completes |
10:41:17 | FromGitter | <alehander92> it continues until a loop switch |
10:41:20 | FromGitter | <alehander92> i think |
10:41:29 | FromGitter | <alehander92> i am not sure if switches happen only with waitFor |
10:41:37 | FromGitter | <alehander92> event loop switch* |
10:41:52 | FromGitter | <alehander92> think about it, what is useful to know |
10:42:04 | FromGitter | <alehander92> is if something blocks the entire loop and other contexts |
10:42:16 | FromGitter | <alehander92> waiting for await is the normal thing to do in a context |
10:42:23 | FromGitter | <alehander92> its not really sensible to call it the same |
10:42:30 | FromDiscord_ | <mratsim> Now, in the new execution context you do your async thing, until you create another one with async, or you block that execution context with await |
10:42:30 | FromGitter | <alehander92> because on the opposite |
10:42:33 | FromGitter | <alehander92> when you await |
10:42:35 | FromGitter | <alehander92> you unblock |
10:42:51 | FromGitter | <alehander92> mratsim, this is just confusing sorry |
10:42:58 | FromGitter | <alehander92> when you await |
10:43:03 | FromGitter | <alehander92> you unblock the event loop |
10:43:16 | FromDiscord_ | <mratsim> but you block the execution context |
10:43:18 | FromGitter | <alehander92> giving back to it and letting it run your AND other context |
10:43:26 | FromGitter | <alehander92> but mratsim this isnt called blocking |
10:43:30 | FromGitter | <alehander92> its called |
10:43:32 | FromGitter | <alehander92> awaiting |
10:43:33 | FromDiscord_ | <mratsim> when you develop you don't think about event loop, you think about your program flow |
10:43:36 | FromGitter | <alehander92> thats why its called await |
10:43:40 | FromGitter | <alehander92> eh no? |
10:43:50 | FromGitter | <alehander92> you have to keep in mind when you can block |
10:43:53 | FromGitter | <alehander92> thats the reason |
10:44:04 | FromGitter | <alehander92> i wanted to even have type checking for blocking operations |
10:44:09 | FromGitter | <alehander92> (maybe other people did too) |
10:44:29 | FromGitter | <alehander92> because you can easily call some blocking io without thinking deep somewhere |
10:44:36 | FromGitter | <alehander92> and not realize it blocks your whole loop |
10:44:41 | FromDiscord_ | <Lantos> did I poke the hive? |
10:44:43 | FromDiscord_ | <mratsim> The whole reason for async/await imo is to abstract away that. |
10:44:52 | FromDiscord_ | <mratsim> I think it's more a question of semantics |
10:45:26 | FromGitter | <alehander92> yes it is i agree and sorry |
10:45:32 | FromDiscord_ | <mratsim> you program as you would for serial but you notify the compiler when you can do your thing on the side (async) and when you need the result (await/waitFor) |
10:45:35 | FromGitter | <alehander92> you're right that it is a kind of "blocking" |
10:45:41 | FromGitter | <alehander92> but i am just saying that this is not |
10:45:45 | FromGitter | <alehander92> how people use this word |
10:45:47 | FromGitter | <alehander92> today |
10:45:52 | FromGitter | <alehander92> in programming |
10:46:22 | FromGitter | <alehander92> so to not have confusion between |
10:46:29 | FromGitter | <alehander92> event loop blocking / scheduler blocking |
10:46:34 | FromDiscord_ | <mratsim> anyway, I'm back to debugging the bug that has been haunting me for 3 days :/ |
10:46:34 | FromGitter | <alehander92> and context "blocking" |
10:46:35 | * | LargeEpsilon joined #nim |
10:46:39 | FromGitter | <alehander92> we call the next one awaiting |
10:46:55 | FromGitter | <alehander92> https://stackoverflow.com/questions/2625493/asynchronous-vs-non-blocking |
10:47:11 | FromDiscord_ | <mratsim> I think asyncdispatch would need that in the documentation so that we have a more precise vocabulary when talking |
10:47:44 | FromGitter | <alehander92> yes, i might be wrong yet |
10:47:53 | FromGitter | <alehander92> but i think thats how i read it until now |
10:49:03 | FromGitter | <alehander92> i cant find a good resource as a source tho |
10:51:14 | FromDiscord_ | <mratsim> anyway sorry for the digression @Lantos, that doesn't change what you need to do to fix |
10:51:30 | FromDiscord_ | <mratsim> waitFor in the main proc, and await in the async proc |
10:52:25 | * | couven92 quit (Read error: Connection reset by peer) |
10:52:52 | * | couven92 joined #nim |
10:56:13 | * | uu91 quit (Read error: Connection reset by peer) |
10:56:36 | * | uu91 joined #nim |
10:57:54 | FromGitter | <alehander92> sorry mratsim |
10:58:02 | FromDiscord_ | <Lantos> on the semantics of waitFor blockWaitFor |
10:58:02 | FromDiscord_ | <Lantos> would it not be easier to have wait and await |
10:58:02 | FromDiscord_ | <Lantos> wait: syncronous |
10:58:02 | FromDiscord_ | <Lantos> await: asyncro |
10:59:07 | FromDiscord_ | <Lantos> https://play.nim-lang.org/#ix=22BD |
11:01:10 | * | letto joined #nim |
11:12:58 | enthus1ast | does someone know how to peek on a process output stream? |
11:13:36 | enthus1ast | it fails with "cannot retrieve file position" |
11:16:16 | * | endragor joined #nim |
11:19:53 | * | nsf quit (Quit: WeeChat 2.6) |
11:21:08 | * | endragor quit (Ping timeout: 245 seconds) |
11:28:01 | * | ftsf quit (Ping timeout: 265 seconds) |
11:29:40 | * | ng0 quit (Ping timeout: 260 seconds) |
11:37:43 | lqdev[m] | enthus1ast: I don't think that's possible, since stdout/stderr are not buffers like files, but rather continuous streams of data which cannot be seeked |
11:39:06 | enthus1ast | my issue is, i'm trying to use the in and out streams in an async context, which failes cause the read blocks |
11:40:02 | enthus1ast | so my suspision is that this will not work out :/ |
11:42:47 | * | ng0 joined #nim |
11:53:33 | FromGitter | <alehander92> Lantos maybe |
11:53:42 | FromGitter | <alehander92> sounds good in theory |
11:59:32 | * | LargeEpsilon quit (Ping timeout: 246 seconds) |
12:04:01 | FromDiscord_ | <mratsim> @enthus1st you need to create an actual thread for console that's true in any language, but some hides it from you |
12:05:01 | enthus1ast | so one thread reads, one threads writes and channels the bytes back to may program? |
12:05:07 | enthus1ast | my |
12:16:05 | * | nif_ quit (Quit: ...) |
12:16:15 | * | nif joined #nim |
12:16:36 | * | Trustable joined #nim |
12:40:49 | * | krux02 joined #nim |
12:48:19 | * | krux02 quit (Remote host closed the connection) |
12:54:29 | * | narimiran quit (Quit: leaving) |
13:09:07 | * | solitudesf joined #nim |
13:11:42 | * | fanta1 joined #nim |
13:25:14 | * | tklohna quit (Ping timeout: 276 seconds) |
13:27:42 | * | Hideki_ quit (Remote host closed the connection) |
13:28:27 | * | Hideki_ joined #nim |
13:29:39 | * | theelous3 joined #nim |
13:30:32 | * | nsf joined #nim |
13:32:48 | * | Hideki_ quit (Ping timeout: 245 seconds) |
13:33:26 | * | Hideki_ joined #nim |
13:37:12 | * | Trustable quit (Remote host closed the connection) |
13:40:02 | * | Hideki_ quit (Ping timeout: 240 seconds) |
13:50:33 | FromDiscord_ | <IanIAnIAN> is there a 1.0* equivalent of import unsigned? |
13:54:05 | * | Hideki_ joined #nim |
13:55:44 | * | ng0 quit (Ping timeout: 260 seconds) |
13:59:02 | * | Hideki_ quit (Ping timeout: 276 seconds) |
14:03:56 | * | Hideki_ joined #nim |
14:04:06 | disruptek | in the latest 1.0, you shouldn't need it. |
14:11:06 | FromDiscord_ | <IanIAnIAN> Just noticed this comedy error |
14:11:06 | FromDiscord_ | <IanIAnIAN> https://cdn.discordapp.com/attachments/371759389889003532/647801294915895326/unknown.png |
14:12:17 | * | clyybber joined #nim |
14:13:34 | FromDiscord_ | <IanIAnIAN> when a language is new and the person responsible for tagging new items for the catalog has no clue |
14:17:11 | * | Hideki_ quit (Ping timeout: 265 seconds) |
14:19:11 | lqdev[m] | guess it's time to go on a crusade |
14:19:38 | lqdev[m] | but first, we need to find whoever was responsible for this heresy |
14:20:43 | FromDiscord_ | <IanIAnIAN> What if we find it is Dominik himself? |
14:21:05 | * | Hideki_ joined #nim |
14:21:07 | lqdev[m] | there's no way he would do that! |
14:21:59 | FromDiscord_ | <IanIAnIAN> That's just what he wants you to think |
14:25:54 | * | Hideki_ quit (Ping timeout: 240 seconds) |
14:25:54 | lqdev[m] | …or does he? jake chudnow - moon men plays |
14:26:44 | clyybber | Araq: Regarding static as return type, wdym this is not how you design type systems? |
14:28:10 | * | NimBot joined #nim |
14:29:08 | disruptek | clyybber: to design type systems, Araq uses a goat, a full moon, and the blood of a virgin. |
14:29:25 | clyybber | romantic |
14:40:16 | livcd | enthus1ast: |
14:46:15 | * | Hideki_ joined #nim |
14:55:28 | FromDiscord_ | <Rika> uh, was that supposed to contain a message? |
14:56:12 | Araq | clyybber: I figured it out, --gc:arc works with our most complex example so far now |
14:56:40 | clyybber | Araq: Nice! |
14:57:37 | Araq | but the bad news is that my cycle breaker was responsible |
14:57:48 | clyybber | Araq: Now we just leak right? |
14:57:55 | clyybber | With a cycle |
14:57:59 | clyybber | instead of crashing |
14:58:21 | Araq | right. well .cursor exists but breaking up these cycles manually is a lost cause |
14:58:38 | Araq | the resulting topology is inexplicable |
14:59:04 | Araq | closures are too messed up |
14:59:27 | disruptek | gc:arc json benchmark 2.9s and 2.07 with default; 2.09 with mark & sweep. |
15:00:05 | Araq | disruptek: json misses some important annotations though |
15:00:34 | disruptek | it's just an early number so we can see how it gets quicker. 😉 |
15:00:57 | Araq | I usually get it down to "beats the old stuff" after a bit of tweaking |
15:01:47 | disruptek | base64 doesn't build due to req repr. |
15:02:00 | Araq | wtf |
15:02:10 | Araq | repr is a debugging tool, the stdlib shouldn't use it |
15:02:16 | disruptek | agree. |
15:02:32 | disruptek | line 193. |
15:02:43 | disruptek | "Invalid base64 format character " & repr(s[inputIndex]) & |
15:04:26 | disruptek | it's in httpclient, too. |
15:04:55 | Araq | fix it please |
15:04:55 | disruptek | and other modules. ugh. |
15:05:43 | disruptek | it'll be breaking, but i'll pr. |
15:06:15 | Araq | watch out, macros.repr is fine |
15:07:00 | clyybber | disruptek: But its only changing the error messages right? |
15:07:08 | clyybber | So its not really breaking any working code |
15:07:12 | Araq | yeah and it's only these 2 places |
15:07:31 | Araq | clyybber: anyway, looks like we need this trial deletion via =trace idea |
15:07:34 | disruptek | who knows how people are using outputs as inputs. |
15:08:06 | Araq | disruptek: it'll be fine but we won't backport it |
15:08:11 | disruptek | right. |
15:08:22 | clyybber | Araq: Yeah. |
15:08:49 | Araq | clyybber: or we come up with a creative way of copying closure environments if we were to introduce a cycle |
15:08:53 | clyybber | Btw, some static bugs, for your pleasure https://github.com/nim-lang/Nim/issues/12713 |
15:08:56 | disbot | ^ A few bugs related to static parameters |
15:08:56 | disbot | ^ snippet at https://play.nim-lang.org/#ix=22E4 😏 |
15:09:14 | clyybber | Araq: Huh, how would that work? |
15:09:44 | Araq | you turn x.field = x into x.field = deepCopy(x) |
15:10:20 | Araq | roughly, it'll change the semantics |
15:10:44 | clyybber | so you want to try to statically prevent introducing cycles? |
15:13:47 | * | tklohna joined #nim |
15:19:37 | clyybber | Araq |
15:20:09 | Araq | that's another possibility, but I'm talking of disarming dangerous potentially introducing cycles via deepcopy |
15:20:55 | clyybber | Hmm, but for stuff that must be cyclic and relies on that, that would infinitely deepcopy until all memory is full |
15:21:12 | clyybber | Its like unrolling a while(true) loop |
15:21:25 | * | fildon joined #nim |
15:22:48 | Araq | that's not how it works |
15:23:00 | Araq | it works more like "copy on write" |
15:23:17 | disruptek | neat. |
15:24:15 | Araq | but it changes the semantics in subtle ways, hard to understand the consequences, might as well enforce 'owned' then which at least puts the burden at compiletime |
15:25:06 | disruptek | maybe it needs a `strict` option. |
15:26:37 | Araq | well I think it's time to try =trace |
15:27:45 | * | sagax quit (Ping timeout: 265 seconds) |
15:29:30 | clyybber | solitudesf: Will you put xcm in the void repos? |
15:29:39 | * | sagax joined #nim |
15:30:02 | * | tklohna quit (Ping timeout: 276 seconds) |
15:31:27 | solitudesf | i dont think they need programs with ~0 users in repos |
15:31:45 | disruptek | base64 bench is 4.3s with gc:arc, 1.5s without. |
15:31:48 | clyybber | maybe that will change once its in the repos |
15:31:53 | clyybber | it seems handy |
15:32:39 | solitudesf | well, i found very crucial flaw with it, so i dont want to push it anywhere until i rework it |
15:32:46 | clyybber | ah ok |
15:34:35 | * | narimiran joined #nim |
15:36:32 | * | fildon quit (Quit: Leaving) |
15:37:40 | livcd | so...who is good at making bindings ? |
15:37:55 | clyybber | what bindings? |
15:40:35 | livcd | clyybber: nim bindings for a c++ lib |
15:42:02 | clyybber | uh, c++ bindings.. didn't attempt that yet |
15:42:05 | clyybber | what lib? |
15:43:09 | * | ng0 joined #nim |
15:43:11 | livcd | clyybber: https://github.com/sciter-sdk/nsciter |
15:45:47 | * | dddddd joined #nim |
15:46:15 | Araq | disruptek: for gc:arc you really should use 'nim cpp' |
15:46:20 | * | kevin5 joined #nim |
15:46:22 | disruptek | okay. |
15:46:47 | clyybber | livcd: DOes it not work anymore? |
15:46:56 | clyybber | Araq: Why? |
15:47:27 | Araq | clyybber: we wrap every proc in a try-finally which becomes a setjmp |
15:47:46 | clyybber | Ah, right |
15:49:28 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
15:49:55 | livcd | clyybber: nope. Both sciter and Nim had changed |
15:50:39 | * | narimiran quit (Remote host closed the connection) |
15:51:19 | * | narimiran joined #nim |
15:51:33 | * | ng0 joined #nim |
15:52:15 | livcd | clyybber: but it seems pretty complicated because of Tiscript and whatnot :/ |
15:52:55 | clyybber | hmm, gl fixing it |
15:53:47 | clyybber | can't help you with sciter :( |
15:55:34 | Zevv | Well, my Nim native async MQTT library ended up tons smaller then all existing ones I found wrapping native C libs |
15:57:27 | disruptek | Zevv: you can solve the `getint8()` problem with get[int8]() or get[T](default: T): T. |
15:57:59 | * | FromGitter quit (Remote host closed the connection) |
15:58:17 | * | FromGitter joined #nim |
15:58:55 | * | couven92 quit (Read error: Connection reset by peer) |
15:59:21 | * | couven92 joined #nim |
16:07:28 | Zevv | oh right, thats slightly better |
16:09:26 | livcd | clyybber: probably only shashlick is the right person |
16:09:38 | clyybber | yeah |
16:09:52 | disruptek | nimterop isn't quite ready for c++ wrappers. |
16:13:45 | shashlick | @livcd looks like it has a plain C api as well |
16:13:57 | shashlick | But not sure if that's sufficient for you |
16:16:42 | * | tklohna joined #nim |
16:17:01 | livcd | well i only wrapped some winapi so far. Never anything on a scale like this |
16:18:11 | shashlick | I'm asking cause nimterop can handle C just fine |
16:18:25 | shashlick | But if you want C++ then ya |
16:20:48 | livcd | hmm dont rellay know if it's sufficient |
16:24:28 | * | Hideki_ quit (Remote host closed the connection) |
16:24:38 | FromDiscord_ | <exelotl> @demotomohiro oh wow thanks, that does actually show up |
16:25:16 | * | Hideki_ joined #nim |
16:28:16 | FromDiscord_ | <exelotl> OH my call to glGenBuffers was wrong |
16:29:56 | FromDiscord_ | <exelotl> was passing the address of my vertex data rather than the address of the integer to hold the ID |
16:31:33 | * | Hideki_ quit (Ping timeout: 265 seconds) |
16:31:40 | * | bacterio quit (Write error: Connection reset by peer) |
16:36:55 | * | krux02 joined #nim |
16:38:12 | FromDiscord_ | <onelivesleft> I have a `quote do:` block inside a macro, and inside it I am defining a proc. if I do `proc parse() = ` it works fine, but I want to set the name of the proc to a const defined in the outer scope. I thought I could do `proc 'PROC_NAME'() = ` but that treats PROC_NAME as a quoted string. Is there a way to do this? |
16:38:30 | FromDiscord_ | <onelivesleft> (I'm using backticks, I just changed them to singlequote for discord formatting) |
16:40:49 | FromDiscord_ | <exelotl> @onelivesleft I tend to do something like this: https://hastebin.com/obomepejad.nim |
16:44:05 | FromDiscord_ | <onelivesleft> perfect, ty |
16:48:01 | FromDiscord_ | <exelotl> np |
16:48:15 | * | Hideki_ joined #nim |
16:50:27 | enthus1ast | livcd: ? |
16:52:17 | * | Hideki_ quit (Ping timeout: 240 seconds) |
16:54:13 | * | kevin5 quit (Remote host closed the connection) |
16:59:20 | FromDiscord_ | <exelotl> can't decide whether to use vmath or glm |
17:00:34 | FromDiscord_ | <exelotl> glm seems more powerful, vmath seems more human and easier to work with |
17:01:19 | disruptek | humans are overrated. |
17:08:50 | FromDiscord_ | <Rika> i went with glm |
17:16:10 | FromDiscord_ | <mratsim> I underestimated lock-free and multithreading bugs. Finally solved a Multi-Producer Single-Consumer channel Heisenbug when I tried to rewrite my channel as lock-free after 4 days. |
17:17:47 | clyybber | krux02: Thanks for your explanation on the static parameter issue |
17:18:30 | krux02 | np |
17:19:16 | krux02 | clyybber: what I am interested in, how did you get to the idea that you had? What was the motivation? |
17:20:01 | clyybber | The motivation was more or less that I didn't know if it made a difference wether I use a static param in a compileTime proc or not |
17:21:05 | clyybber | And the motivation for having static as a return type preferred over {.compileTime.} was that it seems to fit better into the existing static handling |
17:21:19 | clyybber | But I guess in the end it doesn't matter. |
17:21:41 | clyybber | But I think a {.static.} alias for {.compileTime.} would be a good idea. |
17:22:00 | clyybber | And I think {.compileTime.} variables should be compile time only but thats another story |
17:23:16 | FromDiscord_ | <exelotl> oh.. I updated glm (from 1.1.1 to 1.1.1) and now the compiler crashes on quat.nim |
17:23:36 | disruptek | quite an upgrade. |
17:24:01 | FromDiscord_ | <exelotl> yeah |
17:28:13 | Zevv | disruptek: what are you doing here? werent you supposed to be lost in mountainous wildlands? |
17:29:11 | disruptek | got hungry. |
17:29:28 | clyybber | hunt a moose then |
17:29:32 | clyybber | *get hunted by moose |
17:32:01 | disruptek | would rather hunt bugs. |
17:32:11 | clyybber | bugs haunt me |
17:32:38 | clyybber | bugs in my code that is |
17:38:14 | * | db93858 is now known as madprops |
17:39:12 | * | minierolls quit (Quit: WeeChat 2.4) |
17:42:25 | FromDiscord_ | <IanIAnIAN> stop coding bugs then |
17:42:37 | FromDiscord_ | <Rika> *stop coding then |
17:42:53 | disruptek | in soviet russia, bugs hunt you. |
17:43:18 | FromDiscord_ | <Rika> i wish tests wrote themselves |
17:43:25 | clyybber | TIL coding == soviet russia |
17:48:55 | * | couven92 quit (Read error: Connection reset by peer) |
17:49:18 | * | couven92 joined #nim |
17:57:26 | livcd | enthus1ast: did you ever make the windows service work ? |
17:58:54 | krux02 | clyybber: Regarding "And I think {.compileTime.} variables should be compile time only but thats another story". I think so, too. It also was like that in the past. When it was changed I made clear that I was against that change. |
17:59:10 | krux02 | Now {.compileTime.} means different things depending on the context. |
17:59:30 | disruptek | yeah, i don't like that, either. |
17:59:54 | krux02 | for procs it means compile time evaluation only, for vars it means, enable compileTime usage besides runtime usage. |
18:00:10 | FromDiscord_ | <exelotl> I tried messing around with the behaviour of {.compileTime.} at runtime and it makes no sense to me lol |
18:01:28 | * | sealmove quit (Quit: WeeChat 2.6) |
18:01:59 | Araq | well it's not enough to disagree with my design, you need to come up with a better one. ideally also one that's not a pita to implement and doesn't end up in sophistry |
18:02:02 | * | joshbaptiste joined #nim |
18:02:14 | krux02 | disruptek, clyybber: here is the PR |
18:02:15 | Araq | and there were no alternative proposals. |
18:02:16 | krux02 | https://github.com/nim-lang/Nim/pull/12128 |
18:02:17 | disbot | -- allows access to .compileTime vars at runtime |
18:03:02 | disruptek | hmm, maybe merged PRs should be purple. |
18:03:29 | FromDiscord_ | <exelotl> https://play.nim-lang.org/#ix=22ET |
18:03:44 | krux02 | Araq: I can not always drop everything I do and write a proposal for a problem, whenever you have a bad idea that I know will cause problems in the long run. |
18:04:49 | krux02 | I can offer you hower to review your proposals. |
18:05:48 | krux02 | But there was no proposal, we discussed this, I told you the problems I had with it, but instead of rethinking the idea, you just went ahead and dismissend my criticism. |
18:07:35 | FromDiscord_ | <exelotl> changes made to a {.compileTime.} variable at compile-time have no effect on the value at runtime (so you can't put the variable into some useful initial state during compilation) |
18:07:38 | FromDiscord_ | <Rika> i dont understand why compileTime variables should be accessible in runtime |
18:07:45 | FromDiscord_ | <exelotl> you can *sometimes* mutate a {.compileTime.} variable at runtime but not always (i.e. you can change individual fields but can't reassign it) |
18:08:01 | FromDiscord_ | <exelotl> and yeah, what Rika said, I don't really see what it's trying to achieve |
18:08:04 | FromDiscord_ | <Rika> rather, readable is understandable |
18:08:09 | FromDiscord_ | <Rika> but modifiable? |
18:08:34 | FromDiscord_ | <Rika> and its kinda misleading that it's called compileTime but can be read on runtime |
18:09:10 | clyybber | It should be called {.static.} and they should be only accessable like a static expression. |
18:09:17 | clyybber | Meaning no modification at runtime |
18:09:28 | clyybber | And no location at runtime |
18:09:37 | clyybber | (no address) |
18:09:45 | krux02 | clyybber: back to the alias compileTime/static, I also don't think that this alias is a good idea. Beacause static really means something else, I told you about the function specialization. You can also combine static parameters with functions that are supposed to be evaluated on the nimvm. Then the functions are specialized on the nimvm. |
18:10:49 | clyybber | Hmm, but clearly the type of an expression such as `someCompileTimeProc()` is `static T` |
18:11:16 | krux02 | Maybe we should have annotations such as ``{.target: nimvm.}`` instead of ``{.compileTime.}``, because it makes clear that this compile time evaluation is actually just another backand, one that happens to be evaluated at compile time. |
18:11:33 | krux02 | clyybber: no it is not. |
18:11:51 | FromDiscord_ | <Generic> but nimvm is also used for nimscript |
18:11:59 | FromDiscord_ | <Generic> all the time |
18:12:01 | clyybber | krux02: What is it then? |
18:12:43 | krux02 | ``static T`` is not a type, it is some annotation for function parameters, nothing else. |
18:13:08 | clyybber | It is a type modifier |
18:13:13 | clyybber | Theres tyStatic |
18:13:26 | clyybber | And it makes sense to have static at the type level |
18:13:37 | krux02 | a parameter ``static T`` means that for any expression ``f(x)`` must be known when that call is compiled. |
18:13:44 | clyybber | For example compile time variables would then just have the type `static T` |
18:14:11 | krux02 | no I really don't like that. |
18:14:14 | clyybber | And `static T` can be used for `T` as an immutable const expression |
18:14:32 | krux02 | I prefer if the type stays at T, no wrapping static around it. |
18:14:32 | disruptek | yeah. |
18:15:00 | clyybber | krux02: AFAIK this is what zah was aiming for though |
18:15:11 | disruptek | i think it's more like taint. |
18:15:18 | disruptek | or color. |
18:15:28 | krux02 | I think `statically known` is something orthogonal to the type, it should not wrap the type. |
18:16:04 | disruptek | you think static T is distinct from T? |
18:16:09 | clyybber | Yeah |
18:16:16 | clyybber | static T can be used as T |
18:16:47 | krux02 | clyybber, that is exactly what I am worried about. |
18:17:13 | disruptek | what's the danger? |
18:17:49 | krux02 | it type refection in macros, static T will look very different to T. It would be very annoying when all of the sudden I have to implement in all my macros that handle types this additional case: "type can be tyStatic" that I need to peel off otherwise it would just not work." |
18:18:26 | krux02 | I don't want to peel of the static in all my macros. |
18:19:36 | krux02 | it is already anoying enough that I have to peel of this annoying typedecs everywhere to get to the actual type. |
18:19:54 | krux02 | combine that with tyStatic and you ge all sorts of combinations |
18:19:59 | clyybber | Hmm |
18:20:05 | krux02 | static[typedesc[T]] |
18:20:14 | clyybber | thats stupid |
18:20:14 | krux02 | typedesc[static[T]] |
18:20:17 | clyybber | nope |
18:20:28 | clyybber | static doesn't work like that |
18:20:44 | clyybber | it should work like var; only occur at the start of a type |
18:20:50 | clyybber | outer shell |
18:21:09 | krux02 | that is what I call orthogonal |
18:22:09 | krux02 | I would like to not see it in any ast that I get from getTypeInst or getTypeImpl |
18:22:22 | clyybber | krux02: Yeah thats understandable |
18:22:35 | clyybber | It shouldn't appear to macros |
18:22:41 | clyybber | unless specifically asked for |
18:22:49 | clyybber | like isStatic |
18:22:52 | clyybber | or something like that |
18:23:04 | krux02 | I agree |
18:23:40 | clyybber | krux02: Cool, so we only disagreed about the terminology :) |
18:23:50 | krux02 | yea |
18:23:57 | * | couven92 quit (Read error: Connection reset by peer) |
18:23:59 | krux02 | I think so |
18:24:20 | * | couven92 joined #nim |
18:24:36 | krux02 | I also don't really like the term `static` because it is overused and means a lot of different things to different people. |
18:25:53 | clyybber | But it is what we have and IMO it fits. |
18:25:55 | krux02 | compileTime is also not good, because evaluating somithing in the nimvm is technically compileTime but it is runtime for the vm function |
18:26:01 | clyybber | Although it doesn't mean the same thing as in other langs |
18:26:31 | krux02 | I think `static` is ok. I don't have sothing better and I don't think we find something better. |
18:26:38 | clyybber | Yeah |
18:26:46 | clyybber | We should try to make it as consistent as possible |
18:27:11 | krux02 | wy goal |
18:27:20 | krux02 | but someone is working against it. |
18:27:32 | clyybber | \o/ :D |
18:27:53 | krux02 | clyybber: recent consistency break: https://github.com/nim-lang/Nim/issues/12700 |
18:27:56 | disbot | ➥ consistency break between VM and runtime behavior; snippet at 12https://play.nim-lang.org/#ix=22F1 😏 |
18:28:49 | clyybber | Hmm, I saw that one, not sure what the solution would be |
18:29:08 | clyybber | Maybe just allow it at compile time too? |
18:30:04 | krux02 | What I don't like is. I told my complains in the proposal. They were ignored/dismissed, proposal was not adopted. Then the PR was implemented and merged. Then I raised the problems as an issue. And it was instantly closed by Araq. |
18:30:34 | krux02 | The solution would be to remove the range checks in nimvm and semfold as well |
18:31:07 | krux02 | I also suggested that in the RFC |
18:31:28 | clyybber | Yeah thats probably the best idea |
18:32:03 | clyybber | This multi use of uint for different things screams for suint |
18:32:20 | krux02 | what is suint? |
18:32:25 | clyybber | safe uint |
18:32:37 | clyybber | a uint with overflow checks |
18:32:58 | clyybber | I invented the name :p |
18:33:13 | clyybber | but it is tricky to implement in C |
18:33:17 | clyybber | (if possible at all) |
18:33:28 | krux02 | I don't really care for save uint. But I think this wrap around behavior in C and range check with error on nimvm is really an unnecessary bad thing |
18:33:47 | clyybber | yeah, it should be wraparound everywhere |
18:34:07 | krux02 | clyybber: there are extensions for C that allow you to see the overflow bit from math operations. |
18:34:15 | clyybber | Oh, nice |
18:34:39 | clyybber | I implemented a POC in inline assembler once (but that was before I knew about Nim) |
18:34:48 | clyybber | Because I didn't know about those extensions |
18:35:22 | krux02 | http://clang.llvm.org/docs/LanguageExtensions.html#checked-arithmetic-builtins |
18:35:42 | clyybber | thanks! |
18:35:45 | * | anon234234 joined #nim |
18:36:27 | krux02 | also supported in gcc |
18:36:44 | krux02 | microsoft probably has something similar with different names, but not sure about that |
18:37:01 | * | fanta1 quit (Ping timeout: 250 seconds) |
18:37:01 | anon234234 | hey, anyone know why this simple regex isn't working as expected? match seems to only want to match the beginning of the string not anywhere in the middle https://pastebin.com/1HCPPADw |
18:37:22 | clyybber | pastebin is down |
18:37:29 | clyybber | anon234234: Try it in regex101 |
18:37:51 | anon234234 | the regex works prefect in regex101 |
18:38:06 | anon234234 | doAssert not "testing".match(re"test").isNone # succeeds |
18:38:12 | anon234234 | doAssert not "testing".match(re"ing").isNone # fails |
18:38:21 | anon234234 | i expect both of them to work |
18:38:41 | narimiran | you sure that `match` doesn't expect a pattern to be at the start of the string? |
18:38:57 | anon234234 | hmmm maybe that's it... |
18:39:11 | narimiran | try `find` or `search` or whatever is the other function |
18:39:55 | anon234234 | whoops, ... it is always anchored to the start of the string |
18:40:02 | anon234234 | find looks like what i need |
18:40:10 | anon234234 | thanks |
18:40:14 | narimiran | anon234234: yep, https://play.nim-lang.org/#ix=22F5 works |
18:41:55 | * | couven92 quit (Read error: Connection reset by peer) |
18:42:23 | * | couven92 joined #nim |
18:46:40 | disruptek | #12602 |
18:46:41 | disbot | https://github.com/nim-lang/Nim/pull/12602 🠲 6export nim.cfg parser for use by other tools |
18:49:06 | clyybber | awesome |
19:03:50 | madprops | so yeah i think there's an issie with having object properties called items |
19:03:52 | madprops | issue |
19:04:02 | madprops | though not sure |
19:12:17 | * | Zevv left #nim ("it hurts, it huuuurts") |
19:13:02 | * | xet7 quit (Quit: Leaving) |
19:14:44 | FromDiscord_ | <kodkuce> https://www.reddit.com/r/rust/comments/e0aq6y/polonius_the_future_rust_borrow_checker_talk_at/ << duno if this helps for new runtime magic |
19:15:21 | FromDiscord_ | <kodkuce> ps i dident read it at all, just was guessing meybe something nice inthere |
19:15:41 | clyybber | Yeah, I saw that today too. It looks interesting and fairly simple |
19:15:57 | clyybber | not sure where it would fit in nrt though, since nim employs a very different model |
19:16:09 | blackbeard420 | hmm when i try to pass a Channel[int] by pointer to a thread all is fine, but it doesnt compile if its a Channel[string] |
19:16:32 | clyybber | whats the error? |
19:19:02 | blackbeard420 | oh wow nvm, i must of had forgeten to change the Thread[Targ] |
19:19:04 | blackbeard420 | my bad |
19:19:59 | FromDiscord_ | <exelotl> is there a way to create a ref array literal? |
19:21:10 | FromDiscord_ | <exelotl> I have `var vertices = [...]` and now I want to be able to pass around a GC-safe reference to vertices |
19:22:32 | * | narimiran quit (Quit: leaving) |
19:25:22 | * | narimiran joined #nim |
19:28:03 | * | narimiran quit (Client Quit) |
19:30:38 | * | narimiran joined #nim |
19:34:15 | * | prometheus quit (Remote host closed the connection) |
19:34:52 | FromDiscord_ | <exelotl> hmm well this works https://play.nim-lang.org/#ix=22Fo |
19:55:47 | disruptek | !rfc picasso |
19:55:48 | disbot | https://github.com/nim-lang/RFCs/issues/160 -- 3Project Picasso - A multithreading runtime for Nim |
19:56:04 | disruptek | !rfc 173 |
19:56:05 | disbot | https://github.com/nim-lang/RFCs/issues/173 -- 3Developing Nim's stdlib and a Nim distribution |
19:57:55 | disruptek | !issue base64 author:dom96 |
19:57:56 | disbot | https://github.com/nim-lang/Nim/issues/12675 -- 3base64 changes break code |
19:57:56 | disbot | https://github.com/nim-lang/Nim/issues/3223 -- 5base64 assert failure on decode |
19:58:43 | FromGitter | <Willyboar> Disruptek we need a help or list command |
19:58:49 | disruptek | try !help |
19:58:59 | FromGitter | <Willyboar> !help |
19:59:00 | disruptek | !pull faster base64 |
19:59:01 | clyybber | disruptek: Can it also display PRs of other repos? |
19:59:01 | disbot | https://github.com/nim-lang/Nim/pull/12436 -- 5About 50% faster base64 implementation. |
19:59:09 | disruptek | yes. |
19:59:18 | clyybber | awesome!! |
19:59:20 | clyybber | !help |
19:59:26 | disruptek | !search nimble installation golden |
19:59:27 | disbot | https://github.com/disruptek/golden/issues/15 -- 5Nimble Installation Fails |
20:00:04 | disruptek | also, you can /msg disbot directly, as always. i dunno how many people use it that way. |
20:00:07 | clyybber | !repo weave pull 21 |
20:00:07 | disbot | no results 😢 |
20:00:15 | disruptek | !repo weave |
20:00:15 | disbot | https://github.com/mratsim/weave -- 11A state-of-the-art Message-Passing based, fast, scalable, ultra-low overhead multithreading runtime |
20:00:51 | disruptek | !search mratsim/weave 21 |
20:00:52 | disbot | https://github.com/bluenote10/NimData/issues/21 -- 3Mean and other operations over columns |
20:00:53 | disbot | https://github.com/ThomasTJdev/nim_websitecreator/issues/21 -- 5Idea: Add optional minimal favicon.ico |
20:00:53 | disbot | https://github.com/numforge/laser/issues/21 -- 3[GEMM] Enhance serial implementation |
20:01:08 | disruptek | !search repo:mratsim/weave is:pr 21 |
20:01:09 | disbot | https://github.com/mratsim/weave/pull/21 -- 3Change to lockless unbounded mpsc |
20:01:10 | disbot | https://github.com/mratsim/weave/pull/1 -- 5OSX compat |
20:01:31 | dom96 | cool, now can we get a hoogle-equivalent? :D |
20:01:54 | disruptek | !repo disruptek/xs |
20:01:54 | disbot | https://github.com/disruptek/xs -- 11xstreamstartup.com |
20:02:19 | disruptek | ...has a google client that uses their search api. i guess i could integrate, but why? |
20:02:50 | clyybber | !disbot is awesome |
20:03:26 | disruptek | also, PRs are color-coded according to open/closed/merged. |
20:03:31 | disruptek | #11560 |
20:03:32 | disbot | https://github.com/nim-lang/Nim/pull/11560 🠲 5ISO-26300 Documentation generator rstgen |
20:03:35 | disruptek | #5755 |
20:03:37 | disbot | https://github.com/nim-lang/Nim/pull/5755 🠲 6Small base64.nim refactor |
20:03:47 | disruptek | #12716 |
20:03:49 | disbot | https://github.com/nim-lang/Nim/pull/12716 🠲 3replace some runtime repr in stdlib for gc:arc |
20:04:42 | disruptek | but when you're searching for issues, it doesn't bother to determine color (it'd take an extra query per each result). |
20:05:02 | dom96 | disruptek, do you know what hoogle is? |
20:05:12 | disruptek | i thought it was a typo. |
20:05:49 | livcd | hmm karax seems more complicated than I thought |
20:05:49 | * | nif quit (Quit: ...) |
20:05:59 | * | nif joined #nim |
20:06:30 | disruptek | if you can get me a swagger definition for hoogle, i'll add it. |
20:10:11 | * | dillonb quit (Quit: WeeChat 2.2) |
20:13:26 | * | uu91 quit (Ping timeout: 276 seconds) |
20:14:11 | * | uu91 joined #nim |
20:18:05 | * | nsf quit (Quit: WeeChat 2.6) |
20:40:57 | * | couven92 quit (Read error: Connection reset by peer) |
20:41:21 | * | couven92 joined #nim |
20:44:54 | * | Zevv joined #nim |
21:19:58 | * | stefantalpalaru quit (Ping timeout: 252 seconds) |
21:26:13 | clyybber | narimiran: Btw the CIs are failing |
21:26:50 | narimiran | clyybber: mention the one who made them fail, not me :P |
21:30:01 | narimiran | this is the commit which is causing trouble: https://github.com/nim-lang/Nim/commit/8b2f8f5430e8c328efe5bce94e397f15e3c501af |
21:31:53 | clyybber | narimiran: I think its unrelated, thats why I tagged you :p |
21:32:34 | narimiran | the commit before it was green :/ |
21:33:09 | clyybber | hmm, but take a look at this: https://hastebin.com/odohevofux.js |
21:34:18 | clyybber | it only occurs on CI, not locally |
21:34:27 | clyybber | not for me at least.. |
21:36:08 | narimiran | works for me too |
21:37:18 | narimiran | (but i'm several commits behind the latest devel) |
21:37:23 | disruptek | yeah, i also tried to repro it and couldn't. |
21:38:50 | clyybber | googling that error pulls up a stackoverflow question where someone had that error with docker |
21:39:01 | clyybber | Maybe bash isn't preinstalled anymore on azure containers? |
21:39:25 | narimiran | ok, that might be |
21:39:49 | enthus1ast | livcd: i've recently tested windows service with threads but it is indeed crashing maybe i'll invest some time to make it work. I'm useing nssm for my current project... |
21:39:59 | disruptek | yeah, 'cause that's base syntax. |
21:40:04 | disruptek | bash, too. |
21:40:42 | narimiran | but on the other hand, look at azure-pipelines.yml |
21:41:15 | narimiran | we heavily rely on 'bash' for running quite a lot of things |
21:42:22 | narimiran | i can try to make a PR where i explicitly install bash, just to be sure that is(n't) the problem |
21:42:23 | enthus1ast | livcd: maybe it's already enough for some kind of "restarter watchdog" / "start process with system rights" thing |
21:43:02 | narimiran | the other solution is to disable that test and see if things are passing without it :) |
21:44:30 | disruptek | feels like it's actually due to something one step removed, like a .profile or an env that isn't copied or something. |
21:47:49 | narimiran | maybe some additional `ProcessOption` needs to be passed to `execCmdEx` |
21:50:34 | narimiran | for now i disabled that test in my branch to see if that will make things green |
21:50:54 | narimiran | for anything more than that, it'll have to wait until tomorrow, i'm going to bed now |
21:53:01 | * | Jesin quit (Quit: Leaving) |
21:54:11 | * | solitudesf quit (Ping timeout: 250 seconds) |
21:55:01 | * | Jesin joined #nim |
21:56:04 | clyybber | gn8 narimiran |
22:00:12 | * | stefantalpalaru joined #nim |
22:03:17 | * | narimiran quit (Ping timeout: 250 seconds) |
22:11:53 | * | uu91 quit (Read error: Connection reset by peer) |
22:12:12 | * | uu91 joined #nim |
22:22:14 | * | uu91 quit (Read error: Connection reset by peer) |
22:22:40 | * | uu91 joined #nim |
22:24:56 | * | clyybber quit (Quit: WeeChat 2.6) |
22:34:24 | * | stefantalpalaru quit (Changing host) |
22:34:24 | * | stefantalpalaru joined #nim |
22:47:38 | * | anon234234 quit (Remote host closed the connection) |
22:59:18 | * | uu91 quit (Read error: Connection reset by peer) |
22:59:31 | * | uu91 joined #nim |
23:05:22 | * | ng0 quit (Remote host closed the connection) |
23:06:32 | * | ng0 joined #nim |
23:09:35 | * | stefantalpalaru quit (Ping timeout: 250 seconds) |
23:20:13 | * | couven92 quit (Quit: Client Disconnecting) |
23:57:04 | * | sealmove joined #nim |