<< 17-01-2018 >>

00:03:31*xkapastel quit (Quit: Connection closed for inactivity)
00:06:08*xkapastel joined #nim
00:16:16*UxerUospr joined #nim
00:36:34UxerUosprI need some advice: https://gitlab.com/snippets/1693632
00:36:53UxerUosprI'm trying to do something possibly stupid but I can't get over it in my head
00:37:19UxerUosprI want to pass a value to reference a name of tuple/object
00:37:43UxerUosprThe code is probably really broken since I didn't try building it out or compiling in this mock up
00:38:27UxerUosprIs what I'm trying to do possible or worthwhile? Thanks.
00:39:09Araqit works if you use a template but it's stupid
00:39:29UxerUosprhaha
00:39:31UxerUosprokay
00:40:38Araq1. Thing should be an object
00:41:22Araq2. introduce a PossibleFields = enum name, place
00:41:47Araq3. Use fields: array[PossibleFields, string] in the object
00:42:12Araq-> you get the flexibility you need
00:43:35UxerUosprCool, I will work on it. Thanks. I'm not really clear on the use-case difference for tuples and objects so I just defaulted to tuple for some reason.
00:43:53Araqbut the setup is also dubious, the parser could take a filter, then you don't need to create stuff just to throw it away, or maybe there is some other design. it smells like Clojure code
00:45:23*xet7 quit (Ping timeout: 276 seconds)
00:45:29UxerUosprThe thought there is that I'd have one sequence which I'd reuse for multiple filters if desired, but yeah, that makese since. I'm only working with a few thousand objects so filtering in the parser would be okay
00:45:56UxerUosprI've only ever looked at clojure examples and got scared off... so that's interesting.
00:53:21*gokr left #nim (#nim)
01:00:32*xet7 joined #nim
01:30:30*dddddd quit (Remote host closed the connection)
01:33:21GitDisc<awr> $ nim c -d:release lib/nimrtl.nim
01:33:21GitDisc<awr> Error: unhandled exception: No such file or directory [OSError]
01:33:25GitDisc<awr> damn it
01:34:20GitDisc<awr> I've no idea what's causing this lol. `nim dump` shows the nim lib folder so idk what's wrong
01:41:24GitDisc<awr> hm...doesn't work on windows either
01:41:26GitDisc<awr> https://nim-lang.org/docs/nimc.html#dll-generation
02:04:57*vlad1777d quit (Ping timeout: 240 seconds)
03:02:59*chemist69 quit (Ping timeout: 256 seconds)
03:16:28*chemist69 joined #nim
03:28:28*sz0 quit (Quit: Connection closed for inactivity)
03:39:00FromGitter<Quelklef> What would happen if I made a nimble package with an earlier version of itself as a dependency?
03:40:17FromGitter<Quelklef> Would this fail, bootstrap on a compiled version of its earlier self (nice), or bootstrap on an uncompiled version of its earlier self (ugh)
03:41:26FromGitter<Quelklef> I'm assuming it's either the first or last option because you can't import compiled nim files
03:48:50*njittam joined #nim
03:52:34*endragor joined #nim
03:57:38*marenz__ joined #nim
04:00:04*UxerUospr quit (Quit: Lost terminal)
04:00:35*marenz_ quit (Ping timeout: 240 seconds)
04:31:24*MJCaley joined #nim
04:41:41*MJCaley quit (Quit: MJCaley)
04:42:39*njittam quit (Ping timeout: 260 seconds)
04:54:56*c0ntribut0r joined #nim
05:11:37*c0ntribut0r left #nim ("Leaving")
05:12:01*c0ntribut0r joined #nim
05:16:18*c0ntribut0r quit (Read error: Connection reset by peer)
05:16:43*gmpreussner quit (Ping timeout: 256 seconds)
05:19:48*c0ntribut0r joined #nim
05:28:35*marenz__ quit (Ping timeout: 240 seconds)
05:35:25*c0ntribut0r quit (Ping timeout: 256 seconds)
05:36:13*c0ntribut0r joined #nim
05:45:13*gmpreussner joined #nim
06:15:51*yglukhov joined #nim
06:20:51*yglukhov quit (Ping timeout: 268 seconds)
06:27:00*thewrinklyninja joined #nim
06:36:34*devdri joined #nim
06:37:59*nsf joined #nim
06:41:18*devdri quit (Client Quit)
06:45:17*devdri joined #nim
06:47:09avsejAraq, is it normal that travis marks the build broken when the log is good? https://travis-ci.org/nim-lang/Nim/jobs/329616925
06:47:25avsej> Done. Your build exited with 0.
06:47:27avsejis last line
07:03:30FromGitter<gogolxdong> Which library do you usually use for mysql ?
07:14:25*devdri quit ()
07:18:24*thewrinklyninja quit (Ping timeout: 260 seconds)
07:28:59*gokr joined #nim
07:33:39*Lord_Nightmare quit (Ping timeout: 256 seconds)
07:38:29*Lord_Nightmare joined #nim
08:01:47*PMunch joined #nim
08:01:50*couven92 joined #nim
08:03:28*c0ntribut0r quit (Ping timeout: 265 seconds)
08:07:35*jjido joined #nim
08:09:26*c0ntribut0r joined #nim
08:23:58*c0ntribut0r quit (Read error: Connection reset by peer)
08:28:33*c0ntribut0r joined #nim
08:28:44*Vladar joined #nim
08:33:02*yglukhov joined #nim
08:35:12*yglukhov_ joined #nim
08:35:12*yglukhov quit (Read error: Connection reset by peer)
08:36:11*yglukhov_ quit (Remote host closed the connection)
08:36:25*yglukhov joined #nim
08:43:31*xkapastel quit (Quit: Connection closed for inactivity)
08:50:05*jjido quit (Ping timeout: 255 seconds)
09:02:09*floppydh joined #nim
09:03:35*leorize joined #nim
09:07:01leorizehi
09:07:23leorizeI'm porting Nim to Haiku
09:09:11leorizeIn Haiku pid is a thread id, and a collection of threads is called a team
09:09:49leorizeWhenever a team recieves SIGKILL, it would distribute SIGKILLTHR to every thread.
09:10:11def-hi leorize
09:10:49leorizeThis means that if you do osproc.kill(), the Process object would instead recieve SIGKILLTHR. This broke texitsignal test
09:10:54leorizehi def-
09:11:29leorizeI would like to ask if I could add a new signal constant to Nim, and where I should put it into
09:12:31def-right now we have a posix module that defines stuff like SIGKILL
09:13:17leorizeIt seems to be generated by detect.nim
09:13:17def-My naive approach would be to "when defined(haiku)" it in lib/posix/posix_linux_amd64_consts.nim and lib/posix/posix_other_consts.nim
09:13:34def-ah
09:13:39def-right
09:15:11def-not sure if adapting detect.nim is the right approach, maybe a direct definition in posix.nim
09:15:34def-since it's a special case just for haiku
09:16:50leorizeI suppose I should add it after the include statement in posix.nim?
09:17:06def-yes
09:17:54leorizethanks
09:19:23yglukhovAraq: hi. what is affected by disable optNilCheck?
09:20:00Araqnot much, the compiler only generates explicit nil checks for 'var T' iirc
09:20:23Araqso that proc_takes_var(p[]) triggers a nil deref exception
09:20:58yglukhovah ok. string(nil).len will still work, right?
09:21:07Araqyes
09:21:10yglukhovcool
09:22:32yglukhovAraq: "GC: enable precise global/thread ..." looks interesting. Does it allow better thread interop in any way?
09:23:28Araqit's about preventing crashes in rare circumstances with --threads:on
09:23:51AraqI doubt it caused a real crash anywhere but you can never know.
09:24:06yglukhovahh. how interesting. got a sample stack trace?
09:24:08Araqit also makes the GCs slightly faster
09:24:22yglukhovbecause i'm still having this gc problem on android
09:24:37Araqno stack trace, I couldn't trigger it with my evil gctest updates
09:25:00AraqI tried to break it but unsuccessful.
09:25:11yglukhovok
09:25:13Araqbut since the new way is much cleaner, I used it
09:25:26yglukhovcool. thanks for explanation
09:26:20Araqyou're not the only one with GC problems. though what I'm looking at now seems yet another MM problem
09:26:31Araqwell actually it doesn't make any sense
09:26:48AraqdumpInstances does not report a single instance of a 'string' object
09:26:58Araqthat's hard to imagine
09:27:35Araqtried --gc:v2 btw? it's incremental too and so makes the same realtime guarantees
09:27:57Araqwithout the cycle collector pauses
09:28:45yglukhovnope (
09:30:27PMunchHuh, I didn't know boehm was a C/C++ thing
09:30:35Araqconceptually v2 is easier to get right so maybe your crashes will disappear :-)
09:30:39*c0ntribut0r quit (Quit: Quit)
09:32:56Araqit crashes bootstrapping though and I haven't figured out why but then everything I do crashes bootstrapping (not nil strings)
09:35:04*vlad1777d joined #nim
09:37:56*yglukhov quit (Read error: Connection reset by peer)
09:38:08*yglukhov joined #nim
09:52:37leorizeanyone know where I could find the setStackBottom for libnimrtl?
09:53:31leorizegot SIGSEGV in dll/client.nim, but there aren't any debuginfo once I've got to nimrtl_setStackBottom
09:55:00FromGitter<alehander42> z
09:55:10FromGitter<alehander42> ops, mistyped *
10:04:14*leorize quit (Quit: WeeChat 2.0.1)
10:04:16yglukhovAraq: i think we'll try gc2 when we sort out other crashes, which we have some currently.
10:26:29*xet7 quit (Ping timeout: 276 seconds)
10:40:01*xet7 joined #nim
11:20:33*Yardanico joined #nim
11:31:44*MJCaley joined #nim
11:44:26*MJCaley quit (Quit: MJCaley)
11:52:41Araqthe biggest moron in computing was the bloke who came up with "memory overcommitment"
11:53:00Araqit's so much fun to have to restart a machine just because a program ran havok
11:54:14Araqoh fork() kinda requires it and Windoze sux because it lacks fork()? fuck off.
11:54:40Araqfork() is bullshit.
11:55:50Araqit's 2017, a user program made my whole OS unusable, keep that in mind when you use the word "security"
11:56:00Araqnever mind, it's 2018 already
11:56:58PMunchWell, there is a good reason for it when it comes to virtualization and sharing resources
11:57:47yglukhovhaha, true. i've seen nimsuggest bringing a machine down to a state when only reset helped :D
11:58:29PMunchWell on Linux you can often just tab over to a TTY and kill the offending program
11:59:05*vlad1777d quit (Ping timeout: 240 seconds)
11:59:27yglukhovthat surely sounds like a sane (sarcasm) approach =). I agree Linux could go a bit smarter in such cases.
12:01:32Araq"this flight is overbooked, but hey, you don't mind taking a parachute, do you?"
12:04:52Araqyglukhov: nimsuggest should use -d:nimMaxHeap these days
12:04:58Araqmaybe i forgot to patch it
12:06:48*Yardanico quit (Remote host closed the connection)
12:07:30*Yardanico joined #nim
12:07:31*Yardanico_ joined #nim
12:07:40*Yardanico_ quit (Remote host closed the connection)
12:11:09*endragor quit (Remote host closed the connection)
12:15:48*endragor joined #nim
12:18:40PMunchAraq, well overcommitment is more like overbooking an airplane. The airplane is full but there are still passengers, oh sorry do you mind waiting for the next flight?
12:19:20Araqnot true.
12:19:23Araq"An aircraft company discovered that it was cheaper to fly its planes with less fuel on board. The planes would be lighter and use less fuel and money was saved. On rare occasions however the amount of fuel was insufficient, and the plane would crash. This problem was solved by the engineers of the company by the development of a special OOF (out-of-fuel) mechanism. In emergency cases a passenger was selected and thrown out of the plane. (When nece
12:19:23Araqssary, the procedure was repeated.) A large body of theory was developed and many publications were devoted to the problem of properly selecting the victim to be ejected. Should the victim be chosen at random? Or should one choose the heaviest person? Or the oldest? Should passengers pay in order not to be ejected, so that the victim would be the poorest on board? And if for example the heaviest person was chosen, should there be a special exceptio
12:19:23Araqn in case that was the pilot? Should first class passengers be exempted? Now that the OOF mechanism existed, it would be activated every now and then, and eject passengers even when there was no fuel shortage. The engineers are still studying precisely how this malfunction is caused."
12:19:30PMunchAll the data is still there, just being swapped in and out of much slower memory. Most of the time it's fine and allows the airlines/machine to better allocate resources, but trouble arises when everyone actually show up.
12:19:38*yunfan joined #nim
12:20:02Araqactually it did fill up my HD completely.
12:20:14PMunchAh well, that is a problem :P
12:20:26yunfanhello, i am learning nim by the official turtorial (background, i am a python user for years), the `break blah` is really attracted me
12:20:36yunfanthen it cames the question, why continue dont support that too ?
12:21:04Araqwhat would it mean? loops don't have labels, only 'block' does
12:21:15Araqand 'block' cannot introduce a custom loop.
12:21:38Araqthere was some paper about how this is still "structured" control flow but I lost it ;-)
12:22:03PMunchHmm, it would be practical to be able to continue a specific loop though
12:22:27PMunchBut that would require some way to label it..
12:23:47yunfanah, sorry i got misunderstood of break
12:24:31yunfani used to thought on python, is it possible to support syntax like `break 1` `break 2`, to support break from nested loops
12:24:42*gokr quit (Quit: Leaving.)
12:25:14yunfanalso `continue 1` `continue 2`, i wonder if nim could support that? since python impl would import much more complex in runtime, i dont count on that would be accept
12:26:18PMunchYeah I think the problem with that is much harder control flow analysis
12:26:41Araq'continue 2' is a pretty bad idea.
12:26:52Araqfirstly, I don't want to count my nested loops.
12:26:56FromGitter<alehander42> honestly I've always wondered: when does somebody needs it and one can't just refactor into a function or while :?
12:27:04Araqsecondly that really don't work well with a macro system
12:27:24Araq'break' already doesn't work well with a macro sytem, 'break 2' makes it worse
12:27:38yunfanyou were right, it might got problem when working with macro
12:28:20yunfanbut that's quit useful in practise :D
12:28:34PMunchalehander42, you could always refactor as a while, but as yunfan points out they can be pretty useful
12:29:13PMunchfor x in columns: for y in rows: continue x # skip columns, continue y skips rows
12:29:22PMunchOr continue 1 and 2
12:29:55yunfanpwntus: well maybe there is a better refactoring way, i am open for that, but i disagree with a function replace
12:30:41PMunchIt's "prettier" than var x, y: int = 0; while x < columns.len: while y < rows.len: columns[x] to get the column, rows[y] to get the row and x++ and y++ to skip
12:31:03yunfancurrently i just use some FLAG variable for check in the rest of outer loop, to decide if i need run the rest logic
12:31:14PMunchyunfan, I think you replied to the wrong person :P
12:31:23PMunchpwntus, isn't very active in here unfortunately
12:31:43yunfanPMunch: ah, sorry, it was you i reply to :D
12:31:48yunfansorry pwntus
12:31:58PMunchYeah I figured :P
12:32:27PMunchBut it was alehander42 which proposed the function replace
12:32:45yunfanyes i knew that, but its you who agree with my idea
12:32:48PMunchGuessing he means a recursion but that has problem with blowing the stack..
12:33:09*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
12:33:26yunfanyes, its just like using pointers, you need to use it at your own risk, right?
12:33:40PMunchYeah, I personally find it a bit annoying to have to keep variables around that only hold an index or a flag on whether to skip or not unless I really need them for something
12:34:01PMunchLike if I need to clean something before continuing my loop then sure, but otherwise it's just a bit annoying
12:34:28yunfanPMunch: that's exactly what i need in daily python coding :D
12:34:53yunfananyway, break block could partly save that
12:34:59yunfani will continue reading
12:35:54Araqyou can rewrite 'continue' with 'break' and the manual even shows how to do that
12:37:10yunfanany links?
12:38:56*Yardanico quit (Remote host closed the connection)
12:39:06*Snircle joined #nim
12:39:09miranPMunch: "for x in columns: for y in rows: continue x # skip columns, continue y skips rows" --> isn't `continue x` the same as `break` in the inner loop?
12:40:08Araqhttps://nim-lang.org/docs/manual.html#statements-and-expressions-continue-statement
12:40:30FromGitter<alehander42> about the functions, I meant that sometimes instead of "break from the second outer loop" you can move that nested subloop into a function and directly return from it
12:41:28*Yardanico joined #nim
12:43:07PMunchmiran, hmm, yeah I guess it would be the same..
12:43:23PMunchBut if you had three levels then you would need it
12:43:25yunfanmiran: actually in practise, there will be many processing code after the inner loop, and sometimes you want to skip them
12:43:39PMunchOh yeah, that's true
12:44:02PMunchIf you have anything after the loop then break would run that code but a continue of the outer loop shouldn't run it
12:44:44PMunchalehander42, oh right. Yeah that would be possible. Although still not as "pretty"
12:45:26FromGitter<mratsim> You can use named blocks and break from them
12:46:52PMunchYes, again it's possible. But it would be nice if it could be baked into the syntax
12:46:57FromGitter<mratsim> https://github.com/mratsim/Arraymancer/blob/b061aefd27fb4f8c4a8f4155a388bf9dd5d743c7/src/tensor/backend/openmp.nim#L48-L68
12:49:05FromGitter<mratsim> I should probably rewrite that to use if else by the way
12:49:09PMunchYeah I know about block: break
12:55:30PMunchHere is an example: http://ix.io/EgP/
12:55:43PMunchIt would be cool if Nim could rewrite the first block to the secend block automatically
12:55:57PMunchThat way you could continue a loop
12:56:11PMunchAnd this could of course be implemnted for break as well
12:56:15PMunchBut with an outer block
13:01:09AraqPMunch: write a macro that does that :P
13:03:32PMunchYeah I'm starting to consider it :P
13:03:41*marenz__ joined #nim
13:03:49PMunchBut it still wouldn't work with the regular for :(
13:04:49Araqsure it would, write the macro as proc foo() {.betterBreaks.} = ...
13:05:24PMunchWait really?
13:05:44PMunchHow would that work?
13:06:19*Yardanico quit (Remote host closed the connection)
13:06:32*Yardanico joined #nim
13:11:12Araqit analyses the proc body looking for 'break forLoopVarName' and rewrites it?
13:11:20Araqstraight-forward.
13:13:23PMunchOh you mean putting the macro around the for loop
13:13:44FromGitter<krux02> Araq: have you any clue about my newest bug report? https://github.com/nim-lang/Nim/issues/7093
13:13:55PMunchOr wait, what's the pragma here for?
13:15:07FromGitter<krux02> I give up on compiler debugging, it is too much friction.
13:29:37*gokr joined #nim
13:43:22*Yardanico quit (Remote host closed the connection)
13:53:09*Jesin quit (Quit: Leaving)
13:53:56*xet7 quit (Ping timeout: 276 seconds)
13:57:15floppydhnever give up, never surrender
14:03:12*Yardanico joined #nim
14:06:56*Yardanico quit (Remote host closed the connection)
14:08:00*Yardanico joined #nim
14:09:37*xet7 joined #nim
14:22:33*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
14:24:30*wastedone_ joined #nim
14:29:05FromGitter<krux02> I would like to. But every time it is so frustrating.
14:30:49*xkapastel joined #nim
14:32:25Araqkrux02: it's just a bug, why would it be hard to debug?
14:34:37yunfanhey, is the default set implement by bit offset ?
14:35:01yunfani found its only support up to int16
14:35:15*gokr quit (Quit: Leaving.)
14:37:11Yardanicoyunfan, yes, if you want sets for any type, use "sets" stdlib module
14:40:30yunfanYardanico: ok .
14:41:12*Yardanico quit (Remote host closed the connection)
14:43:54yunfanYaiyan: so a set that support uint16 would cost 65536/32 = 2048 bytes?
14:47:06FromGitter<krux02> Araq: Because it is generally a very frustrating experience to debug the compiler no matter how simple the task is
14:47:39FromGitter<andreaferretti> @yunfan if you want arbitrary size bitsets there is https://github.com/unicredit/cello#bit-arrays
14:47:48Araqkoch temp c foo.nim # fix the bug :P
14:47:59Araqkrux02: is that a regression?
14:48:16FromGitter<krux02> the bug? no I don't think it's a regression.
14:48:24FromGitter<krux02> But I also think it could be easily fixed
14:57:08*Yardanico joined #nim
15:00:50*sendell joined #nim
15:01:21Araqwell it's a bit tricky indeed :P
15:01:52Araqthe compiler assumes that after proc x {.rewriteMe.} the result is still a proc declaration
15:02:03Araqbut you turned it into a statement list
15:02:41Araqthe sem'check recursion that deals with .rewriteMe must be redesigned a bit so that the full sem'check pass is re-entered
15:05:01Araqon the other hand it seems to be a one-liner
15:09:38*dddddd joined #nim
15:10:25*Yardanico quit (Quit: Leaving)
15:10:35*Yardanico joined #nim
15:14:40*azur_kind joined #nim
15:16:32FromGitter<krux02> Araq: I encountered this bug when I wanted to write a macro for a nicer iterator syntax
15:17:06FromGitter<krux02> https://github.com/nim-lang/Nim/issues/7047
15:17:48FromGitter<krux02> so that I could write `iterator foobar(): int {.newSyntax.}` but exactly that is broken
15:21:11*nsf quit (Quit: WeeChat 2.0.1)
15:22:11*Yardanico quit (Remote host closed the connection)
15:22:52*Yardanico joined #nim
15:27:53*Yardanico quit (Ping timeout: 255 seconds)
15:28:00FromGitter<gogolxdong> which library do you usually use for websocket?
15:28:01*endragor quit (Remote host closed the connection)
15:29:35*Yardanico joined #nim
15:30:48*endragor joined #nim
15:30:51FromGitter<mratsim> @yunfan there is intsets that is specialized for int and use some clever implementation (that I didn't have time to understand)
15:33:17*endragor_ joined #nim
15:35:53*endragor quit (Ping timeout: 276 seconds)
15:37:56*endragor_ quit (Ping timeout: 276 seconds)
15:43:40Araqgogolxdong: the one by 'niv'?
15:44:16FromGitter<gogolxdong> yes , I installed it
15:47:18FromGitter<gogolxdong> got some bugs.
15:47:41Araqcompile with -d:ssl
15:48:25FromGitter<gogolxdong> I did
15:48:34*Jesin joined #nim
15:49:16FromGitter<gogolxdong> ```code paste, see link``` ⏎ ⏎ `/root/.nimble/pkgs/websocket-0.2.1/websocket/shared.nim(87, 49) template/generic instantiation from here ⏎ /root/.nimble/pkgs/websocket-0.2.1/websocket/shared.nim(130, 14) Error: type mismatch: got (byte) but expected 'int'` [https://gitter.im/nim-lang/Nim?at=5a5f707cae53c15903fc4425]
15:50:44dom96try `nimble install websockets@#head`
15:50:51yunfanalso found the import is not elegant campared to python's
15:50:53dom96or websocket@#head actually
15:51:02dom96because it's for some reason not plural...
15:51:40dom96yunfan: It's much better ;)
15:51:59FromGitter<gogolxdong> with #head `/root/.nimble/pkgs/websocket-#head/websocket/client.nim(26, 63) Error: cannot open 'securehash'`
15:53:04Araqsecurehash is in the stdlib
15:53:05*gokr joined #nim
15:54:16dom96you must be running an old Nim
15:54:19dom96update to devel
15:56:35*azur_kind quit (Remote host closed the connection)
15:59:48Yardanicoyunfan, what do you mean about that?
15:59:59YardanicoI mean, why it's not "elegant"? :)
16:03:21*miran_ joined #nim
16:03:51*arnetheduck quit (Ping timeout: 256 seconds)
16:10:24*PMunch quit (Quit: Leaving)
16:23:37GitDisc<awr> I'm having some trouble using nimrtl in linux (on WSL)
16:24:11GitDisc<awr> i build libnimrtl.so and i have a main exe that is set to use nimrtl
16:24:25GitDisc<awr> but on open it tells me
16:24:27GitDisc<awr> could not import: nimrtl_nimGCvisitSegmentation fault (core dumped)
16:26:26GitDisc<awr> i looked at the exports with nm -D and it appears to be exporting a lot of nimrtl_* stuff, but no nimrtl_nimGCvisit
16:26:36skelett:D
16:26:46skelettsry wrong window
16:27:21GitDisc<awr> i compile nimrtl.dll on windows and the exe loads up fine, and i checked the exports on there and there's no "nimrtl_nimGCvisit" in them
16:28:46*Trustable joined #nim
16:32:05*gokr quit (Ping timeout: 240 seconds)
16:36:22FromGitter<ZarsBranchkin> Hey, noticed outdated information on the manual. Should I fix it now, or there is some different workflow to updating docs? This is the line I'm talking about https://github.com/nim-lang/Nim/blob/devel/doc/manual/types.txt#L768
16:36:31livcdhttps://impbox.itch.io/boxen <- was this also made in Nim does anyone know ?
16:37:31dom96tweet @impbox to ask
16:37:42miran_zars - fork the repo, make the change, make pull request
16:37:52dom96ZarsBranchkin: PRs for doc fixes are very much welcome
16:37:58FromGitter<ZarsBranchkin> alright, will do
16:38:44livcddom96: that vektor 2089 is impressive !
16:38:52dom96yep :)
16:40:01miran_how do i print the type of a variable? `echo type(e)` doesn't work....
16:40:15FromGitter<ZarsBranchkin> Wasn't it kind?
16:40:15dom96import typetraits IIRC
16:40:38dom96Also there is an issue for this IIRC
16:41:51miran_dom96: yeah, looks like this should do the trick. but it doesn't :)
16:42:40dom96https://github.com/nim-lang/Nim/issues/5827
16:42:50miran_ah, this was needed to manually define: `proc `$`*(T: typedesc): string = name(T)`
16:43:44subsetpark(or just echo e.type.name)
16:44:10miran_subsetpark: indeed! thanks
16:47:15dom96yeah, starting to change my mind. Might be good to add this to system
16:47:30miran_it is such a basic thing
16:48:17miran_i'm writing my beginners' tutorial, and i thought about printing some types, but i'll postpone that if import is needed
16:57:03dom96damn, typetraits is much smaller than I thought
16:57:56*Yardanico quit (Quit: Leaving)
16:58:05*Yardanico joined #nim
17:03:42*Trustable quit (Remote host closed the connection)
17:06:14dom96https://github.com/nim-lang/Nim/pull/7100
17:09:50*vivus joined #nim
17:10:13vivusfor anybody that loves nim, I found a job specifically for a Nim dev: https://boards.greenhouse.io/embed/job_app?for=status72&token=952000&b=https%3A%2F%2Fstatus.im%2Fopen-positions.html
17:10:30vivuslots of buzz words also, p2p, blockchain, etc.
17:10:46FromGitter<ZarsBranchkin> Ooh neat, love seeing vacancies for Nim
17:13:33Yardanicovivus, yeah, we know about this one :)
17:13:43dom96Here is the source: https://status.im/open-positions.html?gh_jid=952000
17:13:43Yardanicothere was a post on nim forum about this
17:13:47vivusYardanico: has anyone applied for it?
17:14:03vivus1 of you would rock at this position
17:14:06Yardanicohttps://forum.nim-lang.org/t/3402
17:14:17vivusfirst paid nim dev (besides araq XD )
17:14:23Yardanicovivus, zahary is paid too
17:14:32vivuswhere does he/she work?
17:14:46Yardanicovivus, well I mean he's paid by bountysource donations
17:14:52vivusoh
17:15:13dom96Not really anymore
17:15:21Yardanicodom96, why?
17:15:34dom96ask him :P
17:16:09dom96I would say but I'm not sure if he'd be okay with that
17:16:42shashlicktrying this question again - has anyone tried CINT as a backend for Nim? http://www.hanno.jp/gotom/Cint.html
17:16:46vivusyeah let's not doxx him
17:16:52Yardanicoshashlick, I doubt it, did you? :)
17:17:13YardanicoI might try it now (on arch linux), well if it will compile with gcc-7.2
17:17:51shashlickYardanico: ya I tried but it doesn't work since it cannot handle nimbase.h
17:18:31Yardanicoshashlick, well why would you want to try it ? ;)
17:19:10*vivus quit (Quit: Leaving)
17:19:18shashlickit's an interpreter for C/C++ so it's an interesting backend
17:19:32shashlickhot loading, etc.
17:19:55FromGitter<alehander42> @vivus it's not just a single position, it's an (already working) nim team, I suspect you can still write them if you're interested
17:20:14Yardanicowow they have nim devs?
17:20:16Yardanicothat's very cool
17:20:39FromGitter<alehander42> eh answering about the status thing I saw posted by vivus
17:20:49Yardanicoyeah I understand
17:21:40FromGitter<alehander42> haha ok
17:21:45Yardanicoshashlick, I'm a bit worried already because this cint has "expoet" instead of "export" in readme ;)
17:23:35*endragor joined #nim
17:26:01*endragor quit (Remote host closed the connection)
17:26:59*endragor joined #nim
17:27:29FromGitter<alehander42> @vivus otherwise except for status, I am also a part of a nim-based devtools startup, and afaik there are at least several gaming/etc companies also using nim (wasn't there a list somewhere). a.k.a. there are more paid nim devs than you think (or at least I hope so :D )
17:28:05*miran_ quit (Remote host closed the connection)
17:28:59*miran_ joined #nim
17:30:39*xet7 quit (Ping timeout: 248 seconds)
17:30:40Yardanicoyes there's a list
17:30:48Yardanicobtw can you add your startup here? :)
17:31:12dom96alehander42: hrm, so are you developing the py2nim tool for your devtools startup or for Status?
17:31:16Yardanicohttps://github.com/nim-lang/Nim/wiki/Companies-using-Nim
17:34:16*yglukhov quit (Remote host closed the connection)
17:35:25FromGitter<cabhishek> just an fyi, I have a tiny load testing tool for one our micro services at Netflix. And its written in Nim :)
17:36:33dom96cabhishek: you work at Netflix? :O
17:36:43FromGitter<cabhishek> yes, I do
17:36:52*yglukhov joined #nim
17:37:12dom96Awesome. I continue to be amazed by our community :)
17:37:20*yglukhov quit (Read error: Connection reset by peer)
17:37:31miran_+1 amazed
17:37:38FromGitter<cabhishek> Always trying to convince people here to use Nim
17:37:47dom96How's it going so far? :)
17:37:56*AlexMax left #nim (#nim)
17:38:12miran_i always have a feeling like nim is used by something like 17 people in total
17:38:56miran_but now that i hear stories like this one, i'm sure that number is over 20!!
17:39:08dom96There are dozens of us. Dozens!
17:39:13miran_:)))
17:39:50dom96and now I want to watch Arrested Development again :)
17:39:52Yardanicocabhishek: wow, nice!
17:40:07GitDisc<treeform> how could you estimate number of nim users?
17:40:26FromGitter<cabhishek> My current team wants to use it but due to deadlines and practical constraints its been slow. But everyone is really impressed
17:40:39dom96ooh, that's nice to hear :)
17:40:51FromGitter<alehander42> @Yardanico after we get to a beta .. :D ⏎ @dom96 no it doesn't have much to do with the startup, zahary and I made an initial version of py2nim last year out of personal interest, it just seems potentially useful for some libs in status, so I worked some time on it there too
17:40:54FromGitter<mratsim> @vivus, I’ve also applied to Status offer and I will start in February
17:41:03miran_they are waiting for v1.0? :D
17:41:29FromGitter<alehander42> @cabhishek very nice
17:42:07*sendell quit (Remote host closed the connection)
17:42:17FromGitter<cabhishek> and I occasionally wear the Nim t-shirt so that helps :)
17:42:17FromGitter<mratsim> It’s not just 1 Nim dev they are looking for but a team ;) and there will be open bounties for those who can’t do full-time
17:42:33dom96alehander42: Curious about what these devtools will be, but perhaps you're still keeping that under wraps :)
17:42:55*xet7 joined #nim
17:43:26FromGitter<mratsim> argh, bad connection, I said “I also applied to Status job offer and I will start in February"
17:43:43dom96mratsim: we got your message
17:48:15FromGitter<krux02> I would say anyone who can program reasonably good in c++ learns Nim pretty fast. It's just the syntax that is a bit weird when you are not familiar with python
17:48:28*floppydh quit (Quit: WeeChat 2.0.1)
17:49:27FromGitter<alehander42> and often, porting code from c++ is more pleasant too (compared to python)
17:50:10*PMunch joined #nim
18:02:52*couven92 quit (Quit: Client disconnecting)
18:10:07*natrys joined #nim
18:12:48*SenasOzys joined #nim
18:13:02FromGitter<zetashift> and maybe dom96 can introduce some Nim in FB later :D
18:17:34*nsf joined #nim
18:19:22*Vladar quit (Quit: Leaving)
18:39:05PMunchHmm, I was thinking of trying this: https://krpc.github.io/krpc/index.html but it would be awesome to have a Nim library. What would you say is the best way to do it, wrap the C-nano version (meant for Arduinos and such), wrap the C++ version (how does that even work?), or implement the Protobuf protocol to talk to it directly (do we have a good protobuf implementation?)
18:43:13*yglukhov joined #nim
18:47:29*yglukhov quit (Ping timeout: 248 seconds)
18:51:01*xet7 quit (Ping timeout: 256 seconds)
18:57:37FromGitter<data-man> @PMunch: Do you like astronomy? :-)
18:57:47PMunchYup
18:57:51PMunchOr rather rocket science
18:58:23PMunchAstronomy is cool as well, but the technology we use to get it is just so amazing :)
18:59:25FromGitter<data-man> Did you see http://spaceengine.org ? I did not see anything better!
19:02:47*Ven`` joined #nim
19:03:10PMunchHeard of it but never really tried it
19:03:34*cspar__ joined #nim
19:06:02*xet7 joined #nim
19:06:41*yglukhov joined #nim
19:08:09*cspar_ quit (Ping timeout: 264 seconds)
19:08:32*yglukhov quit (Remote host closed the connection)
19:09:27Yardanicodata-man: but does it work in Wine? :)
19:10:33*endragor quit (Remote host closed the connection)
19:10:51Yardanico(well I assume it does)
19:10:57*endragor joined #nim
19:11:27FromGitter<data-man> I have not tried it with Wine. At their forum many times asked about cross-platform.
19:11:42Yardanicowine nowadays is very complicated and a loot of software works in i
19:11:54YardanicoI know there's no cross-platform support because there's only one developer
19:13:02FromGitter<data-man> Too few donations.
19:14:02YardanicoI know about that too
19:14:03*endragor quit (Remote host closed the connection)
19:14:14FromGitter<data-man> The developer is a professional astronomer. :-)
19:14:25Yardanicobut number of donations is a lot more than for nim :)
19:15:12FromGitter<data-man> Too few donations for Nim, too. :-)
19:17:23Yardanicodata-man: it seems to work, but HUD is just black
19:18:37FromGitter<data-man> Maybe in Virtualbox will be better.
19:20:34Yardanicoof course no
19:20:47YardanicoVirtualBox has very poor graphics performance :)
19:20:52Yardanicobut I know about Space Engine
19:21:17FromGitter<data-man> And about Celestia?
19:21:58Yardanicowell I want Space Engine more as a game, not as a tool :)
19:22:25FromGitter<data-man> It's planned. :-)
19:23:30FromGitter<data-man> https://www.youtube.com/results?search_query=space+engine
19:23:44YardanicoI know :))
19:23:57YardanicoI've used/played it before
19:25:37dom96Space Engine is pretty cool
19:26:44Yardanicoand it's mostly done by only one person!
19:26:53Yardanico(there's a few people who made some textures/other stuff)
19:26:57Yardanicowell it's closed source
19:27:06dom96it tracks life on planets too? :o
19:27:16Yardanicowell kinda
19:27:31Yardanicotries to calculate it :D
19:27:45*rauss quit (Quit: WeeChat 2.0.1)
19:29:52*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:32:10*rauss joined #nim
19:33:12Yardanicojust see how beautiful it is
19:33:12Yardanicohttps://imgur.com/gallery/Nsbgx
19:33:17Yardanicoand it's from 2014
19:33:20Yardanico(it's even better now)
19:34:13YardanicoSo it uses a lot of real astronomical DBs for information about stars/planets, and other ones are procedurally generated to be consistent with real planets/stars
19:35:35FromGitter<data-man> "It's an amazing game, you can get lost for hours." :-)
19:36:38*yglukhov joined #nim
19:36:45Yardanicooh wait, he had the same problem as me: https://www.reddit.com/r/spaceengine/comments/7cc7i2/help_space_engine_gui_is_broken/
19:39:32FromGitter<data-man> @Yardanico: And if to try in qemu?
19:39:51YardanicoI'll better try to reinstall it
19:40:00Yardanicosince qemu still provides only virtualization
19:41:33Yardanicoyay it works after reinstall!
19:41:36Yardanicowindows software :D
19:41:36*cliffjumper68 joined #nim
19:41:51Yardanico(just kidding)
19:43:10*cliffjumper68 left #nim (#nim)
19:43:17FromGitter<data-man> Try after reboot :-)
19:45:06Araqdata-man: terminal PR ready?
19:45:41FromGitter<data-man> truecolored? (TM)
19:45:45FromGitter<data-man> Yes!
19:45:48Araqand how do we do the \n change? better before the next release, right? should we introduce --oldNewLines which make the compiler warn about \n usages?
19:47:00Yardanicowhat decision was made? I haven't been following newlines discussion
19:48:38FromGitter<data-man> @Araq: I planned to make other additions to the terminal: cursor pos, implement discarded procs for Windows, etc. In other PRs.
19:49:00Yardanicothat would be cool
19:50:05Araqyeah I changed my mind.
19:50:39Araqterminal.nim is a good way to get people into "UI" programming
19:51:04Yardanicowow, so'll eventually have high-level TUI library in stdlib? :)
19:51:14Yardanico:P
19:51:33Araqyeah, since all the other APIs continue to suck or have deployment issues
19:51:44Araqback to the 70ies
19:52:17FromGitter<data-man> Midnight Commander & Far Manager :-)
19:57:30*yglukhov quit (Remote host closed the connection)
20:00:18*xkapastel quit (Quit: Connection closed for inactivity)
20:02:05*Vladar joined #nim
20:05:02*Ven`` joined #nim
20:10:46FromGitter<RedBeard0531> There are only 2 UIs worth developing for anymore: TUI and WebApp :)
20:11:25FromGitter<RedBeard0531> And nim already seems to have libs for web apps
20:12:27*natrys quit (Ping timeout: 240 seconds)
20:14:10*Yardanico quit (Quit: Leaving)
20:14:41*natrys joined #nim
20:15:31FromGitter<data-man> ImGui is pretty cool. :-)
20:17:50FromGitter<data-man> And there is a Kotlin port.
20:19:16*Snircle joined #nim
20:35:03FromGitter<data-man> > should we introduce --oldNewLines which make the compiler warn about \n usages? ⏎ ⏎ Yes
20:37:26FromGitter<data-man> The compilation speed will decrease?
20:43:20Araqdon't be silly
20:43:46Araqwon't be noticable, it's not on the critical path
20:45:47FromGitter<data-man> Maybe warn for nim check only?
20:48:07FromGitter<RedBeard0531> Will the "preferred" style still be to use \c and \L or switch to the more common (and now equivalent) \r and \n?
20:51:07*miran_ quit (Quit: Konversation terminated!)
20:56:31FromGitter<tim-st> @Araq I noticed some html entities were missing in htmlparser.Entities, I translated the Python version that uses table and has some more entities, especially the important ones: https://gist.github.com/anonymous/31ad481ddd17a595eda3ff36c35a7c97
21:00:31*nsf quit (Read error: No route to host)
21:00:33*nsf1 joined #nim
21:01:20*nsf1 quit (Client Quit)
21:01:29*nsf joined #nim
21:09:48*Vladar quit (Quit: Leaving)
21:27:34*yglukhov joined #nim
21:36:17*Elronnd is now known as Menche___
21:41:30Araqdata-man: we'll only warn when --oldNewlines is passed
21:42:41FromGitter<data-man> Cool
21:43:02*Menche___ is now known as Elronnd
21:43:17*Elronnd is now known as GoldenIvy_______
21:43:34*yglukhov_ joined #nim
21:43:59*GoldenIvy_______ is now known as Elronnd
21:45:53*yglukhov quit (Ping timeout: 255 seconds)
21:47:04Araqtim_st: PRs are welcome
21:47:28AraqRedBeard: I dunno, I prefer \c\L since it works with every Nim version :P
21:48:56dom96I prefer it too :)
21:49:05dom96\r\n just looks wrong now
21:49:35Araqyeah :-)
21:51:13*nsf quit (Quit: WeeChat 2.0.1)
21:53:43*yglukhov_ quit (Remote host closed the connection)
21:57:00FromGitter<data-man> @Araq: Why are you against `$` in the system module?
21:57:33FromGitter<data-man> For typedesc
21:57:45Araqbecause "typedesc" is a subtle feature
21:58:15*Ven`` quit (Ping timeout: 260 seconds)
21:58:41Araqit's also not properly designed, a type's name is ambiguous
22:02:36*Ven`` joined #nim
22:05:18FromGitter<data-man> What's the difference: to include another module or have it "out of the box"?
22:11:10*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:11:48FromGitter<data-man> *to import :-)
22:16:17FromGitter<Quelklef> Is it okay to add something to nimble which isn't yet 1.0?
22:16:43PMunchWell the default version number is 0.1.0
22:17:06FromGitter<Quelklef> oh, true
22:17:13FromGitter<data-man> 1) 0.1
22:17:14FromGitter<Quelklef> now just gotta make it 0.1.0-worth :)
22:17:36FromGitter<Quelklef> No, default is 0.1.0, Dmitry
22:18:43*gokr joined #nim
22:19:09FromGitter<data-man> 1) 1.0-alpha? :)
22:19:26FromGitter<Quelklef> I mean, I could make it 0.0.1, but
22:20:18FromGitter<data-man> alpha-male
22:20:29FromGitter<Quelklef> huh
22:21:48FromGitter<data-man> Just a cool naming
22:21:59FromGitter<Quelklef> needs more greek characters
22:22:18FromGitter<Quelklef> Call it 0.0.α
22:24:18FromGitter<data-man> 1) 0.ϖ lol
22:26:08FromGitter<Quelklef> Call it 0.0.1, 0.0.(1.1), 0.0.2, 0.0.(2.1), 0.0.(2.2), 0.0.3
22:26:34FromGitter<Quelklef> "What version are you running?" (3.2).(8.3.2).(7.(4.3).0)
22:26:53FromGitter<data-man> For the lilt?
22:27:06FromGitter<Quelklef> No lol that's versionless right now
22:27:35FromGitter<Quelklef> I think I'm gonna add documentation, make it a nimble package, and use it in another project so I can see where it needs to be improved
22:37:11dom96Yay, Digital Ocean extended their support for us for another year :)
22:39:28PMunchNice!
22:42:23PMunchDo you know if they use it for anything?
22:48:13*ofelas quit (Quit: shutdown -h now)
22:50:35*natrys quit (Quit: natrys)
22:50:42*ofelas joined #nim
22:50:54*xkapastel joined #nim
23:01:02*vlad1777d joined #nim
23:15:57*PMunch quit (Quit: leaving)
23:16:23dom96Not sure they do at all.
23:16:28dom96They offer support for most open source projects
23:24:05*allan0 quit (Ping timeout: 240 seconds)
23:29:23*allan0 joined #nim
23:34:34*SenasOzys_ joined #nim
23:35:10*SenasOzys quit (Remote host closed the connection)
23:36:02FromGitter<Quelklef> OK, so according to the nimble repo, for my project X I need a folder src/, the main file src/X.nim, and all files that src/X.nim depend on should be like src/X/private/Y.nim
23:36:30FromGitter<Quelklef> Is this the only way to have helper files for X.nim? I can't just put Y.nim in src/?
23:41:47*allan0 quit (Ping timeout: 268 seconds)
23:43:30*Jesin quit (Quit: Leaving)
23:46:47*allan0 joined #nim
23:52:28*wastedone_ quit (Quit: wastedone_)
23:52:29*allan0 quit (Ping timeout: 256 seconds)
23:55:40*arecaceae quit (Remote host closed the connection)
23:55:58*arecaceae joined #nim
23:59:22*dddddd quit (Read error: Connection reset by peer)
23:59:26*allan0 joined #nim