<< 26-05-2015 >>

00:01:28*gokr quit (Quit: Leaving.)
00:01:40*gokr joined #nim
00:02:03VarriountAraq: I'm preparing the new mingw release
00:18:45*boydgreenfield joined #nim
00:20:21*Trustable quit (Remote host closed the connection)
00:22:09*taesoo quit (Ping timeout: 240 seconds)
00:37:39*vikaton joined #nim
00:40:05*vmeson joined #nim
00:40:11*womperbet joined #nim
00:40:19womperbeth
00:40:42womperbetI was looking around Nim's reddit and saw the question about unsafety
00:40:50*vendethiel joined #nim
00:40:51womperbetand saw this answer: http://www.quora.com/Is-Nim-really-that-unsafe/answer/Raafe-Qenda?__snids__=1171809209&__nsrc__=2
00:42:07VarriountUh.... what?
00:42:19womperbetIs that true? does anyone have a response to it?
00:42:46Varriountwomperbet: It's inaccurate.
00:43:04womperbetVarriount: how so?
00:43:06strcmp1accessing a non-existent index raises for me here.
00:43:39VarriountNim *allows* you to turn things like range and bounds checks off, however there are also compile-time checks
00:44:28VarriountAs for null-pointer dereferencing, that's a runtime error, but I hardly see how it's as destructive as a buffer overflow.
00:44:45Varriount(Java allows null pointer dereferencing)
00:48:44womperbetShould we inform him o.0
00:49:53Varriountwomperbet: Doing that now.
00:50:03womperbetcool
00:50:34VarriountI really dislike people who post such uninformed answers.
00:51:14womperbetdon't we all?
00:51:31Varriountwomperbet: How does this sound:
00:51:34Varriount"If you look at the compiler's help output, you can see that bounds checking for arrays and sequences is something that can be turned off/on, which makes any such errors rather self-inflicted.
00:51:34VarriountAs for null-pointer dereferencing, there are compile-time checks that are performed by the compiler to avoid them, however such checks can only do so much."
00:52:16womperbetsounds good
00:52:20flaviuIt's a shame that -d:release turns off all those checks though.
00:52:30womperbetVarriount:in the HN post he posted-
00:52:42womperbetyeah what flaviu said
00:52:58Varriountwomperbet: What's particularly harmful with null-pointer dereferencing? I know that it's a run-time error, however it's hardly as bad as lack of bounds checking.
00:53:09womperbetmhm
00:53:33womperbetflaviu:I guess what the thing to do is to compile without -d:release and you will have no problems
00:54:27flaviuyep, you can always use --opt:speed --stackTrace:off --lineTrace:off
00:55:29VarriountHm.. Should I add something like "In the future, please refrain from posting uninformed answers."?
00:55:35VarriountOr is that too snarky?
00:56:29womperbethmm
00:56:37flaviuToo snarky IMO. It's best to polite and non-judgmental, even if the other person is an idiot.
00:56:48womperbetYeah I agree
00:56:53flaviu(not saying that that's the case here, I haven't even looked at the HN post)
00:57:38Varriountflaviu: Ok, I'll withhold the snark for another, more appropriate time.
00:59:40*taesoo joined #nim
01:00:50Varriountwomperbet, flaviu: How is this - https://gist.github.com/Varriount/5eba552a5eef8307a6d1
01:01:23Varriountwomperbet: If you have an HN account, I would appreciate if you could reply there. I don't currently have one.
01:01:58womperbetok
01:02:29womperbetthat was a 100 days ago tho
01:02:36womperbetthe HN
01:02:56womperbetand yeah Varriount thats good
01:03:15Crocodickthe -d:release check disabling are all in the $nim/config/nim.cfg
01:03:23Crocodickyou can just comment them off
01:03:26Crocodickim pretty sure
01:03:31flaviuCrocodick: Yep.
01:04:06VarriountFurthermore, you can define your own presets
01:04:50*vendethiel quit (Ping timeout: 265 seconds)
01:05:38vikatonwe should all of this into the answer
01:05:51vikatonthen add this answer (reformed) and put in out FAQ ?
01:07:50womperbetVarriount: are you adding more or are you done?
01:08:57Varriountwomperbet: Hm? I've posted my comment for that particular answer, however the main answer on that Quora page looks good enough to me.
01:09:28womperbetI like vikaton's idea about the FAQ thing so people can be informed from a primary source
01:10:02VarriountI agree, and if you want to post it, go ahead.
01:10:03*vendethiel joined #nim
01:10:21VarriountI have to go attend to something else for a bit though.
01:10:46womperbetIs there a place where I can submit a FAQ submission?
01:11:04VarriountFor Quora? No idea.
01:11:15*Quora hates that site lol
01:11:18womperbetoh doesnt Nim have a FAQ?
01:11:43Varriountwomperbet: It has a manual... but no faq...
01:11:58womperbeto
01:11:59VarriountAlthough, a FAQ posted on the main site would be good.
01:12:19womperbetVarriount:should I copy paste your whole answer on the HN ?
01:14:59womperbetVarriount ?
01:19:23Varriountwomperbet: If you think it's suitable.
01:19:34VarriountMake any changes you feel necessary.
01:21:22womperbetdont think i can reply lol
01:26:05*dddddd quit (Ping timeout: 265 seconds)
01:26:54*akiradeveloper quit (Remote host closed the connection)
01:30:55*womperbet quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
01:31:06vikatondo we have an online playpen ?
01:33:26*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:34:49*justicefries left #nim (#nim)
01:37:21*akiradeveloper joined #nim
01:37:51*boydgreenfield quit (Quit: boydgreenfield)
01:38:37*akiradeveloper quit (Remote host closed the connection)
01:38:38*vikaton quit ()
01:40:37*bjz joined #nim
01:43:56*boydgreenfield joined #nim
01:46:08*akiradeveloper joined #nim
01:51:34flaviuvikatron: You're going to have to stick around for longer than 5 minutes to get an answer, especially if the channel is slow.
01:52:09*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
01:52:53*bjz joined #nim
01:56:12*Siecje1 joined #nim
01:58:00*Siecje quit (Ping timeout: 265 seconds)
02:02:01*boydgreenfield quit (Quit: boydgreenfield)
02:03:10*gokr quit (Ping timeout: 272 seconds)
02:07:19*ozra quit (Ping timeout: 246 seconds)
02:07:31federico3how to convert an array to a set?
02:11:00federico3import sets; array.toSet
02:13:34*pregressive joined #nim
02:15:48*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
02:17:06fowlfederico3: intsets
02:24:36*vendethiel quit (Ping timeout: 264 seconds)
02:25:08*kumul quit (Ping timeout: 265 seconds)
02:27:51*akiradeveloper quit (Remote host closed the connection)
02:29:54jrenner1exit
02:29:57*jrenner1 quit (Quit: WeeChat 0.4.2)
02:30:21*darkf joined #nim
02:31:04*boydgreenfield joined #nim
02:38:30*BitPuffin|osx quit (Ping timeout: 276 seconds)
02:49:07*Jehan_ joined #nim
03:03:56*Siecje1 quit (Read error: Connection reset by peer)
03:17:15*johnsoft joined #nim
03:20:21*bjz joined #nim
03:23:25*anthgur joined #nim
03:24:54*dtscode joined #nim
03:27:01VarriountAraq: The stripped version of MinGW is ready, however I do have some questions, in light to the recent issue of compiling GUI applications.
03:48:18*vmeson quit (Ping timeout: 246 seconds)
03:48:19*anthgur quit (Quit: My Mac has gone to sleep. ZZZzzz…)
03:55:31*endragor joined #nim
04:04:39*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
04:06:19*taesoo quit (Ping timeout: 256 seconds)
04:12:56*akiradeveloper joined #nim
04:23:05*bjz joined #nim
04:37:00*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
04:52:57*akiradeveloper quit ()
05:01:45*ddl_smurf quit (Quit: ddl_smurf)
05:23:00avsejflaviu, so you are using fedora, right?
05:23:24avsejor pigmej
05:23:27VarriountHello avsej
05:23:31avsejhil
05:24:02avsejnim-lang $ ./koch boot -d:release --gc:boehm
05:24:02avsejcould not load: /usr/lib/libgc.so.1
05:24:11avsejfedora is multiarch
05:24:23avsejand it lives in /usr/lib64/libgc.so.1
05:24:42avsejI cannot find where it loads libgc
05:25:19Varriountavsej: Any particular reason you're using the boehm gc?
05:26:10avsejI want to check if boehmgc tests still passing
05:26:19VarriountAh.
05:26:50avsejimho they should skip themselves if it does not linked with boehm gc
05:27:14Varriountavsej: I agree.
05:27:27*pregressive quit (Remote host closed the connection)
05:28:23avsejhttps://github.com/Araq/Nim/blob/devel/lib/system/mmdisp.nim#L73 this does not look like portable thing :)
05:28:29*gokr_ joined #nim
05:28:48Varriountavsej: *cringe*
05:29:39avseji'm curious why all platforms using relative name, and linux uses absolute
05:30:20avsejswitched to relative and ... it works :)
05:30:22Varriountavsej: If I had to guess, probably because Araq was fed up with whatever rules *nix uses to find shared libaries.
05:30:31VarriountEither that, or he was tired.
05:41:56*kokozedman joined #nim
05:42:53avsejAraq, https://github.com/Araq/Nim/pull/2803 with this patch I can build with boehm gc and check that tests for it are green, althogh markAndSweep not in this case :)
05:50:00avsejflaviu, awesome https://github.com/Araq/Nim/pull/2801 :)
05:51:37Varriountavsej: What's the motivation behind that PR?
05:51:45avsej2801?
05:51:49VarriountYeah.
05:52:05avsej\n behaves in not portable way
05:52:18avsejon windows it two symbols, on linux only one
05:52:25Varriountavsej: Isn't that the point?
05:52:45avsejit should not like this
05:52:54VarriountBecause Windows and Linux traditionally have different line endings.
05:53:00avsejyes I know it
05:53:15avsejbut this makes files created on linux incompatible with windows
05:53:19avsejand otherwise
05:53:45avsejthis problem should be solved on application level, not on programming language parser
05:54:48VarriountI beg to differ, I'd like to be able to output newlines to standard output without having extra string formatting.
05:55:28VarriountAlso, don't other languages use '\n' in the same way?
05:55:30cazovavsej: why can't you use '\l' instead?
05:55:30avsejthen it should be solved in streaming library somewhere, but again, not in the parser
05:55:33*boydgreenfield quit (Quit: boydgreenfield)
05:56:03cazovVarriount, I think python uses \n as just a linefeed and you have to do \r\n, though I'm not 100% sure on that
05:56:29avsejyes, other languages just map these to character codes
05:56:32Varriountcazov: For output? I've yet to see that particular combination.
05:57:38avsejit weird if you allocate string for 4 characters and put there "foo\n", but on windows it will lead to illegal memory access or something
05:57:49avsejso nobody will use \n
05:58:06avsejbut \n is like common idiom, imho
05:58:32*vendethiel joined #nim
05:58:33cazovVarriount, I think there might be some stuff in various places that will autoconvert \n to \r\n. I do know for sending strings to some serial devices I had to explicitly use \r\n though
05:58:56avsejthis magic might bite in unexpected way. I my application need this I would define const like NL and that's will be like controlled way
05:59:08avsejcazov, yes
05:59:14avsejjust take a look at HTTP
05:59:21avsejit uses \r\n for every platform
05:59:26avsejnot only windows
05:59:47avsejso you have to make ugly hacks or use \c\l
05:59:56avsejeven if you have \n :)
06:00:06cazovyeah
06:00:41VarriountDoes this break existing code?
06:00:48avsejwe s
06:00:53avsejwe should ask flaviu
06:01:00avsejif he run tests at least
06:01:45avsejanyway it might be some small difference which makes nim unique (i'm only couple of days with it), but imho, while it haven't reached 1.0 it will be better to merge this PR :)
06:02:10avsejit will help newcomers not to make unexpected bugs
06:02:47Varriountavsej: Hrm...
06:05:09*boydgreenfield joined #nim
06:06:22Varriountcazov, avsej: Huh, you're right. On Python, '\n' is interpreted as LF
06:06:35Varriounthttps://docs.python.org/3.0/reference/lexical_analysis.html#id9
06:07:01cazovI think there's some smarts that `does the right thing` re: interpreting newlines for a given application/platform/w/e
06:07:21VarriountAlthough, it's transparently translated to the platform dependant line ending for most built-in output functions.
06:07:27cazovyeah
06:07:36cazov(but not in pyserial!)
06:08:00VarriountIf I recall correctly, Python uses the underlying C standard library for basic IO, which explains that particular behavior.
06:08:36VarriountAccording to the C standard: "When writing a file in text mode, '\n' is transparently translated to the native newline sequence used by the system, which may be longer than one character"
06:08:54*gokr joined #nim
06:11:19VarriountHi gokr!
06:12:18gokrhey! :)
06:13:18Varriountgokr: So, I was presented with this charming answer to a Quora question today - http://qr.ae/fLDPK
06:14:14gokreh
06:15:13avsejVarriount, this is what I mean that the problem should be solved on the higher level
06:15:35Varriountavsej: Yes, I see your point.
06:15:55VarriountI admit that the alternative has it's pitfalls...
06:16:18VarriountAlthough, perhaps the current behavior could be relegated to uppercase N?
06:17:46*gokr_ quit (Read error: Connection reset by peer)
06:18:12avsejthat makes sense
06:18:36avsejuppercase is like a warning "beware magic and dragons" :)
06:18:50VarriountAn ideal compromise, I think.
06:22:16*boydgreenfield quit (Quit: boydgreenfield)
06:22:18Varriountavsej: Hm. Does Nim currently make a distinction between \r and \R?
06:23:33avsej\r = 13
06:23:33avsej\R = 13
06:23:36avsejno it does not
06:25:42*sepisoad joined #nim
06:26:35kokozedmanhey guys... using TChannel, I'm usually not getting a perfect usage, always getting SIGSEGV: Illegal storage access. (Attempt to read from nil?)
06:26:40kokozedmanany pointers?
06:26:50Varriountavsej: Hm. I dislike exceptional/inconsistant cases though.
06:27:04Varriountkokozedman: Can you give us some code?
06:27:08*intra joined #nim
06:27:10VarriountAlso, hi sepisoad
06:27:15VarriountHi intra
06:27:34sepisoadhi Varriount ;)
06:30:56kokozedmanVarriount, sorry mate, my bad, I forget to open the channel first... silly mistake. On that subject, is it OK to use ref object as the message to be passed around? what does the "deep copy" imply?
06:31:06sepisoaddoes returning a Future value by a function implicitly mean it's a async function?
06:31:56Varriountsepisoad: Async in what context? If you mean for the Async networking modules, I don't know. Possibly.
06:32:27sepisoadlike when designing a simple function
06:32:32*dtscode quit (Remote host closed the connection)
06:32:37Varriountkokozedman: deeply copied means that the entire data structure is copied.
06:32:43sepisoadproc funcA(): Future[void] =
06:32:50VarriountIncluding the data that the reference points to.
06:33:02sepisoadproc funcB() {.async.} =
06:34:38Varriountsepisoad: I don't know.
06:35:27Varriountsepisoad: I can't find any documentation on an async pragma.
06:35:32*dtscode joined #nim
06:36:39kokozedmanVarriount, yes, I think I'm already aware of the term, but in the context of the TChannel, what happens to ref objects? is the ref copied, or the the nested object's child as well?
06:36:57VarriountThe nest objects child.
06:37:00Varriount*nested
06:37:32Varriountkokozedman: If you want to pass only a reference, you'll need to pass a pointer, not a reference.
06:39:34kokozedmanVarriount, oh, ok... I think I'm getting it now
06:39:37kokozedmanthanks man!
06:40:02Varriountkokozedman: Take what I say with a grain of salt though. I haven't personally used the Channel module.
06:40:53fowlI beloeve You have to use asyncdispatch with futures
06:46:18intraVarriount: hi.
06:50:04*wb quit (Ping timeout: 255 seconds)
06:54:02sepisoadcan we await for spawned proc which has not return type (void)?
06:56:30Varriountsepisoad: The docs suggest you can.
06:57:26sepisoadthe only way that i know is to call sync()
06:58:10reactormonkavsej, neat structuring, I'll adopt that if possible
06:58:23avsejwhat do you mean?
06:58:46reactormonkThe PR structuring
06:59:07Varriountavsej: He means your text
06:59:28avsejah, that from https://github.com/netty/netty project
07:00:36reactormonkVarriount, wtf, now I even get people on the internet to explain stuff to other people for me... I guess I gotta be more wordy
07:02:33Varriountreactormonk: Brevity may be the soul of wit, but specificity is the knowledge that comprises it.
07:05:17VarriountOn that topic, could someone help me hammer out this request for Phoronix to write an article on Nim? - https://gist.github.com/Varriount/e32997e45861adf35438
07:05:44VarriountI can't seem to come up with a good 'conclusion'
07:07:53*endragor_ joined #nim
07:08:45*Ven joined #nim
07:11:36*endragor quit (Ping timeout: 272 seconds)
07:12:59*Trustable joined #nim
07:13:12*vendethiel quit (Ping timeout: 265 seconds)
07:13:30*Trustable quit (Remote host closed the connection)
07:14:12*Trustable joined #nim
07:19:30*endragor_ quit (Remote host closed the connection)
07:47:52*vendethiel joined #nim
08:04:54*coffeepot joined #nim
08:08:28*jbomo quit (Ping timeout: 272 seconds)
08:08:39*wuehlmaus joined #nim
08:10:10*vendethiel quit (Ping timeout: 255 seconds)
08:25:02*ingsoc joined #nim
08:27:51*vendethiel joined #nim
08:28:09*pregressive joined #nim
08:32:34*pregressive quit (Ping timeout: 252 seconds)
08:46:00*endragor joined #nim
08:49:48*vendethiel quit (Ping timeout: 252 seconds)
08:52:24*BlaXpirit joined #nim
08:54:12*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:59:46*ddl_smurf joined #nim
09:03:53*vendethiel joined #nim
09:09:28*OnO joined #nim
09:19:42Araqavsej: but the point of \n is so you don't have to use const NL = when defined(windows): "\13\10" else: "\10" ...
09:20:14Araqalso Nim uses "binary mode" for IO, there are no 2 different modes to learn.
09:20:29avsejin other languages it is done on the library level
09:20:41Araqso? we're not "other languages"
09:20:42avsejokay for me it was surprise that \n can mean different things
09:21:26avsejnow I learn that about nim, and will keep it in mind if I need to write code which deals with line endings
09:21:42*Jehan_ quit (Quit: Leaving)
09:23:18Araqalso \n stands for *n*ewline not for linefeed, so why copy obvious misnames?
09:23:25avsej:)
09:23:48avsejmaybe it li*n*efeed
09:24:09avsejwhat about other patches https://github.com/Araq/Nim/pulls/avsej ?
09:24:11Araqand btw you're rewarded with Nim's way in that then your stuff works out of the box with memory mapped files
09:25:31Araqavsej: usually things start as const boehmLib = "libgc.so.1"
09:25:51Araqand then bugfixes come, turning nice code into:
09:25:58Araqconst boehmLib = "/usr/lib/libgc.so.1"
09:26:15Araqin other words check git history
09:26:22*vendethiel quit (Ping timeout: 272 seconds)
09:26:47avsejso I have to write workaround for multiarch systems?
09:27:23Araqno, it's likely I'll accept your PR anyway
09:27:40Araqbut it would be nice to know why somebody used /usr/lib here
09:28:03avsejI checked history
09:28:10avsejit was /usr/lib from the beginning
09:28:11Araqwhat does it say?
09:28:38avsejhttps://github.com/Araq/Nim/commit/cdf03b06b93d8bf5023d7c4b38a761675a20d514
09:29:26kokozedmanis there an os.getAppFilename() that does NOT resolve symlinks?
09:29:33kokozedmanI mean, an alternative
09:29:59avsejoh it was moved
09:31:30Araqkokozedman: there is always os.paramStr(0) and posix.nim
09:31:53kokozedmanAraq, oh, nice... didn't that it was there! thanks!
09:32:45avsejyes, from beginning
09:33:07Araqavsej: proof? ;-)
09:34:01avsejhttps://github.com/Araq/Nim/commit/db4f617afcd095db087dcb52e3ea603cca111da7
09:34:20avsejhere the file was first created
09:34:51avsejin fact old history does not have commit granularity, looks like you put only releases there
09:36:17kokozedmanmight sound silly of me, but Error: conversion from cstring to string is invalid ... trying basename(...).string
09:36:37Araqkokozedman: use $ like the rest of us
09:37:01Araqavsej: at one point I moved from bzr to git
09:38:02avseji never understand how to work with bzr branches and history. it looks like written by extraterrestrial mind
09:38:26Araqok, that means your PR is fine :P
09:40:46VarriountGood morning Araq
09:41:19AraqVarriount: hi
09:43:27*vendethiel joined #nim
09:45:43*Jehan_ joined #nim
09:45:48AraqVarriount: as i said, we need pcre64.dll and pcre32.dll and the same for the open ssl dlls
09:46:03Araqand every other DLL we ship with Nim
09:46:11VarriountAraq: Yes, I have those, I think.
09:46:33VarriountHowever, I'm wondering, should we keep the non-essential header and lib files that Mingw-w64 comes with?
09:46:46Varriountlibgomp, etc
09:47:44Araqalso apparently our installer doesn't modify PATH for Aporia's GTK stuff
09:49:33VarriountAraq: What archive format does the Mingw-w64 binary need to be in?
09:50:09Araqzip
09:50:31Araqmaybe nsis can handle others?
09:52:34VarriountAraq: Apparently not.
09:53:16VarriountAraq: Sometimes I wish we could use WIX (Windows installer toolchain)
09:53:35Araqno way, that's insane.
09:53:50VarriountAraq: Have you actually used it before?
09:54:00Araq"all you need to do is to generate an XML with GUIDs for *every* single file"
09:54:18VarriountOk, there is that. :3
09:54:30AraqVarriount: I tried it.
09:54:37VarriountAh.
09:54:40AraqI tried to use it.
09:55:21avsejAraq, what do you think if koch (and niminst) will be able to create xz tarballs? https://github.com/Araq/Nim/pull/2805
09:57:20Araqavsej: I love it. :-)
09:58:01VarriountAt some point, we're just going to need an 'archive' command with a format specifier.
09:58:08*gokr quit (Quit: Leaving.)
09:58:47VarriountAraq: Ok, I've got a zipped mingw package ready. Compressed size is 27MB, Uncompressed is 87MB
09:59:29Araqthat's pretty good, the old ones are 29 and 30MB
10:01:01VarriountOh wait, I was off by 2
10:01:26VarriountHm, this looks interesting: http://win-builds.org/doku.php
10:05:13*vendethiel quit (Ping timeout: 264 seconds)
10:07:08VarriountAraq: Perhaps, one day, Nim could have an installer fully written in Nim.
10:07:55*Demon_Fox quit (Quit: Leaving)
10:09:31*IronY quit (Remote host closed the connection)
10:10:15*IronY joined #nim
10:14:35AraqVarriount: we should get Nim into win-builds. Looks nice.
10:17:13VarriountAraq: Incidentally, I just happen to have the 'Creating new packages' page open. ;D
10:20:07*sepisoad quit (Ping timeout: 250 seconds)
10:24:41*vikaton joined #nim
10:25:39VarriountAraq: Do we need pcre, or pcre2?
10:26:16Araqdunno. prce 1
10:27:39vikatonVarriount: did you see Raafe's reply ...
10:28:40Varriountvikaton: Do I want to?
10:28:56vikatonNo you do not, but you must
10:29:18vikatonhis answer got collapsed from being downvoted, and he claimed you and the Nim community are dishonest
10:29:32VarriountO_o
10:29:39vikaton(downvoted too much)
10:30:03VarriountIf he wants, he can look at the IRC logs, however I didn't ask anyone to downvote him.
10:30:27vikatonVarriount: yes, but other people did who saw his answer did
10:30:56*dddddd joined #nim
10:30:58vikatonhe said you were dishonest since what you said what "completely untrue"
10:33:02vikatonVarriount: at the bottom, http://www.quora.com/Is-Nim-really-that-unsafe
10:36:25Varriountvikaton: Should I answer him?
10:37:09vikatonVarriount: I think you should
10:37:14AraqJehan_'s answer is already perfect: http://forum.nim-lang.org/t/1246/2
10:38:38OnOAraq: hi, if you remember our chat, it won't work since macro can't see AST in block in following example: for x in macro(...): ... block ...
10:39:00OnOwould need callsite of callsite ;)
10:39:10Varriountvikaton: Fine, if you insist.
10:39:14*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:39:34vikatonVarriount: I just think we should at least disprove our "dishonesty"
10:40:21AraqOnO: I told you to split it into macros that keep the typechecker happy and a macro that does the optimizations
10:40:35Varriount"Sure, you can enable some runtime checking, but it comes at a heavy performance hit." <- Uh, yeah, since when wouldn't it?
10:40:59VarriountChecking bounds doesn't come free (yet)
10:41:26Jehan_Actually, most bounds checking is pretty cheap.
10:41:45Jehan_More importantly, this is an overhead that practically any memory-safe language has to pay.
10:41:52OnOAraq: that would require replacing for loop into some ugly User.each(....): ... block ...
10:42:15Araqit's more likely that the guy doesn't know that the debug mode also enables line tracing
10:42:21Jehan_Unless you can statically prove that it's unnecessary (which modern compilers are also pretty good at).
10:42:40VarriountJehan_: I don't suppose you could answer that person? I'm afraid I may not be able to articulate well enough the information needed.
10:43:17Jehan_Varriount: I don't have a Quora account and I don't really want to get involved in this, I fear.
10:44:08Jehan_As they say, this can be like mudwrestling a pig. You get covered in mud and only the pig gets to enjoy it. :)
10:44:09AraqOnO: no, it requires some .ormoptimize annotation for the whole proc
10:44:28AraqVarriount: just quote Jehan_'s forum post
10:44:29Varriountvikaton: If you want to answer him, go ahead, but I have feelings similar to that of Jehan_
10:44:43VarriountPlus, I'm trying to figure out how to compile OpenSSL from source at the moment.
10:44:59vikatonmhm
10:45:05vikatonI;;; try
10:45:38VarriountAraq: Jehan_'s post doesn't quite answer the whole "optimizes out null dereferencing" and "bounds checking" information.
10:45:41vikatonT'll try*
10:45:48Varriount*I'll try
10:46:02vikatonsorry, 6:46 in the morning
10:46:06Jehan_Varriount: The truth is, Nim *can* optimize out null dereferencing at this point.
10:46:36vikatonJehan_, so the damage is self-inflicted ?
10:46:36VarriountSorry, I mean, optimizes out the null check for dereferencing.
10:46:51Varriount"Sure, you can enable some runtime checking, but it comes at a heavy performance hit. The errors are safe-inflicted? In the example I linked, Nim happily optimized out the null check. What's the one other language that does that? Oh right, C."
10:46:52Jehan_This is where you get to the mudwrestling part, because explaining the details here won't help you against a guy who's just out to score points.
10:47:28Jehan_Varriount: Yes, and Nim still does that (well, with clang anyway, gcc doesn't for the reason I'd explained).
10:47:30vikatonAraq, the FAQ about unsafety sounds alot better
10:48:34*banister joined #nim
10:48:39vikatonVarriount: should I just link him to that forum post?
10:48:52Varriountvikaton: Up to you.
10:49:06Araqvikaton: no, *quote*, not *link*
10:49:12Araqnobody wants to follow links
10:49:37Araqyou'll immediately get 50% fewer readers with a link
10:49:39Jehan_The correct answer here is therefore: Yes, but <lengthy explanation>, at which point your opponent will pounce on the "yes" and ignore the rest.
10:49:44Araq(yes, I made up that number)
10:50:29VarriountAraq: I wouldn't be surprised if your number was close to truth though.
10:51:46vikatonIdk what exactly to quote
10:52:18vikatonI think I should just invite him over to the irc or forum to discuss this more formally, if you guys would want him in any of those
10:53:09Jehan_vikaton: Probably not worth it, he sounds like a typical internet advocate.
10:53:12avsejAraq, do you like it now? https://github.com/Araq/Nim/pull/2805/files
10:53:34Jehan_The thing is, he has a point, but greatly exaggerates it.
10:53:38avsejnow it does not look like new functionality
10:54:25Jehan_Anyhow, see you guys later. :)
10:54:27*Jehan_ quit (Quit: Leaving)
10:54:39vikatonquoting that last part to him
10:58:39Araqvikaton: you can also add that --nilChecks:on will be added to the compiler but we prefer to fix real problems instead of pleasing the people who are on a FUD campaign against Nim.
10:58:59vikaton#rekt
10:59:07VarriountAraq: Glad to see you're as tactful as ever. :P
10:59:30*vendethiel joined #nim
11:01:06*xcombelle joined #nim
11:07:17avsejAraq, for now we can just update reference to submodule https://github.com/Araq/Nim/pull/2806 (instead of removing it out of the tree)
11:07:46Araqjust remove it.
11:08:03Araqrename the silly build.sh while you're at it
11:08:28Araqvery confusing that the git repo has a build.sh that has nothing to do with our generated build.sh file
11:08:50Araqbbl
11:10:15avsejok
11:13:00*Ven joined #nim
11:13:24*[CBR]Unspoken quit (Ping timeout: 272 seconds)
11:14:06*[CBR]Unspoken joined #nim
11:14:20OnOalso.. ignore *.obj file too
11:14:26OnO(Windows wise)
11:18:08avsejOnO, where? in nim project?
11:18:16OnOcsources
11:18:28OnOyou just ignored *.o, please do the same for *.obj
11:19:17avsejwith this pr https://github.com/Araq/Nim/pull/2807 csources will be ignored altogether
11:20:15*anthgur joined #nim
11:21:09*vendethiel quit (Ping timeout: 265 seconds)
11:21:12*Jehan_ joined #nim
11:26:52*wb joined #nim
11:28:23*milosn quit (Quit: leaving)
11:39:39VarriountHas anyone actually measured the performance impact of various runtime checks?
11:40:11VarriountAraq: I don't suppose you could be persuaded to make -d:release keep bounds checking on?
11:40:12*anthgur quit (Quit: My Mac has gone to sleep. ZZZzzz…)
11:40:20vikaton^
11:41:03BlaXpiritthere are separate flags
11:41:06vikatonkeep bounds checking on by default
11:41:15BlaXpiritif u want bounds checks, u enable them
11:41:15vikatonand turn it off at programmers expense
11:41:19BlaXpiriti disagree
11:41:25VarriountBlaXpirit: Yes, I know.
11:42:08BlaXpiritanother solution is making more of those modes
11:42:24BlaXpiritrelease being the middle ground between "debug" and "crazy performance"
11:43:32vikatonthats sounds like a good idea ^
11:44:04BlaXpiritlol so typical
11:44:12BlaXpiritsubmodule gets removed soon after it's added
11:44:25VarriountO<
11:44:26BlaXpiriti used them in a few of my projects and always had to get rid of them
11:44:33vikatonone thing I dont understand is people complain about unsafety in release mode having those check off, but they completely ignore the purpose of debug mode
11:53:32*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:53:50AraqVarriount: -d:release is not hard coded in the compiler anyway
11:53:52Jehan_Varriount: What you really want is a separate option, e.g. -d:memsafe
11:54:01*banister joined #nim
11:55:01VarriountAraq: I know that. I'm talking about modifying the default configuration file.
11:55:08*banister quit (Client Quit)
11:55:12Araqand if you have bound error bugs in your release version there is some serious problem with your testing, but again, Nim can even patch your broken development cycle by letting you leave bound checks on in a release build
11:55:48*Kingsquee quit (Quit: Konversation terminated!)
11:55:49Jehan_Araq: Umm, buffer overflows are a pretty common problem.
11:56:12Jehan_Bugs happen, but you want to still contain their effect.
11:56:14AraqJehan_: yes. caused by the *lack* of a debug version in C.
11:56:36Jehan_Araq: Huh?
11:56:49AraqC doesn't do any bounds checking.
11:57:08Araqand it's particularly hard to fix
11:57:42Araqbecause C converts an array to a pointer for parameter passing
11:57:46Jehan_Araq: Oh, I see. Still, even in languages with bounds checking, they still occur.
11:58:14Araqyeah but at the end of the day
11:58:19Jehan_Simply because off-by-one errors and such are one of the more common bugs.
11:58:34*ozra joined #nim
11:58:36Araqif you develop security related software, you need to know your compiler and its switches
11:58:38Jehan_And the cost of guarding against them is pretty low.
11:58:49Araqthere is no way around this fact
11:58:51Araqbbl
12:01:55*JehanII joined #nim
12:01:55*Jehan_ quit (Read error: Connection reset by peer)
12:02:05*JehanII is now known as Jehan_
12:02:52*banister joined #nim
12:07:44*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:08:18*gokr joined #nim
12:08:23*gokr quit (Read error: Connection reset by peer)
12:09:21*gokr joined #nim
12:11:55ozraAraq: You around still? Wanted to get a clear picture: `proc(a, b: int = 47)` - does that mean that default values are propagated like types?
12:16:26*ekarlso quit (Changing host)
12:16:26*ekarlso joined #nim
12:17:22*gokr_ joined #nim
12:19:51Varriount,echo("Hello")
12:20:01Varriount.echo("Hello")
12:20:16VarriountOh well, looks like the eval bot isn't on.
12:22:24*k2nr joined #nim
12:22:33*vendethiel joined #nim
12:23:11*k2nr quit (Client Quit)
12:23:13ozravarriount: there is such a thing? Why is it not _almost_ on the front page? That's a super feature to lure in people who didn't know how cool it is.. like me.
12:26:08*Jehan_ quit (Quit: Leaving)
12:26:09*gokr_ quit (Read error: Connection reset by peer)
12:26:37*maacl joined #nim
12:26:39Araqozra: yes, default values are like types in this respect
12:27:22ozracool. so (a: int, b: int = 47) would do what I intended?
12:27:30Araqexactly
12:27:53maaclJust starting out using nim so this might be a really silly question, but doesn't nim-mode support compiling/running from within emacs?
12:28:25ozraAbout the void, I ask here if you have the time, is it deprecated or did my C++-luggage get the better of me? I intended to made it more explicitly obvious to the reader that no return value is used, to put focus on the mutable arg.
12:28:48ozraAraq: ^
12:28:50Araqmaacl: reactormonk should be able to answer that question
12:29:26Araqozra: maybe but we don't want to show people non-idiomatic code in the manual
12:29:47ozraWhat's the good-thing-todo-tm way of putting it?
12:29:55Araqif there is no return type, why write one?
12:30:40Araq(yes I can hear all the type theorists cringe)
12:31:00ozraYou read my mind! haha. Ah, I'd assume then it's infered, but ofc inference is depr on that right?
12:31:05*anthgur joined #nim
12:31:35ozraie, returning value is good style, not should be clearly visible..
12:31:42maaclreactormonk: Does nim-mode support compiling/running nim code from within emacs? I can only find compile to js function.
12:31:46Araqno, it's not infered either, proc foo() means proc foo(): void. always.
12:31:57ozraBut anyways, I'll just remove it now.
12:33:19Araqozra: recently a type theorist convinced me that 'void' is wrong too, it should be 'Unit' ;-)
12:34:18Araqif you conflate "halts" with "returns value", that is.
12:34:48ozraUnit - well, we all have out 'home base nomenclature', haha. Nim gets away with it by using the `proc` keyword inst. of `func` anyway. A func without ret-val would be *sound-of-swords-chopping-of-heads*, hehe
12:35:22ozra"halts"?
12:35:35Araqhalting problem
12:36:44vikatonHalt and Catch Fire
12:36:46ozraSounds like something out of the type domain... flow graph
12:38:35*Ven joined #nim
12:42:32avsejAraq, https://github.com/Araq/Nim/pulls/avsej
12:44:10Araqavsej: meh.
12:45:14*vendethiel quit (Ping timeout: 272 seconds)
12:46:15*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:47:25avsejAraq, fixed
12:50:41*vendethiel joined #nim
13:00:29Araqhrm somebody got rid of all the T/P prefixes in Nim ... nice.
13:04:50*Ven quit (Read error: No route to host)
13:05:31*banister joined #nim
13:08:05*anthgur quit (Quit: My Mac has gone to sleep. ZZZzzz…)
13:12:15*vendethiel quit (Ping timeout: 265 seconds)
13:15:50*vendethiel joined #nim
13:17:56*ddl_smurf quit (Quit: ddl_smurf)
13:34:41Araqavsej: wow you're quick. impressive
13:39:24*Aszarsha joined #nim
13:42:03*BlaXpirit-UA joined #nim
13:42:03*vendethiel quit (Ping timeout: 250 seconds)
13:44:45*taesoo joined #nim
13:45:02*BlaXpirit quit (Ping timeout: 246 seconds)
13:50:57coffeepotdom96 heya, can I make a feature request for Aporia?
13:51:05*Ven joined #nim
13:52:16Araqcoffeepot: always.
13:52:18*Jehan_ joined #nim
13:52:48coffeepotI'm flapping about all over source code atm, if there is a simple way to have bookmarks so I can CTRL-1 to go to a particular place in the code, that would increase my productivity immensely
13:54:10flaviuIt might be possible to integrate neovim with Aporia.. That'd be incredible.
13:54:31coffeepotIf I were being cheeky I'd ask for mouse over tooltips for the type of a variable, but I think this will a) require work on nimsuggest and b) not be trivial. Hopefully bookmarks wouldn't take too much work but would be incredibly useful
13:55:07*milosn joined #nim
13:56:23Jehan_flaviu: That's actually one of my main issues with IDEs. The productivity gains their features may offer are destroyed by me having to work with an unfamiliar editor.
13:56:52Araqcoffeepot: my biggest gripe is the lack of a "command line" so I can say 'open ../foo/bar.nim' instead of using that dreaded UI for navigation
13:57:07coffeepotI am enjoying working with Aporia, it's pretty good! Great example of a decent sized Nim project in itself. Secretly I wish I had IDEA support though. I would love integrated debugging and mouse over tooltips.
13:57:24vikatondoes this guy still use Nim in his project? https://news.ycombinator.com/item?id=9050114
13:57:44Araqvikaton: I think so but it's hard to tell
13:58:00coffeepotAraq: yeah ideally you don't want to have to use the mouse when programming, if possible. Kinda breaks the flow
13:58:15flaviucoffeepot: I just used IDEA for a little bit recently. The debugger is amazing!
13:58:21coffeepoti know, right! :D
13:58:43AraqJehan_: and yet common wisdom says "all your time is spent on reading/debugging", not writing :P
13:58:49flaviuThe comments in the source code with the contents of the variables and the results of expressions?
13:59:00coffeepotI had a quick look into what would be required to have IDEA work with Nim and promptly gave up as way over my head :)
13:59:05vikatonAraq, is 3DICC still using Nim ?
13:59:08Jehan_Araq: That's something that IDEs don't really help with, either.
13:59:26Jehan_coffeepot: Yeah, same here.
13:59:43AraqJehan_: oh but they do. the navigation features alone are hard to live without
13:59:55Jehan_IDEA is a pretty amazing piece of software, but the work needed to extend it is sized accordingly.
14:00:10Araqvikaton: yes
14:00:19Jehan_Araq: For the most parts, tags are all what I need for navigation.
14:01:44Araqflaviu: does that debugger work with native code too? or only Java?
14:02:19*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:02:22flaviuhttps://www.jetbrains.com/clion/ is coming out soon, I'd be surprised if it didn't support all that fancy debugger stuff.
14:02:39onionhammerits already out, isnt it?
14:02:40Araqthat doesn't answer my question
14:02:42onionhammerit costs $$
14:03:18flaviuAraq: The Java version of IDEA does not support debugging C code.
14:03:57coffeepotI'd pay for an IDEA product if they supported Nim, no problem. Besides it's quite reasonably priced IMO (unlike, say, Delphi)
14:04:39Araqcoffeepot: really? you don't even pay for Nim. :P
14:04:40flaviucoffeepot: You can add Nim support to IDEA if you have the time.
14:04:50vikatoncool
14:05:24coffeepotI must say though, big fan of IDEs and integrated debugging. Was writing an octree structure last night and it took me ages to work out where I'd gone wrong with printing out debugging data. Probably could have been solved easily by following in an IDE
14:06:32coffeepotAraq, yes Nim's not only free but open source! Can't complain in any way :D
14:07:05Araqcoffeepot: interesting. I like IDEs for navigation and quick feedback but I found debuggers to be mostly useless
14:07:18*vendethiel joined #nim
14:07:50coffeepotwell, there's nothing quite like being able to step through code line by line and see all your locals (or even change them). Especially useful on recursive structures for example
14:08:33Araqyeah I have heard that a lot. whenever I do that, the decision of "step into" vs "step over" completely kills my productivity
14:09:08Jehan_It depends for me. Sometimes debuggers just don't help me getting to the cause of the error, other times they are invaluable.
14:09:14Jehan_When I can even use them, that is.
14:09:35Jehan_Too often (especially with concurrent programming), there's very little point to them.
14:09:36ozracoffeepot: Araq: Why make a specific IDE, instead of extending, say Sublime, Komodo, Atom, or x?
14:09:37coffeepothaha yes completely know what you mean. The worst is when you accidently step over at the critical point you want to step in and have to rerun the whole program again (or is that just me? :D)
14:10:01Jehan_ozra: There's a Sublime Text package for Nim.
14:10:09coffeepotI used to use sublime before Aporia
14:10:16Jehan_coffeepot: That's what time-travelling debuggers are for.
14:10:21flaviucoffeepot: There's some exciting stuff coming along in debuggers to have rewindable debugging.
14:10:22Jehan_See OCaml, for example. :)
14:10:42coffeepotwow... okay time travelling debuggers - that sounds incredible!
14:10:51coffeepot5 dimensional, right? :)
14:11:02Jehan_OCaml has had so much good stuff for a couple of decades ...
14:11:23Jehan_coffeepot: Well, basically, it allows you to undo your debugging steps.
14:11:37flaviucoffeepot: One method I remember is storing the results of system calls. Everything else is deterministic, so the program can just be run as normal.
14:11:51Jehan_The downside with OCaml is that it only works for the bytecode target, but that's still incredibly helpful.
14:12:19Araqozra: mostly for the same reasons why we developed a hole new programming language. NIH syndrome.
14:12:49ozraJehan_: Yeah, I found sublime through that, haha. Used Atom before, but it's slow, crashes, etc. etc. And Sublime obviously is it's god inspiration wise. I like it. $70 is an ok price.
14:13:11Jehan_ozra: I'm still using Vim, alas. :)
14:13:23*ddl_smurf joined #nim
14:13:27Araqalso known as "some people believe in progress".
14:13:38coffeepotI wouldn't pay $70 for sublime, it seems over hyped to me. I would chuck $70 at JetBrains though :3
14:13:57ozraAraq: Hahaha. Well, I'm a great fan of "nothing in existance is good enough - let's make something better.", and definitely non-fan of "NIH - let's waste precious resources making something incompatible" ;)
14:14:11ozraAraw: And there I made the distinction..
14:14:54coffeepotozra: there's a quote on the nim stdlib page that seems to apply "The good thing about reinventing the wheel is that you can get a round one."
14:15:02ozraJehan_: I use vim alot "on the side", simply because some things are easilier pulled off there, but then I jump right back in to editor X after doing those specific things.
14:15:12*ddl_smurf quit (Client Quit)
14:15:46Jehan_ozra: Well, I've been using Vi(m) for over 25 years now. Old habits and all that ...
14:15:50ozracoffeepot: I like that. I re-invent a lot of wheels - but never if there is a wheel I fid acceptable to begin with. "Round enough".
14:16:47flaviuSometimes all that's available is a steel wheel when I want a concrete wheel.
14:16:52coffeepotozra, completely agree. And that's why I'm here. Some nicely round wheels in motion with Nim
14:17:25ozraJehan_: I guess about 18 for me.. Used the amiga before that, only switched to intel when I discovered linux in '97 and then I got in to vim :) Well, first XFTE actually. It rocked. Think it fell of the earth or something. I hacked for a while, but felt it was wasted dev-time in the end..
14:17:43Araq"something incompatible" mostly means "incompatble with Unix". which itself never gave any fuck about compatibility and used LF when the rest of the world used CR-LF.
14:18:09Araqwhenever we're incompatble with Windows, nobody complains.
14:18:18ozracoffeepot: deffo, and som NIH-warnings on some small parts, and some things one wants to "fix", which is wonderful since it's MIT :)
14:18:24*Aszarsha_ joined #nim
14:18:52Jehan_Hmm, I just tried "nimble install aporia" on OS X and it doesn't even compile.
14:19:31Jehan_Doesn't recognize an identifier "False". Looks like a capitalization issue?
14:19:46AraqJehan_: you need to install aporia#head
14:20:06Araqand no, I don't know why nobody fixes this.
14:20:07Jehan_Araq: Will try. Was just some sudden curiosity.
14:20:20ozraAraq: Yeah, that's a truth, but that's mankind et all. Let's say, "I like tools in the *nix universe to play along as well as possible"... an editor that ignore font-rules (Atom) - blargh! The "errors are not spit on stderr" in Nim is a small such annoyance with me, I hope a PR can be accepted when I get around to it. It breaks to much of the "programming environment that shells represent"
14:22:19*Aszarsha quit (Ping timeout: 245 seconds)
14:22:21ozraAraw: Well, ofc it's subjective, I've never had windows, simply because when I switched to the intel platform is sucked so much balls that _I_ started choking. And I've never really re-evaluated it since. No need.
14:22:45coffeepotI think I'm one of the few windows users here :)
14:22:47*Aszarsha_ quit (Ping timeout: 250 seconds)
14:23:04*kumul joined #nim
14:23:05IronYHello Guys I am IronY, and I am IronYs Bot
14:23:14ozraOfc, I want a cross-platform app to behave with all it's intendended target OSes, even if I don't use them.
14:23:49ozraflaviu: Way to few concrete wheels out there, donät you think!? haha
14:23:59Araqhello IronY I'm the greeting bot of Nim.
14:24:35flaviuAraq: Didn't you actually have a greeting bot set up at one point?
14:25:00Araqflaviu: no, that's a myth.
14:25:14AraqI always greeted everybody personally
14:25:41ozraOk, I'll get to those doc-changes..
14:26:30*ddl_smurf joined #nim
14:27:40*IronY bows to Araq
14:27:41IronYlol
14:27:42IronYI am not a bot
14:27:43IronYI promise
14:28:16*vendethiel quit (Ping timeout: 244 seconds)
14:29:07*pregressive joined #nim
14:29:09coffeepot^ that's exactly what a bot would say
14:30:48*ddl_smurf quit (Ping timeout: 252 seconds)
14:32:20ozracoffeepot: hahaha
14:33:21ozraAraq: docs fixed.
14:33:22Araqozra: that said, our split of nimsuggest vs Aporia is as friendly as it can get for alternative editors/IDEs
14:34:17Jehan_Incidentally, I would like to thank whoever got rid of the csources submodule.
14:34:34coffeepotdid I hear that nimsuggest would support parameter names too somewhen? Looking forward to that if so :)
14:35:10Araqcoffeepot: already does.
14:35:19Araqimplemented that one weeks ago.
14:35:54ozraAraq: Yeah, I really like the nimsuggest concept, it's akin to the typescript IDE "compile server". If it's general enough, perhaps it could be used as an incremental, caching, build daemon too? Speeding up dev compile-cycles and avoiding re-lexing and parsing? Haven't looked at it yeat, just thinking aloud based on the description..
14:37:46Araqozra: that's what we tried with "nim idetools". that one supported incremental C building. in theory.
14:38:42AraqI threw it away cause sometimes "limited but working" >> "does everything and ... doesn't work"
14:39:03Araqnow if only I had applied that wisdom to Nim itself :P
14:39:39coffeepotAraq: it does?! Awesome! I'm running 0.11.2 - should probably update :)
14:40:02Araqcoffeepot: that patch made it into 0.11.2 ...
14:40:08ozraAraw: In Nim domain it should be possible to build a incremental compiler me thinks.. I'm still getting into the compiler, but, it does whole-program analysis, no?
14:40:20ozraBeing somewhat open world and all..
14:40:34ozraAraq: ^ misspelled..
14:41:03coffeepotAraq - how do I enable the param suggestions in Aporia?
14:41:23flaviuozra: Try tab completing names in your irc client. That's what I do.
14:41:40*vendethiel joined #nim
14:41:55dom96coffeepot: sure, I won't be around here much today. Please make an issue on github for your feature request :)
14:42:01Jehan_Araq: Why does nimsuggest default to *:6000 for host and port?
14:42:02ozraflaviu: Wow, didn't even consider trying that. Thanks!
14:42:11coffeepotdom96, cool will do :)
14:42:53AraqJehan_: no idea. I took it over from zahary's work on idetools.
14:42:54Jehan_6000 is the X11 default port and I'd expect the host to be 127.0.0.1 by default (for security reasons).
14:43:45coffeepot... finally time to sign up for github. Now I have to think of a name :(
14:43:54Araqcoffeepot?
14:44:16coffeepotAraq: hmm that would make sense...
14:44:32coffeepottaken tho
14:44:46fowlAraq, untyped works great now, and varargs[expr] seems fine too
14:45:00fowlty^^
14:45:43Araqfowl: er ... I don't think so. I didn't change anything.
14:47:11Araqthere is a weird PR for fixing varargs[expr] though
14:48:28fowler i just checked and varargs[expr] doesnt work right now
14:48:40Araqgood.
14:49:26fowluntyped works well though :D
14:50:43Araqcoffeepot: Aporia only supports 'sug' not 'con', ie '.' and not '('
14:50:54*boopisaway is now known as boop
14:51:41coffeepotah ok, I have that enabled already. I was thinking more proc myProc( .. lists all the versions of myProc and their parameter types
14:51:43Araqcoffeepot: but reactormonk fixed a critical nimsuggest bug, so you might want to update anyway
14:53:00coffeepotAraq excellent, I thought there was something a bit off with nimsuggest, sometimes didn't work. Glad to hear it's been fixed, hopefully I can rely on it a bit more
14:53:32*TEttinger quit (Ping timeout: 252 seconds)
14:56:30*ddl_smurf joined #nim
14:57:02*ddl_smurf quit (Client Quit)
14:57:07coffeepotapparently there's a user on github called "nimnimnim"
14:57:37coffeepotmaking a new user on here is worse than choosing a name for an MMO character XD
14:57:54flaviucoffeepot: How about psC4BulP?
14:58:23coffeepotyep, that's available lol
15:01:30*xcombelle quit (Remote host closed the connection)
15:05:25*vendethiel quit (Ping timeout: 264 seconds)
15:11:19coffeepotdom96 I opened an issue on Aporia for the feature request but I dun no wot I doing, so couldn't work out how to add the 'feature request' label!
15:12:18*maacl quit (Ping timeout: 258 seconds)
15:14:14*banister quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:14:49*vendethiel joined #nim
15:17:26ozraAraq: https://github.com/Araq/Nim/issues/2811 - I'm hacking on this now, so if there's strong resistance to it, I'd like to know early as to chose another strategy (hopefully not :)
15:18:03*vikaton quit ()
15:19:11Araqozra: ugh. the last time I thought about it, I came to the conclusion it's much better to fix the font you use for programming so that _ looks more like -
15:19:15bassais the standard way to get a simple c pointer (to an array) from a nim array: addr somearr[0] ?
15:19:33Araqbassa: that is the standard way
15:20:00coffeepotdoesn't that take the pointer for the first element?
15:20:17ozraAraq: I've considered that, but it's not always an option, and also, in some places one _do_ want the underscores, and to look like what they are.
15:20:45coffeepotis addr somearray[0] == addr somearray ?
15:20:48ozraAraq: the way I see it, there are only usides ;)
15:20:53ozra_upsides_
15:20:53bassayeah coffee, I reckon its because an array in c is just a pointer to the first element afaik
15:21:06coffeepotyeah i did wonder if that'd be the case :)
15:21:15Araqbassa: yeah but it's different for 'seq'
15:21:27coffeepotand string (from experience) ;)
15:21:58Araqozra: but are your new dashes optional like _ in Nim?
15:22:07*Matthias247 joined #nim
15:22:38def-ozra: i don't think i want to read code and wonder if it's a - or —
15:23:09ozraYes, ofcourse, they will be part of the _/Hump unification. I'm still learning the ropes of the editor, so it might take me a bit to get working.
15:23:23ozradef-: You of all people? ;)
15:23:39coffeepotalso, isn't it possible to get the compiler to replace '-' with '_' with a setting? Sure I saw something like that...
15:24:16def-coffeepot: indeed: http://nim-lang.org/0.11.0/filters.html
15:25:07coffeepotwould the link def- posted do what you want, ozra ?
15:25:15ozradef-: in such a code-base / modules, it will be very obious I promise you. And chances are you won't have to touch it. If I made a public module, I'd stick to more commonly used delimiters. But, as always, it should be up to the programming team to decide on coding standards.. Feel free to suggest a Unicode-rune that disambiguates best!
15:25:53def-ozra: i think unicode should be avoided in identifiers
15:26:22def-ozra: this solution for tabs instead of spaces should also work: https://pay.reddit.com/r/programming/comments/34ep78/nim_programming_language_0110_released/cqugfl3
15:26:31ozradef-: It's completely optional to use, and Unicode is bonafide in identifiers already.
15:28:26ozradef-: - thanks for the links. Since I will use this in a biiig app, I'd prefer to avoid unnecessary processing steps if possible, to keep compilation time tight (which also an important factor in the app in question - it will bascially be re-compiled all the time as the primary use-case!)
15:29:30ozraOtherwise I could stick to my C++ + tranpiler setup. I'd like to ditch that..
15:29:49coffeepotozra just wanna say that Nim is very fast at compiling, and AFAIK only compiles changed code
15:31:49ozracoffeepot: yes, ofcourse, and this can be improved further in the future with iterative daemon based compiling (something I might take on, when the app is done and don't demand my resources full time), but still. If you don't like it - don't use it. If you like it, Nim is perfect to have it - since it already does the 'foo_bar' vs 'fooBar' unification..
15:33:04ozraI can't really see any down-sides to a "non-user". You don't use it, you don't pay. I imagine there are alot more people then me that would appreciate it though. Nim could potentially attract lisp users.
15:33:19ozra(not based on this, but on it's extensible nature)
15:34:16ozraOnly downside is one unicode-rune gets reserved for magic, while others are verbatim (like '_' is reserved for magic in identifers right now)
15:35:10ozraIt's the only missing magic out of the "big three" imo.
15:36:35ozraAraq: (re-post this line, it became confusing:) Yes, ofcourse, they will be part of the '_'/Hump unification/magic. I'm still learning the ropes of the _compiler_ source, so it might take me a bit to get working.
15:36:42*Matthias247 quit (Read error: Connection reset by peer)
15:37:15*n0xff joined #nim
15:43:56*jsjoberg joined #nim
15:45:54*banister joined #nim
15:48:16*strcmp1 quit (Ping timeout: 255 seconds)
15:52:52*maacl joined #nim
15:53:36*xet7 quit (Quit: Leaving)
15:55:53*darkf quit (Quit: Leaving)
15:56:33*ddl_smurf joined #nim
15:57:16*OnO quit (Quit: My iMac has gone to sleep. ZZZzzz…)
15:59:09*Siecje joined #nim
15:59:35*BitR joined #nim
16:00:31*fowl quit (Quit: EliteBNC free bnc service - http://elitebnc.org - be a part of the Elite!)
16:01:06ozraAraq: Just give me a dictator power OK on the feature, pretty please, pretty plrease with sugar on top ;) (granted the obvious, that I make an unobtrusive clean implementatin ofcourse)
16:03:20*kumul quit (Quit: Leaving)
16:06:40*fowl_ joined #nim
16:07:41*fowl_ quit (Changing host)
16:07:42*fowl_ joined #nim
16:07:59*fowl_ is now known as fowl
16:09:52*notfowl joined #nim
16:10:35*coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
16:11:54*fowl quit (Quit: Leaving)
16:17:11*ddl_smurf quit (Quit: ddl_smurf)
16:18:14*endragor_ joined #nim
16:20:13*maacl quit (Ping timeout: 255 seconds)
16:21:25*endragor quit (Ping timeout: 244 seconds)
16:22:38*endragor_ quit (Ping timeout: 252 seconds)
16:29:03*vikaton joined #nim
16:36:38*vsajip joined #nim
16:36:58boopis it intentional that nim c doesn't pass -m32 and friends to the compiler when you use --cpu:x?
16:40:55gokrboop: In my article http://goran.krampe.se/2014/11/03/squeak-to-nim/ I compile a 32 bit lib.
16:41:05def-boop: I guess. I always use --passC:-m32 --passL:-m32
16:41:38boopgokr: yeah, i know how
16:41:52boopdef-: hokay, but is there any case where that shouldn't automatically happen?
16:41:58boopor is it just a case of compatibility
16:42:14def-boop: if you're using a real 32bit compiler instead of a multiarch one, you don't need it
16:43:11gokrboop: I am guessing this is a case of "keeping it simple" - since... well, what happens on Windows using VCC etc?
16:43:31boopdef-: mm. fair enough!
16:45:56*Siecje quit (Quit: Leaving.)
16:47:19ozradef-, boop: -march=native should be the best option unless cross-compiling to utilize arch maximally, no?
16:47:43ozraeh.. --cpu:x - sorry...
16:48:03boopozra: compiling libs for a 32 bit program
16:48:19ozraboop: wrote prematurely, sorry! :)
16:48:30boopit's fine! :)
16:49:29*vendethiel quit (Ping timeout: 246 seconds)
16:53:37reactormonkah duh, he left
16:54:22*strcmp1 joined #nim
17:02:08*biscarch joined #nim
17:02:37*xcombelle joined #nim
17:03:07Araqozra: use the · from http://golang.org/src/runtime/asm_386.s
17:03:29xcombellehi
17:04:02Araqthat's rather far away from - and so doesn't cause confusions. IMO.
17:04:11Araqbbl
17:23:59ozraAraq: I added it in a comment on the issue. It looks a bit strange to me, but could actually be better than a 'dash-like' when one gets used to it - I'll use while testing to see..
17:24:17ozrause _it_
17:28:55*strcmp1 quit (Remote host closed the connection)
17:29:15vikatonAraq, confirmed, Exsig is still using Nim, I emailed him earlier
17:29:20vikatonimgay
17:29:26vikatonlol
17:29:34vikatonSorry
17:29:43vikatonmy friend took my laptop and he's quite immature :/
17:30:59ozraimmature gay guy, haha
17:32:02reactormonkvikaton, tell him to type "I'm using Windows" next time
17:32:08Araqozra: all you need to do is to modify compiler/idents.nim and handle your rune like '_'
17:33:25Araqbut I really wonder why you can't modify your font instead.
17:34:39dom96Do we really want to introduce even more rules to the identifiers in Nim?
17:36:18*BlaXpirit-UA quit (Quit: Quit Konversation)
17:38:09*BlaXpirit joined #nim
17:38:32*Siecje joined #nim
17:38:56*vendethiel joined #nim
17:49:23*ddl_smurf joined #nim
17:51:37*saml joined #nim
18:00:01*n0xff quit (Quit: leaving)
18:01:49*cyraxjoe_ is now known as cyraxjoe
18:11:10*filcuc joined #nim
18:12:52*Jesin quit (Quit: Leaving)
18:14:54*Jesin joined #nim
18:17:57*sepisoad joined #nim
18:18:42*sepisoad quit (Read error: Connection reset by peer)
18:27:08*nande joined #nim
18:55:38*CryptoToad joined #nim
18:56:17CryptoToadHey guys, was wondering if anyone had a sample of calling readProcessMemory from the windows API in Nim?
18:58:06AraqCryptoToad: I don't think so, but it looks interesting
18:58:13Araqwhat are you doing?
18:58:48CryptoToadwell the end project is
18:58:57ldleworkCryptoToad: dll injection / detouring etc?
18:59:03CryptoToadto scan through all running processes and scan for a string we know is related to a hacking program
18:59:07ldleworkhah
18:59:10ldleworkknew it
18:59:25ldleworkCryptoToad: I used to be deep into windows RE
18:59:29CryptoToadahh fun :)
18:59:33CryptoToadI'm pretty into it recently
18:59:38CryptoToadNim makes it feel more like playing
18:59:40CryptoToadless like work
19:00:11ldleworkCryptoToad: I worked ona project that was able to inject python into any process and you could detour internal functions and trampoline them to Python functions.
19:00:20CryptoToadooohhh that sounds really handy
19:00:23ldleworkThe python function would get an object describing the stack, registers etc
19:00:32CryptoToadback in my vb days i made a program for trolling RAT kids
19:00:32ldleworkIt had a simple assembler built in etc
19:00:37CryptoToadit was basically a proxy on manual mode
19:00:41CryptoToadso you drove the connection
19:00:52ldleworkCryptoToad: what's your target
19:00:59CryptoToadwell atm it's just for watching for hacks
19:01:04CryptoToadlike if somoene loads an exe
19:01:16CryptoToadit will see in memory that it contains say 'leethax.com private'
19:01:18ldleworkyou're writing a process watcher?
19:01:22CryptoToadyes exactly
19:01:29ldleworkCryptoToad: ah so you're the enemy
19:01:32CryptoToadhaha
19:01:37flaviuI've changed the theme on Nim By Example to be more mobile friendly :D
19:01:37flaviuhttps://nim-by-example.github.io/
19:01:42CryptoToadwell it may be for a botkiller ;)
19:01:56ldleworkflaviu: looks good
19:02:06ldleworkCryptoToad: what are you trying to protect?
19:02:33CryptoToadarbitrary, the protection shcema is the project
19:02:40ldleworkgotcha
19:02:45ldleworkCryptoToad: come to the dark side
19:02:48CryptoToadhaha
19:02:49ldleworkits way more fun
19:02:54Araqflaviu: nice, but https://nim-by-example.github.io/getting_started/ is somewhat outdated :P
19:03:04Araqit contains "Nimrod"
19:03:27flaviuAraq: Thanks! I noticed that, but it looks like I forgot about it.
19:10:02*Arrrrr joined #nim
19:14:11*filcuc quit (Ping timeout: 258 seconds)
19:14:57ozraAraq: Yeah, I reflected it in idents.nim and in hashes.nim, but it doesn't seem to work. When 'echo'ing there, the ident never even passes the fn in the test!? So I must be doing something strange.. But apparantly josephwecker already has this implemented but not PR'ed, if he had time today or tomorrow, he'd push it.
19:18:39*banister quit (Ping timeout: 256 seconds)
19:19:31*xcombelle quit (Remote host closed the connection)
19:20:01*strcmp1 joined #nim
19:21:57Araqdon't touch hashes.nim, but lexer.nim
19:22:20Araqbut again, why not simply change the font?
19:26:02vikatonflaviu: Have you tried git books?
19:26:19flaviuvikaton: yep, that's what I started with.
19:26:35flaviuI changed my mind and switched to nanoc after it deleted my work.
19:26:37flaviu:P
19:26:48vikatonoh lol
19:27:20vikatonimo, I think the bg color and font should be chnaged a bit
19:27:23flaviuhttps://github.com/GitbookIO/gitbook/issues/273
19:27:26BitRflaviu: Would you mind adding a bit about how to discern objects from each other in the OOP section? I at least got surprised by the fact that 'is' is handled at compile time and that 'of' should be used during run time to check if an instance is 'of' an object type.
19:27:49*jefus joined #nim
19:28:34flaviuBitR: Sure.
19:28:47BitRcool :)
19:28:54flaviuvikaton: Can you be more specific?
19:29:24vikatonflaviu: imo, I think the bg should be white and the font a something like Raleway
19:29:46vikatonor something light and clean, like Windows 8's font :P
19:30:32*kokozedman quit (Quit: Leaving)
19:32:07flaviuvikaton: I'm going for more of a book-like feel. Paper pages are usually off-white and Palatino is a popular book font.
19:36:21flaviuYeah, I don't like the way #FFF and Raleway look.
19:36:58vikatonyou tried?
19:37:21vikatonflaviu: idk imo the current one seems kind of old-school
19:37:42vikatonthough my age would explain why
19:38:06*brson joined #nim
19:38:13avsejis it possible to iterate all submatches of regexp?
19:38:53avsejvar matches = findAll("foo://bar", re"((\w+)://)?") I expect matches to be ["foo://bar", "foo"]
19:39:08avsejbut it returns only first capture group
19:40:17flaviuavsej: I don't think it's returning any capture group.
19:40:24Araqiirc 'find' that takes an openArray parameter does that, or use the =~ template
19:40:27*filcuc joined #nim
19:40:34Araqor the nre module
19:40:41Araqspeaking of which ...
19:40:55Araqwhere is the nre PR?
19:41:00avsejis 're' deprecated?
19:41:22flaviuavsej: All I know is that nre is much better https://github.com/flaviut/nre/tree/0.6.1
19:41:30flaviuAnd I'm not in any way biased here :)
19:41:41Araqnot yet deprecated
19:41:46Araqbut will be
19:41:56avsejflaviu, why not merge it today?
19:42:29flaviuavsej: Merge what?
19:42:29avsejoh, it is on nimble
19:42:32avsejokay
19:42:46avsejAraq, mentioned PR, I thought it is going to be part of core
19:43:05flaviuyep, but it was until recently blocked on another PR.
19:43:28flaviuhttps://github.com/Araq/Nim/issues/2511
19:46:43avsej.nimble/pkgs/nre-0.6.1/nre.nim(302, 7) Warning: Special variable 'result' is shadowed. [ResultShadowed]
19:46:44avsej.nimble/pkgs/nre-0.6.1/nre.nim(383, 6) Hint: 'nre.renderBounds(str: string, bounds: Slice[system.int])' is declared but not used [XDeclaredButNotUsed]
19:46:52avsejflaviu, from nre
19:46:57*banister joined #nim
19:47:00*TEttinger joined #nim
19:47:11BlaXpiritflaviu, when are you gonna release nre :|
19:47:25BlaXpiritthere are like 30 commits waiting
19:47:38flaviuavsej: I know, it's been fixed in a later version. BlaXpirit is right, I need to make a release.
19:47:42BlaXpirithah, exactly 30
19:48:00avsejship it! :)
19:48:21BlaXpiritand the next release should be in standard library :>
19:48:30flaviuBlaXpirit: I'll do it today. I just have to fix #16.
19:49:53*Arrrrr quit (Quit: Page closed)
19:50:14*synthmeat quit (Quit: WeeChat 1.3-dev)
19:52:09avsejAraq, does github know about rename? https://dl.dropboxusercontent.com/1/view/p9chmqb3rjdeo9n/Apps/Shutter/Selection_159.png
19:52:12*synthmeat joined #nim
19:52:24def-avsej: yes, but they can't fix it currently
19:52:24avsejflaviu, what I'm doing wrong? https://gist.github.com/avsej/10f57b7dab44f0e0d007
19:52:51flaviuavsej: Delete nimcache, recompile, repeat until it works.
19:52:58avsejok
19:54:02BlaXpiritflaviu, really gotta do something about this. compiling cannot be the default, and not just because of this bug
19:54:25avsejcool works n
19:56:16avsejflaviu, does it support only named captures?
19:56:26Araqso who enabled "Conference Mode"?
19:57:19BlaXpiritavsej, false
19:57:28flaviuavsej: It supports named captures, it supports indexed captures.
19:58:08avsejwhat is conference mode? isn't it personal setting of IRC client?
20:02:58*vikaton quit ()
20:03:47*OnO joined #nim
20:05:07*Matthias247 joined #nim
20:07:49avsejflaviu, I almost reproduced the test case from nre: https://gist.github.com/avsej/6418222f5338eb9954f0 but it does not work
20:09:43flaviuavsej: The documentation is probably wrong. Just add a .get() to the find operation, see https://github.com/flaviut/optional_t#operations for details.
20:11:00avsejhttps://github.com/flaviut/nre/blob/master/test/captures.nim#L48-L49
20:11:12avsejhttps://github.com/flaviut/nre/blob/0.6.1/test/captures.nim#L48-L49
20:12:38avsej Error: undeclared identifier: 'get'
20:12:45avsejthis is what it says
20:12:54ozraAraq: Well 1. dash-delimiters are superior. And the rest is in the commentary on the issue now ;)
20:13:57flaviuavsej: Are you importing optional_t?
20:14:19avsejno, I though I have to import only if I use symbol
20:14:30flaviuavsej: The test suite uses optional_t.nonstrict to make the tests more concise, that's how they get away with not using "get".
20:14:43avsejok
20:14:44flaviuavsej: Well, get is defined in optional_t
20:14:56avsejworks now
20:15:25avsejokay I got idea, this is because ex.get is just syntax sugar for get(ex)
20:15:30avsejgood to know
20:16:16avsejI've seen libraries doing 'import foo; export foo' is it to do it implicitly?
20:16:19*zahary joined #nim
20:17:21ozraAraq: Hmm, figured idents used hashes for "hashIgnoreStyle" for bucket ix hashing.. But as said, I haven't made the map in my head clear about the compiler code base yet - it's still a bit of a jungle..
20:17:27*tdc joined #nim
20:19:06*GOOOBLES joined #nim
20:20:35*banister quit (Read error: No route to host)
20:23:49*vikaton joined #nim
20:24:26flaviuHmm, should optionals be options?
20:27:06flaviuI think it's time for a little more bikeshedding ;)
20:27:26notfowlHey which option t was decided on
20:27:57flaviuhttps://github.com/Araq/Nim/pull/2762
20:28:35*notfowl is now known as fowl
20:28:38avsejflaviu, is it possible to initialize regexp from nri during compile time?
20:29:08flaviuavsej: Nope. https://github.com/flaviut/nre/issues/17
20:29:21*OnO quit (Quit: Textual IRC Client: www.textualapp.com)
20:30:14avsejah, right
20:31:53Araqozra: oh yeah you might be right about hashIgnoreStyle
20:40:38avsejflaviu, is it possible to get list of matches in case like this? https://gist.github.com/avsej/d53237c6f4aa5c8ffb17#file-gistfile1-nim-L4
20:43:11GOOOBLESis the nim gc smoking fast
20:44:37flaviuGOOOBLES: No, but that's not a problem for various reasons.
20:45:00AraqGOOOBLES: it's not too bad but more important is that's thread local and so you can replace it per thread. well, coming soon.
20:47:06flaviuavsej: https://gist.github.com/c648625c347e2f1ef592
20:49:30*nande quit (Read error: Connection reset by peer)
20:49:56flaviuwelp, https://github.com/Araq/Nim/pull/2816
20:53:59*jubalh joined #nim
20:58:31*banister joined #nim
20:58:44*intra quit (Ping timeout: 265 seconds)
20:59:59*brson quit (Ping timeout: 258 seconds)
21:02:46*bluenote_ joined #nim
21:02:46*bluenote_ quit (Changing host)
21:02:46*bluenote_ joined #nim
21:09:46flaviuHmm, is it possible to fix unittest so that `check(none(foo)...)` works?
21:10:25flaviuI can't find a way to tell if "foo" is a typedesc.
21:10:54*tdc quit (Quit: Leaving)
21:11:33fowlflaviu: typed{type}
21:12:43bluenote_flaviu: while you are at it you could rename the suite "optionals" -> "options" as well
21:13:25bluenote_oh, and include my propose `$` implementation :)
21:14:15*jubalh quit (Quit: goodnight)
21:15:19flaviufowl: I'm not sure that helps me in the context of the unittest module.
21:16:00flaviubluenote_: It's already been renamed, I'll send a PR for a `$` as soon as I finish up with what I'm currently working on.
21:18:40bluenote_awesome
21:18:53fowlflaviu: I don't know what youre doing
21:18:57bluenote_btw, I was referring to this occurrence of "optionals": https://github.com/Araq/Nim/blob/devel/lib/pure/options.nim#L121
21:19:44bluenote_isn't it possible to do: check none(int) == none(int)
21:22:45flaviubluenote_: Nope, because of a bug in the unittest module.
21:23:34flaviufowl: check in unittest looks at the call and inspects the parameters. It needs some way of finding out that a given parameter is a typedesc, so that it doesn't try to inspect it.
21:24:20ozraGOOOBLES: As partly mentioned: Each thread has its own gc, so in contrast to for instance golang, which freezes everything when gc'ing, nim threads keep on working, pausing only for they're own gc needs.
21:24:20bluenote_oh, I see
21:25:09fowlflaviu: if it is a macro you can use gettype to see if its a typedesc
21:25:16fowl1 sec I'll look at it
21:25:20avsejflaviu, why port comes before host?
21:26:41BlaXpiritflaviu, try to factor some code outside the check call
21:27:12flaviuavsej: Because the order of the keys and values in a table are undefined.
21:28:31avsejok
21:29:08bluenote_BlaXpirit: yes, he already has done that, it is just not satisfying I guess ;)
21:30:29fowlflaviu: change the condition in inspectargs to check exp.typekind for ntypedesc
21:31:27fowlOh wait this comes from callsite so that won't work
21:32:37*vsajip left #nim (#nim)
21:37:07*boop is now known as boopisaway
21:39:12*wilmerwalton joined #nim
21:39:46*wilmerwalton quit (Client Quit)
21:40:10*solidsnack joined #nim
21:43:35GOOOBLESnim has ref counting it says, that should make it fast
21:46:00GOOOBLESthere is alot of these new c++ alt langs
21:46:11GOOOBLESnim, rust, crystal, d etc
21:46:22*Demon_Fox joined #nim
21:47:29*boopisaway is now known as boop
21:49:41*solidsnack quit (Read error: Connection reset by peer)
21:50:19*bluenote_ quit (Ping timeout: 246 seconds)
21:50:45*filcuc quit (Quit: Konversation terminated!)
21:54:13flaviuGOOOBLES: ref counting doesn't mean it's fast. It's fast enough that I've never had trouble with it, but it doesn't compare to Java's GC.
21:54:51GOOOBLESwell fast i mean no big pauses
21:55:19*dtscode wonders how hard it would be to get nim to target java bytecode...
21:55:20flaviuAh, I see. Not throughput or allocation speed.
21:55:59GOOOBLESthat is less important
21:57:14Araqflaviu: I'm pretty sure I can outperform java's GC, you only need to fill a large heap that stays in use
21:57:59flaviuThere's no need to outperform Java's GC, the only reason it's necessary is because Java requires wasteful allocations.
22:00:08*BitPuffin|osx joined #nim
22:02:43Araqflaviu: btw there really is a big difference between "reference counting" and "deferred reference counting"
22:05:45Jehan_Araq: Pretty much all of Java's GCs should be generational, so a large heap should matter relatively little.
22:06:10GOOOBLESref counting is cooler
22:06:19GOOOBLESit kills the memory sooner
22:06:38AraqJehan_: yeah I know, but there is the occasional "needs full marking" phase
22:07:36GOOOBLESswift does it too
22:07:54Araqbut it might indeed be hard to construct these cases with today's GCs
22:08:59*vendethiel quit (Ping timeout: 258 seconds)
22:11:45*vendethiel joined #nim
22:11:56Jehan_A full stop the world can also be avoided, just needs incremental collection.
22:12:09Jehan_Obviously, the basic implementation is still only soft RT, not hard RT.
22:13:12*boop is now known as boopisaway
22:14:45AraqJehan_: incremental collection only affects pauses, a full scan remains a full scan. when I mean "outperform" I mean "beat it on throughput"
22:15:14Jehan_Ah, I see.
22:15:23Araqanyway, it would be an interesting experiment.
22:15:42Jehan_Well, let's just add cycles to the mix and DRC is at a disadvantage again.
22:15:57Araqshhhhttt
22:16:02Jehan_:)
22:16:30*ingsoc quit (Ping timeout: 272 seconds)
22:17:03Jehan_Not that I think that it matters much. Both amortized performance and pause time can be pretty good these days.
22:17:41Jehan_Biggest problem is with people who can't grasp that the world has moved past "stop the world".
22:28:44reactormonkavsej, be warned, there are a few tests that fail IIRC
22:29:27*pregressive quit (Read error: Connection reset by peer)
22:39:18*taesoo quit (Ping timeout: 272 seconds)
22:43:00*BlaXpirit quit (Quit: Quit Konversation)
22:49:28*brson joined #nim
22:54:30*vendethiel quit (Ping timeout: 272 seconds)
22:56:18*vikaton quit ()
22:58:12*Siecje quit (Read error: Connection reset by peer)
23:03:10*vikaton joined #nim
23:05:47*jbomo joined #nim
23:07:35flaviuHow should private modules in the stdlib be handled?
23:10:50Araqflaviu: these need generated docs too cause we generate links for them and google doesn't like 404s
23:12:27def-flaviu: you could export nothing and include them but I guess that's not what you want
23:12:37flaviuAraq: Ok, just a big disclaimer at the top that it's private and telling people not to touch them?
23:13:43Araqflaviu: yeah and put it in a private subdir
23:13:53flaviuAraq: Ok, sounds good.
23:23:30flaviuCan someone merge https://github.com/Araq/Nim/pull/2817? The nre PR is blocked on it.
23:24:21flaviuWell, it's only really blocked on c9616897f0e0d932c75b61ed96124d8cbac35076, but 3daef85d6ee73c7ef3c89c5ca0738698bcdbfbfa can't hurt anything.
23:25:49*Jehan_ quit (Quit: Leaving)
23:27:04Araqflaviu: done.
23:27:21Araqcan't hurt if it fixes 2 bugs, right?
23:27:29*Matthias247 quit (Read error: Connection reset by peer)
23:27:59flaviuWell, it doesn't actually fix them.
23:28:04Araqdamn
23:28:08flaviuI just used that so they'd get closed.
23:28:14Araqthat PR breaks windows-x64-builder
23:28:18Araq"Failed build basic nim binary"
23:28:27Araqhttp://buildbot.nim-lang.org/builders/windows-x64-builder/builds/428
23:28:58Araqoh wait never mind
23:29:00flaviuAraq: Not my fault :P
23:29:08Araqthat builder is failing for quite some time. yay.
23:30:16Araqhey, zahary is back. welcome back.
23:34:03*taesoo joined #nim
23:40:02*Jesin quit (Ping timeout: 246 seconds)
23:47:55*Jesin joined #nim
23:48:59*Trustable quit (Remote host closed the connection)
23:52:52GOOOBLESJENAH
23:52:58GOOOBLESnoo
23:55:20flaviuBlaXpirit: PR for nre has been sent! https://github.com/Araq/Nim/pull/2818
23:57:22*Kingsquee joined #nim
23:57:53*brson quit (Quit: leaving)
23:58:22*saml_ joined #nim