<< 28-10-2016 >>

00:00:01AraqCleverson: welcome!
00:00:33Araqsure it's a good contribution. def- can help you further with RosettaCode, I think
00:03:16CleversonAraq: OK thank you, will do something next days...
00:03:54*zama joined #nim
00:05:21CleversonI wanted to know about the UI library you are starting to work. Do you plan to use the native GUI API on each OS e.g., win32 API on Windows?
00:06:55Araqui is a wrapper for libui
00:07:06Araqwhich uses native widgets for Win, Lin and Mac
00:07:44Araqyou can use it today, the examples work
00:07:56Araqbut libui itself is still in development.
00:08:19CleversonAraq: OK, will try later.
00:08:28Araq'nimx' should be more useful for now as it used in production. it draws its own widgets though afaik
00:15:35*Guest48581 quit (Ping timeout: 256 seconds)
00:15:35*gsingh93 quit (Ping timeout: 256 seconds)
00:16:14*Guest48581 joined #nim
00:16:19*gsingh93 joined #nim
00:31:23*pregressive quit (Remote host closed the connection)
00:31:58*pregressive joined #nim
00:36:26*pregressive quit (Ping timeout: 256 seconds)
00:45:44*cheatfate quit (Read error: Connection reset by peer)
00:45:50*cheatfate_ joined #nim
00:47:28*Cleverson left #nim (#nim)
00:58:43*libman quit (Quit: Leaving.)
01:04:39cheatfate_libui uses GTK for linux and this is not very native
01:16:47*mitai joined #nim
01:17:12*chemist69 quit (Ping timeout: 260 seconds)
01:26:18*cyraxjoe quit (Remote host closed the connection)
01:30:29*chemist69 joined #nim
01:42:37*enthus1ast joined #nim
01:45:00*yglukhov joined #nim
01:49:32*yglukhov quit (Ping timeout: 256 seconds)
01:50:18*DavidGu joined #nim
01:52:02*perturbation joined #nim
02:04:19*perturbation quit (Remote host closed the connection)
02:06:38*perturbation joined #nim
02:08:11*perturbation quit (Remote host closed the connection)
02:08:20*perturbation joined #nim
02:11:33*DavidGu quit (Quit: DavidGu)
02:12:53*DavidGu joined #nim
02:15:40*mitai quit (Quit: Konversation terminated!)
02:17:26*DavidGu1 joined #nim
02:17:52*DavidGu quit (Ping timeout: 260 seconds)
02:17:53*DavidGu1 is now known as DavidGu
02:23:41*DavidGu quit (Remote host closed the connection)
02:25:12*DavidGu joined #nim
02:36:56enthus1astis it known that http://nim-lang.org/news/community.html 404s?
02:42:07*DavidGu quit (Remote host closed the connection)
02:47:23*DavidGu joined #nim
03:43:20*DavidGu quit (Remote host closed the connection)
03:43:35*DavidGu joined #nim
03:46:30*yglukhov joined #nim
03:51:16*yglukhov quit (Ping timeout: 276 seconds)
04:12:38*perturbation quit ()
05:21:44*chemist69 quit (Ping timeout: 260 seconds)
05:23:44*chemist69 joined #nim
05:42:27*arnetheduck_ quit (Remote host closed the connection)
05:48:59*yglukhov joined #nim
05:53:40*yglukhov quit (Ping timeout: 265 seconds)
06:08:12*pafmaf_ joined #nim
06:19:42*vendethiel- joined #nim
06:20:04*vendethiel quit (Ping timeout: 260 seconds)
06:26:50*vendethiel- quit (Quit: q+)
06:36:37*nsf joined #nim
06:51:34*yglukhov joined #nim
06:52:40*yglukhov quit (Remote host closed the connection)
07:06:29*Andris_zbx joined #nim
07:13:18*gokr joined #nim
07:19:34*zxtx quit (Quit: ZNC - http://znc.in)
07:20:25*zxtx joined #nim
07:27:56*zxtx quit (Quit: ZNC - http://znc.in)
07:28:17*zxtx joined #nim
07:29:03*Trustable joined #nim
07:35:10*GustavoLapasta joined #nim
07:52:06*yglukhov joined #nim
07:56:40*gokr quit (Ping timeout: 260 seconds)
08:06:09*yglukhov_ joined #nim
08:09:21*gokr joined #nim
08:09:26*yglukhov quit (Ping timeout: 244 seconds)
08:34:01*DavidGu quit (Ping timeout: 276 seconds)
08:37:11*DavidGu joined #nim
08:52:51*PMunch joined #nim
09:02:39flyxcheatfate_, um, what's more native to Linux? Motif?
09:17:22*bjz joined #nim
09:21:44*jivank[m] quit (Remote host closed the connection)
09:21:44*zielmicha[m] quit (Remote host closed the connection)
09:21:45*ehmry quit (Read error: Connection reset by peer)
09:21:45*prose[m] quit (Read error: Connection reset by peer)
09:21:46*MrAxilus[m] quit (Write error: Connection reset by peer)
09:21:46*hohlerde quit (Write error: Connection reset by peer)
09:21:47*M-Quora quit (Write error: Connection reset by peer)
09:21:47*TheManiac quit (Write error: Broken pipe)
09:22:32chemist69wanted to ask the same.
09:24:46*yglukhov_ quit (Remote host closed the connection)
09:30:01*yglukhov_ joined #nim
09:32:09*Calinou quit (Ping timeout: 260 seconds)
09:33:38*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
09:35:10*zielmicha[m] joined #nim
09:36:24*Calinou joined #nim
09:48:06*M-Quora joined #nim
09:48:06*prose[m] joined #nim
09:48:06*MrAxilus[m] joined #nim
09:48:06*jivank[m] joined #nim
09:48:07*ehmry joined #nim
09:48:16*TheManiac joined #nim
09:48:16*hohlerde joined #nim
10:01:06FromGitter<rishavs> Hi. whenever i try to use libs like sdl2, i keep getting errors about missing dll (like sdl_gfx). when i tried sdl2_nim, i got warned about not having sdl_ttf.dll o.0
10:01:18FromGitter<rishavs> i am assuming that I have to build the dlls myself somehow?
10:15:39def-rishavs: Googling for sdl2_gfx windows leads me to a Nim link: https://github.com/nim-lang/sdl2/wiki/Windows-Binaries
10:18:26*arnetheduck joined #nim
10:18:39*yglukhov_ quit (Remote host closed the connection)
10:23:51FromGitter<rishavs> hi. if I try to compile https://github.com/Vladar4/sdl2_nim/tree/master/examples/ex208_framerate.nim then i get missing sdl2_Image.dll
10:24:16FromGitter<rishavs> since i am getting a lot of such issues i thought maybe i am doing somethig wrong
10:26:08*yglukhov_ joined #nim
10:30:20*yglukhov_ quit (Ping timeout: 250 seconds)
10:32:03def-https://www.libsdl.org/projects/SDL_image/
10:32:44FromGitter<rishavs> yep. i copied all the dlls from the projects in there and now it seems to be working fine
10:32:54FromGitter<rishavs> thanks for the help
10:37:04*elrood joined #nim
10:37:06*yglukhov joined #nim
10:37:13*yglukhov quit (Remote host closed the connection)
10:37:47*yglukhov joined #nim
10:54:35cheatfate_flyx, you can start from libx11/libxcb for example
10:57:21*pafmafpaf_ joined #nim
10:58:29*mitai joined #nim
11:00:49*pafmaf_ quit (Ping timeout: 260 seconds)
11:09:16flyxcheatfate_: yeah, but what Linux applications use those?
11:10:59cheatfate_flyx, SDL based applications for example
11:12:20flyxcheatfate_: those just use it to create an OpenGL surface and do custom UI there, afaik
11:12:24*pie_ joined #nim
11:12:54*pie_ quit (Changing host)
11:12:54*pie_ joined #nim
11:13:01*GustavoLapasta quit (Quit: Leaving)
11:14:15cheatfate_flyx, i dont want to start gnome vs qt holywar here
11:14:38cheatfate_flyx, but qt are default and native for some linux distros
11:15:53flyxcheatfate_: as is GTK. I don't have a preference between those. just wanted to say, there is no reasonable alternative to GTK that is „more“ native
11:15:58flyxmaybe Qt is „equally“ native
11:16:58flyxand the choice may have been made because GTK is C while Qt is raped C++, so GTK seems to be the better option for a C library
11:17:12cheatfate_flyx, libui is cpp library
11:17:25flyxis it? I thought it was C
11:19:18cheatfate_maybe i'm wrong but its hard to draw interfaces on MacOS with plain C
11:26:37cheatfate_flyx, and for productive dispute we need to agree on term `native`.
11:31:43flyxcheatfate_: yeah, but that would be ObjC for OSX. and yes, probably C++ for Windows
11:32:14cheatfate_flyx, on windows you dont need to have C++
11:32:19flyxcheatfate_: for me, `native` means „using a look-and-feel that is common on the target system“
11:33:01*dmi0 quit (Ping timeout: 260 seconds)
11:33:18cheatfate_flyx, you know 2 gtk programs can look very very different because of css theming
11:34:00flyxcheatfate_: I'd expect that on the same system, they look similar because the user configured the theme
11:34:38*bjz joined #nim
11:34:51Calinoulibui is a C library, not C++
11:34:58Calinoubut obviously you can use it from C++, Rust, Go and so on
11:35:03CalinouNim too :)
11:35:54cheatfate_flyx, css theming allow application to overload user configured theme
11:36:16cheatfate_flyx, i think you understand `native` as too wide term
11:36:17Calinouyeah, libui has no custom theming possible right now
11:36:18FromGitter<rishavs> Just updating something i learned. I am not supposed to download the dlls but create them myself. :smile: http://nim-lang.org/docs/nimc.html#dll-generation
11:36:24CalinouQt probably has the best custom theming support out there
11:36:25flyxcheatfate_: okay, but I'd say libui does not do this. and I think we are drifting away from the original question
11:37:12cheatfate_flyx, as for me `native` is something where you don't need additional libraries
11:37:30flyxcheatfate_: I wanted to know what you would prefer libui to be based on. and basing it on libx11 would mean a lot of custom theming, which means it would probably look very different from other applications
11:38:11flyxcheatfate_: mine is the user's view, yours is the developer's view. my aim as a developer is to give the user a UI look-and-feel they're familiar with
11:38:28cheatfate_so if you are working with x11 for graphics `native` is libx11/libxcb, if you are working with Gnome then `native` will be GTK, if you are working with KDE, then native will be QT, but for all this systems `native` is libxcb/libx11
11:39:08Calinouwhat if you use Wayland?
11:39:29Calinougranted, it's far from everywhere right now, but in 5 years?
11:39:34cheatfate_Calinou, i think wayland have their own `libx11/libxcb` - but i dont know how it named
11:39:56flyxyeah, `native` for Linux has unfortunately no meaning at all, because Linux is a kernel and has no windowing system attached
11:41:33flyxand I think, the most important thing in building UIs is consistency with other GUIs the end user uses. and those are most commonly Qt or GTK applications. so using GTK as a backend makes sense
11:42:38cheatfate_flyx, so for windows you will have 1 executable, for macos you will have 1 executable and for linux with KDE you need to have whole pack of libraries to run
11:43:48cheatfate_so to be truly native libui must use what it have, like it must use QT for systems with QT, it must use xcb/x11 for systems with plain X... they you can call it `native` for Linux
11:44:19*cheatfate_ is now known as cheatfate
11:45:32cheatfateuntil it don't have support of libxcb/libx11/pure wayland/pure mir it must be called like `uses native ui for Windows and MacOS and uses GTK for Linux`.
11:45:35flyxcheatfate_: people tend to install GTK applications on KDE and Qt applications on Gnome
11:47:01cheatfateflyx, do you agree with this? GTK is native for GNOME and not native for KDE, and not native for plain X11, and not native for plain Wayland?
11:47:09*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
11:47:48flyxcheatfate: your usage of *must* applies some rules of your personal opinion, which is subjective. from my point of view, the Linux support is native. from yours, it's not. and I think most people will understand that „native“ means „using one of the common GUI libs“ in this context
11:47:55flyxso I don't think it's misleading
11:48:38flyxbut yeah, it would probably be a good thing to add Qt support as a backend
11:49:16flyxthe problem is, as the API gets more sophisticated, it gets harder and harder to craft a common abstraction over all used backends
11:49:18*bjz joined #nim
11:49:44flyxwhich is probably why the main author opted for supporting just one of the Linux-y toolkits for now
11:49:50cheatfateflyx, i dont think it will be harder then macos `cocoa` adoptation
11:53:51*bjz quit (Client Quit)
11:54:25cheatfatebut my opinion nim must have own ui library without dependencies...
11:54:38cheatfateunder dependencies i mean libui
11:56:41*bjz joined #nim
11:57:39flyx*must* is always such a strong word
11:57:56flyxthe problem is that having such a thing is work. would you want to implement it?
11:58:39flyxin my opinion, it does not *always* make sense to reinvent the wheel
12:00:09*bjz quit (Client Quit)
12:00:33flyxso, the question is, what would be the benefit?
12:00:54*gangstacat quit (Ping timeout: 250 seconds)
12:02:39cheatfateflyx, if somebody with tough knowledge of Cocoa joins me i can write such library in nim, and i dont think it will be reinventing wheel...
12:03:32flyxyeah, but again, what would be the benefit?
12:03:47flyxcompared to using libui
12:09:01*djellemah quit (Ping timeout: 256 seconds)
12:09:08*gangstacat joined #nim
12:09:12*OnO_ joined #nim
12:09:12*qwertfisch_ joined #nim
12:10:02*OnO quit (Ping timeout: 276 seconds)
12:10:02*qwertfisch quit (Ping timeout: 276 seconds)
12:10:02*dyce quit (Ping timeout: 276 seconds)
12:10:03*qwertfisch_ is now known as qwertfisch
12:10:41*gernest joined #nim
12:10:56*dyce_ joined #nim
12:13:51*enthus1ast quit (Ping timeout: 252 seconds)
12:14:29*gernest quit (Client Quit)
12:14:57cheatfateflyx, if you dont see any benefits, then we need to stop
12:18:02flyxwell if you cannot point me to a shortcoming of libui you want to fix, there really is not much to discuss
12:19:08flyxand as I said, I agree that a Qt backend would be nice, but that could also directly be added to libui
12:19:17*CcxWrk_ joined #nim
12:20:16*abruanese_ joined #nim
12:20:16*brechtm joined #nim
12:20:32yglukhovhey guys, are you discussing ui events with asyncdispatch on macos? i would love to help with that.
12:20:45*Amun_Ra quit (*.net *.split)
12:20:45*CcxWrk quit (*.net *.split)
12:20:46*abruanese quit (*.net *.split)
12:20:52yglukhovcheatfate, flyx: *
12:21:43flyxyglukhov: not really ;) but cheatfate asked for someone knowing Cocoa
12:22:29cheatfateyglukhov, you have working UI cycle with asyncdispatch on macos?
12:22:55cheatfateyglukhov, so Cocoa using network for UI too?
12:23:48yglukhovcheatfate: "you have working UI cycle with asyncdispatch" - unfortunately no, but i've been thinking on possible solutions for a while.
12:24:27yglukhovcheatfate: ui events come through mach ports, not through sockets. sockets on the lower level utilize mach ports as well.
12:25:16cheatfateyglukhov, but i think mach ports can be covered with addWrite/addRead or i'm wrong?
12:25:19*gernest joined #nim
12:25:25yglukhovalso you don't need cocoa to use all the powers of macos/ios runloops. CFRunLoop api is available with C CoreFoundation framework.
12:26:14*djellemah joined #nim
12:26:24yglukhovcheatfate: mach ports are much lower level than file descriptors. you can't use commonly-knows select/kqueue api on them.
12:26:56*dmi0 joined #nim
12:27:13cheatfateyglukhov, http://stackoverflow.com/questions/33115562/why-does-poll-indicate-a-kqueue-watching-a-single-empty-mach-port-set-is-readabl
12:28:15cheatfatei think kqueue supports mach ports
12:28:56cheatfatehttps://github.com/nim-lang/Nim/blob/devel/lib/posix/kqueue.nim#L34
12:29:51cheatfateso to support it i just need to add some code to ioselectors
12:30:09yglukhovcheatfate: oh, i might be wrong then... but i remember i was looking through CFRunloop source code, and it used some different mach api.
12:32:19cheatfateyglukhov, more interesting part is how to join asyncdispatch and windows gui
12:32:56yglukhovcheatfate: what are we using to select on windows? waitformultipleobjects?
12:33:16cheatfateyglukhov, nope
12:33:46cheatfateyglukhov, but how waitformultipleobjects help us?
12:34:11cheatfateyglukhov, asyncdispatch is using IOCP
12:34:37cheatfateyglukhov, but for some cases we are using some tricks with RegisterWaitForSingleObject
12:34:43yglukhovcheatfate: i might be wrong, but i kinda remember there's a function like waitformultipleobjectsMSG or smth, that returns upon windows events
12:35:11*gernest quit (Quit: gernest)
12:35:16cheatfateyglukhov, heh if so it will be very easy
12:36:08yglukhovcheatfate: pls take a look: https://msdn.microsoft.com/en-us/library/windows/desktop/ms684245(v=vs.85).aspx
12:38:05*gernest joined #nim
12:38:56*mitai quit (Ping timeout: 256 seconds)
12:39:55*mitai joined #nim
12:40:11*djellemah quit (Ping timeout: 256 seconds)
12:40:47yglukhovcheatfate: so if you think kqueue supports mach ports, whats the next problem then?
12:40:57*gernest quit (Client Quit)
12:41:25*mitai quit (Client Quit)
12:41:26cheatfatemsgwaitformultipleobject != waitformultipleobjects so tricks with registerwaitforsingleobject could not help
12:42:12yglukhovcheatfate: that tells me nothing unfortunately. do you mean you still see no solution?
12:42:23cheatfateyglukhov, yep
12:44:20yglukhovcheatfate: we're relying on RegisterWaitForSingleObject currently?
12:46:48yglukhovcheatfate: ok i see, we're using RegisterWaitForSingleObject. where the callback is called from?
12:47:00cheatfateyglukhov, on windows we are not relying on anything, but IOCP (Completion ports) dont understand anything except sockets/files/pipes
12:47:07*gernest joined #nim
12:47:31cheatfateso to support most of handles we can use RegisterWaitForSingleObject
12:48:24cheatfatebecause WaitForSingleObject support sync primitives/processes/threads/timers
12:48:38cheatfatebut UI events is something different
12:49:09*gernest quit (Client Quit)
12:49:51yglukhovwhere do i find the code that selects?
12:49:59*gernest joined #nim
12:50:48*gernest quit (Client Quit)
12:51:37yglukhovcheatfate: is it getQueuedCompletionStatus or smth?
12:52:54*pie_ quit (Ping timeout: 250 seconds)
12:53:29*DavidGu quit (Quit: DavidGu)
12:53:55*brson joined #nim
12:57:25cheatfateyglukhov, code that selects are in poll()
12:58:01cheatfategetQueuedCompletionStatus - yep
13:02:23cheatfateyglukhov, but of course we can start windows thread make a loop with MsgWaitForMultipleObjects and make calls to PostQueuedCompletionStatus to wake up main async loop, but it looks ugly...
13:04:31FromGitter<rishavs> hi i have a basic nimble question. i created a project using "nimble init". in it i added a folder called "src" and one called "bin". in the src i have a simple nimfile called main.nim which contains 'echo "test"' in it. i added srcDir = "src" and ⏎ binDir = "bin" entries in the nimble file
13:04:57FromGitter<rishavs> i was expecting that using "nimble build" will compile the mian.nim in src into main.exe in bin
13:05:14FromGitter<rishavs> but i get "Error: unhandled exception: Nothing to build. Did you specify a module to build using the `bin` key in your .nimble file ⏎ ? [NimbleError]" instead
13:05:49FromGitter<rishavs> what am i doing wrong?
13:06:30*DavidGu joined #nim
13:06:36cheatfaterishavs: most of us never used `nimble` to compile nim projects
13:08:15*ehmry quit (Remote host closed the connection)
13:08:15*jivank[m] quit (Remote host closed the connection)
13:08:15*zielmicha[m] quit (Remote host closed the connection)
13:08:15*MrAxilus[m] quit (Remote host closed the connection)
13:08:16*prose[m] quit (Write error: Connection reset by peer)
13:08:16*M-Quora quit (Write error: Connection reset by peer)
13:08:16*TheManiac quit (Read error: Connection reset by peer)
13:08:16*hohlerde quit (Remote host closed the connection)
13:08:33*PMunch quit (Quit: leaving)
13:09:52FromGitter<rishavs> o.0
13:10:59yglukhovrishavs: try adding `bin = @["path_to_main.nim"]
13:11:39FromGitter<rishavs> i just did
13:11:44FromGitter<rishavs> got unhandled exception
13:11:46FromGitter<rishavs> :D
13:12:01FromGitter<rishavs> bin = @["main"]
13:12:09FromGitter<rishavs> Error: unhandled exception: Build failed for package: nippy [BuildFailed]
13:12:28FromGitter<rishavs> should i report this? or is it some screwup on my side?
13:12:29yglukhovrishavs: ok, so you're one step closer =)
13:13:00yglukhovrishavs: path to main might need to be relative to nimble file
13:13:03yglukhovis it?
13:14:11yglukhovalso, try appending .nim extension to filename. at least thats what i do, and it works for me
13:14:19FromGitter<rishavs> did both
13:14:26yglukhovstill same error?
13:14:30FromGitter<rishavs> bin = @["src\main.nim"]
13:14:39yglukhovyoure os is?
13:14:43FromGitter<rishavs> Reading as ini file failed with: ⏎ Invalid section: . ⏎ Evaluating as NimScript file failed with: ⏎ c:\users\rsharan\devspace\nim\nippy\nippy.nimble(16, 14) Error: invalid character constant. [NimbleError] [https://gitter.im/nim-lang/Nim?at=58134f42806316005dccb580]
13:14:45FromGitter<rishavs> windows
13:14:52*pie_ joined #nim
13:15:05FromGitter<rishavs> all people with such stupid issues come from windows :D
13:15:13*zielmicha[m] joined #nim
13:15:27yglukhovah now youre getting syntax error. try use normal slash
13:15:40yglukhovthe unix style
13:16:15FromGitter<rishavs> i tried both slashes
13:16:35FromGitter<rishavs> bin = @["src\main"] gives invalid character
13:16:47FromGitter<rishavs> bin = @["src/main"] gives the unhandles exception once again
13:16:48yglukhov"\" has to be escaped
13:16:57yglukhovbin = @["src\\main"]
13:17:14FromGitter<ephja> \\?
13:17:19FromGitter<ephja> \\\
13:17:36FromGitter<ephja> 3 slashes here outputs 2 slashes
13:17:46FromGitter<ephja> \test
13:18:14yglukhovrishavs, does this work: bin = @["src\\main.nim"]
13:18:16*djellemah joined #nim
13:18:49FromGitter<rishavs> nope. i get invalid character
13:19:08FromGitter<rishavs> let me put the project on github so you guys can see the entire structure
13:19:12FromGitter<ephja> you said it has to be escaped, yet you didn't escape it yourself ;)
13:20:21FromGitter<ephja> @["src\\\main.nim"] or @[r"src\main.nim"]?
13:21:09yglukhovahh.... so i've logged in to gitter, and guess what. my code looks differently there =) gitter ate one of my backslashes
13:21:30yglukhovrishavs: instead of one \ use 2 \ in a row
13:21:30FromGitter<ephja> oh. how annoying
13:21:53FromGitter<yglukhov> bin = @["src\\main"]
13:22:06FromGitter<ephja> it should only process user input, not bridged messages
13:22:14FromGitter<yglukhov> wtf even when i type in gitter it still deletes it
13:22:27FromGitter<ephja> try 3 slashes in a row
13:22:32FromGitter<rishavs> sorry i tried all these variants. 2 slashes. slash question, 3 slashes etc
13:22:33FromGitter<rishavs> :(
13:22:37FromGitter<yglukhov> `bin = @["src\main"]`
13:22:53FromGitter<yglukhov> stupid
13:22:55FromGitter<ephja> huh
13:22:58FromGitter<ephja> yeah :D
13:23:17FromGitter<ephja> markdown thingie to the rescue?
13:23:37FromGitter<yglukhov> ```nim ⏎ bin = @["src\\\main"]`
13:23:41FromGitter<rishavs> https://github.com/rishavs/nimble_test/
13:23:44FromGitter<rishavs> here we go
13:23:56FromGitter<yglukhov> ahh there we go
13:24:22FromGitter<rishavs> 3 slashes - c:\users\rsharan\documents\github\nimble_test\nippy.nimble(16, 14) Error: invalid character constant. [NimbleError]
13:24:38FromGitter<rishavs> time for 4 slashes?
13:24:40FromGitter<rishavs> :D
13:24:43FromGitter<ephja> ```double slash markdown test: \\```
13:25:33Araqdid I mention that I consider text based interfaces with escaping rules the biggest problem in modern computing?
13:25:41FromGitter<yglukhov> @rishavs here's correct line in your case: ``` ⏎ bin = @["main.nim"] ⏎ ```
13:26:28FromGitter<yglukhov> does that help?
13:26:37*DavidGu quit (Quit: DavidGu)
13:27:20yglukhovrishavs: or even: bin = @["main"]
13:27:27FromGitter<rishavs> @yglukhov we started from there
13:27:28yglukhovworks for me. with your repo.
13:27:34FromGitter<rishavs> that gives Error: unhandled exception: Build failed for package: nippy [BuildFailed]
13:28:03FromGitter<rishavs> as it gives me no info, i dont know where i went wrong :(
13:29:23cheatfateAraq, what's wrong with text based interfaces
13:30:06FromGitter<yglukhov> @rishavs pls confirm that this nimble file doesn't work for you: ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=581352de482c168b22c5a3ea]
13:30:59FromGitter<rishavs> ```code paste, see link``` ⏎ ⏎ is what i just used [https://gitter.im/nim-lang/Nim?at=58135313806316005dccc899]
13:31:19FromGitter<rishavs> got Error: unhandled exception: Build failed for package: nimble_test [BuildFailed]
13:31:53FromGitter<yglukhov> @rishavs then you should probaly file a nimble bug :(
13:32:45FromGitter<rishavs> thanks. any info that i should add to the bug?
13:33:04yglukhovcheatfate: can't we switch to just msgwaitformultipleobjects and not use iocp at all?
13:33:37FromGitter<ephja> is the syntax of "requires" correct? is it different from "bin"?
13:34:09yglukhovrishavs: commit this new file to your repo, provide a link, your platform information, nim/nimble versions, well... all the usual stuff you would normally provide =)
13:35:44cheatfateyglukhov, all `waitformultiple` functions supports only limited set of windows handles, and sockets/pipes/file handles are not native for it.
13:35:45FromGitter<rishavs> i meant, can i run the nimble build command in a verbose format?
13:35:52FromGitter<rishavs> so i can add thet debug info as well
13:36:10*DavidGu joined #nim
13:36:26yglukhovcheatfate: ahh, ok.
13:36:58cheatfateyglukhov, so it will be something like (faster ui/slower networking) or (slower ui/faster networking)
13:37:31yglukhovcheatfate: imho, "slower ui" sounds like not a problem at all.
13:38:02yglukhovcheatfate: i mean noone will be able to notice
13:38:19yglukhovwhile "slower network" may be noticeable
13:38:45cheatfateyglukhov, i can make some kind of POC for windows UI if you need it
13:39:46yglukhovcheatfate: no, i don't _need_ it that much.
13:40:25*gangstacat quit (Ping timeout: 260 seconds)
13:40:29yglukhovi will not be able to play with it, coz i dont use windows.
13:40:38yglukhovmacos would be welcome though ;)
13:41:29yglukhovrishavs: don't worry. you'll be asked for more info if needed =)
13:41:33cheatfateyglukhov, if you want me to make ioselectors/upcoming asyncdispatch support macos ui events, you need to give me some code :)
13:41:45cheatfatewhich i can test
13:42:52cheatfatei already have experience with libxcb, and i know how to handle windows, but i'm totally noob with macos, i have only VM with it
13:42:53yglukhovcheatfate: i don't think that would be easy. mach_over_kqeue is just the first tiny step towards working ui.
13:43:46cheatfateyglukhov, is there any resources around with tutorials/docs about native approach on macos ui?
13:43:48*djellemah quit (Ping timeout: 245 seconds)
13:43:59*desophos quit (Read error: Connection reset by peer)
13:44:21FromGitter<rishavs> thanks everyone. i added an issue here https://github.com/nim-lang/nimble/issues/266
13:45:07cheatfateyglukhov, if macos ui based on mach ports, then mach over kqueue is like 50% of work...
13:48:10*Quora[m] joined #nim
13:48:10*mraxilus[m] joined #nim
13:48:11*jivank[m] joined #nim
13:48:11*prose[m] joined #nim
13:48:12*emery[m] joined #nim
13:48:54yglukhovcheatfate: i think we're still have to use cfrunloop api to dispatch that event. but yeah, thats probably just a couple of trials and errors.
13:50:15cheatfateyglukhov, i'm thinking to add interface to just wakeup poll() on UI events, so we only need to know if there events need to be processed, all other work must be done on client side
13:50:37yglukhovcheatfate: sure. sounds good.
13:51:15*gangstacat joined #nim
13:52:14yglukhovcheatfate: still, im not completely sure if mach_kqueue is the best way to go.
13:53:01*pafmafpaf_ quit (Ping timeout: 260 seconds)
13:53:34cheatfateyglukhov, its the only way
13:54:11yglukhovcheatfate: CFRunloop-based selector is another way
13:54:37cheatfateyglukhov, and how you can join it with async loop?
13:54:54cheatfatewhich is based on kqueue
13:55:29yglukhovcheatfate: i mean, using CFRunloop as the only way to select. no kquue
14:01:23cheatfateyglukhov, then we are in trouble
14:07:13*brechtm quit (Remote host closed the connection)
14:08:53*Amun_Ra joined #nim
14:11:53*bjz joined #nim
14:13:12*enthus1ast joined #nim
14:16:11*_samdev_ joined #nim
14:16:29FromGitter<dom96> yglukhov: have you seen my notifications package for OS X? it might be of interest https://github.com/dom96/notifications
14:19:34*_samdev_ quit (Client Quit)
14:22:05*Andris_zbx quit (Quit: Leaving)
14:22:11*gokr quit (Ping timeout: 256 seconds)
14:27:13*pafmafpaf_ joined #nim
14:30:57cheatfateyglukhov, if macos has something like `strace` you can run simple macos ui application and if you find calls select/poll/kqueue, then we can make it :)
14:37:47enthus1astcheatfate you're working on the asyncnet udp right?
14:38:02cheatfateenthus1ast, nope
14:38:10enthus1astohh : )
14:38:24cheatfateenthus1ast, there no my code in asyncnet, and i dont using it
14:38:56cheatfatebecause everything i need is in `asyncdispatch`
14:40:46enthus1astmhh ok, that what i almost thought
14:44:29*__UNIcodeX__ joined #nim
14:45:25*brson quit (Ping timeout: 256 seconds)
14:47:27yglukhovcheatfate: even if macos use kqueue that doesn't mean, we can easily obtain the needed mach ports to pass them to out own kqueue.
14:47:59yglukhovomg sorry for all the typos %)
14:48:11*UNIcodeX quit (Read error: Connection reset by peer)
14:48:58*UNIcodeX joined #nim
14:50:22*dmi0 quit (Quit: ~)
14:51:03yglukhovtheres also GCD (grand central dispatch) which is libdispatch. and cfrunloop is tightly integrated with it for several years already. so maybe thats another option.
14:52:30*__UNIcodeX__ quit (Ping timeout: 250 seconds)
14:53:47yglukhovdom96: yeah, i've seen it but didnt have a reason to play with it yet
14:55:02*yglukhov_ joined #nim
14:56:25*UNIcodeX quit (Read error: Connection reset by peer)
14:56:47*UNIcodeX joined #nim
14:58:23*yglukhov quit (Ping timeout: 265 seconds)
14:58:38*__UNIcodeX__ joined #nim
14:58:57*PMunch joined #nim
14:59:35*yglukhov_ quit (Ping timeout: 252 seconds)
15:01:57*UNIcodeX quit (Read error: Connection reset by peer)
15:02:50*UNIcodeX joined #nim
15:04:40*__UNIcodeX__ quit (Ping timeout: 265 seconds)
15:04:48*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
15:05:21*brson joined #nim
15:10:50*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
15:12:44*nsf quit (Quit: WeeChat 1.6)
15:12:58*bjz joined #nim
15:16:35*__UNIcodeX__ joined #nim
15:16:37*brechtm joined #nim
15:17:00*DavidGu quit (Quit: DavidGu)
15:19:15*brechtm quit (Remote host closed the connection)
15:19:49*UNIcodeX quit (Ping timeout: 244 seconds)
15:26:37*djellemah joined #nim
15:26:47*PMunch quit (Quit: leaving)
15:26:51*brechtm joined #nim
15:26:59*brechtm quit (Remote host closed the connection)
15:27:16*brechtm joined #nim
15:28:37Araqcheatfate: slow, error prone, doesn't compose well
15:29:02Araqwrite a regex matchin URLs within an XML file and see for yourself.
15:29:45cheatfateAraq, i dont understand link between console and regex matchin URLs
15:30:59AraqI'm talking about text based protocols / interfaces
15:32:03Araqin general.
15:32:31cheatfateahh, then i misunderstood you sorry...
15:53:37*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
15:55:44*gokr joined #nim
16:00:34cheatfatewhy people think that macos is the best intuitive os, i have wasted 15 minutes to find how to start simple text editor
16:01:20Araqthat's nothing. watch some nonprogrammer delete some files on his usb stick
16:01:30Araqto make room for new stuff.
16:01:49Araqdoesn't work because mac keeps the wastebin on the same device
16:02:04*aziz joined #nim
16:02:17Araqbut you can delete everything in the recycle bin and this affects all disks
16:03:37cheatfateAraq, i think all problems in modern world are from text protocols/interfaces
16:05:23*shodan45 joined #nim
16:05:54cheatfatesome people invented http (i think this is start of text protocols/inferfaces) and now same people inventing http2 to reinvent binary protocol/interfaces...
16:05:58enthus1astand inadequate separation between control and payload data
16:07:38enthus1astsql/http/js injection, buffer overflows, etc etc
16:07:43*yglukhov joined #nim
16:08:05cheatfateyep all the problems we are fighting now started from this text protocols
16:08:21cheatfateso many RFC, biggest wastage of human power/time
16:10:36enthus1astdoes it really make a difference if i forge an input that is able to break out of a text or binary protokoll? At least me as a human can read text protokolls.
16:23:22*brson quit (Quit: leaving)
16:23:44*UNIcodeX joined #nim
16:25:14*shodan45 quit (Quit: Konversation terminated!)
16:27:08*__UNIcodeX__ quit (Ping timeout: 260 seconds)
16:29:35*shodan45 joined #nim
16:35:53*abruanese_ quit (Ping timeout: 260 seconds)
16:37:37*gokr quit (Ping timeout: 256 seconds)
16:39:52*brson joined #nim
16:39:53*beatmox quit (Ping timeout: 256 seconds)
16:40:04*NhanH quit (Write error: Connection reset by peer)
16:40:27*pigmej quit (Ping timeout: 256 seconds)
16:40:47*djellemah quit (Ping timeout: 252 seconds)
16:41:36*Quora[m] quit (Ping timeout: 256 seconds)
16:41:36*prose[m] quit (Ping timeout: 256 seconds)
16:41:36*mraxilus[m] quit (Ping timeout: 256 seconds)
16:41:36*jivank[m] quit (Ping timeout: 256 seconds)
16:41:36*emery[m] quit (Ping timeout: 256 seconds)
16:41:36*daekano quit (Ping timeout: 256 seconds)
16:41:36*StarBrilliant quit (Ping timeout: 256 seconds)
16:42:10*EastByte quit (Ping timeout: 256 seconds)
16:42:44*zielmicha[m] quit (Ping timeout: 256 seconds)
16:43:08federico3cheatfate: well they weren't exactly the same people, but yeah http is a mess. and now there's quic as well
16:43:27*NhanH joined #nim
16:43:57*brechtm_ joined #nim
16:44:32*brechtm_ quit (Read error: Connection reset by peer)
16:44:54*yglukhov quit (Remote host closed the connection)
16:44:57cheatfatefederico3, you know what? when they invented http, they drop our salaries like in 10-50 times and let a bunch of ignorant newbees to learn programming :)
16:45:02*pigmej joined #nim
16:45:08*brechtm_ joined #nim
16:45:21*daekano joined #nim
16:45:23*beatmox joined #nim
16:45:24*yglukhov joined #nim
16:45:50*EastByte joined #nim
16:45:52*brechtm_ quit (Remote host closed the connection)
16:46:27*brechtm_ joined #nim
16:46:30*StarBrilliant joined #nim
16:47:33*brechtm quit (Ping timeout: 260 seconds)
16:48:39dom96cheatfate: federico3: what aspects of HTTP would you guys consider to be a mess?
16:49:05federico3yep :(
16:49:49federico3inexistent isolation of layers
16:50:03Araqmultipart data requires a unique terminor iirc
16:50:22Araqyou need to ensure this terminator is not in the payload
16:50:32*brechtm_ quit (Ping timeout: 250 seconds)
16:51:09cheatfateAraq, multipart is a part of MIME standart which was invented after http, and was some kind of patch to send binary data over text interface :) because they dont like UUCP
16:51:11dom96federico3: can you give an example of that?
16:51:21federico3params in get queries with undefined behaviors
16:52:39*aziz quit (Quit: Ex-Chat)
16:54:16federico3dom96: http relied on TCP concepts.of beginning. and end of a connection, and required hacks to implement broken parallel flows
16:55:16dom96yes, but to be fair, I doubt parallel flows were considered in the original design of HTTP.
16:56:26dom96In fact, I wouldn't be surprised if a lot of HTTP was just an attempt to standardise what the Netscape/MS decided to implement.
16:57:35cheatfatedom96, the problem is in text nature of http protocol
17:02:18cheatfateand main problem of this protocols - using ANSI 7 bit symbols to encode 8 bit symbols
17:03:48*irrequietus joined #nim
17:04:28federico3dom96: if you isolate the layers correctly it becomes easy to add encryption/multiplexing/multipath later on through encapsulation
17:04:45federico3look at quic :)
17:09:27*brechtm joined #nim
17:13:27*djellemah joined #nim
17:16:25*djellemah quit (Client Quit)
17:35:51*brechtm quit (Remote host closed the connection)
17:43:32*shodan45 quit (Quit: Konversation terminated!)
17:44:04*desophos joined #nim
17:46:19*brechtm joined #nim
17:48:26*Matthias247 joined #nim
17:50:46*brechtm quit (Ping timeout: 268 seconds)
18:02:46*dddddd joined #nim
18:05:33*zielmicha[m] joined #nim
18:12:55*jivank[m] joined #nim
18:12:55*MrAxilus[m] joined #nim
18:12:55*ehmry joined #nim
18:12:55*prose[m] joined #nim
18:13:01*hohlerde joined #nim
18:13:02*M-Quora joined #nim
18:13:02*TheManiac joined #nim
18:14:08*bjz joined #nim
18:17:20dom96Eve is pretty cool. http://programming.witheve.com/ Definitely a lot that we can learn from it. I especially like the idea of separating functionality into blocks and being able to select which blocks to view.
18:21:37*yglukhov quit (Read error: Connection reset by peer)
18:22:10*yglukhov joined #nim
18:25:11*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
18:34:08*cheatfate quit (Quit: Leaving)
18:34:53*enthus1ast quit (Ping timeout: 260 seconds)
18:35:30FromGitter<rishavs> wow. thats a pretty interesting language
18:45:19*libman joined #nim
18:48:01flyxisn't that basically the same idea as WEB?
18:50:01*cheatfate joined #nim
19:02:05*gokr joined #nim
19:15:06*pregressive joined #nim
19:16:12*brson quit (Quit: leaving)
19:22:05*bjz joined #nim
19:22:34*Mat4 joined #nim
19:25:24*desophos quit (Ping timeout: 260 seconds)
19:30:51*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
19:30:56*Mat4 left #nim (#nim)
19:31:40*bjz joined #nim
19:41:06*gokr quit (Ping timeout: 256 seconds)
20:02:25*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
20:15:12*desophos joined #nim
20:29:55*enthus1ast joined #nim
20:37:48*gokr joined #nim
20:54:08*libman quit (Quit: Leaving.)
21:14:51*bjz joined #nim
21:45:02*chemist69 quit (Ping timeout: 250 seconds)
21:47:15*chemist69 joined #nim
21:49:14*Snircle joined #nim
21:55:05*pafmafpaf_ quit (Ping timeout: 260 seconds)
22:00:03*elrood quit (Quit: Leaving)
22:23:32*enthus1ast quit (Ping timeout: 265 seconds)
22:23:53*enthus1ast joined #nim
22:31:50*kunev quit (Ping timeout: 250 seconds)
22:32:46*kunev joined #nim
22:49:04*pafmafpaf_ joined #nim
22:55:17*pafmafpaf_ quit (Ping timeout: 260 seconds)
22:59:17*Trustable quit (Remote host closed the connection)
23:09:35*gokr quit (Ping timeout: 268 seconds)
23:12:18*bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
23:16:32*Matthias247 quit (Read error: Connection reset by peer)
23:17:17*irrequietus quit ()
23:40:56*cheatfate quit (Read error: Connection reset by peer)
23:41:02*cheatfate_ joined #nim
23:49:55*nsf joined #nim
23:51:35*zaquest quit (Quit: Leaving)
23:57:15*bjz joined #nim
23:58:28*zaquest joined #nim