<< 12-10-2016 >>

00:00:06*OnO quit (Ping timeout: 240 seconds)
00:01:57*M-Quora quit (Ping timeout: 240 seconds)
00:01:57*ftsf_ joined #nim
00:02:32*OnO joined #nim
00:02:37*M-Quora joined #nim
00:03:08*yglukhov joined #nim
00:04:17*zielmicha[m] joined #nim
00:06:01*ehmry joined #nim
00:07:28*zielmicha quit (Write error: Connection reset by peer)
00:07:44*zielmicha_ joined #nim
00:07:52*yglukhov quit (Ping timeout: 260 seconds)
00:09:01*Matthias247 quit (Quit: Matthias247)
00:13:00*ehmry quit (Ping timeout: 240 seconds)
00:13:56*krux02 joined #nim
00:15:28krux02is there a way to specify a symbol for a certain type?
00:15:49krux02I would like to pass `$` as a parameter, but nim doesn't let me for some reason
00:17:01*daekano quit (Ping timeout: 240 seconds)
00:17:34krux02functional programming is not that fun do do in nim :/
00:17:37*TheManiac quit (Ping timeout: 240 seconds)
00:18:19*derlafff quit (Ping timeout: 240 seconds)
00:19:02*derlafff joined #nim
00:20:11*ehmry joined #nim
00:20:58*M-Quora quit (Ping timeout: 240 seconds)
00:23:27*TheManiac joined #nim
00:24:19*daekano joined #nim
00:26:53*M-Quora joined #nim
00:40:14*bjz joined #nim
00:49:37*M-Quora quit (Ping timeout: 240 seconds)
00:50:48*libman quit (Remote host closed the connection)
00:53:57*brechtm_ quit (Remote host closed the connection)
00:54:31*brechtm joined #nim
00:55:27*M-Quora joined #nim
00:59:01*brechtm quit (Ping timeout: 260 seconds)
01:02:38*brson quit (Ping timeout: 240 seconds)
01:03:03*brson joined #nim
01:13:36*brson quit (Ping timeout: 250 seconds)
01:20:37*M-Quora quit (Ping timeout: 240 seconds)
01:26:27*M-Quora joined #nim
01:32:15*chemist69 quit (Ping timeout: 250 seconds)
01:41:44krux02mat.nim(99, 5) Error: invalid type: 'Mat[3, 3, system.int]'
01:42:36ftsf_krux02, might need some more context
01:45:23*chemist69 joined #nim
01:53:19krux02ftsf_: yes I can do that, but until now I didn't even know that somebody was online
01:53:32krux02here it is 3:53 in the moring
01:54:35ftsf_there's always someone lurking >__>
01:57:46krux02ftsf_: https://gist.github.com/krux02/f2c06f5af026fd760e45a75fd57368b6
01:57:59krux02put it in aporia and see the error
01:58:28ftsf_aporia?
01:58:53krux02it's easiest to just run some code I think
01:59:22krux02I know I could configure emacs to do the same, but yea but I rather just put in in aporia and press f5
01:59:28krux02so much simpler
01:59:31krux02anyway
01:59:37ftsf_i don't know what aporia is
01:59:42krux02when you swap line 9 and 10, the error remains in line 10
02:00:07ftsf_so the error is from the echo
02:00:40krux02can you give more context?
02:00:50ftsf_remove the echo line and it doesn't error
02:00:55krux02yea
02:01:18krux02that's not helping
02:01:26ftsf_so something to do with your $ proc presumably
02:01:30krux02the echo line ensures that the generic function actually get's instanciated
02:02:09krux02when it doesn't get instanciated it can put all sorts of crap into it and it wouldn't fail because no functions get looked up
02:02:22ftsf_i see
02:02:58krux02what is weird to me, is the fact that it doesn't fail at all for simpler methods
02:03:03krux02sorry mistyped
02:03:08ftsf_ var strMat : Mat[m.N, m.M, string]
02:03:23krux02I mean it fails on the second var declaration
02:03:49krux02that line that throws the error is totally correct when you swap it with the line above
02:04:08ftsf_interesting
02:04:55krux02I guess I open an issue on github
02:05:06*yglukhov joined #nim
02:05:09krux02as if there weren't already enough issues open that never get fixed
02:05:35ftsf_how do you know they never get fixed?
02:05:40ftsf_time traveller?
02:08:12*Pisuke quit (Ping timeout: 260 seconds)
02:09:17*yglukhov quit (Ping timeout: 240 seconds)
02:09:17*M-Quora quit (Ping timeout: 240 seconds)
02:10:57krux02ftsf_: There are more new issues coming in, than getting fixed
02:11:05krux02the list of issues is just growing
02:11:10krux02not shrinking
02:11:41ftsf_that's pretty normal, more people using it than developing it
02:11:42*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
02:11:56krux02extrapolating that data and assuming that time is finite there have to be problems that will never get fixed
02:15:43*M-Quora joined #nim
02:17:27enthus1astkrux02 if `$` is a template it gets at least eaten, dont know if this makes sense
02:18:11krux02you mean replace proc with template?
02:18:20enthus1astjep
02:20:01krux02No stack traceback available
02:20:03krux02not really
02:20:27enthus1ast?
02:20:54*bjz joined #nim
02:20:55krux02system.nim(2482, 32) Error: internal error: expr(skTemplate); unknown symbol
02:21:04krux02can you paste your version that works?
02:21:09enthus1astähm
02:21:22enthus1aststill complaining on this: var m : Mat[3,3,float]
02:22:45krux02I just made an issue
02:23:27enthus1astit 4:23 too maybe i should sleep : )
02:23:28krux02in case anybody can help: please write there: https://github.com/nim-lang/Nim/issues/4884
02:23:48krux02yes I really need to go to bed, too
02:24:12ftsf_night night
02:24:16krux02good night
02:24:21*krux02 quit (Quit: Leaving)
02:44:58*zielmicha[m] quit (Ping timeout: 240 seconds)
02:48:26*bjz_ joined #nim
02:49:16*bjz quit (Ping timeout: 260 seconds)
02:51:26*zielmicha[m] joined #nim
02:57:01*ARCADIVS quit (Quit: ARCADIVS)
03:00:27*FuntDobra quit (Quit: leaving)
03:00:31*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
03:15:35*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
03:18:17*M-Quora quit (Ping timeout: 240 seconds)
03:18:26*M-Quora joined #nim
03:22:21*Matthias247 joined #nim
03:48:26*sp33der89 joined #nim
03:52:57*sp33der89 quit (Ping timeout: 240 seconds)
04:06:48*yglukhov joined #nim
04:08:19*Matthias247 quit (Quit: Matthias247)
04:11:40*yglukhov quit (Ping timeout: 265 seconds)
04:17:07*Jesin quit (Quit: Leaving)
04:18:53*Jesin joined #nim
04:24:31*kulelu88 quit (Quit: Leaving)
04:31:57*daekano quit (Ping timeout: 240 seconds)
04:32:34*daekano joined #nim
04:47:03*bjz joined #nim
05:11:17*daekano quit (Ping timeout: 240 seconds)
05:14:10*daekano joined #nim
05:18:39*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
05:27:54*FuntDobra joined #nim
05:33:12*lyro quit (Remote host closed the connection)
05:35:40*__UNIcodeX__ joined #nim
05:37:56*kunev quit (Ping timeout: 250 seconds)
05:39:08*UNIcodeX quit (Ping timeout: 260 seconds)
05:40:37*TheManiac quit (Ping timeout: 240 seconds)
05:40:47*TheManiac joined #nim
05:54:58*lyro joined #nim
05:58:25*yglukhov joined #nim
06:03:00*yglukhov quit (Ping timeout: 260 seconds)
06:11:00*arnetheduck quit (Remote host closed the connection)
06:14:01*gangstacat quit (Ping timeout: 260 seconds)
06:19:29*arnetheduck joined #nim
06:21:57*daekano quit (Ping timeout: 240 seconds)
06:22:17*M-Quora quit (Ping timeout: 240 seconds)
06:23:47*gangstacat joined #nim
06:24:21*daekano joined #nim
06:28:14*nsf joined #nim
06:28:41*M-Quora joined #nim
06:31:56*gokr joined #nim
06:39:16*fredrik92 joined #nim
06:55:54*Pisuke joined #nim
07:01:15*Arrrr joined #nim
07:01:32*bjz joined #nim
07:05:41*Matthias247 joined #nim
07:17:47*Arrrr quit (Quit: WeeChat 1.5)
07:20:17*M-Quora quit (Ping timeout: 240 seconds)
07:25:09*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
07:26:09*M-Quora joined #nim
07:26:09*Arrrr joined #nim
07:35:11*Andris_zbx joined #nim
07:36:50*qwertfisch is now known as __________
07:37:38*__________ is now known as qwertfisch
07:41:52*yglukhov joined #nim
07:42:26*yglukhov quit (Remote host closed the connection)
07:52:39*yaiyan quit (Ping timeout: 260 seconds)
07:54:14*yaiyan joined #nim
08:14:37*M-Quora quit (Ping timeout: 240 seconds)
08:21:36*M-Quora joined #nim
08:26:40*BratwurstMitSenf joined #nim
08:27:14*BratwurstMitSenf left #nim (#nim)
08:35:53*chemist69 quit (Ping timeout: 260 seconds)
08:40:11*chemist69 joined #nim
08:42:17*TheManiac quit (Ping timeout: 240 seconds)
08:48:00*yglukhov joined #nim
08:48:06*TheManiac joined #nim
08:48:43*HakanD joined #nim
08:57:24*planhths joined #nim
09:07:49*brechtm joined #nim
09:25:32*pafmaf joined #nim
09:28:25AraqArrrr: fixed 'koch', can you test?
09:31:52ArrrrAh, actually i was looking how to implement it on xp. I'll check it out.
09:43:03Araqwell you should still do that, but it's in finish.nim now
09:46:46Araqwhich is the better solution because then Windows users can click on the finish.exe file :-)
09:48:58ArrrrNow i can compile nim, everything works OK.
09:52:10*desophos quit (Read error: Connection reset by peer)
09:53:41*CcxWrk joined #nim
09:53:54*filcuc joined #nim
09:55:30*HakanD quit (Quit: Be back later ...)
09:58:22*ftsf_ quit (Quit: :q!)
10:00:08*HakanD joined #nim
10:03:41*bjz joined #nim
10:05:27*xet7_ is now known as xet7
10:07:47*HakanD quit (Quit: Be back later ...)
10:11:20*CcxWrk quit (Quit: ZNC 1.6.3 - http://znc.in)
10:11:28*CcxWrk joined #nim
10:11:54euantorNice one Araq, `./finish.exe` should be plenty clear enough for everyone :)
10:15:31*HakanD joined #nim
10:24:19Arrrri'd prefer setup
10:27:13euantorSetup triggers the smart screen filter apparently @Arrrr
10:28:02Arrrrwtf
10:28:23euantorYep, that's what Araq told me on Saturday anyway when we were discussing it
10:29:47ArrrrAnyway, i suppose none who is compiling from scratch will use finish rather than changing by hand the registry
10:30:01ArrrrAnd the ones using the installer won't know about it
10:30:15ArrrrSo i guess the name doesn't matter
10:33:38*ehmry quit (Ping timeout: 240 seconds)
10:34:01AraqArrrr: I want to get rid of the installer
10:34:31Araqhard to maintain and adding features requires hacking in some assembly like scripting language
10:34:42Araqlots of useful features are only available as "plugins"
10:34:55Araqthe stuff that is available doesn't work reliably.
10:35:18Araqnew install: unzip to where you like it, run finish.exe
10:36:18Arrrrcan't the installer do that?
10:37:17derlafffhi guys. were there any recently fixed memory leaks?
10:38:06Araqderlafff: I'm still working on the apparent fragmentation bug
10:38:18Araqbut since 0.15 no leaks have been fixed
10:38:46derlafffit seems I have one and have no idea how to debug it
10:39:00derlafffAraq: fragmentation? probably it is; because I still have few free MB left; but get "could not allocate memory" error
10:39:14Araqderlafff: try --gc:boehm or --gc:markAndSweep
10:39:32Araqbut "few free MB left" doesn't sound too good
10:39:41*ehmry joined #nim
10:39:44Araqbbl
10:40:44enthus1astAraw should koch also download mingw?
10:41:01Araqenthus1ast: no.
10:41:09enthus1ast: )
10:43:26*chemist69 quit (Ping timeout: 250 seconds)
10:47:41*chemist69 joined #nim
10:49:41*enthus1ast quit (Ping timeout: 248 seconds)
10:49:57*enthus1ast joined #nim
10:56:21*enthus1ast quit (Ping timeout: 260 seconds)
10:59:17*daekano quit (Ping timeout: 240 seconds)
11:02:10*daekano joined #nim
11:02:10*Snircle joined #nim
11:02:11derlafffAraq: it's mips router, it has only few megabytes of RAM at all
11:02:27derlafff32M of ram, and 2-3 is usually free
11:02:37derlafffok, I will try these options
11:03:05derlafffbut not sure how to check
11:03:16derlafffproblem usually appears after quite an uptime
11:06:38derlafffAraq: wow, --gc:boehm saved me 50Kb binary size
11:08:09derlafffoh, because it's in libgc.so
11:08:37derlafffseems not to be packaged for openwrt
11:10:17*NhanH quit (Ping timeout: 240 seconds)
11:11:32*elrood joined #nim
11:12:18*NhanH joined #nim
11:15:17derlafffAraq: mark&sweep seems not to leak
11:15:19derlafffthanks
11:15:35derlafffnot pretty sure, yet
11:19:17*M-Quora quit (Ping timeout: 240 seconds)
11:20:18*PMunch joined #nim
11:22:16*brechtm quit (Read error: Connection reset by peer)
11:22:51*brechtm joined #nim
11:23:13cheatfate_derlafff, what you are using from stdlib?
11:23:20*cheatfate_ is now known as cheatfate
11:24:28*brechtm quit (Remote host closed the connection)
11:24:42derlafffcheatfate: http://dpaste.com/13C9RJ8
11:25:52*M-Quora joined #nim
11:27:00derlafffshit
11:27:03derlaffffix didn't work
11:27:03*fredrik92 quit (Quit: Client disconnecting)
11:27:58euantorIf I remember correctly there was some talk about Jester perhaps not closing client connections in some cases recently wasn't there?
11:31:30*HC2 joined #nim
11:31:42*HC2 left #nim (#nim)
11:33:23*brechtm joined #nim
11:34:59*brechtm quit (Remote host closed the connection)
11:36:01*brechtm joined #nim
11:37:26*brechtm quit (Remote host closed the connection)
11:39:14*hohlerde joined #nim
11:39:15hohlerdecan I use the dynlib pragma together with varargs, to import a c function not defining the parameters in nim code?
11:40:17*TheManiac quit (Ping timeout: 240 seconds)
11:42:06*brechtm joined #nim
11:44:35FromGitter<endragor> What does macros.getType(NimNode) accept, exactly? How should the node be structured? Tried to pass an AST of a typed expression, as well as type ident - neither works (`node has no type`). Is there a way to get type info in a macro when just having the type’s identifier?
11:45:41*bjz_ joined #nim
11:46:17*daekano quit (Ping timeout: 240 seconds)
11:46:17*bjz quit (Ping timeout: 260 seconds)
11:47:16*TheManiac joined #nim
11:47:54*fredrik92 joined #nim
11:48:54FromGitter<Araq> @endragor bindSym"ident".getType perhaps.
11:49:43*daekano joined #nim
11:52:38Araqderlafff: do you keep adding things to a table, perhaps?
11:52:54*HakanD quit (Quit: Be back later ...)
11:53:06derlafffAraq: there's a growing table, but I get leaks even without touching that
11:53:20derlafffalso, there are few library tables
11:53:27*HakanD joined #nim
11:54:00Araqwell leaks and OOM are not the same
11:54:39derlafffwell, yep
11:55:00derlafffI disabled some stuff and got 10 more MB
11:55:04derlafffnim takes all it can
11:55:12Araqtables are based on seqs, they double the seq size. if you have growing tables sooner or later the seq will grow beyond what's available
11:55:30derlafffso I guess it's leak
11:55:39Araqthis can happen much sooner than you think.
11:55:58derlafffAraq: I don't touch that table at all
11:56:16derlafffit still leaks
11:56:26derlafffthat jester non-closing problem seems plausible too
11:56:29cheatfateAraq, i think its realloc issue
11:57:24Araqcheatfate: the stlib hardly uses realloc at all
11:57:32Araqbut you mean the fragmentation issue, right
11:57:48derlafffbtw, it was just OK on 0.14
11:57:57*HakanD quit (Ping timeout: 260 seconds)
11:57:58cheatfatehmm
11:58:08cheatfatethen its not realloc
11:58:25derlafffwell, I changed some place: now I spawn subprocess differently
11:58:42derlafffusing execCmdEx now
11:58:50derlafffpreviously used osExec
11:59:21derlafffand that's the place where I get oom exception actually
12:00:13*pie_ joined #nim
12:00:14FromGitter<endragor> @Araq bindSym errors when passing non-literal argument to it :(
12:00:20derlafffAraq: oh, I remembered; my table is cleaned-up
12:00:39*pie_ quit (Changing host)
12:00:39*pie_ joined #nim
12:00:47*derlafff quit (Quit: http://quassel-irc.org - ????????????? ??????. ?????.)
12:00:53FromGitter<endragor> in my case it’s not a hardcoded type, it’s a type that depends on macro arguments
12:00:57*derlafff joined #nim
12:01:44FromGitter<Araq> then the macro arguments need to be 'typed'
12:02:00derlafffAraq: https://github.com/derlaft/fdi/blob/knb/inc/expiretable.nim#L23
12:02:06derlafffso should not be a leak there
12:02:09FromGitter<Araq> getType is for type inspection, it's not for type creation, you don't create types in macros
12:02:18derlafffand again, I don't add much stuff here. not megabytes of it
12:02:31FromGitter<Araq> instead you let the compiler create the types for you
12:03:08cheatfatederlafff, when you deleting key from Table, its not actually freed...
12:03:27FromGitter<endragor> can’t use typed in my case. I’m not intending to create types, I want to inspect type, but its name is not hardcoded - it comes as a part of stmt list passed to the macro.
12:03:28FromGitter<endragor> but the type itself already exists prior to the call to the macro
12:04:11FromGitter<Araq> well you cannot ask for an untyped's type
12:04:25FromGitter<Araq> can you gist your idea?
12:04:36derlafffcheatfate: shit
12:05:02derlafffcheatfate: are there normal hash tables in nim?
12:05:56cheatfatederlafff, you mean hash tables with fixed size? i dont think so
12:06:19derlafffcheatfate: I mean hash tables with ability to actually delete element
12:07:13Araqthey do delete, but they do not shrink
12:07:35Araqbut I don't see the problem, the empty slots are reused
12:07:44Araqeventually when you add again
12:07:52derlafffyep
12:08:14cheatfateAraq, but `Table` can grow up to infinity
12:08:55Araqwell a table is not an LRU cache
12:09:20Araqfor this you need a decent datastructure, would be a nice addition to the stdlib
12:14:00FromGitter<endragor> @Araq For example such macro: ⏎ ```processProcs: ⏎ proc someProc(a: int, b: SomeObj, c: string) = ⏎ # body here``` ⏎ I want `processProcs` to inspect types of arguments (and return values) of proc declarations and produce different results depending on the inspection. All types must already exist prior to the invocation, and if they don’t, the macro could handle such case, too. ⏎ I guess I could achieve what I want by
12:14:00FromGitter... producing `when` statements, just was curious if it’s possible to get type info in a macro when having just a type identifier. [https://gitter.im/nim-lang/Nim?at=57fe2908d6251fd126b11c68]
12:17:59FromGitter<Araq> ah, theoretically your processProcs can use 'typed' for this block
12:18:38FromGitter<Araq> in practice the compiler doesn't do symbol table rewinding and you end up with duplicate identifier problems... hmm tough problem.
12:18:46*Arrrr quit (Quit: WeeChat 1.5)
12:20:22FromGitter<Araq> try to wrap the procs in a 'block' statement
12:24:46FromGitter<endragor> this is a simplified example, I can’t use typed in the real one :) (i.e. if the body is outputed as-is, it may not always compile, but proc signatures are always valid). Thanks for the answer though!
12:25:17*fredrik92 quit (Read error: Connection reset by peer)
12:32:28*aziz joined #nim
12:32:56*aziz quit (Client Quit)
12:33:36FromGitter<dom96> Hrm, Jester non-closing problem?
12:33:48FromGitter<dom96> Anybody got any code samples showing this?
12:34:19*brechtm quit (Remote host closed the connection)
12:34:58*brechtm joined #nim
12:36:07*pafmaf quit (Ping timeout: 250 seconds)
12:36:17euantorI'm sure you mentioned it last week dom96, but I could be wrong
12:36:38euantorSomething about the HTTP server not always closing client connections
12:40:50cheatfateeuantor, not closing connection dont give big leak...
12:41:30euantorDepends on how many connections are left open. if it's a long running program, there could be thousands of unclosed connections
12:42:07arnetheduckAraq, anything blocking https://github.com/nim-lang/Nim/pull/4015?
12:44:37*hohlerde quit (Ping timeout: 240 seconds)
12:44:57*ehmry quit (Ping timeout: 240 seconds)
12:46:05cheatfateeuantor, which connections not closed? HTTP/1.1 or HTTP/1.0?
12:46:11arnetheduckwow, there's a 9mb gif image in the git repo showing how to.. scroll?
12:46:17*zielmicha[m] quit (Ping timeout: 240 seconds)
12:46:23arnetheduckweb/assets/news/images/0.15.0/doc_sort.gif
12:46:51euantorcheatfate: I don't know. I've not used the HTTP server before. I just seem to remember dom mentioning it last week or the week before
12:47:14euantorI could be completely wrong and talking a load of rubbish ;)
12:47:37*TheManiac quit (Ping timeout: 240 seconds)
12:49:05cheatfatepain `gifs` incoming :)
12:50:41*hohlerde joined #nim
12:50:46*ehmry joined #nim
12:52:21*zielmicha[m] joined #nim
12:53:56derlafffhmm. I got another idea. mayble that's not leak: but oom errors that appear only when I create subrocess with a pipe
12:54:00*TheManiac joined #nim
12:54:17Araqarnetheduck: I don't understand the PR
12:54:44Araqderlafff: are you aware of unix's erm interesting process creation?
12:55:12arnetheduckAraq, initallocator is not called, though it should be, in some combinations, because it's not forward declared
12:55:28Araqthat's not an explanation.
12:55:37Araqwhat combinations should trigger it?
12:55:59*planhths quit (Quit: Konversation terminated!)
12:56:36derlafffAraq: I am not really sure how pipes work and why do they require much more memory
12:56:41arnetheduckwell, the same combinations that later declare it.. specifically, anything that uses the block allocator (nogc for example, without useMalloc)
12:56:44arnetheduck*define
12:57:03derlaffffor example, opkg fails on starting piped gzip, just like nim
12:57:11derlafffwhen it's about 2Mb of ram still around
12:57:13FromGitter<dom96> arnetheduck: it's for the news
12:57:38FromGitter<dom96> another reason why we should split the website out of the Nim repo
12:59:18derlafff>When the receiving program is ready to read data, then next program in the pipeline reads from the buffer. In Linux, the size of the buffer is 65536 bytes (64KB)
13:00:03arnetheduckthe code goes something like: 1) forward declare (in system.nim), 2) if declared, call (in system.nim) 3) define (in system/alloc.nim)
13:00:05arnetheduckof course, system/alloc.nim only gets included under some hairy whens
13:00:07arnetheduckand they don't match the forward declaration whens
13:00:48derlafffmuch more free mem than 64KB
13:00:59arnetheduckso, for gc:none (afair, maybe some others too), initallocator is defined (alloc is included), but initallocator is not called, so it's broken
13:01:39Araqgc:none should have a test
13:02:00Araqadd a test please that currently breaks to your PR
13:05:01cheatfatedom96, even for the news 8mb gif which shows how to search and sort its too big
13:05:34FromGitter<dom96> I disagree
13:06:05FromGitter<dom96> It's a high quality gif
13:06:43arnetheduckAraq, ok
13:07:58*Demon_Fox joined #nim
13:08:43cheatfatedom96, ask people do they want to download your gifs while reading news line?
13:09:31FromGitter<dom96> Judging by the amount of people that read the article I would say they do.
13:10:57*M-Quora quit (Ping timeout: 240 seconds)
13:11:24def-dom96: why is that a gif btw and not a video? ime x264 is much smaller at better quality
13:11:51FromGitter<endragor> how does the number of viewers say whether they wanted to downloaded large gifs? all we know is just that they wanted to read the release notes
13:13:04FromGitter<dom96> def-: because I did not have the time to worry about such things.
13:13:28FromGitter<dom96> I simply threw together a gif at the last minute and put it in the article.
13:13:38FromGitter<dom96> Nobody complained about poor load times or any other issues.
13:14:57def-ah, it doesn't actually pull 15 MB of gifs, they're gzipped by the web server
13:15:20def-makes them just 2.5 MB, that's a bit more reasonable
13:16:57cheatfatedom96, only 1 percent of people will complain... 99% of people just leave your page, because they do not want to waste time on downloading and/or complaining...
13:17:17*TheManiac quit (Ping timeout: 240 seconds)
13:17:37*zielmicha[m] quit (Ping timeout: 240 seconds)
13:17:49*M-Quora joined #nim
13:17:54federico3yep
13:17:57*FromGitter quit (Ping timeout: 240 seconds)
13:18:17*ehmry quit (Ping timeout: 240 seconds)
13:22:06*krux02 joined #nim
13:23:02*sp33der89 joined #nim
13:23:33*ARCADIVS joined #nim
13:23:45*TheManiac joined #nim
13:24:33*zielmicha[m] joined #nim
13:24:38*ehmry joined #nim
13:28:37krux02how do I zip two iterators?
13:29:50krux02var it0 = items(myseq)
13:30:07krux02 Error: attempting to call undeclared routine: 'items'
13:30:16krux02I don't understand
13:32:19*BratwurstMitSenf joined #nim
13:32:31*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
13:33:25flyxkrux02: you can only assign closure iterators to variables.
13:33:39flyxand items() on seq is an inline iterator
13:33:43flyx(which is the default)
13:36:11krux02flyx, do you mean it's impossible to explicitly increment an inline iterator
13:36:35flyxkrux02: yes. because it is inlined.
13:37:07krux02flyx: just because it is inlined it doesn't mean it can't be incremented explicitly
13:37:34krux02it would be just a section of code that needs to be executed
13:39:32*sp33der89 left #nim ("Might have choked on too many memes")
13:39:47arnetheduckAraq, that was easy ;) - gctest.nim segfaults with a null pointer read / sigsegv
13:39:52arnetheduckpushed
13:39:54flyxkrux02: yes it does. if you could assign an inline iterator to a variable, it couldn't be inlined because the variable is a runtime construct.
13:39:57krux02inlined iterators can't be passed around because they are inlined, but even that could be solved with a closure to the inlined iterator, but that's also not what I am trying to do
13:40:31Araqkrux02: it would require a completely different codegen approach
13:41:48krux02Araq: I am trying to implement an iterator zipIter, that takes two arbitrary arguments, and yields a pair
13:43:01krux02I think I have to work with openarry now
13:43:25krux02I thought I could combine two iterators, but aparently I can't
13:44:23flyxyou can with some template magic
13:45:52*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
13:45:55krux02flyx: why templates?
13:46:05krux02I don't want to create closure iterators
13:46:25krux02the reason I use iterators is because they are the least overhead (I guess)
13:46:33flyxwell you will need to for creating a pairs() operator.
13:46:43flyx*iterator
13:46:44*Sentreen quit (Quit: WeeChat 1.4)
13:47:09krux02no this is just meh
13:48:48krux02Araq: there is another thing that I wish would work:
13:48:50krux02proc apply[Proc,T](f: Proc, arg: T): type(f(arg)) =
13:48:50krux02 f(arg)
13:48:56*Sentreen joined #nim
13:49:32krux02but the compiler complains that it doesn't know f
13:49:54Araquse 'auto' as the return type
13:50:29krux02Araq: yes I know that workaround, but sometimes I really like to use the implicit result value
13:50:52Araqresult is orthogonal to this
13:51:01Araqit should be available
13:51:10Araqam I missing something?
13:51:59krux02yes, sorry. This is just minimal example
13:52:44krux02My result type is often some sort of array or object where I only access the members
13:54:37*ehmry quit (Ping timeout: 240 seconds)
13:54:46krux02it's not really a big deal at all, I know how to work around it, but sometimes I think because it is so simple to work around it, it might be comparable simple to actually support the given example, and the compiler itself does the workaround.
13:55:26krux02Let's say it would satisfy me a lot, to have the example supported
13:56:17krux02It allows a more consistent code base
14:00:26*ehmry joined #nim
14:20:43*HakanD joined #nim
14:22:57*ehmry quit (Ping timeout: 240 seconds)
14:26:32*brson joined #nim
14:29:01*ehmry joined #nim
14:30:17*hohlerde quit (Ping timeout: 240 seconds)
14:31:18*gokr quit (Ping timeout: 265 seconds)
14:36:38*hohlerde joined #nim
14:46:48arnetheduckkrux02, does it really make sense to keep duplicating code in return & body? this was a major pain in c++11 (later fixed in 14)
14:48:38*pie_ quit (Read error: Connection reset by peer)
14:53:54*chemist69 quit (Ping timeout: 250 seconds)
14:54:26*chemist69 joined #nim
14:56:55*cheatfate quit (Quit: Leaving)
14:58:34*cheatfate joined #nim
15:01:37*CcxCZ quit (Quit: switching to CcxWrk)
15:04:17*TheManiac quit (Ping timeout: 240 seconds)
15:10:44*brechtm quit (Remote host closed the connection)
15:10:53*TheManiac joined #nim
15:15:26HakanDis there a documentation for stack gc/memory regions?
15:21:34krux02arnetheduck: ok I agree that my example makes it look like it would repeat code, but I would like to have this feature, so I can use the implicit result value better. The example doesn't show it though
15:22:15krux02I use it for matrix and vector types
15:23:30*kulelu88 joined #nim
15:24:10krux02Also I like code as documentation
15:24:26krux02I like when the declaration of a method already shows the result type
15:25:27AraqHakanD: not yet, but there is also not much to say about it, you use --gc:stack and withRegion(myregion): ... code here ...
15:25:37Araqwhere var myregion: MemRegion
15:25:58*hohlerde quit (Read error: Connection reset by peer)
15:25:58*TheManiac quit (Read error: Connection reset by peer)
15:25:59*zielmicha[m] quit (Write error: Connection reset by peer)
15:26:00*ehmry quit (Write error: Connection reset by peer)
15:26:00*M-Quora quit (Write error: Connection reset by peer)
15:26:47HakanDAraq: ty, I wasn't sure if it's in a usable state.
15:27:18Araqit's used in production fwiw ...
15:29:30*brechtm joined #nim
15:29:40*arnetheduck quit (Remote host closed the connection)
15:31:02*Matthias247 quit (Read error: Connection reset by peer)
15:32:40*Jesin quit (Quit: Leaving)
15:33:00flyxAraq: does the memory get cleaned after the `withRegion` block or after `region` goes out of scope?
15:34:03*Jesin joined #nim
15:34:37Araqafter the withRegion block of course
15:35:10Araqwell no.
15:35:42Araqit's actually not freed at all, unless you call deallocAll(region)
15:36:31baabelfishis it a feature that sizeof is not working for user made types at compile time?
15:37:24*zielmicha[m] joined #nim
15:37:34Araqyes, we don't want to reimplement the C compiler's sizeof algorithm and get it wrong
15:40:10Araqbaabelfish: I've yet to need sizeof() at compile-time for complex beasts and for simple stuff like tuple[a, b: int] it's easy enough to write it as sizeof(int)*2
15:41:11baabelfish...and then someone adds c to that tuple
15:43:03Araqassert(sizeof(tup) == myComputedSize)
15:43:22*FromGitter joined #nim
15:43:25Araq... and then someone gets an immediate error.
15:45:41*ehmry joined #nim
15:45:41*M-Quora joined #nim
15:45:44*hohlerde joined #nim
15:46:36*TheManiac joined #nim
15:47:52baabelfish:D
15:47:55baabelfishindeed
15:56:50*Andris_zbx quit (Remote host closed the connection)
15:57:54*nsf quit (Quit: WeeChat 1.5)
15:58:24*yglukhov_ joined #nim
16:01:26*cheatfate quit (Quit: Leaving)
16:01:33*yglukhov quit (Ping timeout: 260 seconds)
16:01:50*yglukhov_ quit (Read error: Connection reset by peer)
16:02:57*NhanH quit (Ping timeout: 240 seconds)
16:03:13*yglukhov joined #nim
16:04:07*NhanH joined #nim
16:06:02*planhths joined #nim
16:06:37*filcuc quit (Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/)
16:07:08*cheatfate joined #nim
16:07:58*yglukhov quit (Ping timeout: 265 seconds)
16:09:42baabelfishhmmh, cast[...](x.addr) was not what I wanted indeed... :D
16:10:11baabelfishC++ is hitting me with a baseball bat
16:21:23*pregressive joined #nim
16:25:56*brson quit (Ping timeout: 260 seconds)
16:28:46*Trustable joined #nim
16:29:42*brson joined #nim
16:48:08FromGitter<philip-wernersbach> Can someone describe to me what --gc:stack is?
16:49:28HakanDhttp://forum.nim-lang.org/t/2489 https://github.com/nim-lang/Nim/blob/devel/lib/system/gc_stack.nim
16:52:19FromGitter<philip-wernersbach> HakanD: Thanks. Is that stable?
16:52:51HakanD18:27 (HakanD) Araq: ty, I wasn't sure if it's in a usable state.
16:52:51HakanD18:28 Araq: it's used in production fwiw ...
16:54:22*yglukhov joined #nim
16:55:26FromGitter<philip-wernersbach> HakanD: Thanks
17:11:53HakanD18:27 (HakanD) Araq: ty, I wasn't sure if it's in a usable state.
17:11:53HakanD18:28 Araq: it's used in production fwiw ...
17:11:58HakanDsorry for repost
17:12:03HakanDAraq: couldn't find a way to check a specific region's occupied/free/total mem size, other than the active one. getOccupiedMem only works for the active region,
17:13:42AraqHakanD: patches welcome, gc_stack.nim is the simplest "GC" out there
17:14:02HakanDwill do, thanks
17:14:22HakanDwanted to make sure i wasnt missing anything
17:14:45Araqif you feel adventurous, you can also patch the compiler / runtime so that cross refs produce a runtime error
17:15:14Araqrefs from outer region into inner region are not allowed, vice versa is allowed
17:17:06HakanDnot that versed with the compiler yet (:
17:17:25AraqI will teach you.
17:19:32*yglukhov quit (Remote host closed the connection)
17:21:04*yglukhov joined #nim
17:23:09HakanDAraq: sure, I can take a stab at it
17:24:02Araqhmm we have BratwurstMitSenf in #nim
17:24:09Araqdelicious.
17:24:37*yglukhov quit (Remote host closed the connection)
17:24:37*zidane_g quit (Ping timeout: 260 seconds)
17:27:29*FromGitter quit (Remote host closed the connection)
17:27:38*FromGitter joined #nim
17:28:12*brechtm_ joined #nim
17:32:16*brechtm quit (Ping timeout: 260 seconds)
17:32:30*brechtm_ quit (Ping timeout: 250 seconds)
17:38:04*zidane_g joined #nim
17:42:13*zidane_g quit (Read error: Connection reset by peer)
17:42:44*zidane_g joined #nim
17:51:12*Matthias247 joined #nim
17:54:28cheatfateAraq, you know on windows you can't start more then one process with osproc because you are using single name while creating named pipes?
17:55:05Araqcheatfate: usually osproc doesn't use named pipes though iirc
17:55:14Araqbut no, I wasn't aware.
17:55:25AraqPRs welcome
17:55:54*brson quit (Quit: leaving)
17:57:49cheatfatenope its yours Quasimodo and i dont want to touch him :)
18:28:50*irrequietus joined #nim
18:37:05*yglukhov joined #nim
18:44:41HakanDAraq: in withRegion (https://github.com/nim-lang/Nim/blob/devel/lib/system/gc_stack.nim#L76), the region we pass to the template is copied, thus remains unchanged. is this intended?
18:45:22*yglukhov quit (Remote host closed the connection)
18:45:38Araqhmm I thought it doesn't hurt and will be a bit faster
18:45:47Araqyou're right though that it could be wrong :-)
18:46:21HakanDI was assuming regions are long lived things that could be used in various places
18:47:55*HakanD_m joined #nim
18:48:03*HakanD quit (Quit: Be back later ...)
18:48:12*yglukhov joined #nim
18:48:37*HakanD joined #nim
18:52:28*kunev joined #nim
18:53:16*HakanD quit (Ping timeout: 265 seconds)
18:55:01*pregressive quit (Remote host closed the connection)
18:55:15*pregressive joined #nim
18:56:01*HakanD_m quit (Quit: HakanD_m)
19:04:38krux02is there a way to pass a NimNode as an openarray[NimNode], so that the elements of the array are the children of the node?
19:05:56Araqsure why not
19:06:21*enthus1ast joined #nim
19:07:19krux02does it already work?
19:08:06Araqcreate as seq[NimNode] and pass it to the openarray
19:17:05*Ven_ joined #nim
19:20:31*HakanD joined #nim
19:34:36*aFrigginElf joined #nim
19:40:14krux02Araq: it's created with quote
19:50:18*aFrigginElf quit (Ping timeout: 250 seconds)
19:51:02*brechtm joined #nim
19:51:36*irrequietus quit (Read error: Connection reset by peer)
19:52:12*irrequietus joined #nim
19:53:59enthus1astin async: is it better to store a ref of a tuple in a table or a copy?
19:54:14enthus1asti want to store the tuple in two different tables but when i change the value in one the other should change too
19:57:55dom96a ref of a tuple shouldn't be a thing
19:58:12*HakanD quit (Quit: Be back later ...)
19:58:39dom96create a ref object
19:58:47*HakanD joined #nim
20:00:21*nsf joined #nim
20:00:45enthus1asti'll try that dom96 ty
20:01:16*HakanD quit (Read error: Connection reset by peer)
20:01:26*HakanD joined #nim
20:05:54*gangstacat quit (Ping timeout: 250 seconds)
20:07:49*gangstacat joined #nim
20:08:56*yglukhov quit (Remote host closed the connection)
20:13:09*yglukhov joined #nim
20:13:32flyxthis code should echo "true \\ false", but echoes "false \\ false". why? https://gist.github.com/flyx/098ba75a2cf75998869a647f8bc6fe82
20:14:04flyxprobably I am hitting one of „global vars at compile time are buggy“ or „returning var is not always safe“… or perhaps something else
20:21:04*bjz joined #nim
20:22:12Araqflyx: oh my, can't you write code that doesn't rape my compiler instead?
20:23:10flyxAraq: heh. it's my job to rape compilers, you know
20:23:28flyxanyway, placing the var outside the proc works
20:23:53flyxI can genSym it so I won't have problems with visibility
20:34:04*Ven_ quit (Ping timeout: 250 seconds)
20:35:55*Ven_ joined #nim
20:44:42*gokr joined #nim
20:48:34__UNIcodeX__what's bad about it? New to nim. legitmate question.
20:49:17*Ven_ quit (Ping timeout: 240 seconds)
20:50:08*jh32 quit (Ping timeout: 260 seconds)
20:51:33*bjz quit (Ping timeout: 268 seconds)
20:54:01*bjz joined #nim
20:54:04*Ven_ joined #nim
20:55:06*Ven_ quit (Client Quit)
20:55:36Araq__UNIcodeX__: 'var T' as a return type is a last resort, not something you spread all over your code just because C++ thinks it's a good idea
20:56:10Araqand it's also not really supported by Nim's VM which is used to run this code at compile-time
20:56:24*fredrik92 joined #nim
20:57:00__UNIcodeX__this part? proc transientBitvector(t: typedesc[Person]):???
20:57:06Araqyes
20:57:24__UNIcodeX__k. cool. good to know.
20:57:30cheatfateAraq, if forward declared procedure marked as `*` then all procedures in same module with same name has `*`?
20:57:37__UNIcodeX__I don't come from C, so I probably wouldn't have even thought about it.
20:58:04__UNIcodeX__one of the things that put me off on Pascal is all the TSomeMethodName names... is that related in any way?
20:58:09Araqcheatfate: no, the proc signatures is checked to resolve the forward ...
20:58:34Araq__UNIcodeX__: it's deprecated but C# also uses it for generic parameters
21:00:58cheatfateAraq, interesting in osproc.nim we have forward declaration of `startProcess()` marked with `*`, but os specific declarations not marked with `*`
21:02:08cheatfateso they looks like private module procedures... but they are not private
21:03:02Araqif the forward decl has a * it's exported
21:03:16Araqthe forward decl only belongs to the corresponding decl
21:03:26Araqnot to some other random proc with the same name
21:04:05Araqdunno why it's even a question, everything else makes no sense
21:06:38cheatfateAraq, maybe i'm asking wrong, or my question is too stupid or maybe you are angry on me, but i thought both declarations must be equal (forward one and real one)
21:07:26*yglukhov quit (Remote host closed the connection)
21:07:35Araqcheatfate: well ask something specific then
21:08:36cheatfateAraq, i have asked specific question but got very angry answer
21:09:03Araqsorry.
21:09:25*MyMind joined #nim
21:09:44cheatfateAraq, you don't need to sorry, so never mind
21:09:57Araqwell I don't understand your "question".
21:10:09Araqosproc has a startProcess proc
21:10:11*kunev_ joined #nim
21:10:41Araqhttp://nim-lang.org/docs/osproc.html#startProcess,string,string,openArray%5Bstring%5D,StringTableRef,set%5BProcessOption%5D
21:10:48Araqthat is the one that is exported
21:11:05Araqthe others are not, otherwise the docgen would show them
21:11:38*irrequietus_ joined #nim
21:12:06*cyraxjoe joined #nim
21:12:56*chemist69 quit (Disconnected by services)
21:12:59cheatfatehttps://github.com/nim-lang/Nim/blob/devel/lib/pure/osproc.nim#L143 not equal to https://github.com/nim-lang/Nim/blob/devel/lib/pure/osproc.nim#L143
21:13:01*chemist69_ joined #nim
21:13:05cheatfatethis why i have asked
21:13:24cheatfatethe difference in `*`
21:13:49cheatfateso looks forward declaration override module visibility for real one declarations
21:14:11Araqyou gave me the same line number twice
21:14:16cheatfatesorry
21:14:20cheatfatehttps://github.com/nim-lang/Nim/blob/devel/lib/pure/osproc.nim#L491
21:14:24cheatfatesecond line
21:14:51*zidane_g_ joined #nim
21:14:56*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
21:15:17cheatfateand now i think this module was made before `defined(nimdoc)` was introduced so it was some kind of workaround for nimdoc
21:15:35*der joined #nim
21:15:55Araqno, it is this way because of nimdoc
21:16:19Araqwe have 2 impls for startprocess but want to share the ## documentation.
21:16:28cheatfatei have used `when defined(nimdoc)`
21:16:46cheatfateto make forward declarations for documentation
21:17:11Araqinteresting
21:17:58Araqtoday I would likely move the whens inside the proc body to solve the problem
21:18:28*UNIcodeX joined #nim
21:18:29cheatfatehttps://github.com/nim-lang/Nim/blob/devel/lib/pure/ioselectors.nim#L40
21:19:06*daekano_ joined #nim
21:19:17*irrequietus quit (*.net *.split)
21:19:17*kunev quit (*.net *.split)
21:19:17*zidane_g quit (*.net *.split)
21:19:17*FromGitter quit (*.net *.split)
21:19:18*TheManiac quit (*.net *.split)
21:19:18*hohlerde quit (*.net *.split)
21:19:18*ehmry quit (*.net *.split)
21:19:18*M-Quora quit (*.net *.split)
21:19:18*zielmicha[m] quit (*.net *.split)
21:19:18*derlafff quit (*.net *.split)
21:19:18*daekano quit (*.net *.split)
21:19:18*Pisuke quit (*.net *.split)
21:19:18*lyro quit (*.net *.split)
21:19:18*nim-buildbot quit (*.net *.split)
21:19:18*baabelfish quit (*.net *.split)
21:19:30*daekano_ is now known as daekano
21:19:35*lyro joined #nim
21:19:37*FromGitter joined #nim
21:19:39*TheManiac joined #nim
21:19:45*hohlerde joined #nim
21:20:31*Demon_Fox quit (Ping timeout: 265 seconds)
21:20:31*CcxWrk quit (Ping timeout: 265 seconds)
21:21:48*__UNIcodeX__ quit (Ping timeout: 265 seconds)
21:22:09*zidane_g_ quit (Ping timeout: 260 seconds)
21:22:25*zielmicha[m] joined #nim
21:23:07*Demon_Fox joined #nim
21:23:16*corecode quit (*.net *.split)
21:23:16*Arcanum_za quit (*.net *.split)
21:23:16*huonw quit (*.net *.split)
21:23:25*CcxWrk joined #nim
21:24:07*baabelfish joined #nim
21:24:48*M-Quora joined #nim
21:24:51*ehmry joined #nim
21:25:29*zidane_g_ joined #nim
21:28:18*corecode joined #nim
21:28:19*Arcanum_za joined #nim
21:28:19*huonw joined #nim
21:31:07*wsq6kl0jqe joined #nim
21:35:11*wsq6kl0jqe quit (Read error: Connection reset by peer)
21:36:59*irrequietus_ quit ()
21:49:09*planhths quit (Quit: Konversation terminated!)
21:49:46*brechtm quit (Remote host closed the connection)
21:53:53*gokr quit (Ping timeout: 260 seconds)
21:55:37*krux02 quit (Remote host closed the connection)
22:07:22*brson joined #nim
22:07:57*yglukhov joined #nim
22:13:12*yglukhov quit (Ping timeout: 258 seconds)
22:18:41*elrood quit (Remote host closed the connection)
22:22:24*HakanD quit (Ping timeout: 250 seconds)
22:22:59*HakanD joined #nim
22:24:46*krux02 joined #nim
22:36:25*ent1 joined #nim
22:37:22*nsf quit (Quit: WeeChat 1.5)
22:47:56*planhths joined #nim
22:51:07*planhths quit (Client Quit)
22:53:36*Matthias247 quit (Read error: Connection reset by peer)
23:03:10*HakanD quit (Quit: Be back later ...)
23:03:43*HakanD joined #nim
23:03:44*HakanD_m joined #nim
23:06:20*HakanD_m quit (Client Quit)
23:07:14*Trustable quit (Remote host closed the connection)
23:47:13*HakanD quit (Quit: Be back later ...)
23:47:23*ftsf_ joined #nim
23:47:47*HakanD joined #nim
23:49:46*MyMind quit (Ping timeout: 268 seconds)
23:52:32*HakanD quit (Ping timeout: 260 seconds)
23:53:24*desophos joined #nim
23:59:53*CcxWrk quit (Ping timeout: 260 seconds)