<< 30-09-2015 >>

00:08:25*rollo quit (Quit: Leaving)
00:12:18*Kingsquee joined #nim
00:16:57*MonkeyJam quit (Quit: Leaving...)
00:23:12*Sahnvour quit (Read error: Connection reset by peer)
00:35:43gmpreussner|workhas anyone done any Nim work with DirectX 12 yet?
00:35:51gmpreussner|workit looks like it's very COM heavy
00:38:49Araqreally? interesting. I thought COM is not even compatible with their low level performance goals
00:40:42gmpreussner|workyep
00:41:01gmpreussner|worki was gonna start some work this week, but looks like it won't be that easy
00:41:13gmpreussner|workperhaps i start with Vulkan instead. that's all straight C :)
00:41:41Araqcool!
00:41:57gmpreussner|workwell, DirectX 12 is still kinda important though
00:42:04gmpreussner|workwhat would the roadmap be for this?
00:42:16gmpreussner|workaccording to a forum post i found, COM support is still in the works kinda sorta!?
00:42:54*vikaton quit (Quit: Connection closed for inactivity)
00:46:24*jakesyl joined #nim
00:46:48Araqwell I only know how to do COM with some C API like disphelper
00:47:34Araqbut that's not performant enough for DirectX 12
00:48:22AraqI think we have 2 options: model it as function pointers with explicit 'this' etc. in other words, like it would be in C.
00:48:49Araqoption B: Embrace our C++ code generator and wrap the C++.
00:49:15onionhammeraraq C++ codegen is borked :P
00:49:18Araqboth are feasible but Demos complained the C API approach is really hard to work with in the end
00:49:36Araqonionhammer: I will fix it soon.
00:49:55onionhammercoolio
00:50:20Araqwe use it all the time btw
00:50:57Araqbut not every stdlib module seems to work with it
00:52:39Araqgmpreussner|work: post on the forum, wait for demos to show up, study his direct x wrapper, iirc he wrapped DirectX 11
00:53:01*tmm1 joined #nim
00:53:12gmpreussner|workok
00:54:16gmpreussner|workoh
00:54:29gmpreussner|worki'm looking at the include header right now.... they have a C version of their API
00:55:12gmpreussner|worki'm gonna write a wrapper and see how far i get
00:55:16gmpreussner|worki'll keep you posted
00:55:59Araqgreat :-)
01:01:56*Demon_Fox_ joined #nim
01:04:38*Demon_Fox quit (Ping timeout: 260 seconds)
01:12:38*Jesin joined #nim
01:23:14*chemist69 joined #nim
01:26:34*chemist69_ quit (Ping timeout: 260 seconds)
01:27:51tmm1Araq: thanks for the tip about the c2nim post processor, i was able to get it working
01:28:59*yglukhov joined #nim
01:33:24*yglukhov quit (Ping timeout: 264 seconds)
01:41:48tmm1is it safe to modify seq during iteration?
01:56:31*FedeOmoto joined #nim
02:09:11*vendethiel joined #nim
02:13:58tmm1dom96: mind flipping travis on for c2nim as well so i can test my pr
02:33:08*vendethiel quit (Ping timeout: 265 seconds)
03:09:36*darkf joined #nim
04:55:22*gokr joined #nim
04:57:34*tmm1 quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
05:01:11*bjz joined #nim
05:10:20*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
05:22:57*bjz joined #nim
05:31:52*jakesyl_ quit (Quit: This computer has gone to sleep)
05:41:49*FedeOmoto quit (Quit: Leaving)
05:58:56Xewhat is \c\L for in Nim?
06:08:16*AforAvi joined #nim
06:09:25*Pisuke joined #nim
06:11:35*MyMind quit (Ping timeout: 250 seconds)
06:14:41*jefus quit (Ping timeout: 268 seconds)
06:25:02VarriountXe: http://nim-lang.org/docs/manual.html#lexical-analysis-string-literals
06:25:51*Ven joined #nim
06:27:28*jefus joined #nim
06:33:20ekarlsodidn't know but: http://forum.nim-lang.org/t/1278 nice :P
06:42:39*AndChat|235809 joined #nim
06:45:18*AndChat|235809 quit (Remote host closed the connection)
06:46:16*AndChat|235809 joined #nim
06:47:54*BitPuffin|osx quit (Ping timeout: 272 seconds)
06:48:10*AndChat|235809 quit (Remote host closed the connection)
06:51:10*smodo joined #nim
06:52:56ekarlsohmmm, gokr you doing alot of changse to nim ? :d
07:14:35*darkf_ joined #nim
07:15:45*yglukhov joined #nim
07:16:38*darkf quit (Ping timeout: 240 seconds)
07:35:26*repax joined #nim
07:35:52*Trustable joined #nim
07:45:46*AndChat|235809 joined #nim
07:46:15*AndChat|235809 is now known as Peter99
07:49:23AforAvi def- : hey Dennis, thanks for http://howistart.org/posts/nim I appreciate your work
07:55:23*r-ku quit (Quit: ZNC - http://znc.in)
08:01:34*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:02:36*r-ku joined #nim
08:07:32*AndChat|235809 joined #nim
08:07:33*Peter99 quit (Read error: Connection reset by peer)
08:10:32*AndChat-235809 joined #nim
08:11:50*AndChat|235809 quit (Ping timeout: 240 seconds)
08:26:50*Ven joined #nim
08:34:34*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
08:34:50*shodan45 quit (Quit: Konversation terminated!)
08:36:58*kniteli quit (Ping timeout: 240 seconds)
08:37:08*vegansk quit (Remote host closed the connection)
08:39:54*Ven joined #nim
08:41:35*vegansk joined #nim
08:44:57*davidhq joined #nim
09:02:21*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
09:03:31NimBotnim-lang/Nim devel d80f163 Araq [+0 ±3 -0]: NimScript: --define works as expected
09:05:53*Demon_Fox_ quit (Quit: Leaving)
09:14:26*AndChat|235809 joined #nim
09:14:28*AndChat-235809 quit (Read error: Connection reset by peer)
09:26:25def-AforAvi: nice to hear, you're welcome!
09:26:32*AndChat|235809 quit (Read error: Connection reset by peer)
09:26:45*AndChat|235809 joined #nim
09:28:58*Sahnvour joined #nim
09:36:05dom96tmm1: done
09:37:23NimBotnim-lang/Nim devel 243e665 Aman Gupta [+0 ±1 -0]: fix current directory
09:37:23NimBotnim-lang/Nim devel 52230e2 Aman Gupta [+0 ±1 -0]: set PATH for tests
09:37:23NimBotnim-lang/Nim devel dd1e0bd Aman Gupta [+0 ±1 -0]: run in travisci containers
09:37:23NimBotnim-lang/Nim devel 7f619c7 Aman Gupta [+0 ±1 -0]: build on macosx too
09:37:23NimBot3 more commits.
09:39:51*gimireh joined #nim
09:46:53*aziz joined #nim
09:57:34*thotypous quit (Ping timeout: 260 seconds)
10:04:01*AndChat|235809 quit (Read error: Connection reset by peer)
10:04:25*AndChat|235809 joined #nim
10:12:07*victor-rene joined #nim
10:14:41*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:20:15reactormonkshouldn't travis fail with failed tests?
10:20:38Araqshouldn't somebody clean up our test suite?
10:24:57*X67r joined #nim
10:31:11OnOhi, there are some strange messages during compilation appeared lately in nim, like: req[0] s[L - 1] a[i]
10:31:20OnOdid someone leave some echo in the code?
10:31:42AraqOnO: yes ... -.- I think I fixed it though.
10:31:54OnOokay, I'll pull then
10:32:03*yglukhov quit (Read error: Connection reset by peer)
10:32:23*yglukhov joined #nim
10:39:34*AndChat-235809 joined #nim
10:42:38*AndChat|235809 quit (Ping timeout: 240 seconds)
10:43:45OnOyeah, it's gone, thanks
10:43:45*AndChat-235809 quit (Read error: Connection reset by peer)
10:43:47*AndChat|235809 joined #nim
10:45:34*darkf_ is now known as darkf
10:46:08*mtj_ quit (Ping timeout: 265 seconds)
10:52:25*AndChat-235809 joined #nim
10:53:45*mtj_ joined #nim
10:54:27*mtj_ quit (Remote host closed the connection)
10:55:04*jakesyl_ joined #nim
10:55:05*AndChat|235809 quit (Ping timeout: 240 seconds)
10:58:55*mtj_ joined #nim
11:03:24*razaaa joined #nim
11:05:53*AndChat-235809 quit (Read error: Connection reset by peer)
11:06:25*AndChat|235809 joined #nim
11:07:07*mtj_ quit (Remote host closed the connection)
11:15:48OnOAraq: dom96: how about RawSocket -> PlainSocket, this is somehow inline with Java naming too ;P
11:18:02AraqI like "nativesocket" better
11:18:21Araqor actually we prefer the 's', so 'nativesockets'
11:19:12Araqtoo bad Nim is so restrictive when it comes to module names. else we could name it p(l)ainsockets
11:21:51*Ven joined #nim
11:25:45OnOsure
11:28:11*Kingsquee quit (Quit: http://i.imgur.com/EsXzoum.png)
11:32:51OnOcan {.deprecated: be used on the proc? I guess now
11:32:53OnOnot
11:33:03Araqnah
11:33:11Araqwould be pretty useful though
11:33:21Araqand not hard to do
11:33:51Araqsomewhere in sym.ast the error message would be stored anyway
11:37:50*elrood joined #nim
11:53:12dom96OnO: I'm still thinking that RawSocket is fine.
11:54:28dom96it is a raw interface to the operating system's socket APIs
11:54:56dom96let's just keep it as it is
11:55:05*jaco60 joined #nim
11:56:22OnOhttps://en.wikipedia.org/wiki/Raw_socket
11:57:04OnOraw socket is just something else, the raw socket name exists since long long time
11:57:19*thotypous joined #nim
12:01:27dom96Fine. But I don't think 'PlainSocket' or 'NativeSocket' captures what they are.
12:02:06OnOyeah, because they are Sockets :) the current Socket name is just wrong coz it is something more, it does SSL it does buffering
12:02:14dom96What about 'SystemSocket'?
12:02:38OnOalso I wonder what's the point of the buffering at all? kernel does buffer sockets anyway
12:03:13dom96recv() call is still expensive
12:03:50OnOokay, I wanted PlainSocket, Araq wanted NativeSocket, you want SystemSocket :) Araq: please decide :)
12:04:01OnOdom96: recv() expensive? do you have measures?
12:05:22dom96OnO: That's what Araq told me :P
12:05:23*gimireh quit (Quit: Leaving)
12:05:37OnObut I understand this can overkill when you want to read one byte at the time
12:05:46dom96precisely
12:05:59dom96That is what readLine must do
12:13:09OnOanyway I don't like that naming, it is completely different from what I have seen in many well known APIs like Java, .NET, ObjC
12:13:24OnOI'd love sockets to be sockets
12:13:33OnOif it does buffering SSL it is no longer a socket
12:13:42OnOcall it Connection, Stream whatever
12:13:52dom96It is a Socket
12:13:57dom96an *SSL*Socket
12:14:10dom96SSL works the same way in Nim as it does in Python
12:15:22OnOno it doesn't, in python SSLSocket is a wrapper around socket
12:15:38OnOin Nim Socket is already wrapped around ... some Native/Raw/whatever it is
12:19:04OnOI think this makes some problem with Nim identity, if it is supposed to be system programing language, then it should follow system naming conventions
12:20:18*AndChat|235809 quit (Ping timeout: 240 seconds)
12:21:10*jakesyl quit (Ping timeout: 240 seconds)
12:22:03*AndChat|235809 joined #nim
12:22:12AraqOnO: I disagree. With that attitude we will never get good names. You know, names wih vowels. ;-) So it has to strive for a balance.
12:22:58Araqthe Plan 9 guys also redesigned the sockets API iirc.
12:23:17Araqand Plan 9 doesn't suffer from an identity crisis.
12:23:20OnOsure, that's why I am not arguing that, and I am okay with current Socket be what it is
12:24:20OnObut rawsocket name is just wrong
12:24:47Araqin fact, even "string" is misnamed. should have been "text".
12:25:29OnOAraq: is it? it does represent the same what other strings in other languages/APIs do
12:27:34Araqit can certainly backfire. For example, I don't remember C#'s names for map and filter.
12:28:09Araqeither way, I'm fine with renaming rawsockes to somehing else.
12:30:55Araq('map' is a spectacularly bad name btw...)
12:31:04*mtj_ joined #nim
12:34:31*jakesyl joined #nim
12:41:17*AndChat|235809 quit (Read error: Connection reset by peer)
12:41:25*AndChat|235809 joined #nim
12:42:11*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:46:57OnOahh... one more thing, sorry for bitching as usuall, AsyncFD/SocketHandle are value type, why then we have new(Async)RawSocket not init(Async)RawSocket?
12:47:48Araqcause dom96 doesn't like this convention I guess. ;-)
12:54:44*AndChat-235809 joined #nim
12:54:44*AndChat|235809 quit (Read error: Connection reset by peer)
12:55:17*Ven joined #nim
12:57:11*bamorim joined #nim
12:57:27*repax quit (Read error: Connection reset by peer)
13:05:51*AndChat-235809 quit (Ping timeout: 252 seconds)
13:11:51*AndChat|235809 joined #nim
13:14:55*BitPuffin joined #nim
13:15:27*BitPuffin quit (Remote host closed the connection)
13:15:32*xet7 quit (Quit: Leaving)
13:15:50*BitPuffin joined #nim
13:20:21*smodo quit (Quit: Leaving)
13:24:11reactormonkAraq, is let x = 100 optimized to const x = 100 ?
13:24:18Araqno.
13:33:22*tkuro joined #nim
13:33:41*tkuro quit (Client Quit)
13:37:17*PyHedgehog_ joined #nim
13:38:07*PyHedgehog_ is now known as PyHedgehog-work
13:38:19*FedeOmoto joined #nim
13:53:30*bamorim quit (Ping timeout: 272 seconds)
13:59:58*bamorim joined #nim
14:04:50*bamorim quit (Ping timeout: 240 seconds)
14:09:20*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:12:30*yglukhov quit (Ping timeout: 240 seconds)
14:19:19*saml quit (Read error: Connection reset by peer)
14:22:07*saml joined #nim
14:22:28*AforAvi is now known as AforAvi_Idle
14:26:54*chemist69 quit (Quit: WeeChat 1.3)
14:27:24*AforAvi_Idle quit (Read error: Connection reset by peer)
14:28:03*smodo joined #nim
14:31:11*chemist69 joined #nim
15:05:43NimBotnim-lang/Nim devel 374b652 Radu Oana [+0 ±1 -0]: Move magic numbers to const
15:05:43NimBotnim-lang/Nim devel 4bba8e0 Radu Oana [+0 ±1 -0]: use const instead of let
15:05:43NimBotnim-lang/Nim devel 8dad20f Andreas Rumpf [+0 ±1 -0]: Merge pull request #3397 from xyz32/move_to_const... 2 more lines
15:17:09AraqOnO: I prefer to export nkClosure, nkGotoState, nkState, nkBreakState to macros.nim
15:17:50Araqseems safer than disabling an internalError
15:19:17NimBotnim-lang/Nim devel dd2225f Araq [+0 ±1 -0]: NimScript: --threads:on works in a nims file
15:30:28*Ven joined #nim
15:35:44*keypusher joined #nim
15:36:37*Enamex joined #nim
15:41:07*bigfondue joined #nim
15:50:14*yglukhov joined #nim
15:52:49*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:55:12*Ven joined #nim
15:58:24*aziz quit (Remote host closed the connection)
16:02:39*darkf quit (Quit: Leaving)
16:06:05*AndChat-235809 joined #nim
16:09:11*AndChat|235809 quit (Ping timeout: 264 seconds)
16:11:51*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:22:17*razaaa quit (Ping timeout: 244 seconds)
16:26:02*Sahnvour quit (Read error: Connection reset by peer)
16:28:51*AndChat|235809 joined #nim
16:28:51*AndChat-235809 quit (Read error: Connection reset by peer)
16:31:06*Ven joined #nim
16:37:51*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
16:38:21*razaaa joined #nim
16:40:46*Enamex quit (Ping timeout: 246 seconds)
16:41:45*AndChat|235809 quit (Quit: Bye)
16:42:06*AndChat|235809 joined #nim
16:46:26*kniteli joined #nim
16:48:54*Ven joined #nim
16:53:33*Peter_ joined #nim
16:55:44Peter_Hi! This is my first time here in IRC.
16:56:05Araqhi Peter_ welcome!
16:56:11Peter_Just wanted to say hi to everyone. You might now me as "mora" from the forum. (The reson is simple, I'm Peter Mora.)
16:56:15Araqbe back soon
16:56:23Peter_Thanks.
16:58:43softinio@Peter_ welcome. Funny timing, I just read one of your posts on the forum just this morning :-)
16:58:57softinioAre you on our gitter channel too?
16:59:13Peter_Gitter channel?
16:59:34Peter_I don't know what it is, so I guess my answer is no :)
17:00:56softinio@Peter_ https://gitter.im/nim-lang/Nim
17:01:26softinioIts not used much though. This IRC is definitely where its happening at
17:01:51r-kuheh i thought mora was reference to gothic4 ;))
17:03:41*smodo quit (Remote host closed the connection)
17:04:17Peter_The gitter looks nice. And I definitely need to play more, I didn't know about gothic4 :)
17:06:12*Sahnvour joined #nim
17:06:23Araqok, bad evening for me, Peter_, will be away again soon.
17:06:46softinioYes gitter much nicer than this but new so not as busy as here
17:06:46Araqjust some quick notes about the writetracking.
17:06:58Peter_I'm all ears.
17:07:39AraqI called the effect you're interested in 'escapes'
17:08:11Araqproc foo(a, n: Node) {.writes: [a], escapes: [n].} =
17:08:14Araq a.add n
17:09:07Araqso why does 'n' escape here? because we know what 'add' does, something like:
17:09:13*boopsiesisaway is now known as boopsies
17:09:21Araq setLen(a, a.len+1)
17:09:25*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:09:42Araq a[^1] = b
17:10:36Araqin general x.field = y where 'x' is a parameter means that 'y' escapes
17:11:13Araq('x' could also be a global variable, you get the idea)
17:12:01Araqthis is the only pattern that we need to look for in order to determine something *might* escape
17:12:22Araqnote that escapes: [n] means *might* escape.
17:12:39Peter_I might miss a step here between your notation and the problem I see.
17:12:43Peter_There are different lifetimes. Nim is garbage collected, therefore we need to ensure that everything is available everywhere.
17:13:07Araqif you're interested in eliminating the GC at compile-time you need to consider *does always* escape
17:13:20Araqthen the analysis becomes control flow dependent
17:13:35Araqright now it is control flow independent
17:14:08Araqso ... of course what I just wrote is completely wrong ;-)
17:14:22Araqwhat about this:
17:14:27Araq let y = n
17:14:36Araq a.add y
17:15:11Araqthis means 'n' does escape, right? so we need to compute a transitive closure of an aliasing relation
17:15:39Peter_The problem what I see is that we need to ensure that a reference stays alive in the lambdalifting. If we use a variable from an inner function then there are different copy/reference methods based on where that variable lives.
17:16:14Peter_I'm failing to see how this connects to your escape analysis.
17:16:49Peter_(Feel free to stop me and continue later, if it is not the good time.)
17:16:52Araqthe lambdalifting (LL) transforms accesses like someCapturedVar into env.someCaptureVar where env is a newly introduced hidden parameter
17:17:12Araqin other words, we can ignore LL for the discussion :-)
17:17:30Peter_Ok.
17:17:38Araqso we do LL and then we compute the 'escapes' effect.
17:19:50Araqand what you're interested in is this: transform x.y = z into x.y <- z where <- means the shallow copy ("move")
17:20:13Peter_Yes.
17:20:36*AndChat-235809 joined #nim
17:20:43Araqthis is save if z is not used again and if z is already on the heap
17:20:45Peter_If z is on the stack and x is on the heap, then I guess we need to do the copy (because variable x can live longer than z)
17:21:17Araqz can never be on the stack. it's a seq, it either lives on the heap or in static data
17:21:43Peter_In my case I would like to do a shallow copy even if z is reused later.
17:21:43Araqthe dangerous thing we need to protect against is that it doesn't come from static data
17:22:49*AndChat|235809 quit (Ping timeout: 250 seconds)
17:22:55Araqbut only if 'z' is not written to, right?
17:23:16Peter_That's a good question.
17:23:25Peter_Having a copy in Rust would prevent 'z' from writing.
17:23:34Peter_Do we want to have something similar?
17:23:54Peter_In JS you can do anything with copies (the other side).
17:24:15Araqwell I don't know yet.
17:24:33Araqfirst problem to tackle: prove it's not from static data
17:27:06Peter_I'll think about this question. It sounds safer not to have several pointers to the same data which can modify it, but then how to implement a doubly linked list (I silently jumped from seq to object).
17:27:50Araqwell for general objects it's a pita not to have aliasing
17:28:14Peter_It sounds like not an easy question to answer. I understand your motivation about proving something by the compiler, and I fully support anything which can guarantee some nice property.
17:28:19Araqseqs are special cause you can always wrap them in a (ref) object to get more aliasing freedom
17:29:08Peter_About the static data: based on some articles on the internet, it seems like heap is not segmented by static data, or the stack.
17:29:46Peter_So if we have the smallest and the largest available memory address of our heap, then by lowest<our pointer<largest check we could say whether it is on heap.
17:29:51Peter_Is there any problem with this logic?
17:29:58Araqdon't think about this in terms of address ranges
17:30:20Araqwe have a segmented heap due to the thread local heaps
17:30:35Peter_I see.
17:30:40Araqand it always ends up in non-portable hacks
17:31:20Araqconceptually we have stack/heap per thread and static readonly shared memory.
17:31:37Araq(plus the unsafe memory heaps etc...)
17:31:43*Enamex joined #nim
17:32:13Peter_Let's assume that we are in a proc(z: seq), and doing x.y = z inside the proc.
17:32:55Araqthat would be the outer proc for your LL example.
17:32:56Peter_Do you want to have 2 implementations of this proc (like "auto" does) based on whether 'z' is on heap or static?
17:33:23Peter_The C code would contain only those implementations which are really used.
17:33:34Peter_What do you think?
17:33:52Araqthat's a good idea
17:34:12Araqbut how do you know wether 'z' is on the heap or static?
17:34:20Araqsorry, gotta go. will be back later
17:34:36Peter_I'm heading home, being with my family, trying to get back tonight.
17:34:39Peter_Bye!
17:35:35Peter_(you could know whether it is on heap or static in compile time, we would store that information for each variable. I'm not sure we want to go down on this road, let me think about this.)
17:39:13*AndChat-235809 quit (Read error: Connection reset by peer)
17:39:28*AndChat|235809 joined #nim
17:39:57*Peter_ quit (Ping timeout: 246 seconds)
17:49:55*davidhq joined #nim
17:57:45*Enamex quit (Ping timeout: 265 seconds)
18:01:10*jefus is now known as jefus_
18:03:24*jefus_ is now known as jefus
18:09:56*vendethiel joined #nim
18:10:16*kniteli quit (Ping timeout: 244 seconds)
18:15:24*tmm1 joined #nim
18:24:55tmm1morning folks
18:33:30OnOAraq: type Number = enum One = 1, Two = 2, Four = 4
18:33:30OnOecho 3.Number #<- Error: internal error: no symbol for ordinal value: 3
18:34:02OnOsame applies to this string serialization, this should be orginary compiler error, not an internal error
18:35:54OnObut the problem with $ on enum is that it fails with meaningless message: "internal error: opConv for enum" :)
18:37:07OnObut this doesn't fail: type Number = enum One = 1, Two = 2, Four = 4; var n = Two; inc n; echo n #<- 3 (invalid data!)
18:49:40*Matthias247 joined #nim
18:50:00AraqOnO: ok, this is convincing
18:58:25Araqdom96: with the Nimscript integration into Nimble we can do nimblePath completely differently :-)
18:59:16Araqrequires "foo >= 1.0" can simply add $nimblepath/foo/$appropriateVersion to the --path
18:59:36Araqsince the compiler sees the requires now too
19:00:09Araqit doesn't have to add everything in $nimblepath blindly. Much better.
19:01:10Araqwell no. it still doesn't see indirect dependencies :-/
19:03:29*BitPuffin quit (Ping timeout: 244 seconds)
19:09:20NimBotnim-lang/Nim devel 4be6844 Adam Strzelecki [+0 ±1 -0]: vm: Don't fail on unknown enum position to string... 5 more lines
19:09:20NimBotnim-lang/Nim devel 55bc5d1 Andreas Rumpf [+0 ±1 -0]: Merge pull request #3385 from nanoant/patch/dont-fail-on-unknown-enum-value-to-string... 2 more lines
19:10:40NimBotnim-lang/Nim devel 9ea99db Reimer Behrends [+0 ±1 -0]: Add option to disable munmap() use in the allocator.... 4 more lines
19:10:40NimBotnim-lang/Nim devel 1a63e63 Andreas Rumpf [+0 ±1 -0]: Merge pull request #3345 from rbehrends/no-unmap... 2 more lines
19:14:39NimBotnim-lang/Nim devel 5a00353 Araq [+1 ±3 -2]: fixes #2473; cleanup of some tests
19:15:42Araqtmm1: I see you're getting up to speed with Nim development :-)
19:15:50Araqlove your work!
19:16:10tmm1i'm really enjoying the language
19:16:39NimBotnim-lang/Nim devel 435fbbc Aman Gupta [+0 ±2 -0]: allow testament/tester to run single file
19:16:39NimBotnim-lang/Nim devel 2d2f152 Andreas Rumpf [+0 ±2 -0]: Merge pull request #3398 from tmm1/run-single-test... 2 more lines
19:17:06*vendethiel quit (Ping timeout: 250 seconds)
19:19:06tmm1would bitsize be considered "implementation specific" pragma?
19:19:26Araqyes
19:23:11AraqOnO: tools/niminst should go away, it's a nimble package now
19:24:02Araqnot sure if our build process knows that though ...
19:35:55*razaaa quit (Quit: Leaving)
19:36:35*tmm1 quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
19:55:27*jakesyl_ quit (Read error: Connection reset by peer)
19:56:05*jakesyl_ joined #nim
19:56:42*X67r quit (Ping timeout: 268 seconds)
19:57:40*jakesyl quit (Ping timeout: 272 seconds)
19:58:12*victor-rene quit (Ping timeout: 246 seconds)
20:12:50*tmm1 joined #nim
20:13:00*jakesyl joined #nim
20:16:02OnOthis travis thing is sweeet!
20:18:20OnOAraq: a poor man's deprecation for modules and procs: https://github.com/nanoant/Nim/blob/patch/rename-rawsockets-to-nativesockets/lib/deprecated/pure/rawsockets.nim
20:19:08Araqtemplates for lazy deprecation warnings? that's impressive
20:19:24Araqyou just found a new Nim idiom.
20:19:39*jakesyl quit (Ping timeout: 240 seconds)
20:22:07*davidhq quit (Read error: No route to host)
20:22:23*davidhq joined #nim
20:24:18tmm1OnO: s/"}/".}/
20:24:34*vendethiel joined #nim
20:24:49OnOgood catch, but AFAIK the trailing dot is optional
20:25:03OnOI'll fix it anyway, but I tend to forget it
20:27:52tmm1does nim have something like rust slices?
20:30:53*Ven joined #nim
20:32:52*X67r joined #nim
20:32:58*jakesyl joined #nim
20:35:05OnOtmm1: Araq: it seems that CI gives a PR a green even some tests are failing, actually in current devel some tests are failing
20:35:32OnOmaybe we disable these failing tests... or I dunno
20:35:37tmm1yea, i was waiting on the suite to be green to start failing the PRs
20:35:39OnOanyway test suite is damn sllooow
20:35:46tmm1yep
20:35:56tmm1gonna look at running tests in parallel
20:36:11tmm1Araq mentioned a separate acceptance suite that doesn't run all the tests too
20:36:20AraqI have a script that just does tests the "basics"
20:36:26OnOyeah that would be cool
20:36:33OnObtw. is CI mutlicore?
20:37:16Araqmy definition of basics is: categories:
20:37:38Araqtypes, typerel, metatype, generics, macros, template, vm, stdlib, array, tuples
20:38:17Araqand then I test specific things when I touched specific things (e.g. GC)
20:40:22OnOjust wonder if we can make them any quicker, maybe we can turn off optimizations? eg. cc with O0
20:42:18tmm1wouldn't that make it slower
20:42:52Araqthe compiler doesn't optimize most tests at all
20:43:08Araqit's already O0 or whatever gcc's default is
20:46:22Araqyou can make the tester run the tests in parallel with a bit of effort
20:46:24*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
20:47:10Araqnot sure if it's worth it. I'm also not sure why travis needs to give us instant feedback
20:47:18*Enamex joined #nim
20:47:28Araqit's a build bot. who cares if it runs for an hour?
20:48:22OnOhmm... maybe then just parse on cc without codegen and link
20:48:40OnOunless the tests require to be run, not just tested whether it compiles
20:49:09Araqmost tests specify some output and need to be run
20:50:05OnOyeah, you're right
20:50:09OnOdamn
20:50:13Araqwhat you're mostly complaining about is - IMHO - that we have a high quality test suite.
20:50:50Araqquality cannot be measured in "it sucks, 40 tests out of 1000 fail".
20:51:10OnOnah, it is good that there are so many tests, I like it very much
20:51:39OnOI just wonder if there's a way to speed them a bit, just to get CI response quicker then you make a PR
20:51:40tmm1its nice to have fast tests and quicker feedback
20:52:07Araqtmm1: yes, so split it in "quick tests" and "stress tests"
20:52:31tmm1yea i think that's the best solution, your list of categories is a good start
20:52:48tmm1maybe ./koch quicktest
20:53:05tmm1in the ruby vm for instance there is `make test` and `make test-all`
20:53:36tmm1i'm trying to get more familiar with testament so i can figure out how to make it parallel
20:53:49*jakesyl quit (Ping timeout: 246 seconds)
20:54:29OnOanother idea, compile all runnable tests into single executable at run it at once
20:54:52AraqOnO: we are doing this. I often extend existing tests.
20:55:12Araqbut if suddenly a large test fails, it kinda sucks to find the problem
20:55:34Araqhowever we could merge and only if it fails, run the splitted version
20:55:48Araqthat's hard to implement though
20:56:16VarriountOh, are we going with Travis CI?
20:56:33VarriountI was just about to update buildbot with some new Github integration code.
20:57:07AraqVarriount: buildbot needs to build releases. I'm sorry I sound like a broken record now.
20:57:07gmpreussner|workwhatever you decide, let me know, so i can update my ARM builders
20:57:36AraqI am unwilling to do yet another manual release cycle.
20:58:05VarriountAraq: Ok, I'll work on that then.
20:58:37OnOhow far is ./koch to generate packaged binaries for target platform?
20:59:16OnObtw. we can cross build for many platforms on linux
20:59:38VarriountOnO: `koch nsis` compiles and runs niminst, which requires NSIS to generate the installer for Windows.
21:00:06OnOVarriount: would it work through wine?
21:00:31VarriountOnO: No idea, however I would prefer to build it via the buildbots
21:01:20AraqOnO: we don't know. and I hate the idea of hunting a bug that just disappears on a real Windows machine.
21:01:52AraqWine fails for enough software so that I don't trust it.
21:02:17OnOyeah, I understand, but does this buildbot require a machine for each platform/
21:02:20OnO?
21:02:33VarriountOnO: Looks at buildbot.nim-lang.org
21:02:37Varriount*Look
21:02:47*OnO looking there
21:03:12*AforAvi joined #nim
21:03:12*AforAvi quit (Changing host)
21:03:12*AforAvi joined #nim
21:03:15OnOomg most of them are offline :)
21:03:29OnOI volunteer a OS X builder
21:03:43gmpreussner|workuh oh
21:03:51OnOI have an OS X server at university doing almost nothing
21:03:54Varriountgmpreussner|work: ?
21:04:06gmpreussner|workmy ARM builders are all showing as offline
21:04:11gmpreussner|worki'll check when i get home tonight :)
21:04:19Varriountgmpreussner|work: Yes. I thought I sent you an email.
21:04:39Araqwe have the builders. but it's a bit of a chicken and egg problem.
21:04:44gmpreussner|worki've been too busy this week. we're still crunching :|
21:04:50Varriountgmpreussner|work: Ah.
21:05:06Araqthey don't do anything critical for us, so we don't punch people when they get offline
21:05:19AraqVarriount: correct me if I'm wrong.
21:05:36VarriountAraq: Well, nothing critical *yet*
21:05:44Araqyes, exactly.
21:05:57OnOAraq: you do have OS X builder? but there are absolutely no builds for Mac
21:06:00VarriountI have bits and pieces for test comparison, I'm just trying to figure out how to string them together.
21:06:07VarriountOnO: No we don't.
21:06:47AraqOnO: I have a mac I could install the builder on, but I prefer to not do it.
21:06:59*jakesyl joined #nim
21:07:14VarriountAraq: Too bad we can't install the build slave on an ipod.
21:07:28AraqVarriount: oh yeah, test diffs is of course also important.
21:07:28OnOwhat are dependencies? is it some kind of python/ruby/ service?
21:07:44VarriountOnO: Python based.
21:08:04VarriountOnO: http://buildbot.net/
21:08:29VarriountOnO: Aside from that, the machine will need Python 2.7, gcc, and git.
21:08:52Araqon mac, clang instead of gcc
21:08:54OnOyeah, this is installed on our server
21:08:58OnOyeah, clang
21:09:13Araqon windows, NSIS
21:09:22Araqfor the PDF docs pdflatex
21:09:31Araqbut we usually don't build these
21:09:54OnOin fact for OS X we could build .pkg packages instead of .zip/.tar
21:10:01OnOwe nice license, logo & stuff
21:10:13OnOsame as nodejs for example
21:10:25Araqgo ahead and do it.
21:10:32VarriountAraq: Making a release build configuration shouldn't take too long. Most of the work can be copied from the existing build configuration.
21:11:10*PyHedgehog quit (Quit: Page closed)
21:11:22AraqVarriount: well, strictly speaking, we need to *test* the installer on a vanilla environment
21:11:36Araqit's not enough to produce the installer.
21:11:52VarriountAraq: That... might take a bit more effort.
21:12:09Araqbut we can do that later.
21:12:24Araqanything is better than the nothing that we currently have.
21:12:28OnOAraq: will do it then, that's pretty easy
21:12:35OnOdone it for some other software already
21:12:42AraqOnO: patch niminst please.
21:12:50Araqso that niminst can generate Nim installers
21:12:55Araqfor Mac
21:12:58OnOas for buildslave do I need to know anything paricular?
21:13:05OnOhow buildslave connects to master?
21:13:22VarriountOnO: I'll set up and PM you the details.
21:13:33OnOgreat
21:15:35Araqwe also need a bot that checks for 404s on our produced docs
21:16:18*yglukhov quit (Remote host closed the connection)
21:16:43OnOdoes niminst take version information from git?
21:16:53OnOeg. from git describe?
21:16:53*Peter_ joined #nim
21:17:06VarriountOnO: What is the command used to start python 2.7 on Mac?
21:17:24Araqno, I pass it like so --var:version=0.2.1 via the command line
21:17:30OnO$ python --version
21:17:30OnOPython 2.7.10
21:17:55Araqso it doesn't need a hardcoded version anywhere and also doesn't depend on git
21:18:16VarriountOnO: And what architecture is the machine running?
21:18:33Varriount(x86, x64, PowerPC, etc)
21:18:46OnOVarriount: OSX are running only x64 since few years
21:18:57OnOthere is absolutely no point to do 32-bit releases
21:19:21VarriountOnO: Well, yes, but I have no idea what model server you have.
21:20:06OnOIntel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
21:20:14OnOOS X 10.10.5, soon 10.11
21:20:16VarriountOnO: Ok, thanks.
21:21:21VarriountOnO: Does the server have 'sh'?
21:21:25OnO16 GB RAM, Mac mini server model 2012
21:21:32OnOyeah
21:21:33OnObash
21:21:46VarriountOnO: Ok.
21:22:03OnOit has bash, python, ruby, git, cc... everything, it there's something missing I can install it
21:22:10OnOexcept Windows :P
21:22:13VarriountSorry, I have to give the builder configuration a few details about the machine, so that it runs commands correctly.
21:23:10AraqOnO: you wouldn't believe how many people in Germany run Windows on their macs.
21:23:29*vendethiel quit (Quit: q+)
21:23:34Araqin fact ... I did some inofficial studies.
21:23:49Araqit was 100%.
21:23:54OnOAraq: that's really lame, just to have an Apple logo probably
21:24:15Araqno, the hardware is good, especially the batttery life
21:24:29Araqit still lacks a DEL key though.
21:24:36OnOyeah, battery life is great
21:24:48OnObut hw guts are pretty weak
21:24:58OnOSSD are damn fast though
21:25:10AraqI cannot stand the software.
21:25:14OnODEL key is Fn+Delete :)
21:25:24OnOwhere normal Delete is a Windows backspace
21:25:29AraqI know. but it's a philosophical thing
21:25:49OnOpff... it has no Windows key too :P
21:26:05Araqdumbing things down by removing features is the cheap.
21:26:18*jakesyl quit (Ping timeout: 240 seconds)
21:26:22AraqTrue simplicity comes from unnoticable features.
21:27:37Araqthe freaking Finder cannot even do 'cut and paste'.
21:28:19AraqI'm not a dog. I can handle the difference between cut and copy, thanks.
21:29:17AraqOnO: nobody asked for the Windows key. Nor for the freaking Apple key. ;-)
21:30:12*nim-buildbot quit (Quit: buildmaster reconfigured: bot disconnecting)
21:31:17OnOAraq: now complain a bit on Linux, then on FreeBSD... finally write your own OS :>
21:32:30*Peter_ quit (Quit: Page closed)
21:32:45Araqonce I'm rich and Nim version 2 is out, I will do that.
21:33:32OnOhehe... my wife just asked who am I typing to so eagerly.. I said your name
21:33:50OnOshe said: Oh I know, that's the guy who compiled >>everything<<.
21:34:05Araqwhat?
21:35:00Araqwhy does she know me?
21:35:03OnOI tried to explain here once what's Nim, and this ---^ is how she understands that :)
21:35:33Araqok ... I see
21:36:06Araqspeaking of which, now that nimscript is kicking, I don't compile everything anymore
21:36:25VarriountAraq: Hm?
21:36:30Araqinstallation of nimble is done via nimscript now :-)
21:36:34*AndChat|235809 quit (Read error: Connection reset by peer)
21:36:35*Trustable quit (Remote host closed the connection)
21:36:43*AndChat|235809 joined #nim
21:37:43VarriountHello AndChat|235809
21:38:13AraqVarriount: I run my nim code in the VM
21:38:29VarriountAraq: What, using one of the unofficial commands?
21:38:36AndChat|235809Hello Varriount!
21:39:34*jakesyl joined #nim
21:39:52AraqVarriount: no, I use "nim e", not "nim secret" :P
21:40:04Araqbut perhaps "e" is not documented yet
21:44:02*AndChat|235809 quit (Read error: Connection reset by peer)
21:44:20*AndChat|235809 joined #nim
21:45:42*elrood quit (Quit: Leaving)
21:46:30*AndChat|235809 quit (Read error: Connection reset by peer)
21:46:53*AndChat|235809 joined #nim
21:46:57OnOAraq: one thing about niminst, and ./install.sh is that on first run it does compile some stuff, so if you do ./bootstrap.sh && sudo ./install.sh you end up with some root owned files in your working directory
21:47:00OnOvery annoying
21:48:45AraqI don't use ./install.sh, so *shrug*
21:50:23OnOyeah, but ./koch install generates ./install.sh
21:51:10*AndChat-235809 joined #nim
21:51:11*AndChat|235809 quit (Read error: Connection reset by peer)
21:53:49OnOokay, that's Philip Wernersbach baby, I should ask him
21:53:59AraqI don't use ./koch install either
21:54:11Araqin fact I don't know why it exists
21:54:31OnOso, how do you install Nim then out of source build?
21:54:41tmm1yea i'm curious what the right way to install is as well
21:54:48AraqI just add it to my PATH
21:54:57Araqand keep it in my home dir
21:55:05*AndChat-235809 quit (Read error: Connection reset by peer)
21:55:17*AndChat|235809 joined #nim
21:55:17*AndChat|235809 quit (Client Quit)
21:55:34*AndChat|235809 joined #nim
21:55:34Araqwhy would I distribute it over /usr/lib/bananajoe with sudo? that's crazy
21:56:15OnOI dunno, but that's the way usually stuff is installed on unix
21:56:16*AndChat|235809 quit (Read error: Connection reset by peer)
21:56:18*AndChat-235809 joined #nim
21:56:25OnOespecially when you want it to be available systemwide
21:57:29*AndChat|235809 joined #nim
21:57:29*AndChat-235809 quit (Read error: Connection reset by peer)
21:59:21Araqyeah so you give *some* version to everybody instead. for "sharing" purposes.
21:59:54*AndChat|235809 quit (Read error: Connection reset by peer)
22:00:02Araqthat might have made sense in the 70ies when you got less disk space than you have cpu cache now
22:00:06*AndChat|235809 joined #nim
22:01:36*AndChat-235809 joined #nim
22:01:36*AndChat|235809 quit (Read error: Connection reset by peer)
22:03:23*AndChat|235809 joined #nim
22:03:23*AndChat-235809 quit (Read error: Connection reset by peer)
22:09:20*AforAvi quit (Quit: Leaving.)
22:09:35*AndChat|235809 quit (Read error: Connection reset by peer)
22:09:54*AndChat|235809 joined #nim
22:09:58VarriountAraq: The 70's called. They want their filesystem hierarchies back.
22:10:21*AforAvi joined #nim
22:12:24AraqVarriount: I want DOS back. :-) everything was so easy back then ... what do you mean I have no EMS memory left? how many different types of memory do exist?
22:13:25reactormonkAraq, you gotta love nix then
22:14:30Araqwho is General Failure? And why is he reading my hard disk?
22:15:06VarriountAraq: Don't forget near and far pointers
22:16:38*kniteli joined #nim
22:20:39Araqand the lovely 8.3 filenames!
22:21:27Araqmakes you wonder why 12 bytes is a magic size.
22:21:45Araqit's not a power of two. what's going on here?
22:22:51Araq11 bytes, if you don't use a length byte or a sentinel
22:24:32tmm1would you use a threadpool to parallelize testament?
22:25:00*FedeOmoto quit (Quit: Leaving)
22:25:18OnOgood night guys, have a sweet dreams about 5,25 inch floppy disks with nice and soft humming sounds of their drives
22:25:27Araqtmm1: hell no, use osproc.execProcesses
22:25:31AraqOnO: good night!
22:25:36*boopsies is now known as boopsiesisaway
22:26:54Araqtmm1: koch docs uses a parallel build. you can look at that for inspiration
22:27:43*BitPuffin|osx joined #nim
22:31:36VarriountAraq: You might enjoy reading the "The Old New Thing" (the book, not the blog).
22:32:15VarriountPart of it is an entire section about people mis-using and abusing undocumented features in DOS
22:32:19*Sornaensis quit (Excess Flood)
22:32:50*Sornaensis joined #nim
22:33:04*Araq doesn't read books.
22:33:09*Araq writes books.
22:33:10*kniteli quit (Remote host closed the connection)
22:34:11*Varriount wonders why he commented out the CPP compiler buildstep
22:34:28Araqcause it fails now
22:34:33VarriountAh.
22:34:46Araqand we didn't realize
22:34:53Araqcause you disabled the check
22:35:02Araqchicken and egg :P
22:35:04VarriountWait, what?
22:35:22Araqit used to not work, then it worked, now I think it fails again
22:35:58VarriountAraq: So... do you want me to enable it? I could make it not count towards the final status of the build.
22:36:29Araqyes please
22:37:02VarriountAraq: Do you want me to make it not count towards the final status?
22:37:04*Enamex quit (Quit: Leaving)
22:37:11Araqfor now, yes
22:37:20Araqbut it will soon always work *cough*
22:43:21*Kingsquee joined #nim
22:45:38*Demon_Fox joined #nim
22:55:16VarriountAraq: You want a debug version of the compiler included in the release?
22:55:39Araqnah, we have 'koch temp' for that
22:55:56VarriountYay, less work for me.
22:57:01*Kingsquee quit (Ping timeout: 244 seconds)
22:57:20AraqVarriount: want some motivation? ;-)
22:58:17tmm1so right now we have: for i in ..: testSpec(...), and testSpec() will call call startProcess() to compile and execCmdEx() to execute
22:58:17Araq"it's 1.10.2015 today and nim 0.12.0 is still not out. get it out. make the builder produce the installers. make it work, hack it together! you can do it!"
22:59:39VarriountI think I recall reading somewhere that running test cases in parallel was a bad idea...
22:59:48VarriountBut that was probably for test cases with side effects.
23:00:09AraqVarriount: well you need to give every test a separate nimcache
23:00:48VarriountAraq: Ever thought of having the compiler create a lock file?
23:00:58Araqno, never.
23:01:19AraqI'd rather generate a GUID as a nimcache directory
23:01:35Araqbefore introducing compiler locks
23:02:08VarriountOf course, there's always that one-in-a-million chance that you generate identical guids
23:02:44Araqnah
23:02:51Varriount?
23:02:53*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
23:03:09Araqyour hardware melted under your fingers before that happened
23:05:20Araqquantum physics that there is a tiny chance for a ball to jump back from the floor onto your table.
23:05:28Araq*tells us
23:06:12Araqand now see how often that has happened in reality.
23:08:19*Senketsu joined #nim
23:09:25VarriountAraq: We're also compiling all the bundled tools, right?
23:10:38AraqVarriount: that's how I did last time
23:10:40Araqhttps://gist.github.com/Araq/d71612cabcbcd3be89a1
23:11:01VarriountOk, will use that as a basis.
23:17:47*zama quit (Quit: leaving)
23:19:01*Matthias247 quit (Read error: Connection reset by peer)
23:19:24*zama joined #nim
23:22:35tmm1how about asyncdispatch for processes
23:28:05Varriounttmm1: Does asyncdispatch even support processes?
23:28:30tmm1not right now, but i'm asking if it could
23:29:10*jaco60 quit (Quit: Leaving)
23:30:30Varriounttmm1: Well, it could. Process streams are akin to sockets and file handles.
23:34:21Araqfwiw I made osproc.select work on windows
23:35:00Araqtmm1: but seriously osproc.runProcesses has been designed for this thing. it only starts the processes when a cpu is ready for it
23:35:28Araq*execProcesses
23:35:54tmm1to use that i'd have to collect up all the command invocations right?
23:36:24Araqright, or at least enough commands
23:37:03Araqit's hard to parallelize the tester.
23:37:45Araqfortunately you don't have to do it, you can simply run the tester in parallel, giving each process a different category to test
23:37:57tmm1yea that would be a lot easier
23:38:49Araqand of course, "easy" here means "reliable". the last thing we need is a fast but unreliable tester.
23:39:42ryu0accuracy vs speed.
23:46:01tmm1echo types typerel metatype generics macros template vm stdlib array tuples | xargs -n1 -P2 tests/testament/tester c
23:46:19tmm1works well
23:46:37Araqyeah each category already gets its own nimcache
23:47:08Araqadd "lib" to the essential categories please
23:52:15VarriountAraq: Wait, do you want the release build configuration to generate documentation & installer, and actually upload them to the website directory?
23:52:52Araqnot this time
23:53:16AraqI can push it on the server on my own, that's not what takes most of the time
23:53:19*davidhq quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
23:54:11Araqensuring that the installers work on 3 OSes at the same time all having the same version of Nim is the hard part
23:55:22VarriountI might have to do something finicky with the registry to isolate the changes the Windows installers make.installers
23:55:34tmm1"rerun with --parallelBuild:1 to see the error message" can i make this default in testament so its easier to debug test failures?
23:56:06Araqtmm1: no that loses parallelism.
23:56:13*nim-buildbot quit (Quit: buildmaster reconfigured: bot disconnecting)
23:56:21Araqyou could make the tester re-run such a test though.
23:56:30Araqshould happen rarely
23:56:36*nim-buildbot quit (Client Quit)
23:56:50tmm1unhandled exception: database is locked [EDb]
23:57:00tmm1multiple tester processes trying to write to same sqlitedb
23:57:09tmm1Araq: re-running makes sense
23:57:22AraqVarriount: don't overdo this please. you just have to use a setup.bat that sets %PATH% to some minimum
23:58:03Araqtmm1: yeah well. you can make them use different DBs or disable the sqlite stuff per command line argument
23:58:33Araqit's not essential for travis
23:59:15Araqwe could also use a real DB that can handle concurrent write ops but these tend to be messy to setup