00:01:30 | * | Tiberium joined #nim |
00:06:25 | GitDisc | <NopeDK> What about testing the tests of unittest to make sure that unittest tests correctly? |
00:07:08 | Araq | also known as the "who watches the watchmen" problem |
00:07:47 | Araq | and no, "the watchwomen of course" doesn't count as an answer |
00:08:34 | GitDisc | <NopeDK> Adrian Veidt is the answer to that problem. |
00:09:18 | Araq | ah it's you, hi. |
00:09:29 | * | Tiberium quit (Quit: Quitting...) |
00:09:40 | * | Yardanico joined #nim |
00:14:27 | * | Yardanico quit (Client Quit) |
00:16:08 | * | Yardanico joined #nim |
00:24:30 | * | MJCaley joined #nim |
00:25:03 | * | Yardanico quit (Quit: Quitting...) |
00:26:44 | * | Yardanico joined #nim |
00:31:15 | * | xet7 quit (Quit: Leaving) |
00:33:04 | FromGitter | <RedBeard0531> Have you considered making --opt:speed the default at least on gcc? It would make `nim c -r foo` still have the safety checks, but avoid gcc's braindead -O0 codegen. I'd think that would give people a better out-of-the box experience when trying nim. |
00:42:19 | * | Yardanico quit (Quit: Quitting...) |
00:43:49 | * | Yardanico joined #nim |
00:47:34 | * | SenasOzys quit (Remote host closed the connection) |
00:49:59 | * | xet7 joined #nim |
00:52:30 | Araq | can't we make -O1 the default instead in the config |
00:52:42 | * | Yardanic_ joined #nim |
00:52:43 | Araq | without changing --opt:speed |
00:54:17 | * | Yardanic_ quit (Client Quit) |
00:54:36 | * | Yardanico quit (Ping timeout: 260 seconds) |
00:56:20 | * | Yardanico joined #nim |
01:21:20 | * | Yardanic_ joined #nim |
01:22:07 | * | happycoder joined #nim |
01:23:11 | * | Yardanico quit (Ping timeout: 256 seconds) |
01:32:48 | * | kunev joined #nim |
01:39:33 | * | tefter joined #nim |
01:41:29 | * | Yardanic_ quit (Quit: My Hackintosh has gone to sleep. ZZZzzz…) |
02:22:33 | * | cspar quit (Ping timeout: 264 seconds) |
02:27:22 | * | chemist69 quit (Ping timeout: 272 seconds) |
02:29:01 | * | bozaloshtsh joined #nim |
02:29:02 | * | bozaloshtsh quit (Changing host) |
02:29:02 | * | bozaloshtsh joined #nim |
02:40:44 | * | chemist69 joined #nim |
02:41:11 | * | cspar joined #nim |
02:43:59 | * | SitiSchu joined #nim |
02:53:26 | FromGitter | <zacharycarter> https://github.com/BearishSun/BansheeEngine |
02:53:41 | * | vlad1777d_ quit (Quit: Leaving) |
02:54:18 | FromGitter | <zacharycarter> I guess the author is shooting for linux and osx support - might be worth exploring for a Nim wrapper for the C++ API |
03:06:12 | * | tefter quit (Remote host closed the connection) |
03:10:23 | * | cspar quit (Ping timeout: 248 seconds) |
03:13:47 | * | marenz_ joined #nim |
03:16:34 | * | cspar joined #nim |
03:17:27 | * | marenz quit (Ping timeout: 240 seconds) |
03:35:14 | * | user0 joined #nim |
03:37:47 | * | radagast quit (Ping timeout: 252 seconds) |
03:38:59 | * | happycoder quit (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org) |
03:39:18 | * | happycoder joined #nim |
03:45:55 | * | S1tiSchu joined #nim |
03:46:07 | * | cspar quit (Read error: Connection reset by peer) |
03:46:29 | * | cspar joined #nim |
03:49:20 | * | SitiSchu quit (Ping timeout: 252 seconds) |
04:05:45 | * | marenz_ quit (Ping timeout: 264 seconds) |
04:35:46 | * | user0 quit (Quit: user0) |
04:36:58 | * | S1tiSchu is now known as foo_ |
04:37:07 | * | foo_ is now known as S1tiSchu |
04:37:37 | * | S1tiSchu is now known as S1t1Schu |
04:38:09 | * | S1t1Schu is now known as sitischu |
04:38:33 | * | sitischu is now known as SitiSchu |
04:40:14 | * | SitiSchu left #nim ("Leaving") |
04:42:34 | * | S1tiSchu joined #nim |
04:42:34 | * | S1tiSchu quit (Client Quit) |
04:45:06 | * | SitiSchu joined #nim |
04:46:25 | * | SitiSchu quit (Client Quit) |
04:46:34 | * | SitiSchu joined #nim |
05:00:03 | * | MJCaley quit (Quit: MJCaley) |
05:07:35 | * | SenasOzys joined #nim |
05:12:06 | * | MJCaley joined #nim |
05:17:06 | * | MJCaley quit (Ping timeout: 272 seconds) |
05:40:26 | * | happycoder quit (Ping timeout: 252 seconds) |
05:52:29 | * | ftsf_ quit (Quit: Leaving) |
06:15:46 | * | sz0 joined #nim |
06:30:34 | * | happycoder joined #nim |
06:34:15 | * | dddddd quit (Remote host closed the connection) |
06:45:21 | * | nsf joined #nim |
06:56:00 | * | happycoder quit (Ping timeout: 248 seconds) |
06:56:43 | * | rauss quit (Quit: WeeChat 2.0.1) |
07:23:59 | FromGitter | <mratsim> @zacharycarter I think I saw an article with lots of game engines recently, from an unitiated point of view it seems like the wild wild west of JavaScript frameworks: Banshee, Godot, Urho3d, Ogre, Unity, Unreal Engine, CryEngine, Atomics, .... |
07:27:38 | FromGitter | <tekjar> Hi. How do I check list of support cpus while (cross)compiling? |
07:29:33 | FromGitter | <mratsim> @tekjar https://nim-lang.org/docs/nimc.html#cross-compilation |
07:37:26 | FromGitter | <tekjar> @mratsim Thanks that helps. But I want to know list of supported cpus. For example I want to compile a small program to stm32 f3 discovery micontroller. |
07:53:44 | FromGitter | <mratsim> Anything that has a C compiler though you might need to tinker something nim.cfg maybe? |
07:54:39 | FromGitter | <mratsim> Iirc Nim produces platform specific C code (Linux, osx, windows, haiku, Android ...) |
07:54:47 | FromGitter | <mratsim> But not CPU specific. |
08:06:02 | * | yglukhov joined #nim |
08:36:13 | * | Vladar joined #nim |
08:59:11 | * | cspar quit (Ping timeout: 248 seconds) |
09:01:01 | * | xet7 quit (Quit: Leaving) |
09:03:12 | * | xet7 joined #nim |
09:03:56 | * | gmpreussner quit (Ping timeout: 252 seconds) |
09:05:11 | * | gmpreussner joined #nim |
09:11:05 | * | cspar joined #nim |
09:14:58 | * | xet7 quit (Quit: Leaving) |
09:17:01 | * | xet7 joined #nim |
09:17:44 | * | jjido joined #nim |
09:29:06 | * | radagast joined #nim |
09:29:16 | * | Trustable joined #nim |
09:38:22 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:44:37 | * | Yardanico joined #nim |
09:54:38 | * | claudiuinberlin joined #nim |
09:58:34 | * | sz0 quit (Quit: Connection closed for inactivity) |
10:11:08 | Yardanico | ohh, I have nim 0.17.1 (2017-08-07) in my hackintosh macos :) |
10:15:29 | * | gokr joined #nim |
10:42:36 | * | Yardanico quit (Quit: My Hackintosh has gone to sleep. ZZZzzz…) |
10:44:56 | * | gokr quit (Ping timeout: 260 seconds) |
10:48:59 | * | Yardanico joined #nim |
10:53:06 | * | cspar quit (Ping timeout: 260 seconds) |
11:07:36 | * | Yardanico quit (Quit: Quitting...) |
11:07:54 | * | Yardanico joined #nim |
11:14:19 | * | SitiSchu quit (Quit: Leaving) |
11:22:15 | * | SitiSchu joined #nim |
11:23:43 | FromGitter | <tekjar> @mratsim Thanks it worked.. --cpu is either arm or avr based on 32 or 16 bit which is very confusing |
11:23:57 | FromGitter | <tekjar> E.g msp code here is using avr |
11:23:58 | FromGitter | <tekjar> https://github.com/lonetech/nim-msp430/blob/master/nim.cfg |
11:24:30 | FromGitter | <mratsim> cool, glad it worked :) |
11:44:38 | * | vlad1777d joined #nim |
11:48:36 | * | xkapastel quit (Quit: Connection closed for inactivity) |
11:51:17 | * | Yardanico quit (Quit: Quitting...) |
11:53:20 | * | Yardanico joined #nim |
12:04:08 | * | Yardanico quit (Quit: Quitting...) |
12:08:43 | * | Yardanico joined #nim |
12:17:26 | * | dddddd joined #nim |
12:19:33 | * | SitiSchu quit (Read error: Connection reset by peer) |
12:23:07 | * | Yardanico quit (Quit: Quitting...) |
12:35:32 | * | Yardanico joined #nim |
12:53:09 | * | Trustable quit (Remote host closed the connection) |
13:09:26 | * | vqrs quit (Ping timeout: 255 seconds) |
13:26:10 | dom96 | Happy holidays everyone :) |
13:26:22 | Yardanico | Thanks :) |
13:26:49 | GitDisc | <NopeDK> Merry Christmas! |
13:27:09 | FromGitter | <alehander42> Merry Christmas :) |
13:32:48 | * | miran joined #nim |
13:41:20 | * | vqrs joined #nim |
13:46:00 | * | jjido joined #nim |
13:47:05 | * | jjido quit (Client Quit) |
14:01:40 | FromGitter | <mratsim> uh? already? |
14:02:13 | Yardanico | wow, type "christmas" in google |
14:04:51 | GitDisc | <NopeDK> Mratsim, we Danes are sane and celebrate on Christmas Eve ;) |
14:05:31 | federico3 | Yardanico: better type "festivus" |
14:05:43 | Yardanico | wtf :D |
14:09:28 | * | marenz_ joined #nim |
14:13:59 | * | SenasOzys quit (Ping timeout: 268 seconds) |
14:19:56 | * | SenasOzys joined #nim |
14:53:19 | * | SenasOzys quit (Ping timeout: 248 seconds) |
14:58:28 | FromGitter | <zacharycarter> @mratsim yeah there are a lot of options out there |
15:00:59 | * | SenasOzys joined #nim |
15:33:13 | * | natrys joined #nim |
16:16:57 | * | MJCaley joined #nim |
17:04:24 | * | sleepyqt joined #nim |
17:05:01 | * | xkapastel joined #nim |
17:47:41 | Araq | Merry Christmas! |
17:53:30 | * | obadz joined #nim |
17:54:01 | obadz | Is there a reason that [] is defined over all refs rather than just the not nil subset? |
17:54:44 | Yardanico | "not nil" still has bugs |
17:54:46 | * | MJCaley quit (Quit: MJCaley) |
17:55:09 | obadz | So is the plan to change the [] type signature once the not nil bugs are squashed? |
17:55:47 | Yardanico | Well I don't know if it's planned or not |
17:59:51 | obadz | is there a way to unimport a symbol? Like if I don't want to be able to see proc `[]`[A](x: ref A): A ? |
18:00:07 | obadz | but keep the other instances of `[]` like array index access |
18:00:25 | Yardanico | If it's in system module - no |
18:01:01 | obadz | and otherwise? |
18:01:53 | Yardanico | https://nim-lang.org/docs/manual.html#modules-import-statement |
18:02:20 | Yardanico | But it works bad for overloaded procs |
18:02:31 | Araq | don't use 'ref' if you dislike 'nil' so much |
18:03:32 | obadz | I don't see a way to exclude some overloads while importing others |
18:03:50 | obadz | Araq: I don't mind nil, I don't love preventable nil dereferencing though.. |
18:05:16 | Araq | before you fight the language you have to use it |
18:05:47 | obadz | what do you mean? |
18:06:01 | Araq | "omg, I read about Hoare's trillion dollar mistake and my Java code is full of null bugs" does *not* deserve immediate actions in your Nim code |
18:07:40 | Araq | nil bugs need to have a serious cost before you castigate yourself in trying to prevent them |
18:08:33 | obadz | my little network tunneling tool is unlikely to ever cost a trillion $s when it crashes, but does that mean I should embrace preventable segfaults? |
18:08:55 | Araq | it means you need to focus on real problems |
18:09:11 | obadz | which I have had btw, in a single file program.. |
18:10:20 | obadz | out of curiosity, if you don't care at all about nil dereferencing, why did you let 'not nil' in the compiler's codebase? |
18:10:38 | Araq | because I don't care. |
18:14:13 | Araq | when your software crashes you need to investigate and see why. "I deref'ed nil" is an obvious cause but being forced to write 'if x == nil: die"internal error" ' won't improve your software quality |
18:15:08 | * | MJCaley joined #nim |
18:16:18 | obadz | Agreed that putting if x == nil everywhere doesn't help |
18:16:37 | obadz | But if the compiler is able to prove in many cases that the refs are not nil, then I don't need the runtime check |
18:16:52 | obadz | And if it could tell me when it cannot prove, then I can add the runtime check then.. |
18:17:53 | obadz | If the feature takes time and effort to implement and nobody has time, I think that's fine.. but it seems you're telling me you think the feature is worthless to start with? |
18:18:11 | obadz | i.e. you wouldn't merge it if someone offered it? |
18:19:53 | Araq | I don't mind getting 'not nil' more stable and in fact I have fixed plenty of bugs concerning this feature. |
18:20:34 | Araq | but I also see Rust code full of 'unwrap's and plenty of people who just continue to use Python instead |
18:21:24 | Araq | for me types are an aid in readability and efficiency for correctness it's mostly worthless |
18:21:59 | Araq | it's nice to be early told about mistakes though, these things are hard to measure |
18:22:00 | obadz | Whoa that's interesting |
18:22:46 | obadz | I guess coming from Haskell I do think of correctness (in some sense) as a major advantage of types |
18:23:12 | Araq | I wrote the "lambda lifting" pass 3x in the compiler |
18:23:39 | Araq | it probably still has bugs in some bizzare corner cases |
18:24:00 | * | cspar joined #nim |
18:24:07 | Araq | static typing doesn't help in catching these bugs |
18:24:24 | Araq | it might speed up development though, but that's hard to measure |
18:24:30 | obadz | Agree static typing doesn't catch all types of bugs |
18:25:00 | Araq | it helps readability and it helps a code generator to produce decent asm code, that's good enough. |
18:25:28 | obadz | But nil dereferencing (and memory corruption) that can sometimes be hard to track down could be caught (except for FFI stuff). |
18:25:51 | Araq | it never is hard to track down. |
18:26:06 | Araq | plenty of other corruptions can take weeks to track. |
18:26:24 | Araq | nil isn't among these problems. |
18:26:48 | obadz | Fair enough I lump it in the family of memory management errors |
18:27:25 | obadz | Though if I understand correctly behavior of null pointers isn't well defined once gcc optimizes stuff? |
18:27:44 | Araq | yeah, well, never seen that in practice. |
18:27:56 | Araq | I know the Linux kernel is affected yadda yadda |
18:30:24 | obadz | k, thanks for the discussion. |
18:30:35 | Araq | once you get into concurrency static typing becomes interesting again but you need to solve the real problems |
18:30:48 | Araq | replacing 'nil' with Option[T] won't cut it. |
18:31:21 | Araq | you need more powerful constructs. for example in Nim's parallel construct I try to prove disjoint array slices |
18:31:40 | obadz | Yeah Pony has some really interesting concurrency types |
18:32:05 | obadz | Like ownership attributes |
18:33:00 | obadz | I've got to run, cheers. |
18:33:02 | * | obadz quit (Quit: WeeChat 1.9.1) |
18:33:04 | Araq | bye |
18:47:21 | * | Jesin quit (Quit: Leaving) |
18:56:21 | * | MJCaley quit (Quit: MJCaley) |
19:00:41 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
19:02:21 | * | Jesin joined #nim |
19:10:33 | * | natrys quit (Quit: natrys) |
19:10:49 | * | natrys joined #nim |
19:34:55 | * | iAmSlow joined #nim |
19:35:25 | iAmSlow | so my continuo on nim expoloring , only thing atm i dont get is OOP in nim |
19:35:47 | Yardanico | it's here, but it's not main nim idiom |
19:35:55 | Yardanico | you can code in OOP, but usually you don't do it :0 |
19:36:08 | iAmSlow | i saw on nim turtorial but was kinda konfusing for me |
19:36:15 | Yardanico | what was confusing? |
19:37:22 | Yardanico | you have methods and objects |
19:37:28 | Yardanico | you can have inheritance |
19:39:21 | iAmSlow | i saw some macro struff on turtorial |
19:39:33 | Yardanico | it's not really related to OOP |
19:39:47 | Yardanico | macros are powerful, but you need to actually learn them |
19:39:50 | iAmSlow | it kinda looked like 10 time more complicated, then just createing a class BlaBla {} in c# |
19:39:58 | Yardanico | macros aren't OOP |
19:40:21 | iAmSlow | are marcors just like code formator like typing speedup |
19:40:30 | Yardanico | more powerful than that |
19:40:53 | Yardanico | they accept AST of the Nim code, and they can do whatever they want with that AST, and return modified AST back |
19:40:55 | Yardanico | for OOP - https://nim-lang.org/docs/manual.html#multi-methods |
19:41:26 | FromGitter | <RedBeard0531> Are vtptr/vtref intended to replace methods once they are solid or are they more complementary? |
19:42:07 | Yardanico | Well I think they won't replace methods |
19:42:34 | FromGitter | <RedBeard0531> It seems like most languages use one or the other for dynamic dispatch. I'm not aware of any other that offer both, so I'm not clear one when you'd prefer one or the other when both are available. |
19:42:34 | Yardanico | But I don't really interested in vtptr/vtref yet :) They will, however, allow you to use concepts at runtime |
19:43:00 | Yardanico | you can have some info here if you didn't already read it - https://nim-lang.org/docs/manual.html#generics-vtable-types |
19:54:16 | * | cspar quit (Ping timeout: 272 seconds) |
19:56:53 | FromGitter | <data-man> @Araq: I'm working on a bench template. What to do with the getTicks proc? Maybe put it to the times module? Or to the new timers module? |
19:57:16 | iAmSlow | sorry was afk for second , will try |
19:57:18 | Yardanico | data-man: you can also look at nimbench for benchmarks :) |
19:57:20 | FromGitter | <RedBeard0531> Is it possible to tell the compiler that some globals are safe to access from other threads? Assuming it actually is safe to access variables that are initialized at startup and never modified once the program goes multi-threaded. |
19:57:22 | Araq | there is already nimbench |
19:57:23 | Yardanico | I mean for example |
19:57:51 | Araq | RedBeard0531 the compiler already knows and disagrees with you :P |
19:58:50 | * | FromGitter * RedBeard0531 tries yelling LOUDER at the compiler until it shuts up... |
20:00:25 | FromGitter | <RedBeard0531> Are global let strings safe to access from other threads or is even that unsafe? |
20:00:59 | iAmSlow | and hmm, i saw i cant declear function below the call or at least on online nim compiler |
20:01:08 | Yardanico | wat? |
20:01:17 | iAmSlow | i cant do KillMe() |
20:01:26 | iAmSlow | and 10 row beloow make |
20:01:34 | iAmSlow | proc KillMe() |
20:01:45 | Yardanico | you need to forward declare it |
20:01:55 | Yardanico | Sorry for asking that, but why do you have a lot of typos in your messages? |
20:02:27 | iAmSlow | yep, in c# i can declare anywhere , its not a big issue just format wise |
20:02:46 | iAmSlow | cuz i am not nativ english and i kinda dont care about typos , sorry |
20:03:09 | Yardanico | Well a lot of people here aren't native english speakers :) |
20:03:22 | Yardanico | iAmSlow you can also use {.reorder: on.} pragma |
20:03:52 | iAmSlow | even better |
20:04:33 | iAmSlow | duno, i will start learning nim probbably as a hobby for now, but i think it can have greate future |
20:05:30 | iAmSlow | really i dont see anything bad about it, moste stuff is minor , only thing would like to see is CaseSensiive + { brackets mode :) |
20:05:57 | Yardanico | there's brackets - so called "code skins", but I doubt they'll be supported in 1.0 |
20:06:40 | Yardanico | and case sensitive will not happen (at least for 1.0) |
20:06:45 | iAmSlow | why dont, ist just text vise , editor itself can have mode to on compile fomat to whitpsces |
20:07:02 | iAmSlow | ^^^ code skins |
20:07:21 | Yardanico | because it would be even harder to understand code written by someone else |
20:08:39 | iAmSlow | turn on turn off mod in editor ? |
20:08:52 | iAmSlow | vs code or whatewer |
20:09:04 | Yardanico | well you'll need to add code skin support to the editor then :) |
20:18:43 | iAmSlow | and you saying 1.0 whoe time , zip on nimste is 0.17 , so it jumped 0.83 or what :) |
20:19:02 | Yardanico | it doesn't really matter |
20:19:13 | Yardanico | it could be 17.2 instead of 0.17.2 |
20:19:46 | iAmSlow | ye i know it doset metter just asked are devs rounding to 1 or what |
20:19:55 | Yardanico | 1.0 means stable release |
20:20:42 | Yardanico | You don't have to release all versions before 1.0 |
21:03:32 | * | sleepyqt quit (Read error: Connection reset by peer) |
21:10:46 | * | SenasOzys_ joined #nim |
21:10:48 | * | SenasOzys quit (Read error: Connection reset by peer) |
21:13:21 | * | miran_ joined #nim |
21:13:35 | * | miran quit (Ping timeout: 248 seconds) |
21:22:47 | * | Vladar quit (Quit: Leaving) |
21:29:43 | * | miran_ quit (Quit: Konversation terminated!) |
21:29:45 | * | Jesin quit (Ping timeout: 264 seconds) |
21:36:02 | * | Jesin joined #nim |
21:36:03 | FromGitter | <Varriount> @RedBeard0531 Why not use const strings? |
21:36:30 | FromGitter | <RedBeard0531> They depend on cmdline arguments |
21:39:28 | FromGitter | <data-man> @Araq: Sorry to ask, but you mean that the bench template isn't needed? |
21:42:39 | FromGitter | <data-man> Now it looks like this: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a401f4fffa3e37919779279] |
21:43:10 | Yardanico | are you sure it's needed to integrate bench into unittest? I'm not against it but still |
21:43:19 | Yardanico | Araq means that there's a good "nimbench" library for benchmarking |
21:43:26 | Yardanico | it uses special C code |
21:43:38 | Yardanico | to ensure that compiler doesn't optimize away unused variables |
21:43:47 | Yardanico | (just a few lines though) |
21:44:23 | Yardanico | BB guys, going to sleep |
21:44:33 | * | Yardanico quit (Quit: Quitting...) |
21:45:41 | FromGitter | <data-man> @Yardanico: https://github.com/nim-lang/Nim/pull/6601 |
21:54:36 | * | nsf quit (Quit: WeeChat 1.9.1) |
22:07:07 | FromGitter | <kless> I just test nim (nimx) at ubuntu but Iget an error: Error: cannot open 'nimx/window' |
22:07:15 | FromGitter | <kless> how to fix it? |
22:27:18 | * | vivus joined #nim |
22:40:56 | FromGitter | <Yardanico> Did you install nimx via nimble? |
22:48:57 | * | SenasOzys_ quit (Ping timeout: 240 seconds) |
23:08:12 | FromGitter | <kless> yes |
23:43:53 | FromGitter | <Yardanico> Well that's strange |
23:46:48 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
23:48:18 | * | natrys quit (Quit: natrys) |