<< 02-06-2016 >>

00:06:03*benwbooth quit (Ping timeout: 240 seconds)
00:08:02*benwbooth joined #nim
00:20:26*desophos quit (Remote host closed the connection)
00:22:49*desophos joined #nim
00:27:28*desophos quit (Ping timeout: 264 seconds)
00:33:59*yglukhov joined #nim
00:38:18*yglukhov quit (Ping timeout: 244 seconds)
00:57:20*Demon_Fox joined #nim
01:03:45*brson quit (Quit: leaving)
01:08:39*chemist69_ joined #nim
01:11:57*chemist69 quit (Ping timeout: 276 seconds)
01:12:29*yglukhov joined #nim
01:17:03*yglukhov quit (Ping timeout: 250 seconds)
01:26:38*desophos joined #nim
02:01:25*yglukhov joined #nim
02:06:04*yglukhov quit (Ping timeout: 272 seconds)
02:12:25*der-landgraf joined #nim
02:19:40*LowLifePerv quit (Quit: thinking about getting a znc)
02:26:02*yglukhov joined #nim
02:30:40*yglukhov quit (Ping timeout: 252 seconds)
02:57:22mccWhat is the definition of the "mod" operator
02:57:30mccBy which I mean: How does "mod" handle differently-signed integers
02:59:08mccI might be missing something but I can't find specific definitions of either % (string%) or mod in the manual, although both are referenced. (%% is defined.)
03:02:35*yglukhov joined #nim
03:07:25*yglukhov quit (Ping timeout: 260 seconds)
03:11:24*|meta quit (Quit: Connection closed for inactivity)
03:27:14*yglukhov joined #nim
03:31:49*yglukhov quit (Ping timeout: 260 seconds)
03:47:22*LowLifePerv joined #nim
03:54:28*GangstaCat quit (Read error: Connection reset by peer)
04:03:17*yglukhov joined #nim
04:07:32*yglukhov quit (Ping timeout: 244 seconds)
04:09:09*GangstaCat joined #nim
04:09:13*desophos quit (Read error: Connection reset by peer)
04:15:16*Sembei quit (Ping timeout: 272 seconds)
04:30:29*endragor joined #nim
04:51:06*yglukhov joined #nim
04:55:35*yglukhov quit (Ping timeout: 244 seconds)
05:06:19*Xe quit (Ping timeout: 260 seconds)
05:19:59*gokr joined #nim
05:21:28*kseg joined #nim
05:21:55ksegAny workarounds to https://github.com/nim-lang/Nim/issues/2722 ? It’s a pretty annoying issue that I seem to continously run into.
05:24:44*s4 joined #nim
05:26:30*mcc quit (Quit: Connection closed for inactivity)
05:27:12*yglukhov joined #nim
05:31:57*yglukhov quit (Ping timeout: 276 seconds)
05:32:54*desophos joined #nim
05:37:49*desophos quit (Ping timeout: 260 seconds)
05:40:27*yglukhov joined #nim
05:44:48*yglukhov quit (Ping timeout: 246 seconds)
05:55:31*woadwarrior joined #nim
06:04:17*zodiak joined #nim
06:04:51*yglukhov joined #nim
06:06:41*zodiak_ quit (Ping timeout: 240 seconds)
06:09:39*yglukhov quit (Ping timeout: 276 seconds)
06:16:31*endragor_ joined #nim
06:19:48*endragor quit (Ping timeout: 244 seconds)
06:20:07*Xe joined #nim
06:32:23*endragor_ quit (Remote host closed the connection)
06:32:52*endragor joined #nim
06:33:11*yglukhov joined #nim
06:34:53*yglukhov quit (Remote host closed the connection)
06:53:24*girvo joined #nim
06:53:32girvoHey all
06:54:01girvoquick question: best way of writing a {.packed.} and padded object out as a series of bytes to a file? :)
06:58:26girvoActually, looking up the Rosetta Code results show that because my packed object is just a series of char arrays anyway, I should be able to just write them out with f.write?
06:58:42girvoas per http://rosettacode.org/wiki/Bitmap/Write_a_PPM_file#Nim
07:00:40*vendethiel quit (Quit: q+)
07:01:35*Demon_Fox quit (Quit: Leaving)
07:03:08*Trustable joined #nim
07:13:49*girvo quit (Remote host closed the connection)
07:14:45*girvo joined #nim
07:19:33*girvo quit (Ping timeout: 260 seconds)
07:23:07Araqkseg: works for me
07:23:49Araquse nim devel or wait for the new release
07:28:44*yglukhov joined #nim
07:29:29Araqyglukhov: no problems with the new path handling?
07:33:33yglukhovAraq: haven't noticed. should there be any?
07:34:03Araqwell I had to patch test cases and even Nimble...
07:34:17Araqbut it depends on your coding style I guess
07:35:24yglukhovok, then my coding style is good i guess =)
07:50:44*xet7 quit (Quit: Leaving)
07:52:43*xet7 joined #nim
07:55:30*fastrom joined #nim
07:55:49*girvo joined #nim
07:59:26cheatfate_Araq, i know why in lwan posts all is so easy :) lwan not using shared/ref memory :)
07:59:42cheatfate_and lwan coroutines dont support floats preserving
07:59:57*desophos joined #nim
08:00:15*girvo quit (Ping timeout: 246 seconds)
08:00:32Araqwell we use continuations rather than coroutines, and we better keep using them, they are faster (in theory...)
08:01:21cheatfate_let me read about `continuations`
08:01:44cheatfate_and now i understand that we need Futures to be in shared memory space...
08:02:36cheatfate_^^^ but this is not a way, just because this causes to move all library to be threadsafe
08:04:32*desophos quit (Ping timeout: 244 seconds)
08:05:33cheatfate_so we need to have future callback dispatcher to take care about threads
08:06:33Araqdon't move Futures from one thread to another (we can attempt that in some later version)
08:06:46Araqfor a start I would simply pass the socket as an int to a worker thread
08:06:46*Sembei joined #nim
08:07:03Araqand the worker thread does all the Future stuff and has its own dispatcher
08:07:39Araqwe only need a primitive way to feed the worker threads some work
08:07:51cheatfate_Araq, this mean all threads calling asyncdispatch.poll()
08:08:11Araqall threads calling their own 'poll'
08:08:22Araqwhich operates on thread local storage
08:09:46cheatfate_Araq, then we dont need this `acceptor thread` like lwan has
08:10:03Araqwe don't?
08:11:40*Arrrr joined #nim
08:11:45cheatfate_currently asyncdispatch uses getGlobalDispatcher() to obtain OS specific `selector`
08:13:52cheatfate_so we can just start N threads which will use their own getThreadDispatcher(), so there will be N OS specific selectors allocated
08:14:15cheatfate_and after that thread can accept&process connections
08:14:58cheatfate_but i dont think it give us speed benefits because its a userspace threads
08:15:29*LowLifePerv is now known as Bruh
08:18:16Araqwell try it and benchmark it
08:23:48*endragor quit (Remote host closed the connection)
08:27:54*fredrik92 joined #nim
08:31:55*Sembei quit (Ping timeout: 244 seconds)
08:48:57*endragor joined #nim
08:57:18*girvo joined #nim
09:01:19cheatfate_Araq, hah, `thing` which i always missing is that i need to modify current asynchttpserver, not asyncdispatch :)
09:01:31*girvo quit (Ping timeout: 244 seconds)
09:03:25cheatfate_Araq, that work i'm always talking about is not pushed out :) https://github.com/nim-lang/Nim/pull/4259
09:03:38cheatfate_is now* pushed out
09:04:49*S1_p joined #nim
09:11:12*fastrom quit (Quit: Leaving.)
09:13:31yglukhovcheatfate, wow thats a big pr. could you add some description please?
09:13:53*Bruh quit (Quit: thinking about getting a znc)
09:14:44Araqhmm I have visions again. about path handling
09:15:02Araqmaybe I should consult a doctor. or maybe you like to hear them?
09:15:23yglukhovoh yeah! path handling is interesting!
09:18:23AraqI like to get rid of nimble paths and the ordinary search path altogether and replace it by a translation table
09:18:39Araqsomething like:
09:19:01Araqstrutils: $stdlib/strutils # import strutils refers to the stdlib
09:19:28Araqrandom: $nimble/random # use the random from nimble package
09:20:04Araqmy/strutils: foo/bar/strutils # but if I import "my/strutils" then use the one in foo/bar/
09:20:23Araqso the table uses "Longest suffix match" for its operation
09:20:49yglukhovwhere should this table be configured?
09:20:59Araqin the project specific config
09:21:24Araqbut: every package gets its own config
09:21:43Araqand they are all processed by the compiler.
09:22:08yglukhovyeah so the compiler would have to keep every source-to-its-config correspondance
09:22:09Araqcurrently only the project config is processed by the compiler. and I'm not so sure people are aware of that.
09:24:02yglukhovtbh i cant see the benefit. what do you think of qulified imports? import std.math, std.random? from std import math, random? import std.{math, random}? etc?
09:25:04yglukhovnimble packages already have unique names, quaranteed by packages.json
09:25:12yglukhov* guarantted
09:25:12AraqI don't wanna type 'import std.math'
09:25:38Araqand what does the 'std' mean? is that the package name?
09:27:30yglukhovno, std is "reserved" package name. and qualification could be optional i guess
09:28:40Araqpeople like to override parts of the stdlib though, my translation table enables that
09:30:18*woadwarrior quit (Quit: My Mac has gone to sleep. ZZZzzz…)
09:32:17yglukhovon the other hand, the current state is pretty ok i guess. author of "random" package was just not lucky enough. isnt it what python does with this problem? nothing?
09:32:56*woadwarrior joined #nim
09:33:49AraqI'm a happy man.
09:34:09AraqI know nothing of Python's package management complexity.
09:34:35Araqwith its import hooks, eggs, distutils and PYTHON_PATH
09:35:05*r4vi joined #nim
09:36:17cheatfate_yglukhov, description updated
09:36:31yglukhovreading it already =)
09:38:03*cheatfate_ is now known as cheatfate
09:38:12yglukhovcheatfate: looks cool! do you by any chance know how to process ui events through nim selectors?
09:39:22*S1_p left #nim (#nim)
09:39:34cheatfateyglukhov, its very easy for x11 or xcb because they are using network, but the problem is with windows and maybe macos
09:40:55cheatfatebut i think i can adopt windows
09:41:26cheatfatebut i'm completely noob in macos ui
09:41:26yglukhovdoesn't windows selector break upon windows msgs? if yes, it should be pretty easy as well. but yeah, macos is harder.
09:41:59cheatfatewindows selector is useless staff because it can handle only SOCKETs
09:42:17yglukhovno, i mean waitformultipleblabla stuff
09:42:38yglukhovisnt it what nim selector uses on windows?
09:43:14cheatfateyglukhov, current selectors.nim is not used on windows while you using asyncdispatch
09:43:37cheatfateasyncdispatch uses Windows Completion ports
09:43:41cheatfateIOCP
09:43:54yglukhovahhh ok
09:44:29cheatfateand i think i can add notification on UI events for windows
09:45:20cheatfateis macos has something like `IsThereAnyUIEventsAvailable`?
09:45:42*kseg quit (Quit: kseg)
09:46:28cheatfateon windows i can start a thread which will do GetMessage() in while(true) and fire events to iocp port
09:46:59cheatfatefor pure x11 or xcb i can do the same
09:51:25cheatfateAraq, is there any problems why my code breaks `tastoverload1.nim`
09:51:41cheatfateAraq, or maybe it was done by you? :)
09:56:24*fredrik92 quit (Read error: Connection reset by peer)
09:57:26*girvo joined #nim
10:00:31cheatfateAhh i forgot i'm failing next test not this one
10:01:33*girvo quit (Ping timeout: 240 seconds)
10:06:55*shodan45 joined #nim
10:16:26cheatfateAraq, what do you think on using processes not threads on unix systems?
10:16:56Araqnot allowed in benchmarks.
10:17:39Araqwhat do I think about it? I think it shows how stupid benchmarks are.
10:20:24cheatfatelol :)
10:21:10*tautologico quit (Quit: Connection closed for inactivity)
10:23:17yglukhovcheatfate: there's a slight problem with your recent callSoon impl.
10:23:34cheatfateyglukhov, which one?
10:25:03cheatfateAraq, maybe its why in all of this benchmarks java frameworks got first places... looks like java advertising...
10:25:10yglukhovreading from socket may result in immediate completion, so that the handler is added to callSoon queue. but the socket itself may no longer produce events in select. and so we will sleep in select. it will select nothing and return upon its timeout.
10:25:21yglukhovand callsoon queue will be processed only after it returns.
10:25:53yglukhovthe simple fix is to add processPendingQueue before select, as well as after it.
10:25:55cheatfateyglukhov, which OS?
10:26:02yglukhovmac and linux
10:26:35cheatfateyou are wrong because there not callSoon() in read/send functions for posix systems
10:26:41cheatfatethere no*
10:26:56*desophos joined #nim
10:26:59cheatfateon this systems we always make addRead/addWrite before doing read/write
10:27:21cheatfateso there no "immediate completion"...
10:27:39cheatfateonly connect uses `callSoon`
10:31:40*desophos quit (Ping timeout: 264 seconds)
10:33:17cheatfateLooking for name for multithreaded asynchttpserver :)
10:36:58dom96Araq: Explain this path handling change to me that you made please
10:43:20dom96cheatfate: just skimmed through your PR: please fix your editor so that it doesn't add leading whitespace.
10:44:17*endragor quit (Remote host closed the connection)
10:45:34dom96Also, you will need to convince me why *completely rewriting* selectors is necessary. Do you have benchmarks to back all these changes up?
10:47:18*krolik joined #nim
10:48:03*krolik quit (Client Quit)
10:48:24*SSPkrolik joined #nim
10:49:02cheatfatedom96, i have not rewrited your selectors.nim, i have made new one
10:49:13yglukhovcheatfate: how about recvLineInto?
10:50:02cheatfateyglukhov, recvLineInto -> recvInto -> addRead()
10:50:28dom96cheatfate: Yes, but you have replaced its usage in asyncdispatch
10:50:59yglukhovok, what i clearly see is callSoon gets called after processPengingQueue and before select
10:51:50*krolik joined #nim
10:52:12cheatfateyglukhov, maybe you have futures in your project which returns `already completed` futures, so they becomes callSoon'ed
10:52:36yglukhovcheatfate: i guess krolik can tell you more about it
10:52:44*SSPkrolik quit (Ping timeout: 250 seconds)
10:53:35cheatfateyglukhov, i think you have "immediate completion" in your project not inside asyncdispatch
10:54:07cheatfateyglukhov, this why you can fall into callSoon()
10:55:06*arnetheduck joined #nim
10:56:30cheatfatedom96, ioselectors.nim is faster by design (it not uses tables.nim, and it not allocating sequences in every select() call), and in my `synthetic` benchmarks is like 50% faster
10:57:21*girvo joined #nim
10:57:52*bjz joined #nim
11:02:15*girvo quit (Ping timeout: 260 seconds)
11:03:21*shodan45 quit (Quit: Konversation terminated!)
11:10:06dom96cheatfate: Right. I'm going to have to review it thoroughly then. I don't think it's wise to merge it in before the next release though.
11:10:42Araqdom96: $projectDir is not added to --path automatically anymore.
11:11:27dom96what does that fix?
11:12:28Araqhttps://github.com/nim-lang/Nim/issues/546
11:19:33*nsf quit (Quit: WeeChat 1.4)
11:25:09*endragor joined #nim
11:30:24yglukhovcheatfate: here's the bug. https://github.com/nim-lang/Nim/issues/4262
11:44:03dom96Araq: shouldn't that break importing local modules then?
11:45:26Araqmodule lookup rules are these:
11:46:29Araq(assuming 'import "foo" ')
11:46:47dom96I think the fact that I can't write: import nimblepkg/foo in a file that is beside a directory called 'nimblepkg' containing a 'foo' module is extremely unexpected.
11:47:15Araqif fileExists(path(currentModule) / "foo") then use that
11:47:24Araqotherwise consult the --path
11:48:08Araqand afterwards the --nimblepath
11:49:14dom96with those rules `import nimblepkg/blah` should work
11:50:07Araqit does if you do --path:"$projectDir" but that's not done for you implicitly anymore
11:50:56dom96for: import "nimblepkg/config"
11:51:20dom96fileExists(./nimblepkg/config) -> true
11:51:27dom96I don't understand
11:51:32dom96what you changed it to shouldn't work
11:51:33cheatfateyglukhov, but `call processPendingCallbacks()` before select() and after will not resolve #4262
11:51:52dom96unless you added 'nimblepkg' to path, which isn't the case
11:52:17AraqfileExists(./nimblepkg/config) # not what is attempted.
11:52:37Araqit's always relative to the location of the *importing module*
11:52:51Araqwhich is the only way that makes sense, IMO.
11:52:56cheatfateyglukhov, as for me poll for 500ms is not needed, and default value must be 0ms
11:53:04dom96right, and the *importing module* is in the same directory as 'nimblepkg'!
11:53:24Araqso you end up with nimblepkg/nimblepkg/foo
11:53:37dom96oh
11:53:45dom96you changed it in nimblepkg/options
11:53:48dom96not nimble.nim
11:54:11dom96ok, that does make sense
11:55:10dom96but yeah, we need a $local/$stdlib magic keywords for the import statement
11:55:20*dom96 has already said this a long time ago :P
11:55:58dom96and perhaps $nimble too
11:56:12dom96but maybe the dollar sign isn't right for this
11:57:22*girvo joined #nim
11:57:27AraqI already implemented $lib but it doesn't really do what you think it does
11:57:41Araqyou need to write "$lib/pure/strutils"
11:57:57Araq "$lib/strutils" doesn't work
11:59:18dom96yeah, that sucks
12:01:02Araqbut I think I will simply make it scriptable :P
12:01:21Araqproc resolveModule(module: string): string # in your .nims config file
12:01:38Araqand then you can also monkeypatch the stdlib
12:02:20*girvo quit (Ping timeout: 260 seconds)
12:02:44dom96no, make the default sane
12:03:05dom96having to script it for every project would suck
12:05:06dom96I think we should just have a trifecta of: 'local', 'stdlib' and 'nimble'. That way you can choose between those if you run into conflicts.
12:05:22dom96import local.random (or maybe 'project'?)
12:05:30dom96import stdlib.random
12:05:35dom96import nimble.random
12:06:12Arrrrsounds good
12:06:34dom96and include the $ maybe if it makes things clearer
12:07:41dom96I think it would be a good idea to make the $ necessary as it would let people know that it's a special thing.
12:07:57cheatfatethen maybe we can make `any local dir`.random too?
12:11:27Araqimport local(random), stdlib(random), nimble(random) where all 3 are Nimscriptable procs :P
12:12:14Arrrrlocal:
12:12:17Arrrr import random
12:13:24dom96Araq: I like it
12:13:40dom96Araq: as long as there is a default implementation
12:17:49dom96although I'm not sure how overriding in nimscript can work :P
12:17:49Araqmeh, I don't really. BlaXpirit.random seems better than nimble.random
12:21:01*bjz_ joined #nim
12:21:40*bjz quit (Ping timeout: 272 seconds)
12:23:05dom96that doesn't fix the problem of "I have a local module called random, how can I use it over the stdlib one?"
12:23:33dom96not to mention it will break everything
12:27:41*Arrrr quit (Quit: WeeChat 1.4)
12:29:58*woadwarrior quit (Quit: My Mac has gone to sleep. ZZZzzz…)
12:30:58dom96but, vendoring is likely the way to go in the future.
12:33:27Araqthat problem you describe doesn't exist.
12:33:56Araqif it's relative to the importing module, it will be picked first, I told you the algorithm.
12:35:16Araqmonkeypatching is about "I want every module to use my random rather than $stdlib.random"
12:35:16*woadwarrior joined #nim
12:42:08dom96oh ok
12:44:27dom96if the vendor name is `import` or some other keyword, `import import.module` will still work, right?
12:45:35Araqno.
12:46:57Araqbut import `import`.module works
12:47:03Araqor will work
12:49:28AraqI think we should do this: import pkg.blah is not the same as import "pkg/blah"
12:49:40Araqthe first is about packages
12:49:45Araqthe second about paths
12:50:02dom96oh yeah, that's a problem too I guess.
12:50:04Araqpaths stay as they are now
12:50:14Araqdot notation gets reinterpreted
12:50:14dom96but I disagree
12:50:20dom96nim doesn't need to do anything
12:50:30dom96nimble needs to install packages into a vendor path
12:51:31dom96although I'm not sure how we can get a nice deprecation path that way
12:51:33*nsf joined #nim
12:56:09dom96also I see you fixed an asynchttpserver regression
12:56:19dom96or rather "attempt" to
12:56:25dom96I assume it fixed the problem?
12:57:22*girvo joined #nim
13:01:47*girvo quit (Ping timeout: 244 seconds)
13:07:35*fastrom joined #nim
13:07:37*krolik_ joined #nim
13:07:56*krolik quit (Ping timeout: 250 seconds)
13:08:36*fastrom quit (Client Quit)
13:33:05cheatfatedom96, to be fair i'm not using nimble at all...
13:35:23dom96 can you test it please?
13:41:24cheatfatedom96, this is not fix, this is just `patch` for fixing we need to teach asynchttpserver to handle chunked-encoding in request body and "transfer-encoding" header
13:42:59dom96sure
13:43:07dom96but it's better than nothing for now
13:44:17cheatfatedom96, about nimble issue, i need something to reproduce without installing gtk2, qt or any other graphical libraries
13:45:08dom96just install anything
13:45:13dom96it shouldn't matter
13:45:27dom96you can install gtk2 even if your system doesn't support it
13:45:47dom96it only downloads the wrapper and copies it into ~/.nimble
13:47:07cheatfatehttps://gist.github.com/cheatfate/2bb7e34d466114b98d7e308ad8506ae1
13:47:10cheatfatedom96, https://gist.github.com/cheatfate/2bb7e34d466114b98d7e308ad8506ae1
13:47:55cheatfateis it enough? or you want me to install particular package?
13:48:43dom96can you try `nimble install cairo`?
13:50:50cheatfatehttps://gist.github.com/cheatfate/33a24894b704c1a20f7ed35e0e727443
13:52:47*s4 quit (Quit: Konversation terminated!)
13:52:51*fastrom joined #nim
13:55:52dom96cheatfate: okay, thanks. Please comment on that issue that it works on FreeBSD for you.
13:57:27*girvo joined #nim
14:00:02cheatfatedom96, commented
14:01:49*girvo quit (Ping timeout: 258 seconds)
14:05:37dom96thanks
14:10:22*_stowa joined #nim
14:12:12*|meta joined #nim
14:18:25*_stowa quit (K-Lined)
14:24:35cheatfatedom96, please check one more idea https://github.com/nim-lang/Nim/issues/4262
14:28:51*xet7 quit (Quit: Leaving)
14:30:35*xet7 joined #nim
14:33:57*woadwarrior quit (Ping timeout: 250 seconds)
14:38:30*krolik_ quit (Ping timeout: 250 seconds)
14:40:55*pregressive joined #nim
14:41:18Araqhow about we deprecate foo.bar in imports for the upcoming release?
14:41:55*girvo joined #nim
14:42:16Araqimport nimblepkg.bar just makes sense, IMO and who needs the dot to be an alias for / ?
14:45:08dom96so then will it be 'import nimblepkg.bar/foo'?
14:45:44Araqno, import jester.foo
14:45:52Araqimport BlaXpirit.random
14:46:27Araqimport vendor.module
14:46:42*girvo quit (Ping timeout: 272 seconds)
14:48:06BlaXpirit:|
14:48:25*krolik joined #nim
14:48:33dom96yeah, maybe stop highlighting BlaXpirit :P
14:49:11dom96Araq: what if the module is in a subdirectory?
14:50:11Araqimport vendor.bar/foo ? meh.
14:50:29Araqmaybe let's stick to import "$vendor/bar/foo"
14:50:40Araqno deprecation path necessary then
14:51:44dom96but then Nim needs to know about the vendors
14:52:20*brson joined #nim
14:52:40*arnetheduck quit (Ping timeout: 264 seconds)
14:52:54*gokr quit (Ping timeout: 276 seconds)
14:55:47BlaXpiritnot that I care much but this sounds like a bad idea
14:56:24BlaXpiritjust disallow 3rd party libs to use names from standard library
14:57:36dom96BlaXpirit: why do you think it's a bad idea?
14:58:12BlaXpiritsometimes a library doesn't even have a "vendor", you'll end up with $lib.$lib
14:58:19BlaXpiritit's annoying
14:58:46BlaXpiritand vendors change names muuuuch more often than a lib changes names
15:00:26dom96hrm, true regarding first point.
15:00:33dom96If I install a local Nimble package then its vendor is unclear
15:01:20BlaXpiritwhat does it matter if it's local? I hope you weren't considering github as the sole source of packages..?
15:03:46BlaXpiritanyhow, these pings reminded me that I needed to fix something in nim-random. now it's in great shape.
15:05:47dom96Indeed, if I download a package from somewhere else, or even from Github, manually. Then I try to install from my local filesystem then there is no vendor information attached to it.
15:06:01dom96That's what I meant by a 'local package'
15:06:39dom96GitHub/BitBucket are the sole sources of packages as of right now.
15:06:57dom96And they both contain vendor info
15:07:47*Sembei joined #nim
15:09:08dom96but there will surely be people that will download a zipped nimble package and expect the installation to work
15:10:35dom96So I guess the Nimble files will need to specify the vendor
15:17:10*Pisuke quit (Ping timeout: 260 seconds)
15:17:16*Sembei quit (Ping timeout: 264 seconds)
15:18:21*Parashurama joined #nim
15:24:49Araqwith my translation table idea you can teach Nim what $vendor means
15:25:19*Sembei joined #nim
15:25:26Araqlikewise with my resolvePath nimscript idea
15:25:37Parashuramaall: Is test(@["foo"]) or test(["foo"]) supposed to match: proc test(path: varargs[string]) ?
15:25:53ParashuramaI find find that surprising.
15:28:00Araqyeah it's supposed to match, but maybe you're right
15:29:31ParashuramaI'm not saying its wrong. It can be useful for chaining varargs proc, kind of like vararg in C <stdarg.h>
15:30:13ParashuramaBut yeah surprising. It definitely need to be documented.
15:32:03dom96Araq: I think it should always mean the same thing
15:32:22ParashuramaRereading the entry in the Manual, http://nim-lang.org/docs/manual.html#types-varargs, it is implied but very clear.
15:32:30Parashurama*not very clear
15:32:41AraqParashurama: https://github.com/nim-lang/Nim/issues/1798
15:32:54Araqwe have a bug report for everything :P
15:33:24ParashuramaI can see that.
15:34:14ParashuramaWe should also give an error on two varargs parameter in one proc. It is currently allowed and duplicate the arguments.
15:37:15flyxregarding the path discussion, what if the nimble package name does not equal the main module? my nimble package is named "nimyaml" but the main module is named "yaml". how could this be imported? import flyx.nimyaml.yaml ?
15:38:36dom96flyx: your package name must match the main module name
15:38:47dom96this will be enforced by nimble soon
15:38:57flyxum well that's unfortunate
15:39:48flyxI cannot name my module yaml then because that's already taken
15:39:59*PMunch-mobile joined #nim
15:41:17dom96flyx: maybe you could ask the owner of that package to rename it?
15:41:41dom96yours presumably has more features
15:41:47dom96and so should get the better name
15:42:02flyxthat's theduke. I queried hime once about it, but he didn't react and I haven't seen him around here for a while
15:42:27PMunch-mobileHi, I was wondering if/how it's possible to write an extensible program in Nim. I'm looking to start a new project and one of the things I'd like to incorporate are plugins.
15:43:24*AndChat|265524 joined #nim
15:43:24*PMunch-mobile quit (Read error: Connection reset by peer)
15:43:48AndChat|265524Sorry for dropping.. Network change
15:44:05*girvo joined #nim
15:44:11dom96flyx: Please create an issue in his repo
15:44:24flyxI'll do
15:44:24*AndChat|265524 is now known as PMunch-mobile
15:44:27dom96I might just force the rename if he doesn't reply
15:44:51PMunch-mobileWhich package?
15:45:25dom96yaml
15:46:29flyxI am not sure whether forcing is a good thing to do. at least without having a proper, written policy regarding names in the package repo
15:47:04dom96yeah. Unfortunately that's true.
15:48:46*girvo quit (Ping timeout: 258 seconds)
15:51:59*fastrom quit (Quit: Leaving.)
15:54:30flyxI've dropped an issue, let's see if he reacts
15:57:48*krolik quit (Ping timeout: 250 seconds)
15:58:16dom96flyx: brilliant, thanks
15:58:22*MyMind joined #nim
16:03:44*bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
16:04:04*bjz joined #nim
16:04:19*yglukhov quit (Ping timeout: 260 seconds)
16:13:04*PMunch-mobile quit (Quit: Bye)
16:14:10*filcuc joined #nim
16:16:34*Sembei quit (Ping timeout: 244 seconds)
16:25:04*endragor quit (Remote host closed the connection)
16:26:01*pregressive quit (Remote host closed the connection)
16:26:21*pregressive joined #nim
16:29:42*Sembei joined #nim
16:38:45*fastrom joined #nim
16:44:12*girvo joined #nim
16:48:35*yglukhov joined #nim
16:48:45*girvo quit (Ping timeout: 260 seconds)
16:50:14*yglukhov quit (Remote host closed the connection)
16:50:28*yglukhov joined #nim
16:54:13*pregressive quit (Remote host closed the connection)
16:59:38*pregressive joined #nim
17:04:47*benwbooth quit (Quit: Textual IRC Client: www.textualapp.com)
17:05:05*benwbooth joined #nim
17:08:15dom96strtabs.getOrDefault returns "" when a value isn't found, whereas tables.getOrDefault returns `nil` :\
17:15:32dom96Araq: Should it be possible to export converters?
17:15:40dom96it doesn't appear to be working
17:18:19*pregressive quit (Remote host closed the connection)
17:18:47*nsf quit (Quit: WeeChat 1.4)
17:24:14*pregressive joined #nim
17:27:29*Jesin quit (Quit: Leaving)
17:30:14*Jesin joined #nim
17:31:50*Parashurama quit (Quit: ChatZilla 0.9.92 [Firefox 46.0.1/20160511224154])
17:40:09*fastrom quit (Quit: Leaving.)
17:40:51dom96Araq: also, is this meant to work? https://github.com/nim-lang/Nim/blob/devel/lib/pure/httpclient.nim#L87
17:43:08*girvo joined #nim
17:47:29*girvo quit (Ping timeout: 244 seconds)
17:48:40*yglukhov quit (Remote host closed the connection)
17:55:53Araqdom96: I don't think I implemented that
18:11:19*yglukhov joined #nim
18:12:11*yglukhov quit (Remote host closed the connection)
18:12:26*yglukhov joined #nim
18:26:32*nsf joined #nim
18:27:05*chemist69_ quit (Ping timeout: 258 seconds)
18:28:27flyxseems like a user named gradha removed some repos that are referenced in packages.json: https://travis-ci.org/nim-lang/packages/builds/134813299
18:28:54flyxnow my pull request breaks. should I remove those repos to have it passing?
18:32:47dom96nah
18:32:50dom96I'll remove them later
18:33:04dom96see my comment on what you should change
18:34:03flyxcan I put an array on "name", like ["yaml", "nimyaml"] ?
18:34:41dom96no
18:37:19flyxokay, re-added nimyaml
18:37:50*StarBrilliant quit (Ping timeout: 260 seconds)
18:40:27dom96you sure? I don't see it
18:42:37*Sembei quit (Ping timeout: 260 seconds)
18:43:07*girvo joined #nim
18:44:14*chemist69_ joined #nim
18:48:12*girvo quit (Ping timeout: 276 seconds)
18:52:42*desophos joined #nim
18:54:40dom96flyx: ^
18:55:18flyxthat's my change: https://github.com/nim-lang/packages/pull/359/commits/18216fe3d1c9021d47cc51d67166a796791b514f
18:57:10dom96Why is it not shown here? https://github.com/nim-lang/packages/pull/359/files
18:57:18*PMunch joined #nim
18:57:30*yglukhov quit (Ping timeout: 272 seconds)
18:59:26*yglukhov joined #nim
18:59:32*pregressive quit (Remote host closed the connection)
19:01:50*TheLemonMan joined #nim
19:04:41*yglukhov quit (Ping timeout: 240 seconds)
19:04:54*yglukhov joined #nim
19:08:12*GangstaCat quit (Quit: Leaving)
19:12:12flyxdom96: because I first „moved“ it to yaml, then I added it again as nimyaml. therefore, the original nimyaml part is unmodified and the diff only shows that I replaced the old yaml with NimYAML
19:15:04dom96oh of course
19:15:06dom96merged
19:15:55Araqdom96: lib/pure/httpclient.nim(83, 17) Error: cannot open 'httpcore'
19:16:00Araqstill a problem
19:16:11AraqI fixed my regression, now I think it's yours.
19:16:38dom96yep. Fixed
19:21:15*GangstaCat joined #nim
19:35:05*Bruh joined #nim
19:35:19*benwbooth quit (Ping timeout: 252 seconds)
19:38:21*benwbooth joined #nim
19:43:04*girvo joined #nim
19:43:09*gokr joined #nim
19:43:15*benwbooth quit (Ping timeout: 244 seconds)
19:46:33*benwbooth joined #nim
19:47:52*girvo quit (Ping timeout: 264 seconds)
19:49:01*desophos quit (Read error: Connection reset by peer)
19:49:40*desophos joined #nim
19:52:45*gokr quit (Quit: Leaving.)
19:53:06*gokr joined #nim
19:55:05fowlWhy would gradha remove his packages
20:07:01*Matthias247 joined #nim
20:12:27*benwbooth quit (Ping timeout: 246 seconds)
20:15:04*benwbooth joined #nim
20:38:01*Demon_Fox joined #nim
20:43:05*girvo joined #nim
20:47:27*girvo quit (Ping timeout: 246 seconds)
21:07:47*tautologico joined #nim
21:20:15*TheLemonMan quit (Quit: "It's now safe to turn off your computer.")
21:43:03*girvo joined #nim
21:47:54*girvo quit (Ping timeout: 260 seconds)
21:55:38onionhammernot something a rational person would do
21:59:05*PMunch quit (Quit: leaving)
21:59:42*desophos_ joined #nim
22:00:36*desophos quit (Ping timeout: 276 seconds)
22:01:53*filcuc quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/)
22:02:54*ivan joined #nim
22:03:44tautologicoany efforts already to create nim bindings to libui? https://github.com/andlabs/libui
22:04:18*desophos_ quit (Ping timeout: 244 seconds)
22:15:23cheatfatedom96, could you please explain my problem with my editor... i'm not sure i'm fully understand
22:18:58def-tautologico: haven't seen anything, but on a related note, there's https://github.com/yglukhov/nimx
22:20:35dom96cheatfate: http://stackoverflow.com/questions/21410075/what-is-trailing-whitespace-and-how-can-i-handle-this
22:23:11*girvo joined #nim
22:23:37*desophos joined #nim
22:26:14cheatfatedom96, thanks
22:26:24*gokr quit (Ping timeout: 260 seconds)
22:27:32*girvo quit (Ping timeout: 244 seconds)
22:27:53*desophos quit (Ping timeout: 244 seconds)
22:32:28*girvo joined #nim
22:43:09*girvo quit (Ping timeout: 258 seconds)
22:43:27*Demon_Fox quit (Quit: Leaving)
22:43:45*desophos joined #nim
22:50:43*Trustable quit (Remote host closed the connection)
23:04:58*yglukhov quit (Remote host closed the connection)
23:22:24*yglukhov joined #nim
23:22:34Araqtautologico: tried to c2nim it? should be easy enough.
23:23:31tautologicoAraq: didn't try it, I'm hoping someone will create a lib for me :)
23:23:41*Matthias247 quit (Read error: Connection reset by peer)
23:26:42*Bruh quit (Quit: nah. no need for znc)
23:26:57*yglukhov quit (Ping timeout: 244 seconds)
23:28:07Araqhmmm, maybe I will port NimEdit to use that...
23:30:53cheatfateAraq, i really dont understand why libui uses cpp... most of code is C only
23:32:52def-cheatfate: easier interaction with Windows API probably
23:32:59AraqI don't understand you. it doesn't use C++.
23:33:18cheatfateAraq, look at windows directory
23:33:46cheatfatedef-, Windows API is not using classes, only MFC using classes
23:34:10def-cheatfate: from what I heard new Windows API functions are C++ only and difficult and buggy to access through C
23:34:34Araqit doesn't use C++ afaict.
23:34:44Araqit uses the .cpp file extension though.
23:34:49cheatfateAraq, and .hpp
23:34:52Araqperhaps for Visual Studio
23:35:19Araqthey also use Objective-C for Mac OS X :P
23:35:42Araqso what, they expose a primitive C library and that's all that matters
23:35:54def-cheatfate: google leads me here: https://www.reddit.com/r/programming/comments/4k6x5h/libui_crossplatform_gui_library_in_c/d3cnwq0
23:36:39def-where pgandlabs, the author, responds
23:37:06cheatfateDirectWrite is not windows API its DirectX 2D API
23:37:33cheatfateand even so, its possible to use it without CPP
23:39:22*girvo joined #nim
23:41:28Araqso? What's wrong with C++?
23:43:56cheatfateIts very strange why he is using DirectWrite for font rendering...
23:44:05*girvo quit (Ping timeout: 260 seconds)
23:47:47Araqbecause it kicks ass for font rendering
23:47:56Araqand is what Microsoft suggests to use
23:48:09tautologicoDirectWrite seems to be the current recommended way to render text on windows
23:48:15tautologicoit's not Direct2D only anymore
23:49:18Araqseriously. very interesting for NimEdit, I'm wrapping it now.
23:54:48*yglukhov joined #nim
23:58:04Araqhmm, that was easy.
23:58:12Araqnow how do I install this thing?
23:59:12*girvo joined #nim
23:59:26*yglukhov quit (Ping timeout: 258 seconds)