00:00:23 | shashlick | We need to go thru and fix as many bugs as possible and freeze on new features for nimble |
00:00:25 | FromGitter | <zetashift> tomorrow! |
00:01:09 | shashlick | And still keep enough time to fix any bugs related to the bug fixes |
00:02:15 | shashlick | A scrub of the issue list is warranted, and a freeze date after which no more new features |
00:11:43 | * | actuallybatman joined #nim |
00:15:03 | * | exelotl quit (Ping timeout: 264 seconds) |
00:24:57 | disruptek | ccache works well for me with nim. |
00:49:16 | disruptek | fyi, there's a small bug with httpclient: a Host: header is included, potentially duplicating any existing Host: specified by the user. because headers are additive, you can end up sending "Host: some.host.one,some.host.one" or "Host: some.host.one,some.host.two" depending upon the target url. this breaks, for example, request signing for some web APIs. i will submit a proper bug report and/or patch. |
01:15:50 | * | ng0_ joined #nim |
01:18:16 | * | ng0 quit (Ping timeout: 260 seconds) |
01:23:50 | * | laaron quit (Quit: ZNC 1.7.1 - https://znc.in) |
01:25:30 | * | laaron joined #nim |
01:27:51 | * | poopBot quit (Remote host closed the connection) |
01:57:59 | * | laaron quit (Remote host closed the connection) |
01:59:00 | * | laaron joined #nim |
02:18:42 | * | nc-x[m] quit (Remote host closed the connection) |
02:18:45 | * | Miguelngel[m] quit (Remote host closed the connection) |
02:18:45 | * | spymasterd[m] quit (Read error: Connection reset by peer) |
02:18:47 | * | zielmicha[m]1 quit (Read error: Connection reset by peer) |
02:18:48 | * | isaac[m]1 quit (Read error: Connection reset by peer) |
02:18:49 | * | lqdev[m] quit (Read error: Connection reset by peer) |
02:18:51 | * | TheManiac[m] quit (Read error: Connection reset by peer) |
02:18:52 | * | muxueqz[m] quit (Write error: Connection reset by peer) |
02:18:53 | * | LEdoian[m] quit (Write error: Connection reset by peer) |
02:18:54 | * | macsek1911[m] quit (Write error: Connection reset by peer) |
02:18:57 | * | pigmej[m] quit (Read error: Connection reset by peer) |
02:18:58 | * | planetis[m] quit (Remote host closed the connection) |
02:19:00 | * | GitterIntegratio quit (Read error: Connection reset by peer) |
02:19:01 | * | Connor[m] quit (Read error: Connection reset by peer) |
02:19:08 | * | gh0st[m] quit (Remote host closed the connection) |
02:19:09 | * | BitPuffin quit (Read error: Connection reset by peer) |
02:19:09 | * | encryptize[m] quit (Read error: Connection reset by peer) |
02:19:11 | * | narimiran[m] quit (Remote host closed the connection) |
02:19:13 | * | xomachine[m] quit (Remote host closed the connection) |
02:19:13 | * | leorize[m] quit (Read error: Connection reset by peer) |
02:19:14 | * | meff[m] quit (Remote host closed the connection) |
02:19:15 | * | skrylar[m] quit (Remote host closed the connection) |
02:19:15 | * | nergal[m] quit (Read error: Connection reset by peer) |
02:19:16 | * | yglukhov[m] quit (Write error: Connection reset by peer) |
02:19:16 | * | k0mpjut0r quit (Write error: Connection reset by peer) |
02:19:16 | * | jaens[m] quit (Write error: Connection reset by peer) |
02:19:16 | * | Demos[m] quit (Write error: Connection reset by peer) |
02:26:36 | * | Connor[m] joined #nim |
02:40:44 | * | laaron quit (Remote host closed the connection) |
02:42:30 | * | laaron joined #nim |
02:48:22 | * | BitPuffin joined #nim |
02:48:22 | * | Demos[m] joined #nim |
02:48:22 | * | LEdoian[m] joined #nim |
02:48:23 | * | k0mpjut0r joined #nim |
02:48:23 | * | planetis[m] joined #nim |
02:48:23 | * | GitterIntegratio joined #nim |
02:48:23 | * | isaac[m]1 joined #nim |
02:48:23 | * | leorize[m] joined #nim |
02:48:23 | * | jaens[m] joined #nim |
02:48:23 | * | gh0st[m] joined #nim |
02:48:23 | * | nergal[m] joined #nim |
02:48:24 | * | pigmej[m] joined #nim |
02:48:29 | * | narimiran[m] joined #nim |
02:48:29 | * | macsek1911[m] joined #nim |
02:48:29 | * | spymasterd[m] joined #nim |
02:48:29 | * | TheManiac[m] joined #nim |
02:48:29 | * | encryptize[m] joined #nim |
02:48:29 | * | Miguelngel[m] joined #nim |
02:48:30 | * | skrylar[m] joined #nim |
02:48:30 | * | xomachine[m] joined #nim |
02:48:30 | * | yglukhov[m] joined #nim |
02:48:30 | * | meff[m] joined #nim |
02:48:30 | * | zielmicha[m]1 joined #nim |
02:48:30 | * | muxueqz[m] joined #nim |
02:48:31 | * | lqdev[m] joined #nim |
02:48:31 | * | nc-x[m] joined #nim |
02:48:50 | * | laaron quit (Remote host closed the connection) |
02:50:53 | * | xomachine[m] quit (*.net *.split) |
02:50:53 | * | yglukhov[m] quit (*.net *.split) |
02:50:53 | * | spymasterd[m] quit (*.net *.split) |
02:50:53 | * | TheManiac[m] quit (*.net *.split) |
02:50:53 | * | isaac[m]1 quit (*.net *.split) |
02:50:53 | * | k0mpjut0r quit (*.net *.split) |
02:50:53 | * | Demos[m] quit (*.net *.split) |
02:50:54 | * | LyndsySimon quit (*.net *.split) |
02:50:54 | * | surma quit (*.net *.split) |
02:51:07 | * | xomachine[m] joined #nim |
02:51:08 | * | Demos[m] joined #nim |
02:51:08 | * | spymasterd[m] joined #nim |
02:51:14 | * | rockcavera quit (Remote host closed the connection) |
02:51:34 | * | isaac[m]1 joined #nim |
02:51:34 | * | TheManiac[m] joined #nim |
02:51:34 | * | yglukhov[m] joined #nim |
02:54:43 | * | laaron joined #nim |
02:55:08 | * | rockcavera joined #nim |
02:56:20 | * | k0mpjut0r joined #nim |
02:56:20 | * | LyndsySimon joined #nim |
02:56:20 | * | surma joined #nim |
02:56:24 | * | k0mpjut0r quit (Changing host) |
02:56:24 | * | k0mpjut0r joined #nim |
03:02:42 | * | laaron quit (Quit: ZNC 1.7.1 - https://znc.in) |
03:18:58 | * | k0mpjut0r quit (*.net *.split) |
03:18:58 | * | LyndsySimon quit (*.net *.split) |
03:18:58 | * | surma quit (*.net *.split) |
03:19:16 | * | k0mpjut0r joined #nim |
03:22:59 | * | chemist69 quit (Ping timeout: 246 seconds) |
03:24:13 | * | laaron joined #nim |
03:24:21 | * | LyndsySimon joined #nim |
03:24:21 | * | surma joined #nim |
03:25:12 | * | chemist69 joined #nim |
03:26:58 | * | laaron quit (Client Quit) |
03:41:05 | * | laaron joined #nim |
03:42:02 | FromGitter | <gogolxdong> importc and importcpp is really confusing by name, most people are once confused :) |
03:43:20 | nc-x[m] | gogolxdong: there was an accepted rfc for renaming them to import and importpattern, and it was scheduled for 1.0 but it got forgotten after being moved to nim-lang/RFC repo |
03:44:21 | FromGitter | <gogolxdong> yeah, this could make easier life. |
03:44:42 | FromGitter | <gogolxdong> Hope it can be merged for v1.0. |
03:51:42 | * | fjellfras joined #nim |
04:00:11 | * | rockcavera quit (Remote host closed the connection) |
04:11:32 | skrylar[m] | i think i've almost finally understood this cassowary stuff |
04:12:53 | FromGitter | <gogolxdong> Great, can you apply it to nim GUI library? |
04:34:10 | * | theelous3 joined #nim |
04:45:38 | * | nsf joined #nim |
05:00:09 | * | narimiran joined #nim |
05:18:09 | * | a_chou joined #nim |
05:32:34 | * | a_chou quit (Quit: a_chou) |
05:41:20 | * | krux02 joined #nim |
05:50:05 | * | owl_000 joined #nim |
06:10:19 | * | dddddd quit (Remote host closed the connection) |
06:12:25 | * | PMunch joined #nim |
06:12:27 | * | fjellfras quit (Remote host closed the connection) |
06:12:55 | * | fjellfras joined #nim |
06:12:57 | * | fjellfras quit (Max SendQ exceeded) |
06:19:51 | FromGitter | <zacharycarter> just curious - does anyone know how one would approach debugging and fixing: https://github.com/nim-lang/Nim/issues/11974 ? |
06:28:47 | Araq | I do |
06:29:49 | * | solitudesf joined #nim |
06:30:23 | * | kungtotte quit (Ping timeout: 276 seconds) |
06:31:08 | PMunch | Hmm, how do I build this? "could not load: libnimhcr.so" |
06:32:03 | PMunch | Araq, just checked and wxNim seem to work fine on the latest devel as well :) |
06:33:58 | Araq | add it to important_packages.nim |
06:36:53 | Araq | zacharycarter: GC_disable should be a workaround, can be enabled after Nim got the stack pointer right? |
06:43:51 | PMunch | Araq was that for me? |
06:44:36 | Araq | yes+ |
06:45:39 | PMunch | It requires wxWidgets to be installed on the machine to build though.. |
06:46:52 | PMunch | Which I guess the CI doesn't have |
06:47:40 | * | alexander92 joined #nim |
06:49:11 | PMunch | Well it doesn't have to be installed, pulling the sources should also work |
06:50:26 | Araq | oh my... |
06:50:50 | * | MrAxilus joined #nim |
06:50:53 | Araq | what's wrong with "write/generate Nim code and create a Nimble package out of it"? |
06:51:29 | PMunch | You're the one who created wxNim... |
06:51:41 | PMunch | I just sorta took it over after I created the genui macro :P |
06:51:59 | * | ng0_ quit (Quit: Alexa, when is the end of world?) |
06:52:02 | Araq | my stuff shipped with the required C++ files, I'm sure :P |
06:52:41 | PMunch | Hmm, all the headers are actually still in the repo |
06:52:54 | PMunch | Not the .cpp files, but the .h files |
06:53:07 | PMunch | But I think they are only used to generate the .nim files with the script |
06:54:33 | PMunch | But no, in your examples/nim.cfg it imports ../../wkWidgets-3.0.2/<file> |
06:55:26 | PMunch | So you were just supposed to pull wxWidgets and wxNim and have them next to each other |
06:56:01 | Araq | don't do what I do, do what I say |
06:56:05 | MrAxilus | has anyone looked at the language Zig? I just came across it and wanted to know how it compared to nim from a heavy nim users perspective. |
06:56:08 | PMunch | I changed it (with help from couven92) to grab the system install, or accept a path as an argument |
06:56:09 | PMunch | Haha |
06:57:07 | Araq | MrAxilus, dunno much about it, only watched a talk about it and was bored to death, yeah, you care about OOM, good for you. the industry doesn't. |
06:58:09 | PMunch | MrAxilus, well were to start, they are two fairly different languages |
06:58:26 | Araq | it felt like the usual "C is great/bad" schizo and "I never heard about Ada" attitutude |
06:59:04 | owl_000 | there is another lang i heard that is vimlang |
06:59:16 | owl_000 | vlang sorry |
06:59:23 | PMunch | owl_000, haha vimlang :P |
06:59:36 | PMunch | I mean there is vimscript, but I wouldn't use it for programming anything |
07:00:00 | * | gmpreussner quit (Quit: kthxbye) |
07:00:11 | owl_000 | lol, v lang |
07:00:16 | PMunch | MrAxilus, Zig and Nim have two very different focuses it seems (just reading through the Feature highlights on their page) |
07:00:36 | PMunch | Zig seems to go for simplicity, Nim chooses expresiveness |
07:00:43 | narimiran | "lol, v lang" -- my reaction too :P |
07:00:49 | * | shashlick quit (Remote host closed the connection) |
07:00:55 | Araq | yeah, just use Ada ffs. it doesn't have these bad allocations, it doesn't "hide stuff", it can actually be used and was used to develop software running in aircrafts, it's memory-safe |
07:01:32 | * | shashlick joined #nim |
07:01:39 | * | laaron quit (Remote host closed the connection) |
07:02:45 | PMunch | Zig goes for the ever vague "safety", in Nim you would use its expressiveness to make safe patterns but it can also do unsafe things |
07:02:50 | MrAxilus | thanks guys |
07:03:29 | PMunch | Zig has manual memory allocation, Nim has a GC but allows you to tune it or turn it off should you need to run on e.g. a MicroController |
07:04:11 | Araq | and with nim devel you can write your own GC |
07:04:36 | * | ng0 joined #nim |
07:04:46 | * | gmpreussner joined #nim |
07:04:59 | PMunch | Both have compile-time code execution, but Nim takes it a bit further and gives you macros to play with (again harking back to expressiveness stuff) |
07:05:09 | owl_000 | lot of **safety** around rust-lang, i tried to learn rust before nim lang. from python to rust, and then i left it. my head safety first |
07:05:21 | * | laaron joined #nim |
07:05:46 | * | absolutejam1 joined #nim |
07:05:56 | PMunch | Zig does some dance with C, didn't get the entire gist of it from scrolling through the page. Nim just compiles to C (or to JS for that matter) and passes it on to a C compiler. |
07:06:12 | PMunch | Oh yeah, Zig targets only native, Nim targets both native and JS. |
07:07:32 | * | laaron quit (Remote host closed the connection) |
07:07:38 | PMunch | Zig has some built in concurrency things, Nim supports threads from the compiler side of things, but all sorts of things are implemented in modules (including in the standard library). |
07:08:04 | PMunch | Both come with a build system, I guess people have gotten tired of those |
07:08:31 | PMunch | Tired of what happens when a language doesn't have one I mean |
07:10:06 | PMunch | Both integrate well with C, Zig seems to be ever so slightly more transparent about it, with it's @cImport thing directly making them available while Nim needs a mapping (that can be generated with c2nim). |
07:10:23 | * | laaron joined #nim |
07:11:05 | PMunch | So yeah, that about sums up the differences I could glance from a quick scroll through ziglang.org's homepage and what I know about Nim MrAxilus |
07:11:33 | Araq | and @cImport is a breaking-your-neck feature |
07:11:37 | Araq | see C++ |
07:11:41 | PMunch | How so? |
07:12:01 | Araq | C is wonderfully underspecified, T* can mean too many things, you will never get it typesafe |
07:12:07 | PMunch | owl_000, yeah I've heard good things about Rust, but also too much about how clunky it feels to use and how hard it can be to learn. |
07:13:06 | Araq | see C++, it too could #inlcude C files and it too has eternal pointer problems |
07:13:06 | PMunch | Oh right, another thing Zig didn't really say anything about it's type system (apart from using option types instead of nil values and treating errors like non-discardable values). Nim's type system is pretty amazing |
07:13:20 | skrylar[m] | @PMunch well having a build system has the possible-but-often-not-used advantage of not having to recycle state :\ |
07:13:39 | PMunch | skrylar[m], what do you mean |
07:13:50 | skrylar[m] | one of the +'s from clisp/smalltalk is you don't load the entire friggin compiler suite every time you want to compile one file |
07:14:21 | PMunch | How does that work? |
07:14:23 | skrylar[m] | or in c/c++ case how you end up parsing a file, writing an object, then parsing a new file, possibly re-parsing things you already parsed before... |
07:14:38 | k0mpjut0r | dom96: the main motivation for wanting to try hot code reloading is to speed up the development cycle. Yes I will spend most of the time waiting to compile, and I could run the server in an infinite loop and set makeprg to compile and kill the running server, but hot code reloading sounds cleaner at least in theory |
07:14:54 | PMunch | Oh right, I mean both Nim and Zig have build systems. They're just built in to the compiler |
07:15:04 | * | absolutejam1 quit (Quit: WeeChat 2.5) |
07:15:55 | * | absolutejam joined #nim |
07:16:02 | MrAxilus | <PMunch "So yeah, that about sums up the "> You gave me a much better overview than what I was expecting, thanks! :) |
07:16:32 | * | kungtotte joined #nim |
07:16:44 | PMunch | MrAxilus, no problem :) |
07:17:06 | * | laaron quit (Remote host closed the connection) |
07:18:13 | owl_000 | i think nim should focus on marketing. |
07:23:09 | * | laaron joined #nim |
07:26:15 | * | actuallybatman quit (Ping timeout: 258 seconds) |
07:27:15 | * | actuallybatman joined #nim |
07:37:12 | * | ng0 quit (Ping timeout: 260 seconds) |
07:41:02 | * | ng0 joined #nim |
07:44:40 | alexander92 | i think zig |
07:45:12 | alexander92 | has non-null pointers and null pointers for c interop and stuff like this |
07:45:23 | alexander92 | so afaik they tried to tackle this unsafety bit a bit |
07:45:33 | PMunch | Oh right, yeah it probably needs that somehow |
07:45:52 | PMunch | Or it treats nil pointers like an option value that's false |
07:46:14 | PMunch | Which is a bit like how Nim does uninitialized seqs isn't it? |
07:46:42 | alexander92 | the biggest differences are mostly language design imo: zig tries to make stuff relatively "obvious", like more explicit frame/memory stuff for async/await , explicit allocators, etc |
07:46:52 | alexander92 | but i am really not an expert in both |
07:48:47 | alexander92 | about zig vs ada, not sure what's the relation, iirc zig didn't really focus on memory safety too much: even compared to nim, not talking about rust at all, maybe you meant they just want less undefined behavior on runtime? |
07:49:38 | alexander92 | PMunch well, i guess it's something like what we wanted to do with nil-able ref-s, and what other languages do with nil-able values indeed |
07:49:41 | alexander92 | but no idea |
07:49:49 | alexander92 | how practical is |
07:50:36 | PMunch | It was Araq who mentioned Ada. It also has an interesting type system though, something which I think Zig doesn't |
07:52:24 | alexander92 | yeah, well i feel they have a bit more go-like approach to that |
07:53:24 | PMunch | go-like? |
07:53:27 | FromGitter | <zacharycarter> sorry - got tied up at work. Araq: I will see if this goes away with GC_Disable |
07:54:31 | alexander92 | well, like, trying to go for "simpler" type system |
07:54:50 | alexander92 | but no idea honestly, i don't know zig |
07:55:31 | PMunch | Well "simpler" type systems aren't really a good thing |
07:55:45 | PMunch | My toy calculator/language thing has two types, and it's a mess :P |
07:57:36 | alexander92 | i might be wrong about it, don't count my impression on zig , research it for yourself |
07:57:57 | alexander92 | otherwise i like type systems as well |
07:59:32 | PMunch | Found another interesting language the other day, Red |
08:05:16 | FromGitter | <zacharycarter> my supervisor took a look at Nim and wasn't impressed with generics |
08:05:25 | FromGitter | <zacharycarter> he's a Scala guy |
08:13:01 | PMunch | How do they work in Scala? |
08:16:11 | alexander92 | well, did he look at https://nim-lang.org/docs/tut2.html#generics |
08:16:17 | * | Vladar joined #nim |
08:16:32 | alexander92 | because this does showcase a simple usecase |
08:16:45 | alexander92 | but not most of their |
08:16:49 | alexander92 | possibilities |
08:17:07 | alexander92 | (e.g. constraints, typedesc, concepts etc ) |
08:17:47 | alexander92 | (i mean, it's not a good general overview, it's only a good tutorial intro) |
08:35:03 | * | sagax quit (Remote host closed the connection) |
08:38:02 | * | absolutejam quit (Ping timeout: 240 seconds) |
08:48:04 | * | absolutejam joined #nim |
09:00:07 | * | sagax joined #nim |
09:01:21 | * | alexander92 quit (Ping timeout: 268 seconds) |
09:04:58 | * | endragor joined #nim |
09:13:44 | * | alexander92 joined #nim |
09:19:21 | * | theelous3 quit (Ping timeout: 265 seconds) |
09:19:56 | nc-x[m] | well if anybody looks at the hcr stack corruption issue, they also need to fix the system.nim imports another files issue. My hacky patch works only for simple cases. |
09:28:30 | * | endragor quit (Remote host closed the connection) |
09:46:50 | * | mattmurr quit (Quit: ZNC 1.7.2+deb3 - https://znc.in) |
09:54:23 | * | absolutejam quit (Ping timeout: 268 seconds) |
09:54:42 | * | lritter_ joined #nim |
10:03:01 | FromGitter | <zacharycarter> alexander92: he did mention concepts but I explained that I thought they were being reworked |
10:03:40 | FromGitter | <zacharycarter> what are the constraints you mentioned? I think his main observation was that they were implemented more like C++ templates than true generics |
10:03:54 | Araq | that's correct |
10:06:24 | FromGitter | <zacharycarter> I don't really spend too much of my time worrying about Nim's type system - it works for what I need to do and my projects tend to be small enough that I know what I've written and can generally keep my projects in my head |
10:07:51 | FromGitter | <zacharycarter> but I guess if you're working on a larger team or working on a code base you didn't author, you might want more |
10:08:22 | * | Calinou quit (Ping timeout: 245 seconds) |
10:08:59 | * | absolutejam joined #nim |
10:13:53 | * | absolutejam quit (Ping timeout: 246 seconds) |
10:17:16 | * | laaron quit (Remote host closed the connection) |
10:18:58 | * | absolutejam joined #nim |
10:20:12 | Araq | doesn't really apply, not all code must be generic, generic is for containers |
10:20:18 | Araq | and most code is not about containers |
10:22:51 | * | laaron joined #nim |
10:24:05 | * | laaron quit (Remote host closed the connection) |
10:27:25 | * | laaron joined #nim |
10:32:10 | * | NimBot joined #nim |
10:51:38 | FromGitter | <zacharycarter> that's all I use them for |
11:03:21 | owl_000 | i want to pass, rgb value to a proc which will return another rgb value, should i make a type or pass array or pass tuple |
11:04:02 | owl_000 | *type = object |
11:17:24 | * | actuallybatman quit (Ping timeout: 258 seconds) |
11:18:28 | FromGitter | <mratsim> If you use it pervasively just make it a type |
11:22:29 | owl_000 | thank you, i will upload my code, please then review my code |
11:38:29 | * | gangstacat quit (Ping timeout: 276 seconds) |
11:39:52 | * | gangstacat joined #nim |
11:49:32 | * | rockcavera joined #nim |
12:09:46 | * | cgfuh joined #nim |
12:12:50 | owl_000 | https://play.nim-lang.org/#ix=1Vxg please review my code, and guide me about which things are bad and what is the good practice. |
12:15:09 | * | dddddd joined #nim |
12:16:17 | owl_000 | side note: many nim packages are not complying with nim style guide. --styleCheck:error , which is not good. i need to turn it off to compile successfully. |
12:21:56 | FromGitter | <zacharycarter> well - it's not like it's mandatory to do so |
12:22:06 | FromGitter | <zacharycarter> and it's the user's choice to use a linter |
12:23:06 | owl_000 | nim's standard library? |
12:24:06 | FromGitter | <zacharycarter> oh - I thought you meant like nimble modules |
12:24:16 | FromGitter | <zacharycarter> err packages rather |
12:24:24 | FromGitter | <zacharycarter> I didn't realize you were referring to sdtlib modules |
12:25:03 | FromGitter | <zacharycarter> but again - a lot of these existed before the style checker... maybe make an issue listing the modules that are failing the check, if one doesn't already exist? |
12:27:03 | owl_000 | now i can't remember which module, one month ago i faced that. |
12:27:38 | FromGitter | <zacharycarter> might be able to just compile Nim and turn on that check and see what it spits out |
12:28:09 | narimiran | owl_000: iirc, Araq went on a crusade to fix all of stdlib when it is run with `--styleCheck`, so it should work |
12:29:11 | owl_000 | that is what i found now, i compile some of my old example that works perfectly with style check. |
12:29:35 | owl_000 | by the way, review my code. please |
12:30:04 | narimiran | owl_000: as for code review, it is a nit-pick, but `isItTheValue` could be just `return rgb.r == rgb2.r and rgb.g == rgb2.g and rgb.b == rgb2.b` (and you can even remove `return`) |
12:30:44 | * | endragor joined #nim |
12:30:51 | narimiran | and if you want some nice/pretty style, put some space between `#` and the comment :) |
12:31:55 | narimiran | `countup(0,len(imgPixels)-1,3)` this is incorrect (and it lacks some spaces ;)) |
12:32:49 | owl_000 | that is true, though it is strange, difference in space produce different result in nim |
12:33:01 | narimiran | it shouldn't |
12:33:16 | narimiran | did you spot the error in the countup? |
12:33:22 | owl_000 | no, but |
12:34:08 | owl_000 | in case proc() and proc () produces error. (*not result, but errors) |
12:34:26 | * | vsantana quit (Quit: leaving) |
12:35:16 | narimiran | yes, there is a difference between `echo(1, 2)` and `echo (1, 2)`, for example |
12:35:19 | owl_000 | and .. >= something like this sometime produce error. |
12:35:33 | narimiran | the second one is basically `echo((1, 2))` |
12:36:33 | * | endragor quit (Remote host closed the connection) |
12:36:44 | * | endragor joined #nim |
12:41:27 | owl_000 | `proc hello()`, do you think error message produced by `hello ()` is clear? |
12:42:30 | owl_000 | `proc hello(name: string)` `hello ("blue")` |
12:43:01 | narimiran | i just got this in the error message: "maybe misplaced space between hello and '('" -- and yeah, that is surprisingly good error message |
12:44:22 | owl_000 | but i got F:\Nim\testing\raw\test.nim(2, 17) Error: type mismatch: got <string, string>, but expected one of: then huge list of proc |
12:49:58 | owl_000 | nim version 0.20.2 [windows: amd64] |
12:54:54 | owl_000 | https://play.nim-lang.org/ entire error message, first type mismatch at position: 1 and but expression '"hello "' is of type: string are repeatation and make error log huge. |
12:55:36 | owl_000 | https://play.nim-lang.org/#ix=1VxC |
12:57:09 | FromGitter | <vsantana> string concatenation operator is `&` not `+` |
12:58:26 | FromGitter | <vsantana> the error mgs says ⏎ ⏎ proc `+`(x: int8): int8 ⏎ first type mismatch at position: 1 ⏎ required type: int8 [https://gitter.im/nim-lang/Nim?at=5d80d8722e8fd94630ead595] |
12:58:33 | owl_000 | shame |
12:58:35 | owl_000 | on me |
13:00:41 | * | vsantana joined #nim |
13:00:52 | * | vsantana quit (Client Quit) |
13:02:38 | owl_000 | no shame, i am a student. |
13:08:09 | * | endragor quit (Remote host closed the connection) |
13:10:47 | * | vsantana joined #nim |
13:11:22 | vsantana | nice! |
13:20:17 | * | endragor joined #nim |
13:21:39 | Araq | https://www.youtube.com/watch?v=c1UBJbfR-H0 |
13:24:15 | Zevv | thanks for the tables fix araq |
13:25:03 | Araq | Zevv, it also was krux02's work |
13:25:26 | Araq | we don't even want to know how much this speeds up the VM for certain workloads... |
13:25:57 | Zevv | haha. For me it was a 8x improvement compiling a java parser |
13:26:00 | Araq | effectively the VM uses "pass by copy" for Nim's parameter passing semantics which is what no other backend does and the language spec says not to do this |
13:26:35 | Zevv | so this probably also speeds up the regular tests/tests, right? |
13:26:52 | * | lritter_ quit (Remote host closed the connection) |
13:27:07 | Zevv | and no wonder I got lost trying to find it myself, the fix is not trivial it seems |
13:29:27 | * | tribly quit (Remote host closed the connection) |
13:29:56 | * | tribly joined #nim |
13:30:12 | Araq | it's not really hard when you know about Lua's/Sparc's register windows |
13:30:26 | Araq | that are used to implement the proc calling mechanism |
13:31:39 | * | laaron quit (Remote host closed the connection) |
13:34:10 | * | laaron joined #nim |
13:35:58 | disruptek | yeah, zevv, try reading a book some time. |
13:37:35 | Araq | disruptek, don't troll him please, Zevv is awesome |
13:37:52 | disruptek | oh, i know, i'm just kidding. ;-) |
13:38:33 | disruptek | the tables fix is a 4x speed bump for me. |
13:39:06 | disruptek | i was gonna fix it myself, but... meh. |
13:39:20 | disruptek | 😁 |
13:43:16 | Zevv | Right :) |
13:50:48 | disruptek | any reason not to offer a `$`() for HttpHeaders? i really don't like this impl but at least i could improve it slightly. |
13:51:57 | * | Vladar quit (Ping timeout: 265 seconds) |
13:53:55 | * | endragor quit (Remote host closed the connection) |
13:56:27 | * | Vladar joined #nim |
14:03:06 | * | PMunch quit (Remote host closed the connection) |
14:04:57 | * | lritter joined #nim |
14:05:29 | * | Vladar quit (Ping timeout: 265 seconds) |
14:13:36 | * | couven92 joined #nim |
14:14:51 | * | fredrik92 joined #nim |
14:16:42 | * | couven92 quit (Disconnected by services) |
14:16:45 | * | fredrik92 is now known as couven92 |
14:19:39 | Araq | hmm what's the best way to make mmap return blocks aligned by 2MB, not just 4K? |
14:39:12 | disruptek | common divisors. |
14:45:49 | * | Vladar joined #nim |
14:49:28 | Araq | disruptek: what do you mean? |
14:49:48 | Araq | "just allocate something and throw away the prefix and suffix"? |
14:50:23 | disruptek | i mean 4k is a divisor of 2mb. if you want a specific alignment, all you can do is ask. |
14:50:56 | disruptek | throw away the prefix and suffix? |
14:52:00 | disruptek | i don't think you can be assured of alignment if you require a specific block length. at least on linux... |
14:57:52 | FromGitter | <gogolxdong> Any recommandation of video player library in Nim? |
15:00:16 | FromGitter | <danielecook> I'm trying to overload the json operator so that that a string of a single period (`.`) is converted to null |
15:00:34 | FromGitter | <danielecook> Tried this but didn't work: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5d80f511ba12e0644888f0fa] |
15:00:56 | FromGitter | <danielecook> because it appears to completely overwrite the `%*` function |
15:01:14 | FromGitter | <danielecook> now I'm trying to just make a new function and can't get the case statement to work |
15:01:30 | * | owl joined #nim |
15:01:31 | FromGitter | <danielecook> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5d80f54b5d40aa0d7d51bc93] |
15:01:33 | * | owl quit (Client Quit) |
15:01:47 | FromGitter | <danielecook> This doesn't work either though... |
15:01:57 | FromGitter | <danielecook> actually due to a syntax error |
15:02:06 | disruptek | gitter is ridiculous; despite a 4k display, that code paste is reduced to 5-char columns. |
15:02:15 | disruptek | how does anyone tolerate that product? |
15:02:27 | disruptek | oh, and it's a scrollable region. |
15:03:06 | FromGitter | <danielecook> I'm not a fan of gitter either...but a lot of projects I use are on it |
15:03:12 | disruptek | did you try hacking the `%` proc instead? |
15:03:55 | FromGitter | <danielecook> no... |
15:04:28 | * | owl_000 quit (Ping timeout: 245 seconds) |
15:04:47 | disruptek | that dot_to_null makes no kinda sense to me. what are you trying to do? |
15:05:08 | disruptek | JsonNodeKind is an enum type of which JNull is a member value... |
15:05:34 | disruptek | JsonNode is a different sort of critter; it's an actual node object ref that also holds the value in addition to the kind, etc. |
15:06:10 | * | Trustable joined #nim |
15:06:31 | FromGitter | <danielecook> The overall goal is to convert a certain data format to JSON. In this format, a period is equivelent to a null value |
15:07:08 | FromGitter | <danielecook> So I'd like to be able to substitute a function in place of `%*` to convert '.' to null |
15:07:38 | disruptek | proc myNewJString = ... case value: of ".": return newJNull(); else: return newJString(value) ... |
15:08:16 | FromGitter | <danielecook> Thanks, but I don't necessarily know if the input value is a string or a number |
15:08:27 | FromGitter | <danielecook> So the advantage of the `%*` is I don't need to know the type |
15:08:32 | FromGitter | <danielecook> so I'm trying to maintain that advantage |
15:08:35 | disruptek | you'd only use that on strings. numbers will rarely have the value ".". |
15:09:08 | FromGitter | <danielecook> right - so numbers will never have that value, but I don't know if what I'm passing to this function is a number of a string to begin with |
15:09:31 | disruptek | how could you not know the type? |
15:09:58 | FromGitter | <danielecook> The file format is kind of heterogeneous |
15:10:12 | FromGitter | <danielecook> Fields can be arbitrarily specified as having a certain type by the user |
15:10:20 | disruptek | what i mean is, nim is typed... |
15:10:27 | FromGitter | <danielecook> i know1 |
15:10:48 | FromGitter | <danielecook> but the json module can handle this issue with no problem |
15:11:31 | FromGitter | <danielecook> ive got to run unfortunately... |
15:11:45 | FromGitter | <danielecook> but I'll be back and I'm gonna figure out someway of handling this! |
15:11:49 | FromGitter | <danielecook> thanks tho |
15:11:57 | disruptek | i don't think the json module will perform string->int conversion for you. |
15:12:34 | disruptek | so, you'll already have done that, thus determining the type... |
15:12:59 | * | absolutejam quit (Ping timeout: 276 seconds) |
15:27:24 | lqdev[m] | what's the point of `create`, `createU`, `createShared`, and `createSharedU` when there's `alloc`, `alloc0`, `allocShared`, and `allocShared0`? |
15:31:27 | lqdev[m] | @danielecook the thing is, JSON already has numbers, so strings should always be strings. |
15:33:16 | Araq | lqdev[m]: legacy. in theory they are a tiny bit easier to use because you don't have to use sizeof |
15:33:55 | lqdev[m] | oh I see, they accept a typedesc argument |
15:34:18 | lqdev[m] | and you don't have to cast the result |
15:35:50 | Araq | yeah. pretty nice, but I never used it :D |
15:36:11 | FromGitter | <mratsim> I use them I think, in proof-of-concept |
15:36:19 | FromGitter | <mratsim> until I need to write my own allocator |
15:36:36 | Araq | mratsim: with devel you can write your own GC |
15:36:46 | Araq | well |
15:36:58 | * | alexander92 quit (Ping timeout: 245 seconds) |
15:37:07 | Araq | I'm playing with it and hope to be able to release 'araqsgc' as a Nimble package |
15:37:17 | FromGitter | <mratsim> that would be nice |
15:37:41 | Araq | the interface finally supports most things that I had in mind |
15:38:18 | FromGitter | <mratsim> we have a memory leak when running nim-beacon-chain for a couple of hours and I think that given seq doesn’t return small memory allocation back to the OS, we need to use memory pools or object pools for some of our sequences |
15:39:36 | * | Vladar quit (Ping timeout: 258 seconds) |
15:43:04 | Araq | I know, I'm working on it |
15:43:32 | Zevv | Araq: afaik there is no way for mmap to align other then on page boundaries. If you really want that, you alloc 2M extra and find the first aligned address yourself |
15:44:08 | disruptek | but then your length is off. |
15:45:04 | disruptek | i mean, that's a pretty expensive solution, right? |
15:45:22 | Zevv | what is 2Mb these days :) |
15:45:44 | Zevv | and as long as you don't write to the first 0..2048 Kb, nothing will happen under the hood |
15:45:59 | Zevv | it's only address space, but nothing is actually allocated |
15:46:27 | Zevv | There's books about that stuff, you know :) |
15:46:36 | disruptek | true; i guess i would start with asking for the 2mb chunk i want and then fallback to manual calculation for alignment. |
15:47:21 | disruptek | can i borrow seq's `[]`? |
15:47:31 | disruptek | ^ .borrow. |
15:47:33 | Zevv | you can have mine, I'm not using them |
15:47:46 | disruptek | sweet, thanks. 👍 |
15:49:34 | FromGitter | <mratsim> I don’t think you can because seq is generic |
15:49:44 | FromGitter | <mratsim> and borrowing from generic is verboten |
15:49:56 | disruptek | yeah, i'm sad about it. |
15:52:41 | FromGitter | <mratsim> I’m tagging high priority on https://github.com/nim-lang/Nim/issues/2684 |
15:53:13 | disruptek | you think it's high priority? |
15:53:59 | disruptek | i think araq said recently that he doesn't like borrow. maybe it's just particular examples, or maybe it's just that he doesn't like that it doesn't work for generics. 😉 |
15:54:09 | FromGitter | <mratsim> it’s one of the reason we don’t use distinct in our codebase even though we would like to |
15:54:32 | FromGitter | <mratsim> also there are like 4-5 duplicates opened with a slightly different twist on borrowing from generics |
15:54:57 | FromGitter | <mratsim> well I think it should be reimplemented with a macro |
15:55:03 | FromGitter | <mratsim> and he probably thinks the same |
15:55:27 | disruptek | i guess it makes sense to fish or cut bait on the deficiency. |
15:56:11 | FromGitter | <mratsim> macro that takes a typed symbol, check the signature, is one of them matching the distinct base? Yes? lift the implementation and paste it in a new proc |
15:56:59 | FromGitter | <mratsim> Also I’ve done 75% of the work already :p |
15:57:36 | FromGitter | <mratsim> Here: https://github.com/numforge/laser/blob/af191c086b4a98c49049ecf18f5519dc6856cc77/laser/lux_compiler/frontend/lux_sigmatch.nim |
16:01:35 | * | Vladar joined #nim |
16:15:25 | * | tiorock joined #nim |
16:15:25 | * | tiorock quit (Changing host) |
16:15:25 | * | tiorock joined #nim |
16:15:25 | * | rockcavera is now known as Guest5662 |
16:15:25 | * | Guest5662 quit (Killed (cherryh.freenode.net (Nickname regained by services))) |
16:15:25 | * | tiorock is now known as rockcavera |
16:17:00 | disruptek | well, i can now see why you prefer not to use distinct. |
16:19:02 | FromGitter | <mratsim> we are even remove ranges on some of our types |
16:19:16 | FromGitter | <mratsim> it doesn’t compose well at the moment |
16:19:23 | disruptek | clearly not. |
16:19:47 | disruptek | worse than composition is gratuity of code and even resource consumption. |
16:25:40 | disruptek | how do i run the tests, now? koch tests doesn't work, testament doesn't seem to work... |
16:26:31 | disruptek | is there a book? |
16:26:45 | FromGitter | <mratsim> koch |
16:27:04 | * | nif quit (Quit: ...) |
16:27:09 | disruptek | yeah but no. |
16:27:13 | * | nif joined #nim |
16:27:18 | disruptek | Error: cannot open '/home/adavidoff/git/Nim/testament/tester.nim' |
16:27:32 | FromGitter | <mratsim> well last time I tried it worked for me |
16:27:36 | FromGitter | <mratsim> using stuff like ./koch tests cat async |
16:27:41 | FromGitter | <mratsim> or stdlib |
16:27:51 | disruptek | maybe i need to build_all since the new testament changes. |
16:29:42 | disruptek | yeah, that solved it. |
16:33:59 | * | ng0 quit (Remote host closed the connection) |
16:34:03 | * | cgfuh quit (Ping timeout: 245 seconds) |
16:35:18 | * | ng0 joined #nim |
16:49:25 | * | couven92 quit (Ping timeout: 268 seconds) |
16:56:05 | planetis[m] | hi, what is the difference between ntyGenericInvocation and ntyGenericInst and how do I get ntyGenericInst when I have a ntyGenericInvocation node? |
16:59:01 | * | sentreen quit (Quit: sentreen) |
17:01:46 | * | cgfuh joined #nim |
17:02:46 | * | sentreen joined #nim |
17:07:54 | planetis[m] | My problem is when I pass GenericObj[int] to a typed macro getTypeImpl returns a genericInst and everythink works, but when its an object field it returns genericInvocation |
17:10:22 | * | natrys joined #nim |
17:19:00 | FromGitter | <Vindaar> @danielecook unless I'm misunderstanding, you want to override the `%` proc for strings and not the definition of the `%*` macro. The macro simply calls `%` for all the elements. So https://play.nim-lang.org/#ix=1VzP should do what you want |
17:24:51 | * | solitudesf- joined #nim |
17:25:31 | * | solitudesf- quit (Client Quit) |
17:30:05 | Araq | mratsim: no idea why you remove 'range' or 'distinct', they work well and have been battle-tested. *shrug* |
17:30:27 | Araq | .borrow doesn't work with generics yeah, but so what, I don't need .borrow |
17:30:37 | Araq | and Ada doesn't either |
17:51:45 | * | Trustable quit (Remote host closed the connection) |
17:53:10 | * | laaron quit (Quit: ZNC 1.7.1 - https://znc.in) |
17:53:44 | * | laaron joined #nim |
17:55:20 | * | nsf quit (Quit: WeeChat 2.5) |
18:10:06 | * | abm joined #nim |
18:49:53 | Zevv | Oberon doesn't |
18:52:08 | * | Vladar quit (Remote host closed the connection) |
18:53:30 | disruptek | i don't know why i still find myself composing github issues on a web-page. such a waste of time when i manage to lose them. |
18:54:37 | Zevv | Is there a better alternative? I always write down stuff in My Favourite Editor, and cut-n-paste it when posting |
18:56:28 | disruptek | https://github.com/stephencelis/ghi |
18:56:42 | disruptek | krux02 turned me on to it. |
18:57:06 | * | absolutejam joined #nim |
18:57:51 | Zevv | "Use your $EDITOR" |
18:58:26 | Zevv | and its in debian. you're my hero for today! |
18:59:57 | disruptek | yeah, it's an improvement. i just tend to be searching a repo right before i compose a new issue, so i forget to jump back to a shell. |
19:04:47 | * | actuallybatman joined #nim |
19:06:51 | * | exelotl joined #nim |
19:08:27 | Zevv | Could someone run a small test for me on windows? |
19:15:46 | Zevv | I'd like to know if the output of "nim c -d:npegGraph test.nim" of this snippet http://ix.io/1VBl comes out acceptable |
19:20:40 | * | enthus1ast quit (Quit: WeeChat 1.6) |
19:24:32 | * | ZORR0W joined #nim |
19:24:51 | * | ZORR0W quit (Client Quit) |
19:25:17 | * | ZORR0W joined #nim |
19:39:52 | federico3 | $ on an ipaddr is returning (family: IPv4, address_v4: [69, 164, 217, 10]) |
19:41:47 | federico3 | (with $ not being imported from the net module) |
19:46:04 | * | Ven`` joined #nim |
19:48:54 | exelotl | Zevv: https://cdn.discordapp.com/attachments/239878713016188939/623606267042201652/unknown.png |
19:49:07 | exelotl | fancy |
19:49:46 | Zevv | wow that is unexpected |
19:49:51 | Zevv | sweet, thanks for testing that! |
19:50:03 | Zevv | that's windows 10 normal console, not linux-on-windows, or what its called? |
19:50:49 | Zevv | araq was still complaining about utf8 rendering on windows the other day i believe, but this is not bad |
19:50:50 | exelotl | hmm well it's an msys2 terminal |
19:50:55 | Zevv | aah right |
19:50:56 | Zevv | there it is :) |
19:51:46 | Zevv | thanks dude |
19:52:03 | exelotl | it came out garbage in the VSCode terminal (even though it's still using the msys2 shell) |
19:52:15 | exelotl | but I think that's just generally a problem with all unicode in there |
19:52:23 | * | nsf joined #nim |
19:52:26 | exelotl | never found a good solution for it |
19:52:32 | Zevv | does the vscode terminal show nim compiler output colors then? |
19:57:24 | exelotl | colors are fine but the characters aren't https://media.discordapp.net/attachments/239878713016188939/623607783849459712/unknown.png |
19:57:45 | disruptek | wow |
19:58:03 | disruptek | how much did you pay for that? |
19:58:28 | exelotl | hehe |
19:58:40 | exelotl | regular cmd.exe has the same problem https://cdn.discordapp.com/attachments/239878713016188939/623608647800586261/unknown.png |
19:58:54 | Zevv | ok, work to do here :/ |
19:59:03 | Zevv | I'll have to spin up a vm I guess |
19:59:08 | skrylar[m] | cmd doesn't understand vt100 escapes IIRC |
19:59:10 | disruptek | that program is free with your $250 purchase of Windows, right? |
19:59:44 | disruptek | this new-fangled vt100 technology is tough to implement. |
19:59:54 | Zevv | I was hoping windows 10 would be able to handle these things by now |
20:00:12 | * | disruptek <-- actually owns gnufangled.com |
20:00:32 | * | ZORR0W quit (Quit: leaving) |
20:01:45 | Zevv | part of the problem is that I'm trying to do this at compile time, and stdout/stderr don't exist there, so ther terminal lib is kind of limping |
20:05:21 | rockcavera | Is there int128 in Nim? Or in any package? |
20:07:03 | FromGitter | <deech> Dumb question: how do I create `seq[typedesc]`, the obvious way `const ts = @[int,string,bool]` didn't work. |
20:09:50 | dom96 | you can't do that |
20:11:57 | FromGitter | <deech> Why not? |
20:12:30 | narimiran | rockcavera: https://github.com/status-im/nim-stint ? |
20:14:42 | rockcavera | narimiran, thanks |
20:18:12 | dom96 | deech: because typedesc isn't a value type |
20:18:24 | dom96 | deech: closest you can get is to have a NimNode which represents it stored in a seq |
20:18:41 | FromGitter | <deech> Understood, thanks! |
20:18:43 | dom96 | deech: your question definitely isn't dumb though :) |
20:24:25 | * | narimiran quit (Ping timeout: 265 seconds) |
20:28:20 | exelotl | Araq: about making an RFC for addressable consts, would you definitely say `let foo {.section:rodata.}` is the way to go? |
20:28:25 | exelotl | cause I feel like the meaning of the .elf sections is somewhat arbitrary, and as you mentioned we already have codegenDecl for it |
20:28:37 | exelotl | what's most important is the constness of the variable in the generated code |
20:31:08 | Araq | exelotl: it would be .section: "rodata" |
20:31:33 | Araq | the sections are platform specific, why hide that |
20:32:03 | Zevv | even application specific, when doing embedded stuff |
20:32:48 | exelotl | oh yeah ok string parameter makes sense |
20:36:36 | exelotl | I guess what I mean is, should the .section pragma be the primary way to make the variable const? I think 'variable goes in section foo' and 'variable is generated as a const' are two different things |
20:37:43 | Araq | exactly and Nim has a completely different idea about 'const' |
20:40:45 | * | Calinou joined #nim |
20:42:56 | * | nsf quit (Quit: WeeChat 2.5) |
20:43:13 | Araq | exelotl: thinking about it, we can patch the codegen to be smarter about 'let' |
20:43:37 | Araq | once intialization works as for consts, .codegenDecl would work |
20:43:49 | Araq | turning this feature request into a mere bugfix |
20:46:14 | exelotl | something like "if this top-level 'let' only refers to constants and other top-level 'let's, then it can be initialised at the top level in C" ? |
20:46:14 | dom96 | hm, forum response times have slowed down quite a bit lately |
20:46:44 | Araq | exelotl: yes |
20:46:48 | Zevv | exelotl: not even top level, static would be ok as well, as it is constant |
20:47:22 | exelotl | oh yeah, that's what I mean to say x) |
20:48:06 | exelotl | okay cool, this seems like a good solution :) |
20:49:19 | dom96 | Good news: Nimforum has been running for 5 months without crashing. Bad News: it's OOMed the machine and OOM killer hasn't killed it :) https://gist.github.com/dom96/e8a49ce0c62b57cca8d7f1f5dab0eb02 |
20:49:44 | exelotl | lmao wo |
20:49:45 | exelotl | w |
20:52:29 | Araq | the OOM killer is cool. We also need a file descriptor killer though, if process A uses too many open files, process B should be killed |
20:53:34 | federico3 | dom96: you have to configure it |
20:56:01 | dom96 | federico3, it managed to work fine for years :P |
20:58:22 | federico3 | ... |
21:02:03 | FromGitter | <awr1> what was the forum previously based on |
21:02:30 | FromGitter | <awr1> maybe i'm not remembering correctly |
21:02:52 | FromGitter | <awr1> was it always built in nim? |
21:03:04 | FromGitter | <mratsim> Yes |
21:03:12 | federico3 | the NIH syndrome is strong |
21:03:16 | FromGitter | <mratsim> But without discuss like feel |
21:03:27 | FromGitter | <awr1> yeah i kinda remember now |
21:03:34 | FromGitter | <mratsim> It's also a proof of concept |
21:06:28 | FromGitter | <awr1> the NIH-ness comes naturally with being a "C++ replacement" |
21:06:46 | dom96 | The NIH allows us to prove that Nim is production ready |
21:07:25 | exelotl | who's in charge of the discord bridge btw? it's been down for days |
21:07:44 | Araq | how do you invent a new PL without NIH? anyway, we are not even the worst, the Rust people have to re-create a full OS |
21:07:44 | dom96 | didn't someone ban it? |
21:07:55 | exelotl | :O |
21:09:26 | FromGitter | <awr1> i mean you can say what you will about the rust community but i feel like their RIIR mentality is really not a result of any specific aspect of rust (i.e. the safety, in spite of what they say) besides the fact that it is in that domain of "new systems programming language" |
21:09:47 | Araq | RIIR? |
21:09:47 | FromGitter | <awr1> and RIIR is really synonymous with NIH |
21:09:53 | FromGitter | <awr1> rewrite it in rust |
21:11:13 | Araq | the less C code out there, the better, I don't mind a new OS written in Rust |
21:11:21 | FromGitter | <awr1> oh i agree on that front |
21:13:12 | FromGitter | <awr1> we are all at least united on the opinion that people should abandon C/C++ |
21:14:27 | FromGitter | <awr1> well, maybe its a little bit more ambiguous with the Dlang users |
21:15:04 | lqdev[m] | what's NIH? |
21:15:20 | FromGitter | <awr1> since Alexandrescu (and i think some other D people?) contribute to the modern C++ spec |
21:15:22 | FromGitter | <awr1> not invented here |
21:16:45 | Araq | hmm maybe I should give ReactOS a try |
21:16:49 | FromGitter | <awr1> my only reservation with a new OS written in rust is that it would be more ideal if it wasn't quite so POSIX-y |
21:17:03 | FromGitter | <awr1> isn't it called redox OS? |
21:17:18 | FromGitter | <awr1> oh wait nvm you're talking about the win32 reimpl one |
21:18:41 | Araq | yeah, not gonna try redox OS, why would I, I don't care about "everything is a URL now, aren't you happy" |
21:18:49 | FromGitter | <awr1> i had a little wire-crossing moment and was like "an OS written in react? what?" |
21:20:33 | FromGitter | <awr1> supposedly some of fuchsia is written in rust. but i don't really know what they're doing there |
21:22:01 | FromGitter | <mratsim> ReactOS is a supposed to be win32 compatible |
21:25:07 | FromGitter | <arnetheduck> fwiw, one potential direction for `nlvm` is to start interacting with other languages on an llvm level (rust, c) - that would be pretty interesting because suddenly cross-language ABI becomes a lot more easy to deal with - as well as getting some nice optimization benefits because now the optimizer can inline, constant-propagate etc across barriers. |
21:29:05 | FromGitter | <awr1> there is a certain wanting i have for `nlvm` to have JIT support, specifically in a similar manner to Scopes |
21:29:25 | FromGitter | <awr1> https://scopes.readthedocs.io/en/latest/about.html |
21:30:03 | FromGitter | <awr1> but i might be being too presumptuous. |
21:32:42 | Araq | ah I forgot, Redox actually understands things quite a bit |
21:32:44 | Araq | > With "Everything is a file" all sorts of devices, processes, and kernel parameters can be accessed as files in a regular filesystem. This leads to absurd situations like the hard disk containing the root filesystem / contains a folder named dev with device files including sda which contains the root filesystem. Situations like this are missing any logic. Furthermore many file properties don't make sense on these 'special files': What is the size |
21:32:44 | Araq | of /dev/null or a configuration option in sysfs? |
21:32:57 | Araq | Nails it. |
21:35:37 | * | natrys quit (Quit: natrys) |
21:43:09 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
21:46:11 | FromGitter | <awr1> @exelotl good luck on your GBA game, btw! |
21:46:40 | exelotl | ahh thank you :) |
21:48:34 | exelotl | it's coming along quite well but sometimes real life gets in the way |
21:49:05 | FromGitter | <awr1> i know that all too well |
21:49:24 | exelotl | recently I spent a lot of time on entities and spawners, which was a lot of work with very little visual progress xD |
21:49:53 | exelotl | but hopefully we can move forward with levels and enemies again in the coming weeks |
21:50:07 | disruptek | dom96: you really didn't get the Monty Python reference? |
21:50:12 | FromGitter | <awr1> it's my last semester before i finish my bachelors and being constantly busy with homework is cutting in my time to do anything nim-related |
21:50:40 | disruptek | that film is totally worth your time. |
21:51:19 | FromGitter | <awr1> that's a good thing though! entity systems are important |
21:59:55 | Araq | disruptek: Monty Python is overrated ;-) |
21:59:57 | * | Araq ducks |
22:00:02 | * | solitudesf quit (Ping timeout: 245 seconds) |
22:00:18 | Araq | nah, it's awesome |
22:03:38 | disruptek | opinions come and go so quickly here. ;-) |
22:03:41 | dom96 | I love these issues https://github.com/dom96/choosenim/issues/134 |
22:24:30 | * | krux02 quit (Remote host closed the connection) |
22:29:48 | exelotl | Araq: hey, about static initialisation of top-level 'let' variables... It's not really specific to let right? |
22:30:00 | exelotl | A top level 'var' could also be initialised statically as long as the same restrictions hold true (only refers to constants or other top-level vars) |
22:30:09 | Araq | sure |
22:31:01 | exelotl | Ok, I'll make the issue more general then |
22:38:40 | * | cyraxjoe quit (Quit: I'm out!) |
23:07:48 | * | snooptek quit (Remote host closed the connection) |
23:10:02 | * | absolutejam quit (Ping timeout: 245 seconds) |
23:24:42 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
23:45:17 | * | theelous3 joined #nim |
23:52:25 | * | abm quit (Quit: Leaving) |
23:53:23 | * | theelous3 quit (Remote host closed the connection) |