00:00:06 | Araq | my bugfixes break some Nimble package you really want to use. |
00:00:51 | * | silvernode quit (Ping timeout: 260 seconds) |
00:01:42 | FromDiscord | <ksandvik> Rust runs nightly compilation tests across all packages/crates it knows about in the git depot. |
00:01:57 | FromDiscord | <ksandvik> I mean github/gitlab. |
00:01:59 | Araq | we test our "Important packages" |
00:02:08 | Araq | we can always test more ofc |
00:02:23 | Araq | but testing isn't free, it's time consuming. |
00:02:38 | axion | Given the compilation speed of Rust for some even small crates, that build fleet must be expensive to finish in a night |
00:03:50 | leorize | that's a problem that mozilla can solve with more money thrown on the table :P |
00:05:15 | rayman22201 | I forget whether it was AWS or MS, but they gave mozilla a crap ton of free server infrastructure recently... Advantages to deep pockets.... |
00:05:20 | rayman22201 | for Rust specifically that is |
00:06:25 | clyybber | Re: concepts/generics bugfixes, seems to me like zah's working on a few of them \o/ |
00:06:47 | FromDiscord | <ksandvik> I think it was MS. |
00:07:24 | FromDiscord | <ksandvik> And yes, cloud services cost money so if someone is sponsoring that helps a lot. |
00:07:57 | Araq | it's not about the money unless you use the money to pay a fulltime dev to deal with the fallouts |
00:08:19 | Araq | you need to keep every test green all the time. |
00:08:35 | Araq | the more tests you have the harder it becomes. |
00:09:33 | FromDiscord | <ksandvik> Sorry to compare with Rust but are new features behind feature flags so they are only activated for specific releases when everything is stable? |
00:09:47 | leorize | yes, we have `{.experimental.}` |
00:09:51 | Araq | yes. see --gc:arc |
00:10:04 | clyybber | Araq: https://github.com/nim-lang/Nim/issues/13828 is a valid bug no? |
00:10:54 | Araq | now that I read it again I notice that I misread it |
00:11:03 | Araq | :D |
00:11:05 | clyybber | Yeah, I thought so :D |
00:14:11 | Araq | gah, I should sleep |
00:14:15 | Araq | good night |
00:14:19 | clyybber | same, good night! |
00:14:24 | * | clyybber quit (Quit: WeeChat 2.8) |
00:15:28 | rayman22201 | gn |
00:16:16 | Araq | axion: and if you were to write an RFC about how templates should simply work as in Lisp, I would appreciate it |
00:17:31 | Araq | I suppose at some point we took wrong turns |
00:17:36 | Araq | bye |
00:18:00 | axion | I'll think about what to do |
00:18:35 | axion | But just to make this clear, I think your roadmap is great and you are doing a great job. |
00:19:39 | shashlick | Really good progress today on nimterop - ast2 is close |
00:20:41 | * | lritter joined #nim |
00:22:25 | FromDiscord | <Rika> anyone with extensive arraymancer knowledge? because i cant seem to find the equivalent of "numpy.linspace" in arraymancer, or is it not there? |
00:22:59 | * | leorize quit (Remote host closed the connection) |
00:23:25 | * | silvernode joined #nim |
00:23:51 | * | leorize joined #nim |
00:26:08 | * | dwdv quit (Ping timeout: 256 seconds) |
00:29:34 | * | NimBot joined #nim |
00:29:57 | FromGitter | <zetashift> @Rika you might be able to use this: https://github.com/HugoGranstrom/numericalnim#linspace--arange |
00:31:14 | FromDiscord | <Rika> i wrote my own already ;; |
00:32:41 | axion | Anyway. I'm on mumble if anyone wants to talk to me about sticking with Nim :) |
00:33:45 | FromDiscord | <Rika> what's the server? |
00:34:28 | axion | uberalles.mumbl.io |
00:36:08 | shashlick | Where's disruptek these days |
00:41:48 | leorize | writing a macro to let me borrow proc just by their identifier is hard |
00:42:02 | leorize | because I can't resolve generics in macros... |
00:45:00 | * | couven92 quit (Ping timeout: 258 seconds) |
00:45:59 | * | krux02_ quit (Remote host closed the connection) |
00:47:01 | * | silvernode quit (Ping timeout: 250 seconds) |
01:02:45 | * | silvernode joined #nim |
01:21:07 | * | silvernode quit (Ping timeout: 260 seconds) |
01:25:31 | * | chemist69 quit (Ping timeout: 252 seconds) |
01:27:32 | * | chemist69 joined #nim |
01:48:13 | * | zacharycarter quit (Ping timeout: 264 seconds) |
01:52:14 | * | lritter quit (Ping timeout: 240 seconds) |
01:53:10 | * | lritter joined #nim |
01:56:25 | * | rnrwashere joined #nim |
02:00:43 | * | rnrwashere quit (Remote host closed the connection) |
02:01:09 | FromDiscord | <Varriount> leorize: Why? Is that a limitation of macros? |
02:01:22 | leorize | yep, no apis for that |
02:01:46 | leorize | so I guess I will have to wing it myself |
02:02:13 | leorize | still annoying though, as I can't even check if typeclasses match |
02:02:34 | * | rnrwashere joined #nim |
02:37:37 | * | rnrwashere quit (Remote host closed the connection) |
02:38:07 | * | muffindrake quit (Ping timeout: 252 seconds) |
02:40:10 | * | muffindrake joined #nim |
02:59:14 | * | rnrwashere joined #nim |
03:04:05 | * | silvernode joined #nim |
03:04:31 | * | endragor joined #nim |
03:19:54 | * | silvernode quit (Ping timeout: 240 seconds) |
03:39:24 | * | rnrwashere quit (Remote host closed the connection) |
03:41:31 | * | lritter quit (Quit: Leaving) |
03:43:54 | * | zacharycarter joined #nim |
03:47:09 | * | waleee-cl quit (Quit: Connection closed for inactivity) |
03:48:35 | * | zacharycarter quit (Ping timeout: 260 seconds) |
03:52:57 | * | rnrwashere joined #nim |
03:55:55 | FromGitter | <gogolxdong> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e85624be26a9452ed3dd1d4] |
03:56:30 | FromGitter | <gogolxdong> tested online the regexp works , but here doesn't match anything. |
03:59:56 | Yardanico | what syntax did you test with? |
03:59:58 | Yardanico | nim uses PCRE |
04:00:30 | rayman22201 | https://play.nim-lang.org/#ix=2gjl |
04:00:39 | rayman22201 | You have to escape the `[` character |
04:01:00 | rayman22201 | and you must use parenthesis to get capture groups |
04:03:36 | FromGitter | <gogolxdong> https://play.nim-lang.org/#ix=2gjm |
04:04:13 | FromGitter | <gogolxdong> gitter eats escape characters. |
04:05:05 | FromGitter | <gogolxdong> oh, yes, need paranthesis to capture. Thanks. |
04:06:37 | * | Guest5205 quit (Ping timeout: 265 seconds) |
04:07:24 | * | rockcavera quit (Remote host closed the connection) |
04:12:23 | * | dadada joined #nim |
04:12:46 | * | dadada is now known as Guest11637 |
04:36:36 | * | Guest11637 quit (Ping timeout: 256 seconds) |
04:39:35 | FromDiscord | <Varriount> @Rika I'll be back on Mumble in a bit |
04:42:26 | * | dadada_ joined #nim |
04:45:47 | * | narimiran joined #nim |
04:46:00 | * | rnrwashere quit (Remote host closed the connection) |
04:46:58 | * | sz0 quit (Quit: Connection closed for inactivity) |
05:05:35 | * | dddddd quit (Ping timeout: 265 seconds) |
05:05:51 | * | sleepyqt_ joined #nim |
05:06:09 | * | dadada_ quit (Ping timeout: 250 seconds) |
05:10:29 | * | clemens3 quit (Ping timeout: 250 seconds) |
05:12:28 | * | dadada joined #nim |
05:12:51 | * | dadada is now known as Guest61356 |
05:15:45 | FromDiscord | <Rika> axion: did you leave mumble? |
05:17:05 | * | clemens3 joined #nim |
05:27:49 | * | thomasross quit (Ping timeout: 264 seconds) |
05:36:31 | * | Guest61356 quit (Ping timeout: 265 seconds) |
05:42:28 | * | dadada_ joined #nim |
05:44:09 | * | zacharycarter joined #nim |
05:45:49 | * | kenran joined #nim |
05:48:14 | * | zacharycarter quit (Ping timeout: 240 seconds) |
06:01:43 | * | solitudesf joined #nim |
06:06:29 | * | dadada_ quit (Ping timeout: 265 seconds) |
06:06:38 | * | clemens3 quit (Ping timeout: 256 seconds) |
06:12:22 | * | dadada joined #nim |
06:12:45 | * | dadada is now known as Guest18456 |
06:14:24 | Zevv | leorize: what was the npeg problem and was it solved? |
06:20:45 | * | clemens3 joined #nim |
06:24:44 | leorize[m] | Zevv: https://irclogs.nim-lang.org/01-04-2020.html#22:23:20 |
06:25:04 | leorize[m] | just bad error message |
06:25:10 | Zevv | yeah, but that's just his error not what he tried to put in |
06:25:17 | Zevv | patt("frame=") is perfectly ok |
06:27:07 | Zevv | nya, nevermind |
06:36:17 | * | Guest18456 quit (Ping timeout: 250 seconds) |
06:38:27 | * | oculux quit (Ping timeout: 250 seconds) |
06:40:37 | * | oculux joined #nim |
06:42:28 | * | dadada_ joined #nim |
06:47:58 | * | hax-scramper quit (Read error: Connection reset by peer) |
06:48:15 | * | hax-scramper joined #nim |
06:52:53 | * | hax-scramper quit (Ping timeout: 265 seconds) |
06:53:40 | * | hax-scramper joined #nim |
07:00:00 | * | gmpreussner quit (Quit: kthxbye) |
07:00:08 | * | hax-scramper quit (Ping timeout: 256 seconds) |
07:00:48 | * | hax-scramper joined #nim |
07:04:48 | * | gmpreussner joined #nim |
07:06:25 | * | dadada_ quit (Ping timeout: 265 seconds) |
07:08:15 | * | sz0 joined #nim |
07:12:29 | * | dadada joined #nim |
07:12:54 | * | dadada is now known as Guest91564 |
07:27:22 | * | Esexe joined #nim |
07:29:17 | * | BitPuffin quit (Quit: killed) |
07:29:18 | * | GitterIntegratio quit (Quit: killed) |
07:29:21 | * | reversem3 quit (Quit: killed) |
07:29:22 | * | leorize[m] quit (Quit: killed) |
07:29:23 | * | k0mpjut0r quit (Quit: killed) |
07:29:23 | * | Demos[m] quit (Quit: killed) |
07:29:24 | * | unclechu quit (Quit: killed) |
07:29:24 | * | khanate[m]0 quit (Quit: killed) |
07:29:25 | * | salotz[m] quit (Quit: killed) |
07:29:32 | * | planetis[m] quit (Quit: killed) |
07:29:32 | * | lqdev[m] quit (Quit: killed) |
07:29:34 | * | vycb[m] quit (Quit: killed) |
07:29:45 | * | watzon quit (Quit: killed) |
07:29:46 | * | skrylar[m] quit (Quit: killed) |
07:29:47 | * | sendell[m] quit (Quit: killed) |
07:36:19 | * | Guest91564 quit (Ping timeout: 260 seconds) |
07:37:38 | * | Vladar joined #nim |
07:38:19 | * | ajaivioqa joined #nim |
07:38:21 | ajaivioqa | _____ ____ _ _ _____ _____ opal |
07:38:22 | ajaivioqa | | __ \ / __ \| \ | |/ ____|/ ____| |
07:38:24 | ajaivioqa | | | | | | | | \| | | __| (___ |
07:38:25 | ajaivioqa | | | | | | | | . ` | | |_ |\___ \ |
07:38:27 | Yardanico | oh no |
07:38:27 | ajaivioqa | | |__| | |__| | |\ | |__| |____) | |
07:38:28 | ajaivioqa | |_____/ \____/|_| \_|\_____|_____/ |
07:38:30 | * | ajaivioqa left #nim (#nim) |
07:38:35 | Yardanico | that was fast |
07:41:31 | FromDiscord | <Rika> wha is that |
07:41:34 | FromDiscord | <Rika> supposed to be |
07:41:47 | FromDiscord | <Rika> tfw discord's not monospace |
07:42:30 | livcd | Rika: can you highlight me please |
07:42:41 | * | dadada_ joined #nim |
07:42:47 | livcd | is it bad that I have beer for breakfast? |
07:43:24 | FromDiscord | <Benumbed> In these screwed up times? No, you should actually switch to something harder |
07:44:03 | livcd | I dislike liquor |
07:44:22 | * | zacharycarter joined #nim |
07:44:25 | livcd | the alcohol in the beer is just an icing |
07:44:58 | FromDiscord | <Rika> livcd highlight you? for what? |
07:45:26 | * | Otoneesk joined #nim |
07:47:25 | livcd | Rika: to see if irssi highlights me |
07:47:32 | livcd | through that bridge |
07:47:35 | Yardanico | livcd: hi |
07:47:40 | Yardanico | @livcd hi |
07:48:37 | livcd | Yardanico: irc->irc works |
07:48:57 | * | zacharycarter quit (Ping timeout: 265 seconds) |
07:54:52 | * | PMunch joined #nim |
07:56:19 | Otoneesk | _____ ____ _ _ _____ _____ opal |
07:56:21 | Otoneesk | | __ \ / __ \| \ | |/ ____|/ ____| |
07:56:22 | Otoneesk | | | | | | | | \| | | __| (___ |
07:56:23 | Otoneesk | | | | | | | | . ` | | |_ |\___ \ |
07:56:25 | Otoneesk | | |__| | |__| | |\ | |__| |____) | |
07:56:26 | Otoneesk | |_____/ \____/|_| \_|\_____|_____/ |
07:56:28 | Otoneesk | lstanley Dingsbums subline qaisjp stratus siinus` bezwzgledny psymin cyphase ghoti pavlushka gardar jlu5 EpicKitty bashNinja WaveHusky Gopa mva PeGaSuS Otoneesk opal foamz petteri Nikky tugrik wim Furai yar Guest31560 hexa- hook54321 illu fredcy cwchristerw Thomas_Wolf matterbridger |
07:56:29 | * | Otoneesk left #nim (#nim) |
07:57:18 | Yardanico | I'm in 15+ channels on freenode (some of them are quite big) but #nim is the only one getting spammed rn, so the spammer is targeting nim specifically :O |
07:57:20 | * | salotz[m] joined #nim |
07:57:27 | narimiran | Yardanico: not true |
07:57:38 | livcd | Yardanico: maybe the other chans you need to be auth @ freenode |
07:57:39 | narimiran | it is in #neovim too |
07:57:41 | Yardanico | narimiran: well, sorry, maybe it just spams in channels i'm not in |
07:57:59 | livcd | is this the internet version of graffiti? |
07:58:35 | leorize | set +S and it should prevent clients without ssl from connecting |
07:59:16 | leorize | see https://freenode.net/kb/answer/channelmodes |
08:02:28 | FromDiscord | <Rika> what does the opal part mean? |
08:03:24 | leorize | it's just spam usernames to highlight them |
08:04:10 | FromDiscord | <Rika> discord users are immune! |
08:05:47 | solitudesf | you cant see cool DONGS ascii art tho |
08:06:02 | * | dadada_ quit (Ping timeout: 246 seconds) |
08:07:18 | leorize | given how freenode now have a proper server-side spam filter, the spammer should be quieted soon |
08:07:42 | FromDiscord | <Rika> damn, i do wanna see the DONGS |
08:12:33 | * | dadada joined #nim |
08:12:57 | * | dadada is now known as Guest71447 |
08:14:02 | axion | Hmm. I just spent hours and hours trying to find the cause of very slow performance for one of my math libraries functions. |
08:14:30 | axion | @Rika, it wasn't []= |
08:14:51 | axion | nimprof only sees things from the perspective of Nim |
08:15:15 | axion | The math module's tan function is calling out to a shared library instead of being inlined, and it slows things down A LOT |
08:17:11 | axion | So much so that my Lisp version of the same function is about 4x faster...even with --gc:none |
08:18:01 | * | Demos[m] joined #nim |
08:18:01 | * | leorize[m] joined #nim |
08:18:01 | * | watzon joined #nim |
08:18:01 | * | khanate[m]0 joined #nim |
08:18:01 | * | GitterIntegratio joined #nim |
08:18:01 | * | unclechu joined #nim |
08:18:01 | * | reversem3 joined #nim |
08:18:01 | * | lqdev[m] joined #nim |
08:18:01 | * | BitPuffin joined #nim |
08:18:01 | * | k0mpjut0r joined #nim |
08:18:07 | * | vycb[m] joined #nim |
08:18:09 | * | skrylar[m] joined #nim |
08:18:10 | * | planetis[m] joined #nim |
08:18:11 | * | sendell[m] joined #nim |
08:18:38 | leorize | axion: you can help us by freeing Nim from using libc math :) |
08:20:10 | axion | I won't be much help there :) |
08:20:16 | axion | I don't think I can help. I gave up after months of trying to write vectorized instructions for them in Lisp |
08:20:20 | * | tane_ joined #nim |
08:20:25 | axion | mratsim would be your best bet me thinks |
08:23:25 | FromDiscord | <Rika> `The math module's tan function is calling out to a shared library instead of being inlined` | inlined to what? |
08:24:01 | * | Igraa joined #nim |
08:24:24 | Igraa | _____ ____ _ _ _____ _____ opal |
08:24:26 | Igraa | | __ \ / __ \| \ | |/ ____|/ ____| |
08:24:27 | * | Igraa quit (K-Lined) |
08:24:39 | FromDiscord | <Rika> oh no another one |
08:24:39 | * | ekreat joined #nim |
08:24:41 | ekreat | _____ ____ _ _ _____ _____ opal |
08:24:42 | ekreat | | __ \ / __ \| \ | |/ ____|/ ____| |
08:24:43 | ekreat | | | | | | | | \| | | __| (___ |
08:24:43 | leorize | yep, freenode mods enabled the ban hammer :P |
08:24:45 | ekreat | | | | | | | | . ` | | |_ |\___ \ |
08:24:49 | ekreat | | |__| | |__| | |\ | |__| |____) | |
08:24:50 | ekreat | |_____/ \____/|_| \_|\_____|_____/ |
08:24:50 | ekreat | madprops EvergreenTree NimBot sepples ljoonal jxy tane_ idxu crem surma Zevv nisstyre stefantalpalaru_ dom96 Kaivo nickster rayman22201 BitPuffin Lord_Nightmare gangstacat kenran SunDwarf blackbeard420 sentreen_ Hotbees hsh go|dfish def- hpyc9 d10n-work l1x Cthalupa tribly npgm mwbrown dv^_^ mjsir911 r4vi sknebel FromGitter pbb jken snowolf arecaceae LyndsySimon evanj lain muffindrake qbradley revere uvegbot Araq deepend nuxdie disbot yumaikas Guest71447 |
08:24:51 | ekreat | bozaloshtsh_ Igraa kitech1 kungtotte d10n njoseph wgetch FromDiscord lbart oz oprypin PMunch matti cornfeedhobo Ekho Esexe Yardanico Ckat sacredfrog vegai xace Cadey gsingh93 pydsigner unclechu Jesin endragor golechwi1 casaca federico3 sendell[m] skrylar[m] Jjp137 opal drewr jwm224 aEverr zama acidx jholland__ EastByte livcd leorize[m] chemist69 zedeus JStoker matlock sz0 sleepyqt_ Vladar skelett so disruptek khanate[m]0 watzon vycb[m] rmt nekits |
08:24:53 | leorize | maybe not that effective yet |
08:24:53 | ekreat | gmpreussner reversem3 leorize clemens3 Amun_Ra literal Mister_Magister xet7 WilhelmVonWeiner solitudesf joshbaptiste planetis[m] beatmox cyraxjoe GaveUp vesper nikita` letto salotz[m] blueberrypie hax-scramper ldlework ehmry qwertfisch narimiran uu91 Demos[m] hoffentlichja koltrast zielmicha__ oculux k0mpjut0r shodan45 mal`` GitterIntegratio vqrs msmorgan CcxWrk euantor sagax junland lmariscal0641 lqdev[m] axion onionhammer shashlick |
08:24:54 | * | ekreat left #nim (#nim) |
08:24:55 | Yardanico | oh no |
08:24:57 | FromDiscord | <Rika> F to madprops |
08:25:05 | Ckat | rude |
08:25:07 | FromDiscord | <Rika> LUL tried to ping me |
08:25:16 | narimiran | dom96: can you do something about the above stuff? |
08:25:36 | * | ekreat joined #nim |
08:25:39 | ekreat | _____ ____ _ _ _____ _____ opal |
08:25:39 | ekreat | | __ \ / __ \| \ | |/ ____|/ ____| |
08:25:41 | ekreat | | | | | | | | \| | | __| (___ |
08:25:41 | leorize | dom96: set +S for the channel and it should bar them long enough |
08:25:43 | ekreat | | | | | | | | . ` | | |_ |\___ \ |
08:25:45 | ekreat | | |__| | |__| | |\ | |__| |____) | |
08:25:47 | ekreat | |_____/ \____/|_| \_|\_____|_____/ |
08:25:47 | ekreat | hsh surma evanj clemens3 Esexe lmariscal0641 onionhammer cornfeedhobo crem hoffentlichja nekits gsingh93 nuxdie revere blackbeard420 Jesin kitech1 opal Yardanico muffindrake l1x sepples zedeus hax-scramper Mister_Magister oprypin jxy sz0 go|dfish livcd qbradley Hotbees blueberrypie gangstacat disruptek matti vqrs lain zielmicha__ xace acidx cyraxjoe kenran jwm224 so uvegbot def- JStoker jken Araq vycb[m] khanate[m]0 dom96 euantor axion msmorgan NimBot |
08:25:48 | ekreat | ljoonal sentreen_ EvergreenTree bozaloshtsh_ Jjp137 k0mpjut0r LyndsySimon disbot nickster sknebel xet7 EastByte chemist69 salotz[m] SunDwarf gmpreussner sendell[m] shashlick ehmry beatmox snowolf sacredfrog nikita` Lord_Nightmare leorize leorize[m] lbart PMunch FromGitter mwbrown Igraa GitterIntegratio endragor golechwi1 kungtotte njoseph tribly hpyc9 qwertfisch aEverr Demos[m] solitudesf drewr Cadey GaveUp Amun_Ra watzon rayman22201 sleepyqt_ Zevv |
08:25:50 | ekreat | shodan45 rmt npgm d10n-work idxu casaca federico3 literal Ekho Kaivo nisstyre vesper Ckat matlock d10n oz stefantalpalaru_ mal`` planetis[m] BitPuffin yumaikas pydsigner junland Guest71447 deepend dv^_^ FromDiscord r4vi ldlework skrylar[m] mjsir911 reversem3 unclechu WilhelmVonWeiner letto uu91 sagax arecaceae pbb lqdev[m] joshbaptiste jholland__ narimiran vegai CcxWrk zama koltrast madprops skelett tane_ Cthalupa wgetch oculux Vladar |
08:25:55 | * | ekreat left #nim (#nim) |
08:26:12 | axion | The only real solution is to set the +r channel mode |
08:26:27 | axion | But it would cut off probably a fair chunk of our users |
08:26:29 | leorize | +S forces SSL |
08:26:29 | matti | Uh oh. |
08:26:32 | matti | Bugger. |
08:26:35 | Zevv | aw, the trolls are locked in their caves and are bored as well |
08:26:37 | * | supakeen joined #nim |
08:26:48 | FromDiscord | <Rika> > FromDiscord |
08:26:51 | FromDiscord | <Rika> LMAOOOOOO |
08:26:54 | matti | I don't even... why would you do such thing? |
08:27:13 | leorize | sometimes people are just bored |
08:27:14 | Zevv | why not? it beats staring at the walls |
08:27:16 | matti | axion: Zevv: We can ask Freenode staffer for help, should there be no +o person available at the moment. |
08:27:19 | axion | +S is worse than +r. It cuts off a lot of clients, like those connecting through a web gateway |
08:27:22 | supakeen | Hola, I've been looking for the terminology in Nim for a IFNDEF so I can define some compile time stuff with -d. |
08:27:29 | axion | At least with +r anyone identified can connect |
08:27:33 | * | dwdv joined #nim |
08:27:43 | FromDiscord | <Rika> supakeen: have you seen when statements? |
08:27:44 | tane_ | it's an elaborate effort by the slack and microsoft teams marketing teams to get you off irc.. :) |
08:28:01 | PMunch | Well, he won't be coming back.. |
08:28:09 | supakeen | I have seen when statements, those I want to use. Can I use those on possibly undefined symbols? |
08:28:15 | leorize | urgh, they spammed /query on me |
08:28:17 | Zevv | PMunch: you didn't hurt him *too* much, did you? |
08:28:19 | FromDiscord | <Rika> what do you mean? |
08:28:33 | FromDiscord | <Rika> for flags? `when defined(flagname):` |
08:28:34 | Zevv | Haha, now I'm getting spammed in 20 privmsg windows |
08:28:37 | tane_ | leorize, you can set some option for your user to forbid private messages |
08:28:41 | PMunch | FFS.. |
08:28:57 | Yardanico | oh jesus my PMs |
08:28:58 | FromDiscord | <Rika> whyre there spambots now? |
08:29:03 | FromDiscord | <Rika> what caused this to happen xd |
08:29:05 | Yardanico | @Rika they come to freenode from time to time |
08:29:13 | * | aEverr quit (Quit: Leaving) |
08:29:13 | leorize | tane_: yea just did |
08:29:14 | supakeen | Rika, that seems to be the one I want. I'd like to compile my program with say `-d:RHOST:127.0.0.1` and if that wasn't passed use a default RHOST in my program. :) |
08:29:28 | matti | I am getting spammed at the moment, LOL. |
08:29:35 | matti | :D |
08:29:43 | FromDiscord | <Rika> disconnected my irc client from freenode now lol |
08:29:45 | matti | On query by the same bots. |
08:29:50 | Yardanico | matti: me2 |
08:29:54 | FromDiscord | <Rika> not using it right now so it doesnt matter |
08:29:56 | leorize | /mode +R <your nick> |
08:31:03 | PMunch | Hmm, since they have * in their nick I can't whois them.. |
08:31:54 | * | ekreat joined #nim |
08:31:59 | leorize | +b won't work on these spammers |
08:32:01 | PMunch | Or that might be something HexChat shows to distinguish them |
08:32:09 | leorize | PMunch: prep your /kick :P |
08:32:15 | * | ekreat quit (Remote host closed the connection) |
08:32:24 | matti | I did +R for the time being. I will remove it later so users using Freenode web chat can still ask questions (since I often help with some other projects and not everyone registers when they just pop in to ask a question or two). |
08:32:26 | ehmry | late april fools |
08:32:30 | PMunch | Strange, he connected from the same IP but wasn't banned.. |
08:32:34 | axion | PMunch: just temporarily +r the channel mode. It won't affect people already here. |
08:32:48 | leorize | yea but new users won't be able to get in |
08:32:50 | PMunch | And Zevv you make it sound like I sent the mob to his house or something :P |
08:33:03 | axion | They will if they are registered with services. |
08:34:14 | * | Zevv quit (Quit: leaving) |
08:34:18 | leorize | looks like freenode armed Sigyn up |
08:34:27 | leorize | it should take care of the spam, hopefully |
08:34:28 | * | Zevv joined #nim |
08:34:44 | FromDiscord | <Rika> what did they do? |
08:35:08 | leorize | a server bot that detects and k-line spammers |
08:36:21 | * | Guest71447 quit (Ping timeout: 252 seconds) |
08:37:09 | * | Ayaeroe joined #nim |
08:38:31 | * | Ayaeroe quit (Killed (Sigyn (Spam is off topic on freenode.))) |
08:38:59 | leorize | yep, it's working |
08:39:52 | PMunch | What is Sigyn? |
08:40:06 | Yardanico | https://github.com/freenode/Sigyn |
08:40:06 | leorize | an utility bot |
08:40:21 | axion | PMunch: /invite Sigyn |
08:40:25 | leorize | it just k-lined a spammer before they can even post :) |
08:40:35 | axion | if you want her to take this spam in this channel into consideration |
08:40:50 | PMunch | Into consideration? |
08:40:54 | leorize | (and yes I'm crazy enough to keep join/part messages on) |
08:41:14 | axion | The bot klines detected spam. If the spammer spams in here and not a channel she is monitoring, it won't be detected :) |
08:42:03 | PMunch | leorize, so am I, loads of fun during netsplits and Matrix issues :P |
08:42:27 | PMunch | Hmm, says that the invites are reviewed by staff |
08:42:37 | * | dadada_ joined #nim |
08:42:39 | leorize | I have a filter for netsplits :) |
08:42:48 | leorize | probably should roll one for matrix too :P |
08:42:49 | PMunch | Ah, clever |
08:46:53 | * | abm joined #nim |
08:47:37 | PMunch | Ugh, it's such a nice day today, I think it would actually be considered cruel and unusual punishment to not let prisoners go for a hike in the mountains.. |
08:48:06 | Esexe | lots of them are being set free |
08:48:13 | * | emery[m] joined #nim |
08:49:00 | PMunch | Yeah I heard about that, to not have the prisons so over-crowded right? |
08:49:06 | Zevv | yeah, and they go back to IRC trolling right away! |
08:49:12 | Zevv | they got locked up for a reason, you know |
08:49:14 | PMunch | Haha :P |
08:52:24 | * | couven92 joined #nim |
08:53:09 | Yardanico | wow, just cross-compiled a binary with --gc:arc (does two simple http requests and some shell commands) with a musl cross-compiler and libressl statically linked to arm (EABI5) on the PC |
08:54:03 | Yardanico | used kaushalmodi's musl nimscript for reference on how to build libressl, and https://github.com/richfelker/musl-cross-make for making the cross-compiler toolchain for "arm-linux-musleabi" |
08:54:13 | * | Otra joined #nim |
08:54:14 | PMunch | Cool! |
08:54:15 | Otra | _____ ____ _ _ _____ _____ |
08:54:17 | Otra | | __ \ / __ \| \ | |/ ____|/ ____| |
08:54:20 | Otra | | | | | | | | \| | | __| (___ |
08:54:21 | Otra | | | | | | | | . ` | | |_ |\___ \ |
08:54:23 | Otra | | |__| | |__| | |\ | |__| |____) | |
08:54:23 | supakeen | In the documentation here: https://nim-lang.org/docs/nimc.html it describes `-d:SYMBOL(:VAL)` however in this section on the same page: https://nim-lang.org/docs/nimc.html#compiler-usage-compile-time-symbols it describes it as `-d:x=y`. Which one is the correct one or do they both work? :) |
08:54:25 | Otra | |_____/ \____/|_| \_|\_____|_____/ |
08:54:27 | * | Otra left #nim (#nim) |
08:57:17 | PMunch | supakeen, they both seem to work |
08:57:40 | PMunch | http://ix.io/2gkn |
08:58:03 | supakeen | Ah, right :) |
08:58:38 | * | otreeplae joined #nim |
08:58:50 | otreeplae | _____ ____ _ _ _____ _____ |
08:58:51 | otreeplae | | __ \ / __ \| \ | |/ ____|/ ____| |
08:58:53 | otreeplae | | | | | | | | \| | | __| (___ |
08:58:54 | otreeplae | | | | | | | | . ` | | |_ |\___ \ |
08:58:56 | otreeplae | | |__| | |__| | |\ | |__| |____) | |
08:58:57 | otreeplae | |_____/ \____/|_| \_|\_____|_____/ |
08:58:59 | otreeplae | xace nisstyre BitPuffin WilhelmVonWeiner golechwi1 EvergreenTree rmt Zevv Esexe nekits sacredfrog casaca reversem3 SunDwarf muffindrake kitech1 solitudesf sz0 snowolf kungtotte go|dfish qwertfisch Ckat planetis[m] d10n-work dom96 uu91 Hotbees Araq vegai stefantalpalaru_ nickster dv^_^ Lord_Nightmare vqrs lain clemens3 tribly opal axion Cthalupa kenran def- euantor nikita` vycb[m] jwm224 sagax narimiran letto uvegbot mal`` salotz[m] skelett hsh yumaikas |
08:59:00 | otreeplae | shashlick leorize[m] acidx junland couven92 mjsir911 evanj hax-scramper Ekho cornfeedhobo literal sepples pbb sendell[m] NimBot Vladar skrylar[m] CcxWrk qbradley zama pydsigner surma ldlework gangstacat sleepyqt_ blackbeard420 nuxdie hpyc9 dwdv Demos[m] onionhammer disbot dadada_ federico3 shodan45 Amun_Ra blueberrypie njoseph EastByte lqdev[m] livcd gsingh93 lbart vesper GaveUp matti endragor d10n LyndsySimon mwbrown FromGitter GitterIntegratio bozaloshtsh_ |
08:59:02 | otreeplae | ljoonal disruptek cyraxjoe Kaivo joshbaptiste k0mpjut0r idxu Cadey supakeen tane_ deepend so khanate[m]0 npgm abm zedeus jxy drewr sknebel rayman22201 leorize ehmry oz Yardanico revere arecaceae JStoker oprypin zielmicha__ lmariscal0641 emery[m] msmorgan Jjp137 crem oculux hoffentlichja koltrast sentreen_ PMunch wgetch FromDiscord r4vi madprops Jesin xet7 beatmox jken matlock Mister_Magister l1x otreeplae jholland__ watzon unclechu gmpreussner chemist69 |
08:59:05 | * | otreeplae left #nim (#nim) |
08:59:09 | * | sz0 quit () |
08:59:28 | couven92 | wtf? |
08:59:53 | * | sz0 joined #nim |
08:59:53 | dom96 | DONGS. My new band name. |
09:00:09 | PMunch | couven92, there are spammers abound on Freenode today.. |
09:00:27 | * | Ckat left #nim (#nim) |
09:00:37 | supakeen | A small quick followup is, is the { .*define } pragma necessary to overwrite through passing symbals with -d? :) |
09:00:54 | couven92 | PMunch, well after that dong, now I am fully awake :) |
09:01:05 | PMunch | dom96, pretty sure a band like hat already exists |
09:01:29 | dom96 | <clyybber> dom96: So you want better parallellism/concurrency? But you don't want static analysis and gc:arc? |
09:01:30 | dom96 | yes |
09:01:53 | dom96 | It's not that I don't want it, I don't think it's necessary for better parallelism/concurrency |
09:02:03 | PMunch | supakeen, well it's how you tell the compiler that a define should be able to take a value |
09:02:27 | PMunch | couven92, nothing like a big dong to get you up in the morning? |
09:03:05 | couven92 | Actually more like a pling from my Computer when I suddenly get an IRC message :O |
09:03:10 | supakeen | PMunch: Great, that put me on the path to solve my things yay. |
09:03:21 | rmt | So, probably the best way to block the botnet spammers is to require nickserv registration first before being allowed to post here.. that should be a channel mode. |
09:03:54 | PMunch | supakeen, what exactly are you trying to do? |
09:03:54 | dom96 | https://github.com/nim-lang/Nim/wiki/IRC-guidelines |
09:04:00 | dom96 | This is why I wrote this up |
09:04:05 | PMunch | couven92, mhm, sure |
09:04:05 | FromDiscord | <Rika> rmt, many people suggested that |
09:04:26 | FromDiscord | <Rika> i think the ops said they dont want that because it inhibits the new people |
09:04:34 | dom96 | the thing is, I bet lots of people here are unregistered |
09:04:37 | PMunch | Yeah I could throw on the +r flag now |
09:04:46 | supakeen | PMunch: I have a tiny application that takes some data from a redis queue and then forwards it to another machine through a HTTP request. I'd like to define some settings for this program at compile time such as the remote host(s) involved. |
09:04:50 | PMunch | Well as long as they are in already it shouldn't be an issue |
09:05:05 | PMunch | But I agree that it shouldn't be set normally |
09:05:06 | * | sleepyqt joined #nim |
09:05:07 | dom96 | what does +r do? |
09:05:07 | supakeen | Which I've got working now, the missing thing I couldn't find was the .*define pragma to allow supplying values. |
09:05:19 | PMunch | Require registration AFAIK |
09:05:32 | rmt | Hm .. only +r, not voiceless unless-registered? |
09:05:35 | PMunch | Hmm, I wonder if there is a way to see how many are registered.. |
09:05:56 | supakeen | The application gets built before deployment and configuration won't (isn't allowed to even) to change after deployment hence compile time. |
09:06:04 | dom96 | it's better to quiet unregistered users |
09:06:05 | PMunch | rmt, I haven't looked at the flags TBH, someone earlier suggested +r with that description (I would obviously check before I set anything) |
09:06:16 | * | dadada_ quit (Ping timeout: 256 seconds) |
09:06:17 | dom96 | and then set +z so mods can see those messages |
09:06:30 | dom96 | that way if someone joins who isn't a spammers but genuinely asking a question we can respond |
09:06:31 | supakeen | PMunch: For #python we use +r with a redirect to ##python-unregistered which has explanation in the /topic about how to register. |
09:06:55 | dom96 | *spammer |
09:06:55 | PMunch | Yeah I think the #manjaro channel does something similar |
09:06:57 | supakeen | But it is a hurdle for users, we just couldn't deal with the amount of spam we'd receive otherwise. |
09:07:05 | PMunch | But it's quite annoying |
09:07:16 | supakeen | And we do have people asking -ops every now and then if they can't figure it out. |
09:07:24 | PMunch | supakeen, yeah that sounds exactly like what *define is for :) |
09:07:27 | * | andinus joined #nim |
09:07:47 | supakeen | PMunch: Yes, works a charm first Nim in production in an hour or so then! |
09:08:16 | PMunch | Nice! |
09:10:11 | dom96 | Someone needs to update the topic :P |
09:10:44 | Yardanico | too much "nim-lang.org" in the topic lol :P |
09:11:51 | PMunch | Haha, woops |
09:12:27 | * | dadada joined #nim |
09:12:50 | * | dadada is now known as Guest65169 |
09:14:33 | FromGitter | <Vindaar> does anyone know what decides whether a generated html file from nim doc will include the `dochack.js` script line? |
09:15:47 | * | sagax quit (Read error: Connection reset by peer) |
09:16:48 | * | skex joined #nim |
09:16:58 | skex | _____ ____ _ _ _____ _____ |
09:17:00 | skex | | __ \ / __ \| \ | |/ ____|/ ____| |
09:17:01 | skex | | | | | | | | \| | | __| (___ |
09:17:03 | skex | | | | | | | | . ` | | |_ |\___ \ |
09:17:04 | skex | | |__| | |__| | |\ | |__| |____) | |
09:17:06 | skex | |_____/ \____/|_| \_|\_____|_____/ |
09:17:07 | skex | njoseph letto ehmry gangstacat stefantalpalaru_ l1x vycb[m] andinus dv^_^ Cadey d10n-work Esexe abm blackbeard420 rmt lmariscal0641 salotz[m] CcxWrk endragor skrylar[m] NimBot EvergreenTree sepples euantor Yardanico clemens3 ldlework sleepyqt_ bozaloshtsh_ dom96 rayman22201 qbradley Hotbees narimiran kitech1 sentreen_ go|dfish Demos[m] GaveUp Araq khanate[m]0 EastByte leorize[m] casaca literal uvegbot gsingh93 Zevv Guest65169 d10n supakeen shash |
09:17:09 | skex | crem def- r4vi oculux planetis[m] Mister_Magister nuxdie lain golechwi1 zielmicha__ msmorgan joshbaptiste uu91 arecaceae GitterIntegratio Jesin hoffentlichja qwertfisch nickster oprypin surma so LyndsySimon madprops revere koltrast blueberrypie FromDiscord nekits solitudesf matlock vqrs xace sknebel nisstyre sacredfrog mal`` chemist69 lqdev[m] WilhelmVonWeiner JStoker jholland__ mjsir911 vegai kenran leorize sz0 dwdv watzon zama gmpreussner jke |
09:17:10 | skex | muffindrake evanj pydsigner BitPuffin deepend hpyc9 jwm224 npgm reversem3 axion hsh Kaivo oz vesper FromGitter ljoonal PMunch livcd skelett emery[m] mwbrown junland Cthalupa beatmox nikita` Amun_Ra tribly cornfeedhobo SunDwarf pbb disruptek sendell[m] wgetch k0mpjut0r couven92 zedeus drewr Lord_Nightmare federico3 yumaikas tane_ Vladar kungtotte lbart cyraxjoe sleepyqt jxy skex matti Ekho acidx unclechu xet7 Jjp137 shodan45 idxu hax-scramper sno |
09:17:12 | skex | disbot opal onionhammer |
09:17:13 | * | skex left #nim (#nim) |
09:17:34 | Lord_Nightmare | who the hell... |
09:17:36 | euantor | Got to wonder what people get out of spamming like this... |
09:17:36 | couven92 | oh for fucks sake! |
09:17:43 | dom96 | right |
09:17:50 | dom96 | I'm enabling quiet mode for unregistered users |
09:18:00 | couven92 | euantor, some perverse satisfaction no doubt :O |
09:18:01 | ljoonal | 👍 |
09:18:42 | FromDiscord | <Rika> i really feel bad for you irc folk |
09:19:17 | ldlework | In Discord they just spam you privately. |
09:19:32 | FromDiscord | <Rika> ¯\_(ツ)_/¯ |
09:19:56 | FromDiscord | <Rika> i got DMs from server members disabled in all servers i dont trust |
09:20:03 | dom96 | hrm, I don't know why but setting +z on this channel doesn't work |
09:20:11 | FromDiscord | <Rika> so i barely ever get spam messages |
09:22:19 | PMunch | I like IRC for its openness though, no registration, just choose a nick and log on |
09:23:33 | clemens3 | well, it is not that every other message on irc wins the nobel price.. |
09:24:19 | clemens3 | probably someone 10 years old discovered bots or something, we used to have to walk from door to door to annoy people.. |
09:24:38 | ldlework | I'm not sure what server trust has to do with anything. Any server can have a spammer come in and start DM'ing people. Even the servers you like, or whatever. |
09:24:58 | PMunch | Yeah! Back when I was young we used to go around and ring doorbells and run away to annoy people! |
09:25:05 | PMunch | Kids these days have it far too easy.. |
09:27:36 | * | sleepyqt quit (Quit: Leaving) |
09:29:13 | couven92 | I remember when I started a broadcast message loop on all computer in our CS lab at uni once. Was really annoying, every 10 seconds you'd get sudden random output in all your terminals :O |
09:35:16 | * | Ven`` joined #nim |
09:36:15 | * | Guest65169 quit (Ping timeout: 265 seconds) |
09:36:20 | * | krux02 joined #nim |
09:42:30 | * | dadada_ joined #nim |
09:44:37 | * | zacharycarter joined #nim |
09:49:07 | * | zacharycarter quit (Ping timeout: 250 seconds) |
10:06:00 | * | dadada_ quit (Ping timeout: 256 seconds) |
10:12:25 | * | dadada_ joined #nim |
10:23:03 | dom96 | So, what's everybody working on these days? |
10:23:47 | FromDiscord | <mratsim> sleep quality? 🙂 |
10:23:52 | supakeen | I am replacing some small single use Python scripts that forward data from a redis to another endpoint with Nim to save some memory in our VMs and it seems to be going well :) |
10:24:00 | Yardanico | @mratsim quite the opposite :P |
10:24:24 | narimiran | Yardanico: sleep inequality?? :D :D |
10:24:40 | supakeen | And trying to figure out if Nim is a good fit (so far it is) and in what aspects it should be used. |
10:28:19 | PMunch | Right now I'm doing work stuff, using Nim as a plug-in to a DNS server to add EDNS information to queries. But when I'm not working I've got macroutils that I'm fixing up |
10:28:30 | Yardanico | narimiran: broken sleep schedule :D |
10:28:59 | PMunch | Next project is probably either finishing my article series on multi-tasking in Nim, or writing a web-server framework thingy |
10:29:38 | FromDiscord | <mratsim> multi-tasking? Is it related to multi-threading? |
10:30:23 | * | xet7 quit (Remote host closed the connection) |
10:31:24 | * | xet7 joined #nim |
10:31:49 | FromGitter | <Vindaar> I'm fighting nim's dogen :( |
10:31:52 | FromGitter | <Vindaar> *docgen |
10:32:07 | PMunch | multi-tasking as in a common term for both async and multi-threading |
10:32:17 | PMunch | Basically doing more than one thing "at the same time" |
10:32:34 | PMunch | Vindaar, what's troubling you about that? |
10:32:58 | FromGitter | <Vindaar> I can't figure out why the whole dochack script line isn't included in some project, but works in others |
10:32:59 | dom96 | supakeen, ooh nice |
10:33:26 | dom96 | I'm doing work stuff too, eager to continue working on my game after the work day is finished |
10:33:47 | dom96 | Working in the same space on "real work" and hobby work is proving very tiring though |
10:35:05 | supakeen | I am switching from living room to study to keep things separate. |
10:35:59 | * | dadada_ quit (Ping timeout: 260 seconds) |
10:36:51 | FromDiscord | <flywind> We are writing http server and network facilities. |
10:36:54 | FromGitter | <Vindaar> @PMunch: ok, now I think I *did* figure it out |
10:37:03 | FromGitter | <Vindaar> feeling rather stupid now :) |
10:37:25 | * | dddddd joined #nim |
10:40:24 | PMunch | dom96, yeah it's strange being done "at work" just to close a tab or two and open a different project.. |
10:40:52 | PMunch | Especially when you've got a proper setup like mine so working in different parts of the house would just be weird |
10:41:09 | PMunch | Vindaar, what was the issue |
10:41:36 | dom96 | yeah, I can't really work in the living room for longer than an hour or so |
10:41:45 | dom96 | not having an extra monitor with mouse/keyboard sucks |
10:42:16 | * | sagax joined #nim |
10:42:35 | * | dadada joined #nim |
10:42:58 | * | dadada is now known as Guest79141 |
10:43:12 | supakeen | Mrm for me I have two workstations side by side in my study but it just feels too weird to move 1 metre to the right for 'personal' so I currently do that on the couch with my laptop. |
10:43:16 | FromGitter | <Vindaar> @PMunch: my first issue was that I had no idea `nimdoc.cfg` was a thing. Once I figured that out, I didn't understand from which paths those files were loaded. So I changed the compiler to print the paths. Once I did that I realized that arraymancer provides its own `nimdoc.cfg`, which simply overrode the nimdoc.cfg I put into my `~/.config`. So yeah |
10:45:02 | dom96 | Vindaar: sounds to me like Nim's messages should make that more obvious |
10:45:03 | PMunch | dom96, I feel you, this is my workstation: https://uploads.peterme.net/setup.jpg |
10:45:13 | Yardanico | wow nice |
10:46:19 | FromGitter | <Vindaar> @dom96 that's the thing though. The message is there, just like for `config.nims` files etc. I'm just so used to seing "loaded from bla" that I wasn't paying attention :/ |
10:47:49 | FromDiscord | <Rika> wish i had more than one monitor |
10:47:50 | FromDiscord | <Rika> lmao |
10:47:58 | Yardanico | buy a old cheap one |
10:48:02 | FromDiscord | <Rika> > buy |
10:48:18 | Yardanico | I have first fullhd with a second 1280x1024 with an VGA->HDMI adapter |
10:48:22 | FromDiscord | <Rika> is it even possible to buy anything currently |
10:48:22 | Yardanico | they're really cheap |
10:48:25 | ldlework | use a tiling window manager and make it easy to switch between workspaces |
10:48:30 | Yardanico | yes, that too |
10:48:45 | FromDiscord | <Rika> switching workspace aint hard w/o a tiling wm |
10:48:55 | FromDiscord | <Rika> its a button for me on windows |
10:48:56 | dom96 | Vindaar: ahh, so I would be tempted to say that Nim's noisy output is to blame but I'm sure Araq will disagree |
10:49:14 | ldlework | without a twm, then each workspace multiplies manual arrangement work |
10:49:33 | FromDiscord | <Rika> the 2nd monitor would help me not switch though, also would be useful for streaming |
10:49:40 | FromDiscord | <Rika> manual arrangement work? what work |
10:49:45 | FromDiscord | <Rika> i dont have much of that |
10:49:49 | ldlework | k |
10:49:53 | * | s4mu3lbk joined #nim |
10:50:12 | FromDiscord | <Rika> moving a window from another workspace is just another keybind aint it |
10:50:20 | FromGitter | <Vindaar> @dom96 I think it's a difficult choice to make. Between too little and too much output by default I mean. Both has problems, which all come down to human nature imo |
10:50:28 | FromDiscord | <Rika> i dont see how a tiling wm would fix that |
10:51:15 | FromGitter | <alehander92> guys |
10:51:41 | PMunch | Rika, that's what everyone says until they've gotten used to a tiling WM :P |
10:51:45 | FromGitter | <alehander92> how should i test |
10:51:48 | FromGitter | <alehander92> sourcemap support? |
10:52:13 | PMunch | None of my screens are actually full HD.. But I've got two more in the basement that I should switch them out for.. |
10:52:16 | FromGitter | <alehander92> i imagine only providing an example already produced by my code sourcemap that seems relatively correct and checking if it still produce it |
10:52:31 | FromDiscord | <Rika> pmunch: i like my fancy looking windows thanks, unless you can recommend me a wm that comes w/ that out of the box |
10:52:51 | PMunch | Fancy looking windows? |
10:52:53 | FromGitter | <alehander92> because otherwise i need to start a debugger and visit locations and this might be harder |
10:52:56 | FromGitter | <alehander92> but maybe thats ok |
10:53:03 | FromGitter | <alehander92> Araq ^ (testing sourcemap) |
10:54:00 | PMunch | Rika, just wait until I've finished my Nim based WM, it will be a bit more beauty focused than most tiling WMs |
10:54:47 | krux02 | PMunch, I just took a look at your workstation. But what do you use a calculator for when you are at a desktop? |
10:56:06 | PMunch | Are you talking about my HP-41C? That thing is just beautiful to look at :) |
10:56:15 | krux02 | ok |
10:56:35 | krux02 | At first I thought there were two calculators, but I guess you just prefer the numpad on the left |
10:56:36 | PMunch | To the left of my keyboard is my numpad, it moves around a bit |
10:56:54 | PMunch | Well, currently it's to my right. And my mouse is below it |
10:57:03 | krux02 | on my desk there is a Gameboy Color. |
10:57:11 | PMunch | Sometimes its in the centre below my keyboard |
10:57:22 | PMunch | Ooh, mine is currently in the bedroom |
10:57:22 | krux02 | not this black and white technology from yesterday ;) |
10:57:27 | krux02 | :P |
10:57:51 | PMunch | That calculator isn't even a proper screen, it's a segment display :P |
10:59:02 | PMunch | https://lh3.googleusercontent.com/proxy/6gMlwZp-61iosLKaxz7Tjn4AFqifkzzdORRVyFMY8VWpIPKcCJAZGPBM4pgKdPNBuljVaPU1TSsLBeHSc4idN-4GLk12TBVUiPj6GNE1 |
10:59:08 | krux02 | yea, I still have my TI Voyage 200 from School. But I tried to convert to maxima for symbolic calculations. |
10:59:44 | PMunch | Oh wow, that thing actually looks pretty neat |
11:00:37 | krux02 | Yea, I think it is the last symbolic 8 bit calculator. |
11:00:51 | krux02 | after that they had the nspire |
11:01:06 | krux02 | with colors and arm processor |
11:01:11 | PMunch | I've got a Casio fx-9860GII that I got for the couple classes at uni that required plotting |
11:01:56 | krux02 | does it have backlighting? |
11:02:00 | PMunch | Nowadays I just use stacklang for my calculating needs :) |
11:02:05 | PMunch | The Casio or the HP? |
11:02:54 | FromGitter | <alehander92> i cant believe people use so much calculators still |
11:02:57 | FromGitter | <alehander92> but it makes sense |
11:03:04 | FromDiscord | <Rika> i dont see why not |
11:03:12 | FromGitter | <alehander92> i am not even sure i learned the M stuff |
11:03:24 | krux02 | no it doesn't make sense, not if you work at a Desktop computer with 1000x more computing power. |
11:03:26 | FromGitter | <alehander92> it was popular in local calculators IIRC |
11:03:28 | PMunch | Fun fact, I never learnt how to use that either |
11:03:43 | krux02 | it does make sense though if you work on paper. |
11:03:46 | FromGitter | <alehander92> it was some kind of memorization |
11:04:03 | PMunch | My first calculator was the 41C, so I've pretty much always been using RPN calculators :P |
11:04:09 | FromDiscord | <Rika> it's easier to manipulate than a virtual calculator from my experience |
11:04:11 | Araq | test test |
11:04:14 | krux02 | I learned how to use my calculator. It came with a relly comprehensive manual. |
11:04:19 | FromGitter | <alehander92> yea, i think the value is in limitedness: sometimes its useful to have something that does exactly X, Y and Z |
11:04:49 | PMunch | krux02, I recently found the manual for my HP-41C and started reading it. That thing is seriously impressive |
11:04:53 | PMunch | Fully programmable |
11:05:04 | PMunch | One thing I carried over to stacklang (although it works completely differently) |
11:05:18 | krux02 | But if you wait minutes for shitty 3D plots to be prepared, and that in front of a desktop computer, it really isn't appealing. |
11:05:35 | PMunch | And having the possibility to program my own little functions in the calculator is great! |
11:05:46 | PMunch | I really need to port it to Android though.. |
11:05:49 | krux02 | Then I prefer to learn the next best symbolic calculator program for desktop and get instant plotting instead with much better picture quality. |
11:06:14 | PMunch | I don't really make graphs and such all that much.. |
11:06:19 | krux02 | What I like about the voyage 200 is how nicely everything is integrated. |
11:06:19 | * | Guest79141 quit (Ping timeout: 260 seconds) |
11:06:38 | krux02 | Modern desktop computers isolate everything for security reasons. |
11:06:46 | krux02 | That it hurst usability. |
11:06:49 | PMunch | Only thing I do is plots, and to create those I just have whatever program I'm writing spit out a dot file :P |
11:06:50 | krux02 | hurts |
11:07:28 | krux02 | well I used to solve mathematical equations. |
11:08:11 | krux02 | some stuff I still do on pater, just to understand what I am actually doing. |
11:08:21 | krux02 | a calculator doesn't replace thinking. |
11:12:26 | * | dadada_ joined #nim |
11:13:18 | FromGitter | <sealmove> guys, https://play.nim-lang.org/#ix=2gl6 |
11:13:54 | FromGitter | <sealmove> I am generating such assignments so I need `x: int64 = -9223372036854775808` to work |
11:14:27 | FromGitter | <sealmove> but Nim sees it as `-(9223372036854775808)` which doesn't work because the name is out of range :( |
11:14:36 | FromGitter | <sealmove> any ideas? |
11:14:59 | FromDiscord | <Rika> big brain move -9223372036854775807 - 1 |
11:15:25 | FromGitter | <sealmove> yeah but I generate them automatically, so need to get rid of special case |
11:16:32 | krux02 | sealmove: I tried generating newLit(low(int64)) and it works without problems. |
11:16:37 | krux02 | no tricks required. |
11:17:02 | FromGitter | <sealmove> but you have to test the number each time and see if it's the lowest possible value |
11:17:23 | krux02 | are you generating text? |
11:17:28 | FromGitter | <sealmove> yes :( |
11:17:31 | krux02 | Why, don't you use a macro? |
11:17:40 | FromGitter | <sealmove> because I am not doing the generating in Nim |
11:17:54 | FromGitter | <sealmove> (believe me, I wish I was) |
11:18:36 | FromGitter | <alehander92> hm, how are you doing it |
11:19:12 | krux02 | sealmove: btw that literal doesn't work in C either |
11:19:19 | PMunch | Huh, that is an unfortunate limitation |
11:19:52 | krux02 | The Nim compiler also had to do the workaround |
11:20:06 | PMunch | I mean you can throw a "when compiles: else: low(int64)" in there.. |
11:20:16 | PMunch | And hope that you never generate anything else bad :P |
11:20:30 | FromGitter | <sealmove> haha, I see... |
11:21:29 | krux02 | sealmove: Just test for for -9223372036854775808 and don't generate it as a literal. |
11:22:35 | krux02 | if x == -9223372036854775808: write("(-9223372036854775807-1)") else: write(x) |
11:22:48 | krux02 | that is how the Nim compiler works around the same limitation in C |
11:23:15 | FromGitter | <sealmove> krux02 thanks a lot |
11:24:07 | krux02 | np |
11:25:00 | PMunch | Hmm, trying to port stacklang to Android will probably just make me wish for my GUI framework again.. |
11:26:34 | krux02 | sealmove: but you are right, nim could emit negative integer literals in the parser. |
11:28:23 | krux02 | Nim parses -1 as (Prefix (Ident "-") (IntLit 1)) |
11:28:34 | krux02 | but Nim has negative integer literals as well |
11:28:54 | krux02 | so -1 could as well be parsed as (IntLit -1) and therefore overcome this limitation. |
11:30:21 | PMunch | Zevv, have you done any more work on Nim on Arduino? |
11:31:27 | FromGitter | <alehander92> guys how far away is IC |
11:33:16 | * | waleee-cl joined #nim |
11:33:44 | * | Zevv quit (Quit: leaving) |
11:33:57 | * | Zevv joined #nim |
11:34:02 | * | Zevv left #nim (#nim) |
11:34:02 | krux02 | alehander92: as far as I know, nobody is working on it. |
11:34:17 | FromGitter | <alehander92> ah, i'd love to see it |
11:34:20 | krux02 | but there is something in the compiler that has bugs. |
11:34:26 | FromGitter | <alehander92> i admit not a top priority |
11:35:04 | FromGitter | <alehander92> you mean current IC has bugs? |
11:38:26 | FromDiscord | <clyybber> Its simply not finished yet |
11:44:52 | * | zacharycarter joined #nim |
11:45:58 | * | Esexe quit (K-Lined) |
11:49:39 | * | zacharycarter quit (Ping timeout: 265 seconds) |
11:54:49 | Araq | where in the spec are these "negative integer literals" |
11:57:20 | * | xet7 quit (Remote host closed the connection) |
11:59:13 | krux02 | Araq, they are not in the spec. But they do exist in the language. |
11:59:32 | krux02 | or maybe they are, didn't read it for quite a while. |
12:00:15 | Araq | they are neither in the spec nor in the language |
12:00:48 | Araq | it's as you say, -10 is unary minus followed by 10 |
12:01:52 | Araq | producing the edge case for low(int64), I considered changing the spec and implementation but then -1 is not the same as - #[ ]# 1 |
12:02:46 | Araq | that might not be so bad but -9223372036854775808 is code obfuscation, instead use low(int64) |
12:04:08 | * | xet7 joined #nim |
12:06:02 | * | supakeen quit (Quit: WeeChat 1.9.1) |
12:06:35 | krux02 | Araq: negative integer literals are in the language, did you ever look what the ``newLit(-1)`` produces? |
12:06:48 | * | supakeen joined #nim |
12:06:55 | krux02 | it is a single literal node with a negative value. |
12:07:57 | * | rockcavera joined #nim |
12:09:23 | Araq | it produces a value. |
12:09:31 | Araq | not a literal. |
12:09:49 | Araq | you simply don't even know the proper terms |
12:09:59 | krux02 | echo newLit(low(int64)).repr |
12:10:05 | krux02 | -9223372036854775808'i64 |
12:10:10 | krux02 | which isn't valid Nim code. |
12:10:49 | krux02 | (Int64Lit -9223372036854775808) if you prefer that representation |
12:10:56 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:11:27 | krux02 | sorry, I just assumed that if the node kind says "Lit" it stands for literal. |
12:12:20 | Araq | it does stand for 'Literal' but it's not a literal on the lexical level |
12:12:44 | Araq | so arguably I don't know the terms either and nkIntLit is misnamed |
12:12:57 | krux02 | great |
12:13:32 | Araq | but I was talking about the lexer and 'repr' doesn't always produce correct Nim code anyway |
12:14:27 | krux02 | The lexer doesn't need to be changed. |
12:14:32 | krux02 | I think |
12:15:39 | krux02 | If the parser finds a - token followed by a literal token, it can join them to a single literal (sorry I continue to use that term) |
12:16:22 | Araq | that's harder to implement though and not parsable with LL(1) |
12:16:31 | FromDiscord | <clyybber> IMO `-` being an operator is a lot 'cleaner' |
12:16:41 | Araq | it's much easier to change the lexer and the spec |
12:17:20 | FromDiscord | <clyybber> What problem are we trying to solve? |
12:17:32 | krux02 | clyybber: Don't worry - will be a valid operator in the future as well. |
12:18:09 | FromDiscord | <clyybber> Oh, is it that -128 is a valid int but -(128) isn't because it only goes to 127? |
12:18:16 | krux02 | clyybber: -9223372036854775808'i64 isn't valid nim code |
12:19:15 | krux02 | well, with the proposed change, -9223372036854775808'i64 would be valid nim code, just -(9223372036854775808'i64) would stay invalid. |
12:19:28 | krux02 | and the later one is what is currently parsed. |
12:19:30 | FromDiscord | <clyybber> Int literal is its own type right? |
12:19:32 | Araq | INCONSISTENT! special case! bugs! |
12:19:52 | FromDiscord | <clyybber> So we could simply lift range restrictions of literals |
12:20:15 | FromDiscord | <clyybber> And 'range check' when its actually 'converted' to an int |
12:20:17 | krux02 | clyybber: well a bit more complicated, every integer literal is a different type. |
12:20:31 | FromDiscord | <clyybber> That way we could also enable int128 literals |
12:20:54 | krux02 | Araq, ctf o.O |
12:20:59 | krux02 | Araq, wtf o.O |
12:21:22 | Araq | krux02, I'm not serious |
12:22:14 | krux02 | And you should be aware this is just a discussion on how -9223372036854775808'i64 could become valid Nim code. Because this is something people have hit several times. |
12:22:24 | krux02 | And yes C has the same limitation. I know. |
12:22:34 | * | Ven`` joined #nim |
12:22:36 | krux02 | But that copying bad design isn't good design. |
12:22:54 | * | dadada_ quit (Ping timeout: 256 seconds) |
12:23:12 | Araq | krux02, completely agree, so what's the good design |
12:23:22 | Araq | I would change the spec and the lexer |
12:24:06 | Araq | then -1 is not the same as -(1) but so what |
12:24:10 | * | clyybber joined #nim |
12:24:19 | krux02 | -1 and -(1) is already not the same |
12:24:21 | FromDiscord | <clyybber> What about my suggestion? |
12:24:27 | krux02 | they produce different ASTs |
12:24:28 | * | dadada joined #nim |
12:24:37 | krux02 | one has a nnkPar in it. |
12:24:51 | * | dadada is now known as Guest53797 |
12:24:58 | FromDiscord | <clyybber> semantically the same, while not syntactically.. |
12:25:50 | Araq | krux02, yeah but many people use Nim without its macro system and so don't care about nkPar(...) |
12:26:02 | FromDiscord | <clyybber> So when you have IntLiteral as a type (we do, right?) that behaves like `static int` you could have a `-` defined on that. |
12:26:27 | Araq | clyybber, by the time you do this it's too late |
12:26:41 | FromDiscord | <clyybber> Why? |
12:26:48 | Araq | and the number was stored inside an int64 somewhere in the compiler |
12:27:04 | clyybber | We could use Int128 no? |
12:27:05 | Araq | and the positive number doesn't fit in an int64 |
12:27:10 | krux02 | clyybber: the integer literal type is used for static bounds checking. |
12:27:14 | Araq | that's true |
12:27:51 | krux02 | is it possible to have overloads on integer literal types, I never tried to do that, never felt like doing it. |
12:27:53 | clyybber | krux02: Exactly. And what I would do is delay static bounds checking until the conversion from IntLiteral to the respective int type |
12:27:59 | clyybber | Thats already done I think |
12:28:19 | Araq | I don't see how you can do it unless you patch PNode to contain an int128 |
12:28:35 | clyybber | Yeah, PNode must be patched |
12:28:50 | Araq | we could really just leave the literals as *strings* though |
12:29:02 | clyybber | Yeah thats an option too |
12:29:04 | Araq | and evaluate them later. somehow |
12:29:51 | krux02 | That would be a really disruptive change though. |
12:30:00 | clyybber | You could make it transparent |
12:31:25 | Araq | parsing them in the lexer is a hack really, nimpretty needs to extract the numbers back from the original source code |
12:31:49 | krux02 | why would you need to parse them in the lexter? |
12:31:54 | Araq | as 1000 loses information over 1_000'i32 |
12:32:20 | clyybber | strings really seem like the most sane option here. |
12:32:42 | krux02 | sorry, but I am not a fan of string literals for integers. |
12:32:50 | clyybber | Not string literals |
12:33:00 | clyybber | Just that we store them as strings in the PNode |
12:33:08 | krux02 | yea, exactly that |
12:33:10 | krux02 | not a fan |
12:33:12 | krux02 | not convinced |
12:33:56 | krux02 | A lot of code is affected. Costs are unclear. |
12:34:09 | krux02 | I have a feeling it is very expensive. |
12:34:09 | Araq | before we need to "convince" you, we need to figure out if it could actually work at all |
12:34:11 | clyybber | nimpretty, arbitrarily big custom int literals, fixing the -128 issue |
12:35:03 | clyybber | The only real hurdle here would be backwards compatibility in macros |
12:35:08 | Araq | in the macro system we already have an 'intVal' accessor, we can do the parsing in there |
12:35:20 | clyybber | Nice |
12:35:33 | krux02 | what about the lexer, what if the lexer takes -1 as a sigle token? |
12:35:39 | clyybber | It doesn't |
12:35:59 | krux02 | that was a change proposal |
12:36:06 | krux02 | so that it does take -1 as a single token |
12:36:14 | Araq | krux02, the lexer change would work and is cheap |
12:36:23 | krux02 | yes |
12:36:26 | clyybber | But that doesn't solve as many "problems" as the string approach would |
12:36:46 | Araq | but with "literals as strings" we could tackle the bignum problem |
12:36:52 | clyybber | exactly |
12:37:04 | Araq | currently you need to write "122332..." for bignum literals |
12:37:16 | Araq | (with the quotes) |
12:38:05 | krux02 | I have a feeling that this string instead of int in the Node is a can of worms. |
12:38:20 | krux02 | it changes too much |
12:38:29 | clyybber | everything is a can of worms until you open the can and discover its a can of gems :p |
12:38:55 | clyybber | Theres always worms in the can if you can't look inside it. |
12:39:00 | clyybber | schroedingers worm |
12:39:02 | Araq | fwiw nkIntLit is used in the compiler 131 times, it's quite a change |
12:39:14 | krux02 | ok I agree that bignum literals are a problem. But they are a different problem. |
12:39:19 | clyybber | No |
12:39:24 | clyybber | They are exactly the same problem |
12:39:41 | clyybber | Or at least they can be solved with the same solution |
12:40:34 | krux02 | I don't think they can be solved with the same solution. |
12:41:03 | clyybber | Can you give actual arguments? I showed how it would solve it. |
12:41:31 | Araq | yeah ok, so what. can you complain about the solution when we have one? how exactly is "let's not even think about it" a healthy attitude towards anything |
12:42:07 | Araq | guess what, I too, can foresee lots of problems. |
12:42:43 | krux02 | ok |
12:44:48 | Araq | how about this: |
12:45:19 | Araq | nkStrLit..nkTripleStrLit # previously in Nim v1 |
12:45:32 | Araq | nkStrLit..nkBigNumLit # Nim v1.x |
12:45:55 | Araq | the lexer turns literals that are "too big" into a tkBigNum token |
12:46:17 | Araq | and the parser turns it into a nkBigNumLit node |
12:46:21 | clyybber | Why not turn all literals into BigNum tokens then? |
12:46:34 | Araq | backwards compatibility :-) |
12:46:52 | Araq | plus we don't have to patch the compiler code everywhere |
12:47:04 | clyybber | Hmm |
12:47:18 | clyybber | I think I'm gonna try it |
12:47:25 | Araq | lol |
12:47:33 | Araq | write an RFC first ;-) |
12:47:55 | clyybber | I want to try doing it transparently |
12:47:59 | FromGitter | <sealmove> Supporting BigNum literals like that would be super awesome addition to the language :) |
12:48:13 | clyybber | I'm gonna hack a prototype up first, then write an RFC, deal? |
12:49:24 | * | zacharycarter joined #nim |
12:50:06 | Araq | clyybber, deal but without an accepted RFC it won't get merged |
12:50:33 | Araq | and beware of AST kind additions, they break bootstrapping, remember? |
12:50:45 | clyybber | yeah |
12:50:54 | Araq | unless you add the enum value at the end of the enum |
12:58:15 | shashlick | Araq: I had an interesting idea, since I already pull in the compiler code into nimterop, is it possible to map compiled procs within the binary to calls made in code that nimterop would compile |
12:59:06 | * | luis_ joined #nim |
12:59:13 | * | Vladar quit (Quit: Leaving) |
12:59:45 | shashlick | So instead of running some operations at compile time and calling the toast binary in the vm using staticExec, everything would be compiled and run at runtime with toast as the front end |
13:03:29 | * | natrys joined #nim |
13:04:33 | * | ldlework left #nim ("WeeChat 2.5") |
13:05:03 | * | opal quit (Ping timeout: 240 seconds) |
13:07:50 | FromGitter | <alehander92> Araq |
13:08:03 | shashlick | That might still require spawning gcc, so maybe toast should use compiler api to start a vm but instead of the vm spawning staticExec calls to toast, calls to nimterop procs would get mapped to stuff that was already compiled into the toast binary |
13:08:47 | FromGitter | <alehander92> should i use p.options or p.config.options |
13:09:13 | FromGitter | <alehander92> and should i include lineDir in conf.options or in both conf.options and globalOptions |
13:09:29 | shashlick | Araq: so the question is - can the vm compiled into toast be made to call code compiled into toast |
13:09:39 | FromGitter | <alehander92> ah ok i cant put it in global, so in this case |
13:09:58 | FromGitter | <alehander92> i say it because there was a bug in `lineDir` |
13:10:09 | clyybber | shashlick: Sounds like you want to use the registerCallback mechanism |
13:10:37 | FromGitter | <alehander92> because it checked p.options but for me it seems it worked only with p.config.options in some cases |
13:10:50 | FromGitter | <alehander92> but not sure if it's just a wrong setup of options |
13:10:51 | Araq | shashlick, yeah what clyybber said |
13:10:58 | * | liblq-dev joined #nim |
13:12:09 | shashlick | clyybber: yes but can I do that without editing Nim compiler code - i.e. the callbacks are still in my codebase |
13:12:25 | clyybber | Yeah |
13:13:19 | shashlick | Ok will be another big change but will avoid living on the edge with Nim compiler and static exec |
13:13:22 | clyybber | shashlick: Look at compiler/vmops.nim |
13:13:46 | shashlick | Maybe the wrapper gen code can eventually be made a part of Nim proper |
13:13:49 | clyybber | Be aware that you must not make mistakes, as its using UncheckedArray for passing the arguments around :p |
13:14:10 | clyybber | So you have to check the arity of your callbacks yourself |
13:14:21 | Araq | new in version 1.2 :P (but it was unchecked before I think) |
13:14:30 | clyybber | Yeah :D |
13:15:04 | shashlick | Ok I'll experiment with that, thanks |
13:15:53 | shashlick | But do you think you'd be open to a tree-sitter dependency to add the ability to natively wrap code within the vm |
13:16:06 | Araq | hardly :-) |
13:16:31 | Araq | but we can always extend the compiler API with yet more callbacks, see DrNim |
13:16:58 | * | tungki joined #nim |
13:17:04 | shashlick | But it requires having to compile in the full compiler into these tools |
13:17:56 | shashlick | Perhaps having core Nim as a shared library that can be pulled in instead |
13:18:22 | shashlick | That nim.exe also loads |
13:18:27 | clyybber | Araq: Do you think we should allow 123456789'i128 ? Or in general 'iX / 'uX suffixes? |
13:19:02 | clyybber | Hmm, I guess we should |
13:19:12 | clyybber | When they are not parsed by us/the compiler |
13:19:22 | Araq | shashlick, don't worry about it |
13:19:27 | Araq | it's under 4MB |
13:19:50 | * | opal joined #nim |
13:20:04 | Araq | DrNim pulls in Z3, that's 30MB. the alternative is to use a DLL which only works on Windows |
13:23:34 | FromDiscord | <Varriount> I wonder why Z3 is 30 MB - surely that's not all machine code |
13:24:31 | shashlick | It's not the size, it's time to compile all this but not something that needs solving immediately |
13:25:16 | shashlick | Nim, nimfind, nimsuggest, nimgrep all build portions of the compiler |
13:25:32 | FromGitter | <alehander92> wow treesitter + treesitter-ruby dependency can mean we can compile ruby :D |
13:25:32 | shashlick | When I removed Nim from nimble, compilation was much faster |
13:25:33 | * | endragor quit (Read error: Connection reset by peer) |
13:25:35 | * | luis_ quit (Quit: luis_) |
13:25:37 | FromGitter | <alehander92> just kidding of course |
13:25:50 | * | andinus quit (Remote host closed the connection) |
13:25:59 | * | luis_ joined #nim |
13:25:59 | FromGitter | <muraray> am trying to return a map a postgres data, any idea? |
13:26:04 | FromGitter | <alehander92> but yeah depending on the compiler sometimes might slow down a compilation |
13:26:34 | FromGitter | <alehander92> @muraray like a dict? which module do you use |
13:26:47 | FromGitter | <muraray> tuples |
13:27:07 | shashlick | Anyway, if there's no interest to add wrapping directly into the vm, no real need to make it part of the repo |
13:27:13 | FromGitter | <alehander92> hm, what are you trying: i dont know that module well |
13:27:42 | Araq | shashlick, I don't understand |
13:27:52 | FromGitter | <muraray> me neither, lol am just start nim today |
13:28:07 | Araq | what we add to the compiler needs to be compiled if you import the compiler as a library |
13:28:24 | FromDiscord | <Rika> Muraray, can you elaborate more! |
13:28:28 | Araq | so do you propose to add feature X so that you can instead run nim.exe? |
13:28:32 | FromDiscord | <Rika> That's supposed to be a question marl |
13:29:21 | shashlick | Araq: if I can make nimterop do all wrapping in the vm, it could eventually be part of the nim compiler proper like in zig instead of a separate tool |
13:30:07 | * | luis_ quit (Client Quit) |
13:30:21 | clyybber | Eh |
13:30:24 | FromGitter | <muraray> am using jester library to render this ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e85e8f001c85847b2cf33b0] |
13:30:36 | * | luis_ joined #nim |
13:30:58 | FromGitter | <muraray> but no resp, seems like i may need to map/cast the data into a json object |
13:31:15 | shashlick | The code today is generating an AST which could directly be consumed instead of requiring a text representation that's recompiled again |
13:31:44 | clyybber | Sounds like you actually want macros.. |
13:31:54 | clyybber | Because those are the way to feed the compiler AST |
13:31:59 | PMunch | Macros! |
13:32:00 | Araq | clyybber, macros don't parse C code though |
13:32:14 | clyybber | But they could call code that does |
13:32:40 | * | evanj quit (Quit: WeeChat 2.7.1) |
13:32:58 | Araq | shashlick, I don't like this at all, I want wrappers that are platform independent... |
13:33:28 | FromDiscord | <Recruit_main707> macros can use emit (if that has something to do with the issue) |
13:33:31 | Araq | we discussed back and forth and in the end I long for wrappers that e.g. use 'ptr UncheckedArray[T]' instead of 'ptr T' |
13:33:47 | Araq | and we will never get there by automatic C code imports |
13:34:23 | Araq | wrappers are not just an annoying implementation detail that you want to avoid like the plague, wrappers can add value |
13:34:31 | shashlick | Araq: since we are "compiling" nim code when running nim.exe, why do the wrappers have to be platform independent - they are becoming dependent right there |
13:35:00 | * | andinus joined #nim |
13:35:10 | shashlick | this is an old debate though |
13:35:13 | clyybber | But why do it this way at all |
13:35:14 | Araq | well previously you ran the C processor before looking at the C code. that's not what c2nim does and it's not what I like |
13:35:25 | clyybber | Why not use c2nim and create wrappers that can be nimified |
13:35:31 | FromGitter | <alehander92> well isn't it possible to have both: quick and easy c imports |
13:35:34 | FromGitter | <alehander92> for prototyping |
13:35:38 | FromGitter | <alehander92> and then quality nim wrappers |
13:35:53 | FromGitter | <alehander92> the same way people can use jsffi more dynamically and later type well javascript libs |
13:35:54 | clyybber | Yeah it is, but don't put it into the compiler I would say |
13:36:07 | clyybber | shashlick: Why can't you call nimterop from macros? |
13:36:08 | shashlick | it doesn't have to be, it works fine the way it is today |
13:36:12 | shashlick | but this is a thought experiment |
13:36:25 | FromGitter | <alehander92> @murarray sorry, what is the problem with `resp` ! |
13:36:29 | shashlick | clyybber: nimterop depends on tree-sitter which is a C library |
13:36:31 | FromGitter | <alehander92> does it lead to an error |
13:36:35 | shashlick | FFI sin't available at compile time |
13:36:43 | FromGitter | <alehander92> @muraray * ^ |
13:36:47 | shashlick | so it is built into a separate tool that gets called via macros at compile time |
13:36:51 | Araq | alehander92: but who wants to actually *use* these quick&dirty wrappers. |
13:36:52 | shashlick | see cimport.nim |
13:37:15 | shashlick | everyone has to build on top of wrappers since the C API is a C API |
13:37:21 | Araq | I might as well use .emit: "foobar(&a, 20)" instead then |
13:37:26 | FromGitter | <alehander92> Araq well its useful in the javascript backend (its a bit different because there you can just do dynamic `.` though) |
13:37:27 | clyybber | shashlick: Ah, so you already do that? Call toast in macros? |
13:37:29 | FromGitter | <muraray> @alehander92 no problem with the resp method (works like a charm for normal), i don't know how to parse the db records into json |
13:37:43 | shashlick | clyybber - you can use toast on the CLI or via macros - i support both ways |
13:37:43 | FromGitter | <alehander92> ah you want to say to generate json! |
13:38:29 | clyybber | shashlick: How can I make nimterop generate a self contained platform independent wrapper file like c2nim does? |
13:38:32 | Araq | alehander92: nothing in nimterop mentions "it's for prototyping" either. |
13:38:47 | shashlick | point i'm making is that anyone who wants to use a C lib has to know how that C lib works |
13:38:53 | shashlick | you cannot avoid that fact |
13:38:57 | FromGitter | <alehander92> Araq yeah sorry i thought we're talking about an automatic c file import on compile time |
13:39:04 | Araq | shashlick, but you can! |
13:39:14 | FromGitter | <alehander92> i mentioned that this seems ok sometimes, but yeah didnt mean nimterop |
13:39:15 | Araq | just give them a high quality wrapper |
13:39:17 | shashlick | anyone who is making a Nim layer on top of it for end users will still need to interface with it |
13:39:25 | clyybber | Yeah, but thats one person |
13:39:29 | clyybber | vs the many users |
13:39:41 | FromGitter | <alehander92> @muraray so you need to just use some json method to generate json |
13:39:44 | Araq | but the Nim layer would be built on top of sand |
13:40:01 | FromGitter | <muraray> @alehander92 Thanks for the prompt response, seems like you guys busy. ⏎ let me figure out myself (so I can also get familiarize with nim docs) |
13:40:05 | FromGitter | <alehander92> e.g. you can import json and do pretty(%(variable)) |
13:40:07 | shashlick | so why is there so much value in a raw C wrapper being checked into your code |
13:40:19 | shashlick | how is it any different from the source C file |
13:40:22 | FromGitter | <muraray> @alehander92 noted |
13:40:37 | * | solitudesf- joined #nim |
13:40:42 | clyybber | shashlick: Its nimified |
13:40:46 | FromGitter | <alehander92> @muraray no, it's always ok to ask: so you do this ,you can also use https://github.com/status-im/nim-json-serialization if for some reason the stdlib json is limited for you |
13:40:57 | * | solitudesf quit (Ping timeout: 250 seconds) |
13:40:58 | FromGitter | <alehander92> but i think stdlib should be good for now |
13:41:10 | shashlick | clyybber: it isn't - that's the point - the layer that nimterop offers is the ability to call C from Nim |
13:41:24 | clyybber | Yes, but manual wrappers will always beat it |
13:41:25 | FromGitter | <alehander92> `%` turns a expression to JsonNode, `pretty` turns json to string |
13:41:34 | shashlick | the ability to make it easy for Nim users - using var X or other stuff has to be hand written (today) |
13:41:42 | shashlick | why do both things have to be one |
13:41:53 | FromGitter | <alehander92> you can also just use `$` which turns it into text on one line |
13:42:09 | FromGitter | <muraray> @alehander92 yeah i just found out, thanks for politeness will take a look at the library as well |
13:42:13 | shashlick | and it doesn't mean that 100% of the automated C wrapper is not useful |
13:42:13 | clyybber | shashlick: You only have to handwrite once. |
13:42:21 | clyybber | I understand the prupose of nimterop |
13:42:27 | clyybber | Automating wrapper generating |
13:42:34 | shashlick | maintenance is not cheap |
13:42:35 | FromGitter | <alehander92> but again, you can have both: in the javascrpt backend one can both import directly a lib and just use it directly and also write down annotations |
13:42:42 | FromGitter | <alehander92> we have a precedent |
13:42:45 | shashlick | libcurl wrapper is missing many things for example |
13:42:55 | FromGitter | <alehander92> i agree that it might lead to less quality wrappers if we are a bit lazy tho |
13:43:03 | * | solitudesf- is now known as solitudesf |
13:43:23 | FromGitter | <alehander92> but quality wrappers require a lot of maintenance: they require good dsl-s |
13:43:31 | FromGitter | <alehander92> this is not something that can be fully automated anyway |
13:43:37 | clyybber | Exactly |
13:43:46 | clyybber | It can be helped by c2nim and nimterop |
13:44:08 | clyybber | But I think the advantage of c2nim is that I can look at the generated code afterwards and tweak it to my liking |
13:44:16 | FromGitter | <alehander92> thats why those are two different things: you can have a quality wrapper helped by a tool X and also a way to just import a 70% quality version when you dont have time to do it |
13:44:27 | shashlick | that's my point |
13:44:38 | Araq | shashlick, "maintenance is not cheap" for your way either, you simply pretend that the install will work on my Linux Power Distro 4K with MuslimC because there is zero chance of testing it for all combinations |
13:45:31 | Araq | in fact, that's exactly what happened to one user of the GTK3 wrapper which also uses your approach |
13:45:44 | shashlick | it is nothing different with a hand-written wrapper |
13:45:56 | shashlick | there's no guarantee that it will work everywhere without actual testing |
13:46:14 | Araq | it's very different with a hand-written wrapper |
13:46:34 | Araq | first of all, it's Nim code that isn't fragile as it exists in source code form |
13:46:53 | Araq | I can read it, I can compare sizeof()s when it comes down to it |
13:47:14 | Araq | I can checkout Nim version 1.0 to see if the Nim code compiles with 1.0 if 1.2 fails |
13:47:33 | clyybber | I can also do fire and forget |
13:47:38 | Araq | with your way I need to checkout nimterop version X, C code version Y and Nim compiler version Z |
13:47:51 | Araq | it's a much more complex setup |
13:47:57 | Araq | and it will bite back. |
13:48:57 | shashlick | it is just not scalable - there's thousands of libraries that are not accessible |
13:49:17 | FromGitter | <alehander92> @muraray no problem you're welcome |
13:49:21 | clyybber | of which thousands are not needed |
13:49:24 | Araq | it's the approach taken by Ruby, Python, Rust, ... |
13:49:40 | Araq | it scales well enough for them |
13:49:52 | clyybber | With time we build our own ecosystem |
13:50:14 | FromGitter | <alehander92> but cant we do now |
13:50:27 | shashlick | we barely have resources to manage the core ecosystem right now |
13:50:28 | FromGitter | <alehander92> c2nim on a randomlibrary and just try to use the output |
13:50:42 | shashlick | having a perfect hand-written solution for everything is not practical today |
13:50:43 | FromGitter | <alehander92> after all if there is tooling that can do it automatically |
13:50:48 | FromGitter | <alehander92> why cant it be just outside the compiler |
13:50:53 | FromGitter | <alehander92> if the core team doesnt want it in |
13:51:10 | shashlick | that's not an issue - it exists today - i am not forcing it to be part of the compiler |
13:51:27 | FromGitter | <alehander92> well, what's the discussion about, sorry :D |
13:51:59 | * | s4mu3lbk quit (Ping timeout: 258 seconds) |
13:52:02 | clyybber | about semi-manual wrapping ala c2nim vs fully automatic via nimterop |
13:52:15 | shashlick | but expecting the community to hand write wrappers because they aren't fragile when nim compiler is moving so fast that no one cares about a build from 2 years ago doesn't add up |
13:52:23 | clyybber | I for one couldn't get nimph to build without nimble |
13:52:27 | clyybber | Because of nimterop |
13:52:46 | FromGitter | <alehander92> i see, so its about if the community should use nimterop? |
13:52:53 | Araq | shashlick, that only means we need to add more stuff to "important packages" |
13:53:06 | Araq | and be better at not breaking wrapper code |
13:53:48 | shashlick | wrapper code isn't a big deal at all in my opinion - there's a million other things the compiler does |
13:54:04 | Araq | and I don't expect them to "hand write wrappers" |
13:54:10 | Araq | I expect them to use c2nim |
13:54:25 | * | s4mu3lbk joined #nim |
13:54:25 | Araq | and yeah c2nim sux, so let's improve it |
13:54:37 | Araq | or throw it away and use "nimterop" instead but |
13:54:47 | shashlick | see that's a different debate - c2nim also generates a basic wrapper which is what nimterop does |
13:54:49 | Araq | nimterop should produce platform independent Nim code |
13:55:02 | clyybber | shashlick: The thing is I can't get nimterop to do what c2nim does |
13:55:02 | Araq | I'm not married to c2nim |
13:55:04 | shashlick | it doesn't generate a high-level wrapper |
13:55:12 | shashlick | that's one part of the debate |
13:55:27 | shashlick | the other one is about platform independent code which i don't get either |
13:55:39 | clyybber | What do you not get? |
13:56:00 | clyybber | Its far easier and simpler to have one wrapper file which works everywhere |
13:56:07 | clyybber | Instead of having nimterop as a dependency |
13:56:12 | shashlick | the C code is already platform independent - why does the nim wrapper need to be platform independent |
13:56:19 | Araq | for exmaple |
13:56:32 | Araq | so that 'nim --cpu:arm --os:linux' actually works |
13:56:40 | shashlick | when the wrapper is generated, just like the C Nim generates - at compile time |
13:56:52 | Araq | the language is built upon the idea that Nim code is portable |
13:57:05 | shashlick | you are on the target platform - what is this big value in seeing a Nim wrapper, versus looking at a C header |
13:57:20 | FromGitter | <alehander92> is this about cross compilation |
13:57:31 | shashlick | again, don't mix the Nimified code versus a raw wrapper to call C |
13:57:39 | clyybber | shashlick: nimterop makes it impossible to tweak small stuff about the wrapper, because its generated at compile time and not before |
13:58:00 | clyybber | Or am I wrong? |
13:58:03 | FromGitter | <alehander92> cant one write `after` code blocks which do it |
13:58:08 | shashlick | clyybber - you have ways to override |
13:58:09 | FromGitter | <alehander92> or something like that |
13:58:24 | shashlick | i'll really suggest you try it and see |
13:59:02 | Araq | https://github.com/nim-lang/Nim/blob/devel/lib/wrappers/sqlite3.nim#L27 |
13:59:18 | Araq | this is stuff that I'm talking about, the Nim code is platform independent |
13:59:46 | Araq | now you complain "but your sqlite wrapper is missing proc X so I cannot use it" |
14:00:13 | Araq | well, here is the thing: your wrappers is even worse as it's a *platform specific* snapshot. |
14:00:58 | * | leorize quit (Remote host closed the connection) |
14:01:34 | shashlick | again, it is the same argument - I want to see this wrapper, check it into source code and maintain it |
14:01:40 | * | andinus quit (Quit: ERC (IRC client for Emacs 26.3)) |
14:01:42 | * | tungki quit (Remote host closed the connection) |
14:01:51 | * | leorize joined #nim |
14:02:03 | clyybber | Yeah it is |
14:02:09 | shashlick | when the wrapper layer i'm talking about is just telling Nim about how to talk to raw C |
14:02:23 | * | andinus joined #nim |
14:02:33 | clyybber | But you do it through so many indirections |
14:02:45 | clyybber | It becomes more complex than a manual wrapper itself |
14:04:44 | clyybber | But I'm sure its a breeze to work with when it works. |
14:06:32 | Araq | but to turn this into a more fruitful discussion |
14:06:47 | clyybber | shashlick: If I could give a suggestion, can you make it possible/easier to use nimterop without nimble? |
14:07:04 | Araq | shashlick, I think most of your code/work/architecture can actually be kept as is, but the defaults need to be changed |
14:07:08 | shashlick | there's nothing in nimterop that depends on nimble |
14:07:23 | shashlick | i have made it such that you can still use it like c2nim |
14:07:29 | shashlick | use the toast command line |
14:07:31 | Araq | it should really default to producing Nim code we can check-in |
14:07:44 | shashlick | Araq: it already does that today |
14:07:51 | Araq | and it should try to remember #ifdef somehow |
14:07:53 | shashlick | but neither of you have tried it |
14:08:12 | Araq | shashlick, I noticed it's not done when I ran 'nimble install nimph' fwiw |
14:08:31 | clyybber | Yeah, I'm not qualified to judge it |
14:08:37 | shashlick | that doesn't mean it is a nimerop issue |
14:08:39 | clyybber | But I know I couldn't build nimph because of it :D |
14:08:56 | shashlick | if it is, i'd appreciate some issue i can work |
14:08:56 | clyybber | shashlick: It was in my case. I'm sure its fixed by now, I'm gonna try again |
14:09:18 | shashlick | nimph uses gitty which uses nimgit2 which uses nimterop |
14:09:32 | shashlick | and nimble has its own share of issues |
14:10:57 | Araq | yeah and in the end stuff breaks and we blame X when we should have blamed Y |
14:11:18 | Araq | yet it was broken |
14:11:21 | shashlick | anyway - there are 3 things that have been raised - platform specific, nimified vs. raw C wrapper and fragility |
14:12:25 | shashlick | for first two, as I have said, there's no value in header.h with ifdefs being recreated exactly into header.nim to check into a repo (not talking about nimified) |
14:13:09 | shashlick | you already have a C header which is (at considerable effort from author) been made as cross platform as they could themselves test |
14:13:41 | shashlick | a C library might not be as cross platform as Nim code, but a Nim wrapper is only as cross platform as the target lib |
14:14:41 | shashlick | as for nimified, there's no escape from hand-written Nim code since C is less featured than Nim, but we aren't talking about that when being able to call a proc from a C library |
14:15:08 | shashlick | glue code can live on top of a raw wrapper - both don't have to be the same exact thing |
14:15:48 | shashlick | fragility - yes there's more going on, but then folks can argue that Nim generating C is fragile versus direct assembly |
14:16:21 | shashlick | there's a place for everything - but you have to fight the right battles, not aspire for the ideal situation and expect end users to figure it out |
14:17:26 | * | kungtotte quit (Read error: Connection reset by peer) |
14:17:44 | shashlick | i built nimterop because i want to make it easy for our users to use C from Nim because it has a huge ecosystem that is so easily accessible |
14:18:19 | shashlick | I cannot hand wrap every library out there, but i can make the process of raw wrapping faster so that these users can build cool things |
14:18:26 | Araq | speaking of which, which one? honest question. most of the stuff I am interested in is in C++ |
14:18:51 | clyybber | /home/clyybber/builds/nim/lib/system/fatal.nim(49, 5) Error: unhandled exception: /tmp/nimph/nimterop/nimterop/cimport.nim(131, 12) `fileExists(toastExe)` toast not compiled: /tmp/nimph/nimterop/nimterop/toast make sure 'nimble build' or 'nimble install' built it [AssertionError] |
14:18:58 | clyybber | Looks like I need nimble :) |
14:19:32 | shashlick | how can you use a nimble package without nimble |
14:19:44 | clyybber | Via --path ing the dependencies |
14:20:02 | shashlick | then hand build toast |
14:20:34 | * | kungtotte joined #nim |
14:21:01 | shashlick | Araq: libarchive, libgit2 are two for example |
14:21:33 | Araq | well ok and sqlite, postgre, etc etc are more. I wrapped plenty of them on my own |
14:21:35 | shashlick | I used the scintilla wrapper |
14:21:36 | clyybber | shashlick: /home/clyybber/builds/nim/compiler/lexer.nim(1316, 25) Error: undeclared identifier: 'mode' |
14:21:44 | shashlick | https://github.com/nimterop/nimterop/wiki/Wrappers is the list of ones known to me |
14:21:44 | clyybber | Ah |
14:21:45 | clyybber | nevermind |
14:21:56 | clyybber | thats cuz I'm working on the lexer right now :p |
14:22:25 | shashlick | please use v0.4.4 of nimterop, not #head |
14:22:45 | shashlick | shouldn't matter but ya |
14:23:17 | shashlick | Araq: you shouldn't compare yourself to regular users |
14:23:19 | FromGitter | <alehander92> https://www.imageupload.net/image/TMdhE |
14:23:25 | FromGitter | <alehander92> ok, so sourcemaps seem almost fine now |
14:23:31 | shashlick | i've been wrapping for 2 years now and still ask you basic questions |
14:23:36 | Araq | but I don't see it as a "huge ecosystem" |
14:23:46 | FromGitter | <alehander92> i couldnt find pretty printers in that kind of debuggers tho |
14:23:51 | FromGitter | <alehander92> like, custom printing of values |
14:24:18 | clyybber | shashlick: /home/clyybber/.cache/nim/nimterop/cPlugins/nimterop_1595835831.nim(1, 24) Error: cannot open file: nimterop/plugin |
14:24:19 | clyybber | [AssertionError] [AssertionError] |
14:24:34 | shashlick | yes because you don't use nimble |
14:24:34 | clyybber | And before that: /home/clyybber/builds/nim/lib/system/fatal.nim(49, 5) Error: unhandled exception: /tmp/nimph/nimterop/nimterop/cimport.nim(166, 12) `ret == 0` |
14:24:42 | clyybber | Thats what I told you |
14:24:48 | clyybber | I can't use nimterop without nimble |
14:24:53 | clyybber | So c2nim wins for me |
14:24:56 | clyybber | its easy and just works |
14:25:18 | shashlick | that's why i pushed for https://github.com/nim-lang/Nim/pull/13584 |
14:25:19 | Araq | machine learning, Could Engine APIs, time handling, UIs, almost no C available code for it |
14:25:42 | clyybber | shashlick: And its merged |
14:25:53 | shashlick | a and i need to use it now |
14:25:55 | clyybber | Can I build it without nimble somehow? |
14:25:59 | clyybber | Ah ok |
14:26:21 | shashlick | basically you call nimterop with nim flags and nimterop has to build a plugin that it loads |
14:26:28 | clyybber | Well, see; I'd argue that nimterop is moving a lot faster than those semi-manual wrappers would |
14:26:48 | shashlick | to do that i run nim, but since i don't know all the flags, i cannot set the paths |
14:27:02 | shashlick | where is nimterop installed |
14:27:12 | clyybber | /tmp/nimph/nimterop |
14:27:18 | shashlick | Araq: I'll get to C++ some day, getting close with the new AST |
14:27:27 | reversem3 | So using javascript to create a blockchain using prototypes, what would be similar to prototypes in nim? |
14:27:39 | shashlick | are you using nimph bootstrap |
14:27:43 | clyybber | shashlick: No |
14:27:46 | clyybber | Requires nimble |
14:27:55 | clyybber | So I'm just doing nim c src/nimph |
14:28:25 | clyybber | With --path:someDep arguments |
14:28:39 | Araq | shashlick, but what if C++ really does require manual tweaking like c2nim always requires |
14:28:43 | shashlick | ok then create a nim.cfg or something with the paths |
14:28:53 | shashlick | + |
14:29:05 | * | chemist69 quit (Ping timeout: 252 seconds) |
14:30:07 | * | chemist69 joined #nim |
14:30:32 | clyybber | Can I not put --path:someFolder in the nim.cfg? |
14:30:46 | Araq | shashlick, I'm sorry but I'm looking at https://github.com/genotrance/nimgit2 |
14:31:01 | Araq | for example https://github.com/genotrance/nimgit2/blob/master/nimgit2.nim#L46 |
14:31:59 | Araq | two points: |
14:32:26 | Araq | 1. this is awesome stuff, really. 'cOverride' looks flexible |
14:32:40 | clyybber | shashlick: Ok, did that now I get: /home/clyybber/builds/nim/lib/system/fatal.nim(49, 5) Error: unhandled exception: /tmp/nimph/nimterop/nimterop/cimport.nim(615, 14) `false` |
14:32:54 | clyybber | And with a really big error coming after it |
14:33:19 | clyybber | With that at the end: Nimterop codegen limitation or error - review 'nim check' output above generated for /home/clyybber/.cache/nim/nimterop/failed/nimterop_2849282564.nim [AssertionError] |
14:33:20 | Araq | 2. there is no nimgit2_produced_code.nim file in the repo |
14:33:42 | Araq | as a backup or as code to "look at but don't touch" |
14:34:13 | Araq | and I'd be so much more relaxed if that code existed |
14:34:41 | Araq | now I have to leave, see you later and sorry for the ranting |
14:35:44 | clyybber | shashlick: Oh, sorry, I also still get the errors from before |
14:36:02 | clyybber | So putting the path="someDep" into nim.cfg didn't seem to have fixed it |
14:39:47 | * | hax-scramper quit (Ping timeout: 265 seconds) |
14:41:26 | shashlick | Araq: C++ might very well be impossible but I'm willing to see how far i can push this |
14:41:31 | shashlick | i have nothing better to do 🙂 |
14:41:53 | * | hax-scramper joined #nim |
14:42:57 | shashlick | Araq: module documentation is generated and posted (linked from readme) https://genotrance.github.io/nimgit2/nimgit2.html |
14:43:52 | clyybber | shashlick: If you want to reproduce: https://hastebin.com/tadepahuwe.php |
14:44:32 | PMunch | I'm going to have another look at macroutils. Streaming it in a little while if anyone is interested over at: https://www.twitch.tv/pmunche |
14:44:32 | clyybber | That last command can be replaced with nim c src/nimph if you put those paths in the nim.cfg as you suggested |
14:44:37 | clyybber | But it doesn't fix the issue |
14:50:11 | nekits | Pmunch, I'll watch |
14:50:22 | shashlick | clyybber have a meeting in 10, will come back and debug this without nimble |
14:50:54 | clyybber | ok |
14:51:02 | clyybber | thanks for looking into it |
14:51:34 | * | hax-scramper quit (Read error: Connection reset by peer) |
14:51:40 | shashlick | thanks for trying - yours is obviously not a supported use case (no nimble) but happy to enable things |
14:51:53 | * | hax-scramper joined #nim |
14:53:30 | FromGitter | <alehander92> PMunch love it |
14:53:34 | FromGitter | <alehander92> i will watch a bit |
14:55:33 | krux02 | PMunch, I am watching your stream. |
14:55:42 | krux02 | is this like ast pattern matching? |
14:56:48 | krux02 | but how does it handle the unexpected nodes, like stmtList with just a single element |
14:56:59 | krux02 | (not visible in the ast) |
14:59:07 | krux02 | ok |
14:59:11 | krux02 | understood |
15:02:02 | FromGitter | <alehander92> it is like a quot+pattern matching, very nice |
15:02:25 | * | luis_ quit (Remote host closed the connection) |
15:02:51 | * | hax-scramper quit (Ping timeout: 250 seconds) |
15:02:53 | FromGitter | <alehander92> it is because you provide a pattern and extract from it |
15:03:01 | FromGitter | <alehander92> even if it is in the form of source code |
15:03:14 | FromGitter | <alehander92> maybe i am wrong of course, i forgot the lisp equivalent :D |
15:03:18 | * | hax-scramper joined #nim |
15:03:23 | krux02 | I would expect to get the RecList |
15:03:55 | krux02 | `fields* |
15:04:19 | krux02 | ok |
15:04:20 | krux02 | yes |
15:04:36 | krux02 | I just never use seq[NimNode] I always put them in a NimNode. |
15:05:13 | krux02 | ok that was a lie |
15:06:20 | krux02 | you can always iterate over a NimNode with children |
15:06:58 | krux02 | kind of |
15:08:03 | krux02 | What is ProcDef (with capital case)? |
15:08:36 | krux02 | so it is a top level proc for every node kind? |
15:09:15 | krux02 | not sure about that |
15:09:16 | FromGitter | <alehander92> hm, nice |
15:09:31 | FromGitter | <alehander92> well you can somehow import it conditionally |
15:10:50 | * | endragor joined #nim |
15:10:59 | krux02 | not a fan of "make it appear like a type" when it isn't. |
15:12:15 | krux02 | well newTree is verbose, that is true |
15:12:45 | FromGitter | <alehander92> it can be a `t(call(ident()))` |
15:12:46 | krux02 | instead of newIdentNode you can just call ident"name" |
15:12:53 | FromGitter | <alehander92> where commands are defined just in `t` context |
15:13:21 | FromGitter | <alehander92> i think once i wanted to do something like that in jsgen rewrite and krux02 actually proposed at least a `t.name` |
15:13:43 | krux02 | newCall(ident"testCmd", newLit(100)) |
15:14:21 | FromGitter | <alehander92> i think `new` is still a bit repetitious |
15:15:05 | FromGitter | <alehander92> i dont want to repeat myself, but that's basically the idea behind the karax dsl(which i just copied for breeze, but it can be still improved) |
15:15:51 | FromGitter | <alehander92> buildHtml: short names => t/buildMacro: short names (but its very subjective sorry stopping with that offtopic) |
15:19:03 | * | leorize quit (Ping timeout: 240 seconds) |
15:19:38 | * | leorize joined #nim |
15:21:04 | FromGitter | <alehander92> ahh |
15:21:13 | FromGitter | <alehander92> matching into collections, hard one |
15:21:28 | FromGitter | <alehander92> doing it on base of types sounds smart |
15:21:38 | FromGitter | <alehander92> but the downside is if one looks at the extract only |
15:21:57 | FromGitter | <alehander92> i mean doing it based on the types of the extracted variables |
15:22:19 | FromGitter | <alehander92> but if one looks at the extraction he would need to know those types now to know what is it actually doing |
15:23:06 | FromGitter | <alehander92> yeah i get it |
15:23:44 | * | natrys quit (Ping timeout: 256 seconds) |
15:24:51 | * | kenran quit (Ping timeout: 260 seconds) |
15:25:22 | * | revere quit (Ping timeout: 256 seconds) |
15:25:41 | * | endragor quit (Remote host closed the connection) |
15:26:35 | * | revere joined #nim |
15:27:54 | FromGitter | <alehander92> i used `$` as a binary operator |
15:27:59 | FromGitter | <alehander92> man thats strange |
15:28:12 | * | Zevv joined #nim |
15:28:14 | FromGitter | <alehander92> yes but in the compiler its overriden |
15:28:23 | FromGitter | <alehander92> you can write c.config$n.info |
15:28:42 | Zevv | Araq: are you making use of my z3 nimble, or did you just copy the essentials? |
15:30:23 | Zevv | I got people with issues and pull requests, but not sure if and how to proceed with all that, especially if it is now somehow being used for drnim and all |
15:35:14 | * | thomasross joined #nim |
15:36:49 | * | solitudesf quit (Remote host closed the connection) |
15:37:53 | * | solitudesf joined #nim |
15:44:11 | clyybber | It's not using the high level wrapper stuff |
15:44:48 | * | clyybber quit (Quit: WeeChat 2.8) |
15:49:20 | * | inv2004 joined #nim |
15:53:05 | Araq | Zevv, I have your package as a depencency |
15:53:13 | Araq | but I only use z3_api.nim |
15:53:24 | Araq | I used the high level wrapper for tinkering, it's awesome |
15:53:35 | Araq | but in drnim I don't need it |
15:54:23 | * | lritter joined #nim |
15:57:14 | FromGitter | <alehander92> ugh sorry pushed by mistake a feature branch to upstream nim, deleted it now |
15:58:21 | Araq | yay... :-) |
15:59:33 | FromGitter | <alehander92> <3 |
16:01:43 | Zevv | Araq: ok, I'll see what I will do with it then. I'm thinking about giving the package away as I currently don't have time nor motivation to work on it, but then I'd have to find a good new home for it. |
16:02:07 | Araq | I could take it over |
16:02:25 | Araq | but I won't do much with it, for me it's complete and stable |
16:05:37 | Araq | actually |
16:05:47 | Araq | I should check out a specific commit |
16:17:54 | * | disruptek quit (Ping timeout: 240 seconds) |
16:18:15 | * | disbot quit (Ping timeout: 250 seconds) |
16:25:25 | FromGitter | <yglukhov> Hey @Clyybber, saw your ping, but lost the context. What's up? |
16:25:41 | * | NimBot joined #nim |
16:27:24 | * | abm quit (Quit: Leaving) |
16:30:52 | shashlick | Araq: were you able to see https://genotrance.github.io/nimgit2/nimgit2.html |
16:31:52 | * | disbot joined #nim |
16:32:23 | * | disruptek joined #nim |
16:37:11 | * | inv2004 quit (Ping timeout: 260 seconds) |
16:37:54 | * | inv2004 joined #nim |
16:39:41 | * | rnrwashere joined #nim |
16:49:28 | * | Trustable joined #nim |
16:52:05 | * | inv2004 quit (Quit: Leaving) |
17:00:38 | Zevv | Araq: please do that. Ill put it for offer on the forum I guess |
17:00:59 | Zevv | was more of a toy for me then a serious project, and it deserves people who actually understand that stuff |
17:06:57 | FromGitter | <alehander92> Zevv i just look at it : it seems a great dsl the symbolic stuff |
17:07:21 | FromGitter | <alehander92> Araq, how should i lex "lazily" |
17:07:40 | FromGitter | <alehander92> i read your comment and lexer, and i guess i can just write an iterator |
17:08:06 | FromGitter | <alehander92> which returns a "token" (as my code consumes tokens only in one place) |
17:22:19 | * | kungtotte quit (Ping timeout: 256 seconds) |
17:25:58 | * | Ven`` quit (Quit: Textual IRC Client: www.textualapp.com) |
17:34:54 | * | defection joined #nim |
17:41:01 | * | Guest53797 quit (Ping timeout: 256 seconds) |
17:48:41 | * | Vladar joined #nim |
17:50:21 | FromGitter | <alehander92> Araq i benchmarked |
17:50:26 | FromGitter | <alehander92> http://ix.io/2gnF! |
17:50:28 | FromGitter | <alehander92> http://ix.io/2gnF * |
17:50:59 | FromGitter | <alehander92> seems ok , but if you want me to profile it more, tell |
18:12:27 | * | rockcavera quit (Ping timeout: 265 seconds) |
18:12:32 | * | endragor joined #nim |
18:14:02 | * | endragor quit (Remote host closed the connection) |
18:14:12 | * | rockcavera joined #nim |
18:14:12 | * | rockcavera quit (Changing host) |
18:14:12 | * | rockcavera joined #nim |
18:20:46 | * | defection quit (Quit: defection) |
18:32:46 | * | kenran joined #nim |
18:34:39 | FromDiscord | <clyybber> yglukhov: Hey, kayabaNerve discovered a bug and it seems similar to one you already fixed (related to closure iterators I think) |
18:35:06 | FromGitter | <Clyybber> @yglukhov It was this one: https://github.com/nim-lang/Nim/issues/13815 |
18:36:00 | * | natrys joined #nim |
18:36:44 | FromGitter | <Clyybber> This was the one you fixed: https://github.com/nim-lang/Nim/issues/8243 which seems kind of similar, at least from the stacktrace |
18:42:30 | FromGitter | <yglukhov> Ah ok, I'll have a look. |
18:50:36 | * | sleepyqt joined #nim |
18:54:15 | * | sleepyqt_ quit (Ping timeout: 250 seconds) |
19:13:22 | * | PMunch quit (Quit: leaving) |
19:14:34 | * | kenran quit (Ping timeout: 240 seconds) |
19:17:06 | FromDiscord | <Recruit_main707> oh COME ON, so close! |
19:17:06 | FromDiscord | <Recruit_main707> https://cdn.discordapp.com/attachments/371759389889003532/695351117889929216/unknown.png |
19:17:30 | FromDiscord | <Recruit_main707> (wikipedia stats) D vs Nim |
19:22:33 | FromGitter | <zetashift> D is a great language tho, I don't think the vs stat should be emphasized |
19:23:14 | * | stefantalpalaru_ quit (Quit: ZNC 1.7.5 - https://znc.in) |
19:23:17 | FromDiscord | <Recruit_main707> numbers are numbers :p |
19:23:30 | * | stefantalpalaru joined #nim |
19:23:36 | * | stefantalpalaru quit (Changing host) |
19:23:36 | * | stefantalpalaru joined #nim |
19:28:21 | * | Asgaroth joined #nim |
19:33:53 | * | solitudesf quit (Quit: Leaving) |
19:34:26 | * | solitudesf joined #nim |
19:34:59 | * | Asgaroth quit (Ping timeout: 260 seconds) |
19:35:20 | * | rnrwashere quit (Remote host closed the connection) |
19:35:53 | * | rnrwashere joined #nim |
19:37:11 | * | sagax quit (Read error: Connection reset by peer) |
19:40:26 | * | rnrwashere quit (Ping timeout: 256 seconds) |
19:44:21 | * | sagax joined #nim |
19:48:52 | * | lritter quit (Ping timeout: 256 seconds) |
19:53:34 | * | lritter joined #nim |
20:06:02 | * | lritter quit (Ping timeout: 265 seconds) |
20:08:53 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
20:11:00 | * | pbb joined #nim |
20:12:04 | * | lritter joined #nim |
20:17:12 | * | narimiran quit (Ping timeout: 256 seconds) |
20:20:13 | * | andinus quit (Quit: ERC (IRC client for Emacs 26.3)) |
20:26:46 | * | tefter joined #nim |
20:36:05 | * | moerm joined #nim |
20:55:57 | krux02 | I tried to create a new Nim issue |
20:56:09 | krux02 | github has server issues right now |
20:56:22 | krux02 | so here is the code that doesn't work: http://ix.io/2gpv |
20:56:40 | krux02 | it doesn't work on the c++ backend |
20:56:49 | krux02 | it generates invalid Nim code. |
20:59:19 | dom96 | Recruit_main707: looking at daily's huh, nice |
20:59:53 | FromDiscord | <Recruit_main707> Monthly doesn’t work with March yet |
21:00:10 | dom96 | Nice to see my method of popularity comparisons is catching on :) |
21:00:56 | dom96 | oh, github is down |
21:04:40 | oz | seems fine here. |
21:06:02 | Yardanico | oz: https://www.githubstatus.com/ |
21:06:11 | Yardanico | it's not fine :P |
21:06:32 | * | sleepyqt quit (Read error: Connection reset by peer) |
21:07:22 | * | sleepyqt joined #nim |
21:10:21 | FromDiscord | <Kitty> is there a way to send/stream large multi GB files with asynchttpserver without loading the entire file into RAM at once? |
21:10:54 | moerm | I'm amused by the github problems, or more precisely by the fact that it won't lead to developers becoming less cloud-dependent |
21:19:31 | dom96 | Kitty: yes, you should be able to read the file using asyncfile, read 1024 bytes, send them, read 1024 more, send, and so on |
21:20:13 | dom96 | IIRC you just call sendHeaders and then req.client.send |
21:21:50 | FromDiscord | <Kitty> ah, so essentially i need my own streaming version of req.respond, thanks |
21:23:57 | oz | ah well, I just got lucky when making API requests. :p |
21:24:39 | * | solitudesf quit (Ping timeout: 260 seconds) |
21:41:30 | * | natrys quit (Quit: natrys) |
21:43:46 | * | liblq-dev quit (Quit: WeeChat 2.7.1) |
21:43:54 | * | kungtotte joined #nim |
21:48:00 | * | couven92 quit (Read error: Connection reset by peer) |
21:48:26 | * | couven92 joined #nim |
21:50:36 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
21:52:09 | * | pbb joined #nim |
22:06:09 | moerm | Not a lot of action due to github problems? |
22:06:11 | * | oculux quit (Ping timeout: 260 seconds) |
22:06:23 | * | leorize quit (Ping timeout: 240 seconds) |
22:06:26 | * | oculux joined #nim |
22:07:25 | * | leorize joined #nim |
22:08:20 | * | couven92 quit (Read error: Connection reset by peer) |
22:08:46 | * | couven92 joined #nim |
22:08:47 | moerm | - afk - |
22:13:39 | * | kungtotte quit (Ping timeout: 260 seconds) |
22:18:50 | * | rnrwashere joined #nim |
22:19:47 | * | kungtotte joined #nim |
22:21:19 | * | Vladar quit (Quit: Leaving) |
22:29:55 | * | rnrwashere quit (Remote host closed the connection) |
22:47:43 | * | opal quit (Ping timeout: 240 seconds) |
22:49:07 | * | opal joined #nim |
22:56:29 | * | s4mu3lbk quit (Ping timeout: 250 seconds) |
22:57:27 | FromDiscord | <flywind> When I use `jester` to send stream response, I had some problems.I think maybe owe to asynchttpserver send |
22:57:27 | FromDiscord | <flywind> duplicated `content-length` headers? |
22:58:56 | FromDiscord | <flywind> https://github.com/dom96/jester/issues/241 |
23:08:49 | * | s4mu3lbk joined #nim |
23:09:21 | moerm | Have a good time, all - cu |
23:09:27 | * | moerm quit (Quit: Leaving) |
23:12:34 | * | tane_ quit (Remote host closed the connection) |
23:47:32 | * | krux02_ joined #nim |
23:47:59 | * | Trustable quit (Remote host closed the connection) |
23:49:45 | * | krux02 quit (Ping timeout: 240 seconds) |
23:58:48 | * | sleepyqt quit (Ping timeout: 258 seconds) |