<< 24-12-2017 >>

00:01:30*Tiberium joined #nim
00:06:25GitDisc<NopeDK> What about testing the tests of unittest to make sure that unittest tests correctly?
00:07:08Araqalso known as the "who watches the watchmen" problem
00:07:47Araqand no, "the watchwomen of course" doesn't count as an answer
00:08:34GitDisc<NopeDK> Adrian Veidt is the answer to that problem.
00:09:18Araqah 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:04FromGitter<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:30Araqcan't we make -O1 the default instead in the config
00:52:42*Yardanic_ joined #nim
00:52:43Araqwithout 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:26FromGitter<zacharycarter> https://github.com/BearishSun/BansheeEngine
02:53:41*vlad1777d_ quit (Quit: Leaving)
02:54:18FromGitter<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:59FromGitter<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:38FromGitter<tekjar> Hi. How do I check list of support cpus while (cross)compiling?
07:29:33FromGitter<mratsim> @tekjar https://nim-lang.org/docs/nimc.html#cross-compilation
07:37:26FromGitter<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:44FromGitter<mratsim> Anything that has a C compiler though you might need to tinker something nim.cfg maybe?
07:54:39FromGitter<mratsim> Iirc Nim produces platform specific C code (Linux, osx, windows, haiku, Android ...)
07:54:47FromGitter<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:08Yardanicoohh, 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:43FromGitter<tekjar> @mratsim Thanks it worked.. --cpu is either arm or avr based on 32 or 16 bit which is very confusing
11:23:57FromGitter<tekjar> E.g msp code here is using avr
11:23:58FromGitter<tekjar> https://github.com/lonetech/nim-msp430/blob/master/nim.cfg
11:24:30FromGitter<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:10dom96Happy holidays everyone :)
13:26:22YardanicoThanks :)
13:26:49GitDisc<NopeDK> Merry Christmas! 
13:27:09FromGitter<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:40FromGitter<mratsim> uh? already?
14:02:13Yardanicowow, type "christmas" in google
14:04:51GitDisc<NopeDK> Mratsim, we Danes are sane and celebrate on Christmas Eve ;)
14:05:31federico3Yardanico: better type "festivus"
14:05:43Yardanicowtf :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:28FromGitter<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:41AraqMerry Christmas!
17:53:30*obadz joined #nim
17:54:01obadzIs there a reason that [] is defined over all refs rather than just the not nil subset?
17:54:44Yardanico"not nil" still has bugs
17:54:46*MJCaley quit (Quit: MJCaley)
17:55:09obadzSo is the plan to change the [] type signature once the not nil bugs are squashed?
17:55:47YardanicoWell I don't know if it's planned or not
17:59:51obadzis 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:07obadzbut keep the other instances of `[]` like array index access
18:00:25YardanicoIf it's in system module - no
18:01:01obadzand otherwise?
18:01:53Yardanicohttps://nim-lang.org/docs/manual.html#modules-import-statement
18:02:20YardanicoBut it works bad for overloaded procs
18:02:31Araqdon't use 'ref' if you dislike 'nil' so much
18:03:32obadzI don't see a way to exclude some overloads while importing others
18:03:50obadzAraq: I don't mind nil, I don't love preventable nil dereferencing though..
18:05:16Araqbefore you fight the language you have to use it
18:05:47obadzwhat do you mean?
18:06:01Araq"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:40Araqnil bugs need to have a serious cost before you castigate yourself in trying to prevent them
18:08:33obadzmy 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:55Araqit means you need to focus on real problems
18:09:11obadzwhich I have had btw, in a single file program..
18:10:20obadzout 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:38Araqbecause I don't care.
18:14:13Araqwhen 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:18obadzAgreed that putting if x == nil everywhere doesn't help
18:16:37obadzBut 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:52obadzAnd if it could tell me when it cannot prove, then I can add the runtime check then..
18:17:53obadzIf 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:11obadzi.e. you wouldn't merge it if someone offered it?
18:19:53AraqI don't mind getting 'not nil' more stable and in fact I have fixed plenty of bugs concerning this feature.
18:20:34Araqbut I also see Rust code full of 'unwrap's and plenty of people who just continue to use Python instead
18:21:24Araqfor me types are an aid in readability and efficiency for correctness it's mostly worthless
18:21:59Araqit's nice to be early told about mistakes though, these things are hard to measure
18:22:00obadzWhoa that's interesting
18:22:46obadzI guess coming from Haskell I do think of correctness (in some sense) as a major advantage of types
18:23:12AraqI wrote the "lambda lifting" pass 3x in the compiler
18:23:39Araqit probably still has bugs in some bizzare corner cases
18:24:00*cspar joined #nim
18:24:07Araqstatic typing doesn't help in catching these bugs
18:24:24Araqit might speed up development though, but that's hard to measure
18:24:30obadzAgree static typing doesn't catch all types of bugs
18:25:00Araqit helps readability and it helps a code generator to produce decent asm code, that's good enough.
18:25:28obadzBut nil dereferencing (and memory corruption) that can sometimes be hard to track down could be caught (except for FFI stuff).
18:25:51Araqit never is hard to track down.
18:26:06Araqplenty of other corruptions can take weeks to track.
18:26:24Araqnil isn't among these problems.
18:26:48obadzFair enough I lump it in the family of memory management errors
18:27:25obadzThough if I understand correctly behavior of null pointers isn't well defined once gcc optimizes stuff?
18:27:44Araqyeah, well, never seen that in practice.
18:27:56AraqI know the Linux kernel is affected yadda yadda
18:30:24obadzk, thanks for the discussion.
18:30:35Araqonce you get into concurrency static typing becomes interesting again but you need to solve the real problems
18:30:48Araqreplacing 'nil' with Option[T] won't cut it.
18:31:21Araqyou need more powerful constructs. for example in Nim's parallel construct I try to prove disjoint array slices
18:31:40obadzYeah Pony has some really interesting concurrency types
18:32:05obadzLike ownership attributes
18:33:00obadzI've got to run, cheers.
18:33:02*obadz quit (Quit: WeeChat 1.9.1)
18:33:04Araqbye
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:25iAmSlowso my continuo on nim expoloring , only thing atm i dont get is OOP in nim
19:35:47Yardanicoit's here, but it's not main nim idiom
19:35:55Yardanicoyou can code in OOP, but usually you don't do it :0
19:36:08iAmSlowi saw on nim turtorial but was kinda konfusing for me
19:36:15Yardanicowhat was confusing?
19:37:22Yardanicoyou have methods and objects
19:37:28Yardanicoyou can have inheritance
19:39:21iAmSlowi saw some macro struff on turtorial
19:39:33Yardanicoit's not really related to OOP
19:39:47Yardanicomacros are powerful, but you need to actually learn them
19:39:50iAmSlowit kinda looked like 10 time more complicated, then just createing a class BlaBla {} in c#
19:39:58Yardanicomacros aren't OOP
19:40:21iAmSloware marcors just like code formator like typing speedup
19:40:30Yardanicomore powerful than that
19:40:53Yardanicothey accept AST of the Nim code, and they can do whatever they want with that AST, and return modified AST back
19:40:55Yardanicofor OOP - https://nim-lang.org/docs/manual.html#multi-methods
19:41:26FromGitter<RedBeard0531> Are vtptr/vtref intended to replace methods once they are solid or are they more complementary?
19:42:07YardanicoWell I think they won't replace methods
19:42:34FromGitter<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:34YardanicoBut I don't really interested in vtptr/vtref yet :) They will, however, allow you to use concepts at runtime
19:43:00Yardanicoyou 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:53FromGitter<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:16iAmSlowsorry was afk for second , will try
19:57:18Yardanicodata-man: you can also look at nimbench for benchmarks :)
19:57:20FromGitter<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:22Araqthere is already nimbench
19:57:23YardanicoI mean for example
19:57:51AraqRedBeard0531 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:25FromGitter<RedBeard0531> Are global let strings safe to access from other threads or is even that unsafe?
20:00:59iAmSlowand hmm, i saw i cant declear function below the call or at least on online nim compiler
20:01:08Yardanicowat?
20:01:17iAmSlowi cant do KillMe()
20:01:26iAmSlowand 10 row beloow make
20:01:34iAmSlowproc KillMe()
20:01:45Yardanicoyou need to forward declare it
20:01:55YardanicoSorry for asking that, but why do you have a lot of typos in your messages?
20:02:27iAmSlowyep, in c# i can declare anywhere , its not a big issue just format wise
20:02:46iAmSlowcuz i am not nativ english and i kinda dont care about typos , sorry
20:03:09YardanicoWell a lot of people here aren't native english speakers :)
20:03:22YardanicoiAmSlow you can also use {.reorder: on.} pragma
20:03:52iAmSloweven better
20:04:33iAmSlowduno, i will start learning nim probbably as a hobby for now, but i think it can have greate future
20:05:30iAmSlowreally i dont see anything bad about it, moste stuff is minor , only thing would like to see is CaseSensiive + { brackets mode :)
20:05:57Yardanicothere's brackets - so called "code skins", but I doubt they'll be supported in 1.0
20:06:40Yardanicoand case sensitive will not happen (at least for 1.0)
20:06:45iAmSlowwhy dont, ist just text vise , editor itself can have mode to on compile fomat to whitpsces
20:07:02iAmSlow^^^ code skins
20:07:21Yardanicobecause it would be even harder to understand code written by someone else
20:08:39iAmSlowturn on turn off mod in editor ?
20:08:52iAmSlowvs code or whatewer
20:09:04Yardanicowell you'll need to add code skin support to the editor then :)
20:18:43iAmSlowand you saying 1.0 whoe time , zip on nimste is 0.17 , so it jumped 0.83 or what :)
20:19:02Yardanicoit doesn't really matter
20:19:13Yardanicoit could be 17.2 instead of 0.17.2
20:19:46iAmSlowye i know it doset metter just asked are devs rounding to 1 or what
20:19:55Yardanico1.0 means stable release
20:20:42YardanicoYou 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:03FromGitter<Varriount> @RedBeard0531 Why not use const strings?
21:36:30FromGitter<RedBeard0531> They depend on cmdline arguments
21:39:28FromGitter<data-man> @Araq: Sorry to ask, but you mean that the bench template isn't needed?
21:42:39FromGitter<data-man> Now it looks like this: ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5a401f4fffa3e37919779279]
21:43:10Yardanicoare you sure it's needed to integrate bench into unittest? I'm not against it but still
21:43:19YardanicoAraq means that there's a good "nimbench" library for benchmarking
21:43:26Yardanicoit uses special C code
21:43:38Yardanicoto ensure that compiler doesn't optimize away unused variables
21:43:47Yardanico(just a few lines though)
21:44:23YardanicoBB guys, going to sleep
21:44:33*Yardanico quit (Quit: Quitting...)
21:45:41FromGitter<data-man> @Yardanico: https://github.com/nim-lang/Nim/pull/6601
21:54:36*nsf quit (Quit: WeeChat 1.9.1)
22:07:07FromGitter<kless> I just test nim (nimx) at ubuntu but Iget an error: Error: cannot open 'nimx/window'
22:07:15FromGitter<kless> how to fix it?
22:27:18*vivus joined #nim
22:40:56FromGitter<Yardanico> Did you install nimx via nimble?
22:48:57*SenasOzys_ quit (Ping timeout: 240 seconds)
23:08:12FromGitter<kless> yes
23:43:53FromGitter<Yardanico> Well that's strange
23:46:48*claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com)
23:48:18*natrys quit (Quit: natrys)