<< 12-01-2015 >>

00:05:32ekarlso-flaviu: https://bpaste.net/show/3e8fde186348 looks right or ?
00:06:33ekarlso-nvm, it works!
00:09:22BlaXpirit_ekarlso-, how are you generating salt?
00:10:17ekarlso-BlaXpirit_: nvm, it's working
00:10:19ekarlso-I had a typo
00:10:33BlaXpirit_ekarlso-, no, I'm asking you for my own interest
00:10:38BlaXpirit_how are you generating salt?
00:12:21flaviuBlaXpirit_: https://github.com/rg3/bcrypt
00:12:32flaviuI dunno what he does, but he does something
00:12:56BlaXpirit_ok
00:13:42ekarlso-flaviu: .. I just did what flaviu has in his examples :p
00:13:46ekarlso-genSalt(12)
00:14:03ekarlso-ah, that part.
00:17:40*AFKMorpork is now known as AMorpork
00:17:41*Varriount|Mobile joined #nim
00:18:38BlaXpirit_keyle, "To execute a program without having a shell involved, use the execProcess proc of the osproc module."
00:19:06BlaXpirit_(thank goodness it at least exists in Nim, i started to worry)
00:19:27*jpoirier quit (Quit: Leaving)
00:23:06*Sergio965 quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
00:28:31*jpoirier joined #nim
00:29:37Mat4 ciao
00:29:54*Mat4 left #nim (#nim)
00:30:58*Mimbus quit (Excess Flood)
00:31:04*Mimbus joined #nim
00:31:29JinShilHello folks. I'm trying to get aporia to build on Arch Linux and it's telling me it can't find glib2 even though I have it installed through my package manager. Any suggestions?
00:33:16*adam_s quit (Quit: Leaving)
00:42:27Varriount|MobileJinShil: Is glib2 in your path, as a dynamic library?
00:43:48JinShilVarriount|Mobile, I'm trying to determine that right now
00:44:37JinShilIt doesn't appear it is, but I'm wondering what my pacman installed then.
00:45:04keyleghosts :)
00:45:11BlaXpirit_JinShil, installs fine here
00:46:14JinShilBLaXpirit_, it installs for me also, but I don't see the library anywhere. What's the actual file name?
00:47:04wan~/.nimble/pkgs/gtk2-1.0/glib2.nim
00:47:10BlaXpirit_JinShil, https://bpaste.net/raw/b7ee6cf0207b
00:47:43BlaXpirit_libglib-2.0.so libgmodule-2.0.so libgobject-2.0.so are mentioned
00:48:26BlaXpirit_all are part of glib2
00:50:02BlaXpirit_JinShil, aaah. aporia-git is definitely broken
00:50:08BlaXpirit_if that's what you're getting ay
00:50:10BlaXpirit_t
00:51:18JinShilIt's broken? Should I git from a different branch?
00:51:38BlaXpirit_JinShil, AUR PKGBUILD is broken
00:51:54BlaXpirit_see bottom of my pastebin for how to install
00:52:08JinShilI can't just compile from a git clone?
00:52:14BlaXpirit_why would you
00:52:29BlaXpirit_"just"
00:52:36BlaXpirit_if u can do everything in 1 line -_-
00:52:41BlaXpirit_and it will actually work
00:52:55JinShilI thought "nim c aporia" would do it. That's what the readme says.
00:54:24Araqlooks like we need to update the readme
00:54:25JinShilnimble
00:54:39JinShilwrong window
00:55:34JinShilOh, I'll try nimble. I'm assuming I can compile that from a git clone, yes?
00:55:40BlaXpirit_pacman -S nimble
00:56:12JinShiloh sweet
00:56:16BlaXpirit_sure is
00:56:27BlaXpirit_i definitely should go now
00:56:40JinShilBLaXpirit, thank you.
00:57:15*BlaXpirit_ quit (Quit: Quit Konversation)
01:26:07*HakanD joined #nim
01:30:17*HakanD quit (Ping timeout: 245 seconds)
01:34:37*onionhammer quit (Ping timeout: 244 seconds)
01:55:51*onionhammer joined #nim
01:57:52*ramnes_ is now known as ramnes
02:05:04*no_name quit (Remote host closed the connection)
02:06:45*keyle quit (Quit: leaving)
02:07:35*keyle joined #nim
02:11:06*z1y joined #nim
02:15:54*Varriount|Mobile quit (Remote host closed the connection)
02:16:15*Varriount|Mobile joined #nim
02:34:39*VinceAddons quit (Read error: Connection reset by peer)
02:45:31*keyle quit (Quit: leaving)
02:49:18*kapil__ joined #nim
03:07:56*vendethiel quit (Ping timeout: 244 seconds)
03:12:25*vendethiel joined #nim
03:14:37*darkf joined #nim
03:14:43*jefus_ joined #nim
03:18:09*jefus__ quit (Ping timeout: 245 seconds)
03:18:47*brson quit (Ping timeout: 244 seconds)
03:22:45*Varriount|Mobile quit (Read error: Connection reset by peer)
03:22:51*Var|Mobile joined #nim
03:26:49*gmpreussner joined #nim
03:27:25gmpreussnerthe IRC link on the website needs to be updated. it points to #nimlang, which is now invite only
03:29:15dtscode:D how do you get in there?
03:35:58*gmpreussner quit (Ping timeout: 246 seconds)
03:36:18*gmpreussner joined #nim
03:36:21*EXetoC quit (Ping timeout: 244 seconds)
03:36:40gmpreussnerthere are different directories depending on which set of libs is chosen
03:39:13dtscode?
03:39:39*vendethiel quit (Ping timeout: 244 seconds)
03:41:06gmpreussnerdtscode: so, i'm trying to statically link to some .lib files on Windows. there multiple sets of these, depending on whether you choose 32 vs 64 or debug vs release builds
03:41:51dtscodeah
03:42:05gmpreussnerthese are .lib, not .dll, so i have to disable DLL loading with --dynlibOverride and pass the path to the libs, i suppose
03:42:50gmpreussnerdo i have to use nake for this, because the linker command line will be conditional, or is there a simpler way?
03:43:51gmpreussneralso, when i link statically, do i still need {.dynlib.} in my code?
03:44:14gmpreussneri'd think that {.importc.} would be sufficient
03:46:22*vendethiel joined #nim
03:47:42gmpreussneron second thought, i doubt that this would even work. these libs were compiled with Visual Studio
03:53:35*stapler quit (Remote host closed the connection)
03:57:43*Var|Mobile quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com ))
04:07:07*gmpreussner quit (Ping timeout: 246 seconds)
04:10:14*vendethiel quit (Ping timeout: 265 seconds)
04:13:37*vendethiel joined #nim
04:25:16*leavengood joined #nim
04:25:40*leavengood is now known as Guest43109
04:35:13*vendethiel quit (Ping timeout: 264 seconds)
04:38:10*girvo joined #nim
04:43:35*z1y quit (Quit: Leaving.)
04:45:24*z1y joined #nim
04:45:26*girvo quit (Read error: Connection reset by peer)
04:46:15*vendethiel joined #nim
04:56:38*girvo joined #nim
05:05:14*Guest43109 quit (Ping timeout: 245 seconds)
05:05:36*JinShil quit (Quit: Konversation terminated!)
05:09:01*vendethiel quit (Ping timeout: 256 seconds)
05:12:07*brson joined #nim
05:15:08*jpoirier quit (Quit: Leaving)
05:15:13*vendethiel joined #nim
05:23:11*ARCADIVS joined #nim
05:23:25*girvo quit (Quit: leaving)
05:35:13*BitPuffin quit (Ping timeout: 264 seconds)
05:36:07*vendethiel quit (Ping timeout: 245 seconds)
05:38:04*vendethiel joined #nim
05:50:15*BitPuffin joined #nim
06:11:44*brson quit (Quit: leaving)
06:21:24*nodrygo joined #nim
06:23:55*jpoirier joined #nim
06:26:32*bjz joined #nim
06:29:27*BitPuffin quit (Ping timeout: 245 seconds)
06:38:49*bjz quit (Ping timeout: 264 seconds)
06:48:46*ajhager quit (Ping timeout: 265 seconds)
06:53:25*superfunc joined #nim
07:01:50*BitPuffin joined #nim
07:02:08*SplinterOfChaos quit (Ping timeout: 264 seconds)
07:04:39*keyle joined #nim
07:05:08keylehi
07:06:22dtscodehi
07:06:23*BitPuffin quit (Ping timeout: 240 seconds)
07:06:28dtscodei see you starred nimbus
07:06:35dtscodeor forked it. i cant remember
07:06:38dtscodeanyways, <3
07:06:51keyleyeah loved the simplicity
07:07:16dtscodeyeah everyone is surprised at the (lack of) code it took to write it
07:07:48keyleAraq: I have set up a mac ssh account for you on my mac book pro to get to the bottom of the compile issues
07:07:59keylePM me when you'd like the details
07:08:34*gmpreussner joined #nim
07:08:39dtscodeor you could paste them in a public channel for the whole world to see ;) whichever you prefer
07:10:24*bjz joined #nim
07:24:40*bjz quit (Read error: Connection reset by peer)
07:30:00*gour joined #nim
07:32:23gmpreussnergnite all
07:32:41gmpreussnerdtscode: i ended up creating DLLs from the static libs. problem solved :)
07:33:07dtscodegmpreussner, oh. tbh i dont develop on windows
07:33:40gmpreussneryeah, well, i'm creating bindings for cross-platform libraries, so i'm testing on all supported platforms
07:36:10*gmpreussner quit (Quit: Konversation terminated!)
07:41:17*bjz joined #nim
07:45:04*BlaXpirit joined #nim
08:17:39*jpoirier quit (Quit: Leaving)
08:19:16*gokr joined #nim
08:19:28*superfunc quit (Ping timeout: 246 seconds)
08:23:08*Trustable joined #nim
08:25:31*bjz quit (Read error: Connection reset by peer)
08:28:36*bjz joined #nim
08:43:59*bjz quit (Ping timeout: 245 seconds)
08:52:27*z1y quit (Remote host closed the connection)
08:53:10*z1y joined #nim
09:03:00keylesee my last comment: https://github.com/Araq/Nim/issues/1906 - anyone knows where I should look?
09:04:00ekarlso-keyle: so you good at webdesign ? :)
09:04:13keyleby trade
09:04:32keyleI'm a software designer/dev
09:04:39keylefocussing on UI/UX
09:04:41*HakanD joined #nim
09:05:27ekarlso-ah
09:06:05*Sphax joined #nim
09:06:07keylewhat for?
09:06:36ekarlso-keyle: packages.nim-lang.org is the thought :)
09:07:18keylejust pump out the html and give me ftp access or something
09:07:58keyleyou have an idea what it should look like? npm?
09:08:16*bjz joined #nim
09:08:35keylewow the latest npm is pretty sweet https://www.npmjs.com/package/express
09:09:35ekarlso-keyle: npm / rust's crate
09:10:10keyleI was thinking wrong, instead of ftp access, github is obviously better
09:11:35*kapil__ quit (Quit: Connection closed for inactivity)
09:12:04ekarlso-https://github.com/ekarlso/nim-packages keyle
09:14:32keylethat's quite a mouthful that readme
09:15:37keylewhat's it look like at the moment, running?
09:16:51ekarlso-hehe, lemme show u
09:18:04*Sphax quit (Quit: ZZZZZzzzzz)
09:20:43Araqkeyle: well it can only hide in terminal.nim or in the enormous windows wrapper
09:20:59keylek
09:21:08keylehas nim got the type short?
09:21:19Araqint16
09:21:27keyleaye
09:21:34*Sphax joined #nim
09:22:23*novist quit (Excess Flood)
09:23:05*novist joined #nim
09:23:05*novist quit (Excess Flood)
09:23:48Araqkeyle: however, http://msdn.microsoft.com/de-de/library/windows/desktop/ms682119%28v=vs.85%29.aspx
09:24:00*novist joined #nim
09:24:10keyleheh
09:24:49keyleit's all strange anyway
09:25:00*bjz quit (Read error: Connection reset by peer)
09:25:12keyleeven with a buffer that does not overflow, a clear with a setcursor(0, 0) does not go to the top of the screen
09:25:38keyleup until the user has pushed enough lines to make it scroll
09:25:46*BitPuffin joined #nim
09:26:05keyleStackoverflow is a mess about it too. Most resort to calling cls, which isn't proper and is expensive, but works.
09:26:43keyleshame, I love TUI, but it doesn't look a proper TUI can be done that's mac/linux _and_ windows
09:27:08Araqsure but you can use e.g. ncurses
09:27:36keyleusing C lib within nim is beyond my current capability
09:27:50Araqno, it's already wrapped
09:27:58keyleow.
09:27:59*[CBR]Unspoken joined #nim
09:28:35keyleis it on /lib.html?
09:29:53*BitPuffin quit (Ping timeout: 240 seconds)
09:29:59Araqdamn. no it's not.
09:30:09*shevy joined #nim
09:30:16Araqbut it's in lib/wrappers/pdcurses.nim
09:30:42keyleI wonder what else isn't told to users :D
09:30:45keylethx
09:31:51*bjz joined #nim
09:32:00keylePS: I wrote to you above that I have an ssh account for you on my mac book pro and it's ready to go with Nim failing at the same spot. PM me when you want the details.
09:32:20Araqnice!
09:33:00keyleyeah that'd save some stuffing around via irc + hastebin responses :> ... I hope it's not my mac and I'm wasting your time.
09:34:01Araqoh don't worry, I'm always after the "interesting" bugs ;-)
09:34:42keylewell PM me when you do have time :)
09:36:41keyleSo Windows allows a terminal buffer bigger than what it can set cursor coords on
09:36:49keyleah no
09:37:00keyleint16 * int16 should be fine
09:44:25*bjz quit (Ping timeout: 244 seconds)
09:54:13*bjz joined #nim
09:55:24*matkuki joined #nim
09:55:27*sillesta joined #nim
09:57:04*BlaXpirit quit (Quit: Quit Konversation)
09:58:23*bjz quit (Ping timeout: 240 seconds)
09:59:00*BlaXpirit joined #nim
10:02:48*Etheco quit (Quit: Leaving)
10:06:10*HakanD quit (Quit: Be back later ...)
10:09:55*bjz joined #nim
10:13:09*nodrygo left #nim (#nim)
10:22:03*bjz quit (Quit: Textual IRC Client: www.textualapp.com)
10:25:41*bjz joined #nim
10:30:41matkukiI have a tuple "Size = tuple[height, width :cint]". Why does the initialization use sequence and not field names?
10:30:43matkukie.g.: sz :Size = (width: 640, height: 480) sets the height field to 640 and width to 480?
10:31:29Araqbecause field names are pretty much ignored
10:31:42matkukiOh.
10:31:43Araqthis was a design mistake introduce with 0.10.2
10:32:05Araqit'll work again in the next version, I'll revert this change
10:32:18matkukiGreat, thanks.
10:33:26BlaXpiritD:
10:33:51*HakanD joined #nim
10:34:54AraqBlaXpirit: it's already marked as a showstopper bug
10:37:23*MajorTennis joined #nim
10:37:43*MajorTennis quit (Changing host)
10:37:43*MajorTennis joined #nim
10:40:30keyleWhen a wrapper looks for a dll, where does it look?
10:40:55*gsingh93 quit (Quit: Connection closed for inactivity)
10:40:57Araqon windows the %PATH% is used, I think
10:42:17keyleC:\Nim\bin; is in my %PATH% and it has a pdcurses.dll
10:42:48keyleand I get this at runtime when "import pdcurses" -> could not import: pdc_atrtab
10:43:02Araqwell a 64bit app cannot load a 32bit DLL and vice versa
10:43:12Araqbut that doesn't seem to be your problem
10:43:48BlaXpiritjust reported a regression :|
10:44:46Araqkeyle: according to http://fossies.org/dox/PDCurses-3.4/dos_2pdcscrn_8c_source.html this is not properly exported for DLLs
10:45:31keyleis it possible this wrapper done by someone on linux and not tested on Windows 8 ?
10:45:54BlaXpiritof course
10:46:52keylelet me test on linux
10:48:02AraqBlaXpirit: that should work with 'deve' again
10:48:18Araqand I can see on the error message you're not on devel :P
10:48:34BlaXpiriti used to be on whatever the default is and had the same error
10:48:57BlaXpiriti installed 0.10.2 actually in hope that the problem wouldn't be there
10:49:32keylelib/wrappers/pdcurses.nim(539, 36) Error: undeclared identifier: 'pdcursesdll'
10:49:36keyleon linux
10:50:11Araqand now we know why it's not listed in lib.html :-)
10:50:18keyle:D
10:50:26BlaXpiritAraq, does installing from "https://github.com/Araq/nim.git" count as devel or what should i try?
10:51:16keylehttps://github.com/Araq/Nim/pull/165
10:51:39keyleJuly 2012
10:52:31keyleBlaXpirit: that might be pulling master by default http://stackoverflow.com/questions/658885/how-do-you-get-git-to-always-pull-from-a-specific-branch
10:52:58keyle-b devel pulls devel
10:53:01BlaXpiritkeyle, but i see that "devel" is the default branch
10:53:11keyleon github yes
10:53:18BlaXpirituh whatever
10:53:24BlaXpiritbut i dont think i can specify a flag
10:53:27BlaXpiriti need a different URL
10:53:51*z1y quit (Remote host closed the connection)
10:53:53keylegit clone -b devel git://github.com/Araq/Nim.git
10:54:03BlaXpirit[:53:23] <BlaXpirit> but i dont think i can specify a flag
10:54:04BlaXpirit[:53:27] <BlaXpirit> i need a different URL
10:54:23BlaXpiritwell maaybe i can
10:55:31BlaXpiritgit checkout devel?
10:57:38novistyes you can
10:57:50novistaccording to obama.
10:57:59*kapil__ joined #nim
10:58:10*z1y joined #nim
11:03:57BlaXpiritstill downloading that repo
11:03:58BlaXpiritzzzzzz
11:04:19novistit aint big as i remmeber
11:04:37novistcloned just yesterday when i saw shallowCopy bug was fixed (thanks Araq !)
11:08:30*JinShil joined #nim
11:14:57BlaXpirityup, sure enough, with devel it works :|
11:16:43*MajorTennis quit (Read error: Connection reset by peer)
11:17:34*gour_ joined #nim
11:20:49Araqnovist: as I wrote, it only affected top level statements, shouldn't have stopped you from working :P
11:20:55*gour quit (Ping timeout: 252 seconds)
11:21:26novistactually i bumped into it when it happened in a proc. basically i was sorting scheduled coroutines by sleep time and it broke everything hehe
11:21:55novistanyway it was just experiment to see if i can pull off same thing i was doing in c++. but in nim it turned out to be much more elegant and awesome
11:22:21Araqer that's bad.
11:22:37AraqI hate it when test cases get reduced too much
11:22:40novistwell my sample works just fine now. you want to take a look maybe?
11:22:53AraqI want to add it to the testsuite
11:23:08Araqthese reduced test cases tend to test too few things
11:23:18Araqespecially in the long run
11:23:33novisthttp://paste.linuxmint.com/view/jzwk/
11:23:41novistit broke on sort() call before
11:23:52Araqperfect! thanks!
11:24:23novistglad to be useful o/
11:25:16Araqbut yeah my fix wasn't specific to top level statements so it's all good
11:25:26*VinceAddons joined #nim
11:25:55*JinShil quit (Ping timeout: 255 seconds)
11:26:22*z1y quit (Ping timeout: 255 seconds)
11:28:36Araqnovist: btw 'finished' has a common gotcha in that it returns true "one step too late"
11:28:51Araqdunno if your code is affected by it
11:31:07novisthmm.. does it depend on finished() being actually called? like needing to call it twice for finished iterator so true would be returned?
11:31:52Araqthe canonical example is:
11:32:10Araq while not finished(it): let value = it() # doesn't work
11:32:16Araq while true:
11:32:28Araq let value = it()
11:32:44Araq if finished(it): break # works, ignore spurious return value
11:33:11Araqit's actually more like 'it' returns a tuple
11:33:46Araq let (value, finished) = it() # that would have been much better API design, but also slower ;-)
11:34:54Araqbut hey, we can always provide a nicer wrapper
11:35:15*MajorTennis joined #nim
11:35:15*MajorTennis quit (Changing host)
11:35:15*MajorTennis joined #nim
11:48:17*JinShil joined #nim
11:49:07*Sphax quit (Quit: ZZZZZzzzzz)
11:58:02*Sphax joined #nim
12:14:27*akiradeveloper joined #nim
12:14:33*irrequietus joined #nim
12:14:34*irrequietus quit (Changing host)
12:14:34*irrequietus joined #nim
12:14:43akiradeveloperhi
12:16:14Araqhi akiradeveloper welcome
12:16:19*matkuki quit (Quit: ChatZilla 0.9.91.1 [Firefox 34.0.5/20141126041045])
12:16:48akiradeveloperI have a question. How to paste a code? Should I use gist?
12:17:32keylehastebin, pastebin, gist
12:19:26akiradeveloperWhy can't I compile this code? https://gist.github.com/akiradeveloper/f9c47016ef6eb092838e
12:20:10akiradeveloperI think I followed the section multi-method in manual http://nim-lang.org/manual.html
12:21:09Araqand that section is severly outdated
12:21:34Araqdon't use .inheritable, don't use 'object' when you're a newbie, use 'ref object' instead
12:22:16Araqand inherit from RootObj to enable inheritance
12:24:03akiradeveloperOK. I wil try
12:27:33akiradevelopernot compiled. I comment a new code in my gist.
12:27:48akiradeveloperWhat is the problem?
12:27:56*z1y joined #nim
12:28:17keylecan't see a comment
12:28:21BlaXpiritis there a better way to write var a = @[1,2,3,4,5,6,7,8,9,10]
12:29:07akiradeveloper>keyle sorry I forgot to push the bottom
12:29:32AraqBlaXpirit: toSeq(1..10)
12:29:57BlaXpiriti guess i should just forget about "nim i" completely
12:30:01BlaXpiritit can't do even this
12:30:58BlaXpiritthanks, it works
12:33:04Araqakiradeveloper: the error message is perfectly clear
12:33:23Araqtemp10.nim(18, 3) Error: type mismatch: got (T1)
12:33:25Araqbut expected one of:
12:33:26Araqtemp10.f(x: T3)
12:33:28Araqtemp10.f(x: T2)
12:33:30Araqtemp10.f(s: S1)
12:34:17*BitPuffin joined #nim
12:34:24keyleakiradeveloper: add the missing overload
12:34:32keylemethod f(x:T1) =
12:34:38keyle echo "I am T1"
12:35:03keyleto get the result you expect, "I am T2"
12:35:29keylePS: I wouldn't recommend this code in production :>
12:36:05akiradeveloperIt works, thanks
12:37:50akiradeveloperkeyle: You don't like dynamic dispatch?
12:38:24keyleI don't like code that's too clever. It costs man-hours
12:39:18keylenothing really wrong here, though
12:42:03BlaXpiritdoesn't Nim come with Nimble on Windows? :o
12:42:08*Araq dislikes dynamic dispatch ;-)
12:42:41AraqBlaXpirit: no, the DLL dependencies delayed that project
12:47:13*SplinterOfChaos joined #nim
12:50:16*akiradeveloper left #nim (#nim)
13:01:28keyleAraq: any chance you can look at outputing the doc content to csv?
13:01:34keyleoops, json
13:01:36keyle*tired*
13:04:29*gour_ is now known as gour
13:06:55*leavengood joined #nim
13:07:19*leavengood is now known as Guest92587
13:08:56*jefus_ is now known as jefus
13:13:50Araqkeyle: I can do that later but I'm not convinced it's better than simply patching docgen2
13:14:14keyleto what purpose?
13:14:45Araqto get the "group by type", "search" features
13:14:58keylein my mind, generating api docs to json is future proofing. Straight to html is cornered
13:15:05keyleah
13:15:12keyleso docgen2 would be a search
13:15:25keylesure!
13:15:44flan3002Just for toying around... is there a low-friction graphics library/game engine example somewhere?
13:16:20Araqflan3002: the graphics module is still part of the core and builds on SDL 1.2
13:16:46flan3002Araq: Thanks, I'll look into that. :)
13:16:52Araqthere are lots of other libraries around though
13:27:23keyleanyone doing much with nim and gtk2 ?
13:28:20BlaXpirit...aporia...
13:29:34keyleah
13:29:39keyleI thought that was scite
13:37:48*BlaXpirit quit (Quit: Quit Konversation)
13:37:59*keyle quit (Quit: Morbo: Chitchat achieved!)
13:47:48irrequietusAraq: disliking dynamic dispatch is awesome :)
13:59:21*UberLambda joined #nim
14:01:27sillestais there any reason for using dynamic dispatch over static? (newbie)
14:02:16*BlaXpirit joined #nim
14:05:37*z1y quit (Remote host closed the connection)
14:06:23*z1y joined #nim
14:06:54Araqsillesta: there are lots of use cases where it's really necessary
14:07:40*EXetoC joined #nim
14:18:20*JinShil quit (Quit: Konversation terminated!)
14:18:35renesachttps://www.python.org/dev/peps/pep-0418/ <-- as aways, python has a sane PEP that organizes everything
14:19:16renesacI didn't know about those new time functions (monotonic(), perf_counter() and process_time())
14:19:53renesacwell, C++11 also has the chrono library now, that is kinda similar, but the way python organized seems better for me
14:20:13*PJC joined #nim
14:20:30renesacthe main difference is that C++11 uses integers for time, while python uses a float64
14:21:40renesacnimrod uses float64 with seconds, int64 with nano seconds or int64 with 'ticks' depending on the situation...
14:22:59*Etheco joined #nim
14:23:27renesaceach has it's uses, but interoperability is kinda hard that way... especially the 'ticks' that don't have a defined unit
14:24:28renesacif I implement a PEP-0418 style library, ticks is not really an option (it is used by the times.nim in the nim GC)
14:24:57Araqit's not an external API anyway
14:25:00renesacit is converted to nanos when doing a subtraction though...
14:25:08Araqfor exactly these reasons
14:25:23renesacI know, but I'm trying to expose that functionality
14:25:30renesaceven if the GC itself won't use the public library
14:26:10renesacthe GC using that format tells something (that you spend time and lose precision if you convert too early from ticks to nanos)
14:27:15renesacnot sure if it matters much in reality, but microsoft recommends delaying the conversion too, as nim GC does
14:28:18renesaca possible solution is add a tag to the ticks, to identify what type of tick it is, but seems too much trouble over simply converting it to nanos or float seconds
14:28:56Araqyou should introduce distinct types for nano, micro etc. and then simply expose what the GC uses
14:29:19Araqso: sleep(1000) # doesn't compile
14:29:27Araqsleep(1000.msecs) # compiles
14:29:36Araqwell you get the idea
14:29:41renesacright
14:30:17renesacwhat about sleep(0.0001) like in python?
14:30:21renesactoo high level?
14:30:44renesac(I was already doing that by the way, then I stumbled over that PEP)
14:30:45Araqfloating point can hurt for hyperthreading
14:30:53renesac?
14:31:18Araq"With hyperthreading, each physical core supports two logical cores, who share some, but not all of the resources of the physical core, allowing them to operate in parallel if their resource usage doesn't overlap. One of the things that logical cores do share are their FP/SIMD units, so FP-intensive code automatically creates a hyperthreading bottleneck."
14:31:26Araqfrom http://forum.nim-lang.org/t/533/2
14:31:44renesacthis is for AMD
14:31:50renesacintel don't have this limitation I think
14:32:09Araqwell there are still lots of cpus which don't even have a FP unit
14:32:10renesacand it shares them for a reason: it is less used
14:32:18renesacright
14:32:39renesacbut they also aren't 64 bits
14:32:41*z1y quit (Ping timeout: 252 seconds)
14:33:00Araqemulating 64bits is much cheaper than emulating FP
14:33:57renesacok, then you suggest using nanos by default as the output of those functions
14:34:11AraqI guess I do
14:34:22renesacand then one converts to .msec or .float as they want
14:34:25renesacor better
14:34:29AraqI like the FP interface quite a bit though, it's resolution independent
14:34:31renesac.secs or .seconds
14:35:06renesacwell, I would store in nanos even timers with milisecs precision, I guess
14:35:15renesaconly a multiplication
14:35:30Araqbut an FP interface is just a converter/overload away
14:35:46renesacyeah
14:36:09renesacthe problem of using integers for time is the truncation on division that loses some precision
14:36:31renesacand I think int 64 division is slower than float division
14:36:43renesacon the other hand, if the divisior is constant, it can be optimized
14:36:49renesacby the compiler easily
14:37:58renesacby the way, this is interesting: https://github.com/ridiculousfish/libdivide
14:38:12renesacI wonder if c2nim can chew that
14:38:43renesac(does the division optimization for runtime constants)
14:41:57*z1y joined #nim
14:44:59Araqrenesac: don't get distracted. optimizing divisons has nothing to do with designing a times api
14:47:35renesacI know, I discovered this libdivide for another reason
14:49:05renesacbut yeah, I should focus on getting this times library done
14:51:22renesacby the way, any specifc reason why nim gc uses CLOCK_REALTIME instead of CLOCK_MONOTONIC?
14:54:43*johnsoft quit (Ping timeout: 255 seconds)
14:55:06*johnsoft joined #nim
14:55:32Araqcan't remember, the latter is not available on SurrealUnix version 0xCAFEBABE
14:56:59Araqyou need to check every posix symbol you use 10x
14:57:14renesachum
14:57:44*tttt quit (Disconnected by services)
14:57:53renesaccan I use "declared()" or something like that to check if something was defined in a .h?
14:58:20Araqno. but you can staticExec and try to compile a C snippet
14:58:42EXetoC-.-
14:59:10EXetoCsuch elegance
14:59:34AraqEXetoC: how would this 'declared' builtin work?
14:59:51Araqhow does autoconf do it?
14:59:52*ARCADIVS quit (Quit: ARCADIVS)
15:00:18AraqI will tell you: In exactly the same way.
15:01:06renesacis there an example for what I want?
15:01:13renesacI need to launch a c compiler via command line?
15:01:17*ajhager joined #nim
15:02:15EXetoCwhatever works, I guess
15:02:21Araqrenesac: yeah but don't go this road
15:02:51Araqit's crazy. just use what you need and some poor soul will report it fails on his precious niché OS
15:03:04EXetoCso, no defines denoting availability?
15:03:31AraqEXetoC: system.declared tells you if the *Nim* symbol exists
15:03:58Araqvar foo {.importc: "bar".}: cint
15:04:12Araqdeclared(foo) # true, even if C doesn't know about 'bar'
15:05:01renesaccompiles(var CLOCK_MONOTONIC {.importc: "CLOCK_MONOTONIC", header: "<time.h>".}: TClockid)
15:05:06renesacwill aways return true?
15:05:12renesacregardless of what is in time.h?
15:05:23EXetoCI meant C defines denoting availability of those features
15:06:54flan3002Am I missing an easy way to search the online docs?
15:07:13Araqflan3002: use theindex.html
15:07:33Araqrenesac: syntactic issues aside, yes
15:07:34flan3002Woah.
15:08:21AraqEXetoC: you can .emit an #ifdef I guess
15:09:00Araqbut that's more a sideeffect of the preprocessor that is misused for symbolic constants
15:09:19Araqyou can use this to check the availability of a function
15:09:23Araq*can't
15:11:22EXetoCbut then someone might distribute said executable
15:12:14renesacAraq: someone will put a define to sinalize the availability of a function
15:12:16renesac:P
15:12:29renesacbut I got your point
15:14:22*jefus_ joined #nim
15:15:18EXetoCas long as we aren't very conservative just because of some odd systems
15:15:42*BlaXpirit quit (Quit: Quit Konversation)
15:18:10renesacI don't understand how nimrod checks for posixRealtime
15:18:32renesachttps://github.com/Araq/Nim/blob/5bd2889267dcd9fb18297dbac0f0e3fef6036688/compiler/condsyms.nim <-- this is the only other place on the compiler where it is used
15:18:40*jefus quit (Ping timeout: 264 seconds)
15:18:56renesacdo we need to pass this flag to the nim compiler manually?
15:20:36*minciue quit (Quit: minciue)
15:22:35*saml joined #nim
15:22:48Araqrenesac: looks like it, yeah
15:26:50*BlaXpirit joined #nim
15:38:50*PJC quit (Quit: Page closed)
15:40:00renesacso every non-mac non-windows system is using posix_gettimeofday for it's GC now?
15:40:00*jpoirier joined #nim
15:40:24renesacbecause I've never seen this flag used or recommended
15:41:29*renesac is now known as renesac|away
15:43:11*darkf quit (Quit: Leaving)
15:45:34*ajhager quit (Quit: WeeChat 1.0.1)
15:48:50*atomic-hedgehog joined #nim
15:55:21Araqrenesac|away: yes.
16:06:01*z1y quit (Quit: Leaving.)
16:06:09*z1y joined #nim
16:10:51*BlaXpirit quit (Quit: Quit Konversation)
16:11:35*kapil__ quit (Quit: Connection closed for inactivity)
16:12:07*z1y quit (Ping timeout: 255 seconds)
16:20:13*EXetoC quit (Ping timeout: 255 seconds)
16:29:52UberLambdaNow that nimrod is named nim, is github going to update the name? It's still nimrod to it
16:30:15def-UberLambda: where is that?
16:30:38UberLambdadef-: To search repositories by language, language:nim doesn't work but language:nimrod does
16:30:51UberLambdadef-: also, in the colored language bar at the top
16:31:15*BlaXpirit joined #nim
16:31:22def-https://github.com/github/linguist
16:31:30def-Sounds like we should make a pull request there
16:31:36UberLambdaI guess it's a easy fix then
16:32:22def-I'll give it a try if you don't want to
16:32:41UberLambdahttps://github.com/github/linguist/blob/master/lib/linguist/languages.yml#L1894
16:32:46UberLambdaI'll try patching it
16:33:03UberLambdaBut I'm not sure how to work with github
16:33:11def-ok, I'm afk anyway
16:33:15UberLambdaShould I fork it, then merge it to the remote?
16:33:32def-https://help.github.com/articles/creating-a-pull-request/
16:33:55UberLambdadef-: Thanks, I'll try patching it
16:34:09*BlaXpirit quit (Client Quit)
16:34:11UberLambdaBTW is the .nimrod extension still used? Or can it be removed from the spec?
16:36:01UberLambdaSeems like superfunc has already opened a pull request
16:36:31*BlaXpirit joined #nim
16:45:25*EXetoC joined #nim
16:50:32*Jesin quit (Quit: Leaving)
16:50:47*BlaXpirit quit (Quit: Quit Konversation)
16:53:00*Jesin joined #nim
16:58:52*brson joined #nim
17:03:29*judofyr joined #nim
17:03:50judofyrI'm having some troubles with "recursive" macros
17:04:01judofyrI have: foo() & bar() & baz()
17:04:05judofyrwhere `&` is an macro
17:04:18judofyrit seems to first expand foo() & bar()
17:04:56judofyrbut then it it expands (foo() & bar()) & baz() completely ignoring the result of the previous expansion
17:06:29*atomic-hedgehog quit (Ping timeout: 245 seconds)
17:08:22*atomic-hedgehog joined #nim
17:08:54def-judofyr: i think that's to be expected.
17:11:27def-hm, no. actually seems to work as you want it to
17:11:41def-oops, no
17:12:47*gokr_ joined #nim
17:12:54def-I've never nested macros before I guess
17:13:16def-If you make them immediate the first one doesn't get executed at all at least
17:15:03AraqUberLambda: if you're on BSD can you check why osproc.execProcesses returns too early?
17:15:58UberLambdaAraq: sorry, I'm on Arch Linux
17:19:28judofyrdef-: here's the actual issue: https://gist.github.com/judofyr/fc152264ae1c4f0932c7
17:19:39judofyrthe moment I use `const` it seems to do something odd
17:20:01judofyrnotice that at runtime it's only doing 4 ands
17:20:07def-ha, looks nearly exactly like the example i tried
17:20:12judofyrbut at compile-time it seems exponential
17:21:34judofyrturning it into a macro has the same issue as const'ing it
17:22:22judofyractually, making it immediate seems to solve it
17:22:54def-not for me, still looks like a lot of additions, but fewer
17:23:12def-ah, i get it
17:23:22def-the "const x = a" causes a new calculation of a at compile time
17:23:36def-so of course it grows quickly
17:24:03def-what's your goal?
17:24:16judofyrI'm working on a SQL building library
17:24:34judofyrone approach I'm looking at is to support standalone WHERE-clauses
17:24:52judofyr`where("id = 123")` would return a WHERE-statement
17:25:21*HakanD quit (Quit: Be back later ...)
17:25:31judofyr`where("id = 123") & where("foo = bar")` returns another WHERE-clause
17:25:42judofyrnow I'm trying to get that above to compile properly on a compile-time
17:26:02judofyre.g. that should be inlineable to WHEREStmt("id = 123 AND foo = bar")
17:27:52*jefus_ is now known as jefus
17:31:17*HakanD joined #nim
17:31:42def-judofyr: works for me
17:32:18def-oh wait...
17:33:10def-how about a term rewriting macro?
17:33:32Araqyes there is some exponential overhead bug in the compiler that I haven't tracked down
17:37:12judofyractually, using an arrow makes it far better
17:37:33def-because associativity changes?
17:38:18judofyrmeh. it just halves it
17:39:45*Sphax quit (Quit: ZZZZZzzzzz)
17:39:45*MajorTennis quit (Quit: Leaving)
17:42:30judofyrit got really bad when I tried to write something that automatically detected if something was const-able or not:
17:42:56judofyrtemplate tryConst(code: expr): expr = when compiles((const res = code)): const res = code; res; else: code
17:43:11judofyrif I could get it to compile inwards and out
17:43:26judofyrI think it wouldn't be a problem
17:44:15EXetoCfor what purpose?
17:44:48*jsudlow quit (Quit: Leaving)
17:45:36judofyrfor optimizing as much as possible
17:46:01judofyre.g: select(1) & fromTable("users") & where("name", params["name"])
17:46:21judofyrthe two first can be combined at compile-time
17:46:33judofyrbut Nim doesn't do it unless there's a `const` in `&`
17:47:09judofyrand it would be ugly to write: const foo = select(1) & fromTable("users"); foo & where("name", params["name"])
17:47:26judofyror, that's not an API I would encourge
17:47:48judofyr(unless you really care about performance and want to ensure the compiler consts it)
17:47:59Araqyou just need to use --implicitStatic:on and then it gets optimized this way iirc
17:48:04judofyroh
17:48:31Araqthere was a bug which prevented us from making it the default though
17:48:53judofyrso what does it *actually* do?
17:49:17Araqyour "try at compile-time" stuff
17:50:46judofyrI must be doing something which prevents it though
17:51:14judofyrdoes it work across `let`s?
17:51:17*jsudlow joined #nim
17:52:13judofyrI have a "let x = a" in my template to avoid inlining the code multiple times
17:52:29Araqno, it doesn't work with 'let'
17:52:52judofyr:(
17:53:49Araqyou can write specialized version that doesn't use 'let' for param: someType{noSideEffect}
17:54:30judofyrin a template or a proc?
17:58:05judofyrthe reason I want to avoid inlining the code multiple times is because of code growth
17:58:26judofyrit's probably related to some exponential growth bug in the compiler
17:59:58Araqwell I prefer to fix the bugs that stop it from working instead of hacking around
18:00:32Araqso if you have an easy test case for this exp bug that would be really helpful
18:01:36Araqand then file a bug for the broken --implicitStatic:on optimization
18:04:55*atomic-hedgehog quit (Quit: Lost terminal)
18:09:10judofyractually, I'll have to use a let/const. I'm setting multiple fields in a tuple, and one of the depends on the others
18:11:51*Guest92587 is now known as leavengood
18:13:59*vezzy quit (Ping timeout: 245 seconds)
18:14:19*quasinoxen joined #nim
18:17:13judofyrAraq: here's one about code growth when using const: https://github.com/Araq/Nim/issues/1940
18:17:21judofyror, I assume it's about template expansion code growth
18:19:09judofyrI have no idea what implicitStatic actually does
18:19:29judofyror how it will help me write a `&` that merges the sql-field at compile-time
18:42:49*jpoirier quit (Quit: Page closed)
18:43:16*atomic-hedgehog joined #nim
18:53:33Araqjudofyr: implicitStatic executes f(X) iff 'f' has no side-effects and 'X' is a vector of compile-time values
18:54:27Araqthis is a recursive definition so X could be 1, 3, g(x)
18:55:04Araqnote that within 'f' let bindings cause no problem whatsoever for this
18:56:49ldleworkAraq: here's that named anchors change to theindex.html https://github.com/Araq/Nim/pull/1941
18:57:19wtwAraq: how the heck do you manage to still make considerable progress when you answer questions here all the time, write articles, the manual and so on? :)
18:57:40wtwit's quite impressive ;)
18:57:57ldleworkwtw, shh you're distracting him
18:58:10wtw;)
19:02:23*atomic-hedgehog quit (Ping timeout: 240 seconds)
19:04:17*atomic-hedgehog joined #nim
19:09:27*skyfex_ quit (Quit: (null))
19:12:57Araqldlework: what's cleaned_keyword? stripped a trailing space?
19:14:49*gokr_ quit (Ping timeout: 245 seconds)
19:16:16ldleworkremoved the `'s
19:16:27ldlework`mod`
19:16:33*gokr_ joined #nim
19:16:34ldleworkdoesn't works so well with anchors
19:16:39Araqoh I see
19:17:02ldleworkwant me to replace all the other [i] lookups with 'keyword' since I shoved it into a variable?
19:17:10ldleworkfor consistency sake
19:17:29ldleworkI mean I realize this is not python anymore so it doesn't matter :P
19:17:59Araqmeh GCSE is surprisingly weak in C compilers
19:18:11Araqwell not that "surprisingly"
19:18:33ldleworkhehe is that a 'yes go ahead'?
19:19:10Araqthat's a be quick while you have my attention :P
19:19:18ldleworkk
19:20:50ldleworkAraq: pushed up
19:25:33Araqhrm github is down for me
19:26:56ldleworkAraq: its up here
19:28:59*skyfex_ joined #nim
19:29:37ldleworkAraq: how often do the docs get updated
19:29:41ldleworkevery release?
19:30:20*minciue joined #nim
19:31:30AraqI'll regenerate tonight so we also get the year update
19:32:15ldleworkAraq: cool, thanks.
19:32:17Araqsomebody also needs to rebuild the .zip with the 0.10.2 tag but including the tools/ directory
19:33:02ldleworkAraq: I was pleased that links like file:///home/dlacewell/dev/nim/Nim/doc/system.html#div alredy worked how I wanted them to :)
19:33:14ldleworksystem.nim#div I mean
19:33:28ldleworkgiven that there are multiple div implementations, it just goes to the first
19:34:20Araqgradha put some serious effort into this
19:34:46ldleworkI'm wondering how I can tell my bot about all the names it should know about
19:35:05ldleworkI wonder if I could get the doc generator to just output a huuuuuuuuge json list of all the names
19:35:11Araqsimple: process the generated .idx files
19:35:16ldleworkhuh
19:35:18*ldlework looks
19:35:43ldleworkooo
19:36:26ldleworkbeautiful
19:36:28ldlework:P
19:37:51*BlaXpirit joined #nim
19:41:17*Matthias247 joined #nim
19:45:39jsudlowcan a stream input take a file path?
19:45:49*rpag joined #nim
19:47:17Araqjsudlow: FileStream exists
19:50:04jsudlowAraq: cool. So you can use newFileStream(f: File) to load the file
19:50:20jsudlowwhen you pass in the f: argument, do you have to make a File type or can you pass in a string?
19:50:54Araqpretty sure there is an overload which takes a filename
19:53:06ldleworkjsudlow: proc open(filename: string; mode: FileMode = fmRead; bufSize: int = - 1): File
19:53:10ldleworksystem.nim
19:54:09dom96ldlework: Are you making a doc search bot?
19:54:15ldleworkdom96: yeah
19:54:22dom96cool
19:54:42ldleworkAt least, I'll get started once the docs are updated
19:54:54jsudlowldlework: so how does nim differentiate between all the open procs between modules? By the parameter names?
19:55:40ldleworkjsudlow: parameter type
19:55:46*HakanD quit (Quit: Be back later ...)
19:56:16jsudlowahh ok cool
19:58:18jsudlowwith mode and bufSize are those examples of optional parameters?
19:58:33Araqyup
19:59:01jsudlowldlework: is this the way your thinking of opening the file? var rawjson = open(filename: "map_files/nimrodhunter")
19:59:31jsudlowit wants a type and I'm not sure what to give it and it makes me think I may be calling it wrong
19:59:35ldleworkjsudlow: that just gives you a File
19:59:40ldleworkwrap that in a FileStream
19:59:40Araqjsudlow: as I said, there is newFileStream which takes a filename and a mode
19:59:46ldleworkpass it to marshal
19:59:47jsudlowahh ok
19:59:49ldleworkor that
19:59:50Araqno, don't listen to ldlework
19:59:59Araqjust use
20:00:08AraqnewFilestream("foo.txt", fmRead)
20:00:10ldleworknewFileStream is better sure
20:00:17jsudlowoh cool
20:09:23*shodan45 quit (Quit: Konversation terminated!)
20:09:33*shodan45 joined #nim
20:10:49*Matthias247_ joined #nim
20:12:42jsudlowso with streams, will newFileStream actually start readin the data in from the file or do you have to manually do that?
20:13:45*bjz quit (Max SendQ exceeded)
20:13:52*Matthias247 quit (Ping timeout: 264 seconds)
20:15:36Araqit doesn't do any reading but the things that take a stream do call some read proc on it
20:16:58Araqwho asked about 'eval'? compiler/nimeval.nim exists you only have to import it and perhaps do some --path voodoo
20:18:33*bjz joined #nim
20:19:00*shodan45 quit (Quit: Konversation terminated!)
20:23:11*iivvoo quit (Ping timeout: 265 seconds)
20:23:11*jnye joined #nim
20:23:40*CARAM__ quit (Ping timeout: 265 seconds)
20:23:40*biscarch quit (Write error: Connection reset by peer)
20:23:49def-Araq: can't get it working
20:23:55def-Araq: compiler/nimeval.nim(27, 15) Error: undeclared identifier: 'vmPass'
20:25:07*dymk quit (Ping timeout: 265 seconds)
20:25:15Araqtry evalPass instead
20:25:49jsudlowAraq: Thx the filestream is working as expected and its also parsing json correctly
20:25:57jsudlowwith the nim json module
20:26:05*EastByte_ quit (Ping timeout: 265 seconds)
20:26:42*CARAM__ joined #nim
20:28:43*biscarch joined #nim
20:29:56*EastByte_ joined #nim
20:30:17*dymk joined #nim
20:31:38*iivvoo joined #nim
20:33:48Araqhi iivvoo welcome
20:34:03def-Araq: compiles, but have to copy libraries to ../lib. Then I get new errors:
20:34:06def-lib/system.nim(2445, 21) Error: redefinition of 'fileHandle'
20:34:44Araqthat's easy though
20:35:10*Sphax joined #nim
20:35:17Araqit doesn't load your config environment properly
20:35:34Araqwhich happens to set --cs:partial
20:35:56Araqnow that 10.2 is out, we should make that the default in the compiler itself
20:36:56jsudlowAraq: using echo($jobj["layers"]) yields http://dpaste.com/10BB3FF#wrap if you dont know the answer thats fine, but do you know how to drill down into the data, type or visible keys?
20:36:58*enquora joined #nim
20:38:04Araqjsudlow: the docs of the json module should be of some help
20:40:17*bjz quit (Ping timeout: 245 seconds)
20:40:45atomic-hedgehogI'm new to Nim (which seems really awesome so far!) and I ran into the query string issue with httpclient. It looks like that's already been fixed on master (https://github.com/Araq/Nim/pull/1848), but the github build status is showing "exception" for linux. Is master stable enough to use right now?
20:41:20Araqatomic-hedgehog: you need to use the devel branch which is afaict stable enough
20:41:56Araqthe "exception" for linux is because our buildbot is still not production ready
20:43:36flaviuThe exception isn't the builder's fault.
20:44:25def-atomic-hedgehog: if you can't switch to devel, you could copy the new uri.nim and httpclient.nim for a quick fix
20:45:38ldleworkWe should get Nim on http://devdocs.io/
20:45:48*shodan45 joined #nim
20:45:54*jpoirier joined #nim
20:46:18Araqwtw: are you the BSD guy?
20:46:25atomic-hedgehogthanks! I'll give the devel branch a try, and do the manual copy if that fails.
20:51:09*HakanD joined #nim
20:55:57*rpag quit (Quit: Leaving)
20:57:55*UberLambda quit (Quit: Leaving the Matrix)
20:59:23*reactormonk quit (Ping timeout: 240 seconds)
21:02:37flaviugokr: ping
21:03:15*bjz joined #nim
21:03:17flaviuCan you check and see what linux-x32 is in the middle of doing?
21:03:39flaviuCheck the process tree, it should be a child of the buildslave
21:04:14flaviuAfterwards, maybe killing the stuck test will move things along.
21:05:30*vezzy joined #nim
21:05:33*quasinoxen quit (Ping timeout: 256 seconds)
21:05:40*renesac|away is now known as renesac
21:06:05renesacflaviu: linux-x32 is the x32 abi?
21:06:14renesachttps://en.wikipedia.org/wiki/X32_ABI
21:06:22flaviurenesac: http://buildbot.nim-lang.org/builders/linux-x32-builder/builds/77
21:07:28renesacI don't see the answer to my question
21:07:39renesacwell, it repeats x32, but is it?
21:07:54renesacor is it i386?
21:08:36Araqi think its i386
21:10:15renesacthe name is misleading then
21:10:29flaviuDoesn't everyone use at least i686 now?
21:10:31renesacthe x32 abi never got much traction, but it exists, and that is it's name
21:11:30flaviurenesac: in colloquial use, x32 means i386
21:11:46flaviuI've never heard it used to refer to the actual x32 ABI
21:11:50renesacflaviu: those people could be using the x86-64
21:12:38renesacflaviu: a google search for "linux x32" don't corroborate your view
21:13:19dom96x86 means i386
21:13:31ldleworkthis ^
21:13:40dom96it can probably also mean i686 too though.
21:13:42renesacyeah
21:14:06*Trixar_za quit (*.net *.split)
21:14:34renesacwell, the difference between i386 and i686 are the SIMD extensions, right?
21:14:36renesacnot much else
21:15:10ekarlso-flaviu: how hard would you think it would be to implement JSON Web Signatures in nim ? :D
21:15:46renesacflaviu: if you like the '32' part, you can use the intel name: IA-32
21:17:19*Trixar_za joined #nim
21:17:34*bjz quit (Max SendQ exceeded)
21:18:19renesaci686 aparently is compatible with any x86 from Pentium pro and AMD K6 to present
21:18:21renesacrequires MMX
21:18:37renesacthat is 20 years
21:20:30renesacok, I'm getting conflicting informations
21:20:35renesacand wikipedia is useless
21:21:47flaviuekarlso-: You'll be needing a crypto library and https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32
21:22:32flaviuI'm not at all familair with JWS
21:22:40ekarlso-flaviu: what crypto lib in that case ?
21:22:47flaviuopenssl, probably.
21:22:57flaviuNim depends on it already for https.
21:23:48ekarlso-ah ok
21:24:10*Matthias247_ quit (Quit: Matthias247_)
21:28:00*Matthias247 joined #nim
21:28:10gokrflaviu: pong
21:28:45gokraha
21:29:15flaviuAround 21:02:37 in the logs
21:31:01renesacI could use that rational.nim pull request for specifying the clock resolution/period of a clock
21:31:32*atomic-hedgehog quit (Ping timeout: 244 seconds)
21:31:58renesacmaybe the "duration" struct is the best way to represent the output of a time function, and then functions to convert it to nanosecs, float secs, etc
21:32:02renesachttp://en.cppreference.com/w/cpp/chrono/duration
21:32:12*atomic-hedgehog joined #nim
21:34:45gokrflaviu: The linux 64 doesn't seem healthy either. Both are missing nodejs, want me to install that?
21:35:06flaviuIt wouldn't hurt, but that shouldn't cause it to hang.
21:36:06*keyle joined #nim
21:36:40flaviugokr: Can you tell me what the tester's children are? `pstree`
21:37:33gokrIt seems its tasyncawait that's stuck
21:39:11flaviugokr: Thanks, I can reproduce it!
21:39:31flaviugokr: Kill tasyncawait to get it moving for now
21:42:12gokrDone on linux 32
21:42:17gokrAlso threw in nodejs
21:42:45flaviudom96: you did async, right?
21:42:58dom96indeed
21:42:59flaviuCan you take a look at tasyncawait?
21:43:15flaviuIt doesn't seem to ever end for me on linux
21:43:23dom96On Windows unfortunately.
21:43:43dom96There was a recent change to async by def- I think.
21:43:57dom96Could you try reverting his change and seeing if that helps?
21:44:31gokrSame on 64 bit linux
21:45:05gokrDid a kill there too
21:49:18flaviudom96: It no longer hangs without def
21:49:21flaviu's patch
21:49:26flaviubut the tests still fail
21:50:48ekarlso-man, mus say that the material design stuf ffrom google beats the crap out of boot
21:50:50ekarlso-bootstrap
21:50:51dom96how does it fail?
21:50:55*gsingh93 joined #nim
21:51:00flaviutype mismatch: got (int) but expected 'uint16' mostly
21:51:19keylebootstrap is horror
21:51:40flaviuI saw http://purecss.io/ a while back
21:51:43flaviulooks nice and small
21:51:52dom96A compile error?
21:52:24flaviuIn lib/pure/net.nim
21:52:34keylepurecss looks sweet
21:52:42ekarlso-https://material.angularjs.org/#/demo/material.components.sidenav
21:52:44ekarlso-looks even better
21:53:03flaviudom96: It doesn't really make sense.
21:53:10keyleangular is the root of modern evil
21:53:30flaviuThe errors are happening on lines that don't have code that can have a type mismatch
21:53:47dom96maybe you reverted the patch incorrectly?
21:53:53ekarlso-keyle: why ? what else you rather use ? :)
21:53:55flaviuwait, no
21:53:59keylealternative to angular http://gwendall.github.io/way/
21:54:06flaviuI messed up reading the line number
21:54:20flaviuekarlso-: I don't really like angular either. I'd stick with jquery.
21:54:34ekarlso-... what's wrong with angular ?
21:54:47*Trustable quit (Remote host closed the connection)
21:54:49*jnye quit (Quit: jnye)
21:54:51flaviuIt's big and I don't understand it.
21:54:53keyleekarlso-: because it's another backbone style black-box enforcing nightmare making time bomb
21:55:03dom96purecss looks nice indeed.
21:55:24ekarlso-keyle: so you rathr write all the code yourself ? :p
21:55:43keyleekarlso-: hell yes
21:56:01ekarlso-keyle: :/
21:56:03keylebecause no one needs 80% of angular's features
21:56:22keylebut I have been doing one-page js apps since the 90ies
21:56:51keyleTLDR: don't.
21:56:56dom96I would usually try to use as little JS as possible.
21:57:19keyletypescript is nice, but you're still in javascript land, making all sorts of weird stuff happen
21:57:22dom96Adding a framework just so that I can have nice selectors feels wrong.
21:57:31EXetoCkeyle: was it more difficult at the time? disregarding portability and such
21:57:38ekarlso-keyle:
21:57:45ekarlso-keyle: I just used angular cause I was used to it..
21:57:48ekarlso-and bootstrap as well.
21:57:57keyleEXetoC: in a way yes, in another way, you rolled your own hell, so you could at least poke at it
21:58:09keyleekarlso-: fair enough :)
21:58:11ekarlso-was actually thinking of kicking out bootstrap in favor of material
21:58:26keyleprobably a good idea
21:58:49keyleit's always the same with those... version 1 was great, then it's a pile of steaming mess over every version
21:59:07keylehappened to bootstrap, same for angular (just read online rants)
21:59:16ekarlso-keyle: still :p
21:59:25ekarlso-angularjs is pretty widely used
21:59:34ekarlso-though I love that they are gonna kill $scope
21:59:59keyleyes it is, there are even jobs advertising for it, which is a big sign of `run for your life`
22:00:09keylechances are the previous dev quit and went to a mad house ;)
22:00:37ekarlso-keyle: really :p, so you write your own stuff all the time ?
22:01:19keyleekarlso-: yeah I'm too old to read 15 pages of manual to do what I already know to do
22:01:45ekarlso-ah
22:01:56keyledoesn't mean I'm stuck in html 4...
22:02:15*superfunc joined #nim
22:02:28flaviudom96: Found the problem
22:02:31keyleanyways, enough about js
22:02:52flaviulib/pure/asyncdispatch.nim:881
22:03:12def-flaviu: that's my change =/
22:03:32def-what does it break?
22:03:35dom96def-: yeah. Could you please take a look and see what the issue is?
22:03:39dom96tasyncawait hangs now
22:03:54flaviudef-: Unfortunately. I don't know what happens, it enters the error condition 50 times and then it hangs
22:04:06Araqnevertheless you all get +1000 from me. finally some action in the right direction.
22:04:12flaviuRemoving it makes it work fine.
22:04:19ekarlso-keyle: well, webdev has never been my thing -,,-
22:04:24ekarlso-except api side
22:04:54*BlaXpirit_ joined #nim
22:05:13*BlaXpirit quit (Ping timeout: 264 seconds)
22:05:45flaviudef-: for a test case, see async/tasyncawait.nim
22:07:10*atomic-hedgehog quit (Ping timeout: 255 seconds)
22:08:51*atomic-hedgehog joined #nim
22:08:55def-ok, think it's an easy fix. sorry for this
22:09:12ekarlso-keyle: would you wanna help out ?
22:09:44keylehtml css, sure, but not angular
22:09:50keyleor material
22:10:09keyleaka the ftp option is the best for me
22:10:39flaviukeyle: what about jquery?
22:11:14flaviujust your general thoughts on it, I personally prefer it over the weird regular javascript API.
22:11:18keylejquery unified js in a consistent api. it's a great framework.
22:11:42keylejqueryUI is a pile of @#$$% though
22:14:22ekarlso-keyle: so what should one do then for something like packages ?
22:14:25keylethe nim doc and pages could use better SEO
22:15:00keyledescription missing, keywords missing, the xml sitemap thingie also helps
22:15:24ekarlso-keyle: how you mean ? :)
22:15:35keylehttp://nim-lang.org/robots.txt could also help
22:15:38flaviukeyle: You'd probably be the first professional web developer to look at them
22:16:02keyledefinitely something I will look at helping with
22:16:27keylethere is nothing bad though
22:17:48EXetoCgah, random websites eating cpu
22:20:33flaviudom96: Can you set up https://www.google.com/webmasters/tools/home?hl=en for the website?
22:21:03def-flaviu: made a pull request
22:26:28dom96flaviu: sure
22:30:55*fowl joined #nim
22:32:44ekarlso-wha css stuff or so is used for the websie?
22:32:50renesacwith the new effects system, is it still necessary to manually add the noSideEffect pragma?
22:33:11renesaci guess yes, but just asking
22:33:53EXetoCekarlso-: yes css, very bleeding-edge :p
22:34:11ekarlso-EXetoC: hah, didn't ask if it was bleeding, purecss or ?
22:35:44BlaXpirit_give it a bandage!
22:35:53BlaXpirit_you may laugh now
22:36:56*enquora quit (Quit: enquora)
22:37:17EXetoCrolf
22:39:38*akiradeveloper joined #nim
22:41:53dom96flaviu: added you
22:43:08akiradeveloperNim doesn't have feature like type class (Haskell) or trait (from Rust). If we want to define a set of functions that must be defined, what is availabe in Nim?
22:44:00dom96akiradeveloper: http://nim-lang.org/manual.html#user-defined-type-classes
22:44:08EXetoCkinda broken, but still
22:44:12renesacakiradeveloper: type classes
22:44:14renesachttp://vocalbit.com/posts/exploring-type-classes-in-nimrod.html
22:44:28EXetoCas in buggy
22:45:22akiradeveloperI see a note saying that it's still in development. is it accomplished (or the document is out-of-date)?
22:45:31renesacshould we link blog posts giving further examples of usage, etc, in our documentation
22:45:40renesacakiradeveloper: see what EXetoC said
22:46:00akiradeveloperI see. It is buggy right
22:46:24renesacyou have inheritance and similar too...
22:46:30BlaXpirit_one day i'll understand bind/mixin
22:46:33renesacthat should work right
22:46:34BlaXpirit_but it is not this day
22:47:46akiradeveloperInheritance and dynamic or static dispatch doesn't check the set of functions are all implemented?
22:49:03*BlaXpirit_ quit (Quit: Quit Konversation)
22:55:16*shevy left #nim ("I'll be back ... maybe")
22:56:29*Sphax quit (Quit: CYA!!)
22:57:21ekarlso-should I choose something diff then angular / bootstrap for package web stuffs ?
22:58:31EXetoCakiradeveloper: no, but it can be used in similar ways, but sometimes you just don't want dynamic dispatching and so on
23:00:03ekarlso-guess noone really cares anyways :P
23:00:41keyleekarlso-: if you use jester as a rest api, I can do the html / css / js using jquery
23:00:52keylebut I can't promise I will do all the features you talked about
23:01:06flaviuI don't understand why type classes are buggy.
23:01:12ekarlso-keyle: think i'll stick to angularjs then..
23:01:17flaviuConceptually, they seem simple to implement.
23:01:28EXetoCI prefer foundation like I said, but it's better than starting from scratch
23:01:32flaviuekarlso-: Yes, stick to angular. No point in rewriting everything.
23:01:42EXetoCeither way
23:02:48ekarlso-keyle: what's your opinion on material then ?
23:03:20keylehave not used it in production
23:03:47keyleie. no opinion
23:04:37*atomic-hedgehog quit (Ping timeout: 264 seconds)
23:11:51akiradeveloperis there some good build tool as a internal DSL like Rake (ruby) or Mix (Elixir)?
23:13:12def-akiradeveloper: https://github.com/fowlmouth/nake
23:16:38akiradeveloperdef-: omg..
23:17:02akiradeveloperadd star
23:17:42EXetoClimited, but useful
23:19:06*gour quit (Quit: Leaving)
23:19:26akiradeveloperyeah, seems no namespace
23:20:21sillestaare there any game projects made with nim yet?
23:21:20EXetoCnamespace?
23:22:51*Matthias247 quit (Read error: Connection reset by peer)
23:24:19EXetoCsillesta: I think there are a few people who are working on games, but they haven't really showed anything yet
23:24:19def-sillesta: there are some nice examples here at least: https://github.com/BlaXpirit/nim-csfml/tree/master/examples
23:24:26EXetoCthere are many people who wants to work on these things
23:26:41*irrequietus quit ()
23:27:13*sillesta quit (Ping timeout: 256 seconds)
23:27:35keyleis nim pushing more sdl or sfml?
23:29:48fowlsdl2 can be deployed on android or ios and those are the future operating systems
23:29:52keylenim-csfml looks neat, might give it a shot at the next ludumdare
23:32:53ekarlso-ludumdare ?
23:33:01keylefowl: good point
23:33:32keyleekarlso-: http://en.wikipedia.org/wiki/Ludum_Dare
23:33:56keyleludumdare is hardcore :)
23:36:44ekarlso-man Im so glad my $dayjob$ isn't a webdev *shrugs*
23:38:25ekarlso-keyle: do you have a magic wand to do stuff ? ;p I can't see how folks can do html in a quick way
23:38:35EXetoCshrug of disgust? :p
23:39:11ekarlso-EXetoC: well my $dayjob$ is developing python in #openstack a'la route 53 service so I never do web stuff except the API part
23:39:57keyleno, no magic wand...
23:40:19ekarlso-keyle: sadface theb
23:40:34keyleUI is tedious, no matter html, wpf, etc.
23:41:01keyleat least html isn't compiled, or you have to wait for compilation between every iteration, egh.
23:41:15ekarlso-:D
23:41:33akiradeveloperEXetoC: Rake has namespace which makes it possible to separate task in different namespaces and we can distinguish two by namespace1::mytask and namespace2::mytask
23:41:37gokrThe absolutely most powerful web dev env I have ever used/seen is Seaside. But all server side HTML generation is "dying" - but Amber is the modern HTML5 incarnation of Seaside.
23:41:58akiradeveloperbut I don't care. nake looks so useful
23:42:11gokrBoth share the idea of expressing HTML in an internal DSL, but Amber does it "live" in the browser.
23:42:39EXetoCakiradeveloper: are there any benefits compared to module namespaces?
23:46:27flaviuekarlso-: What's hard about html?
23:47:19*superfunc quit (Ping timeout: 246 seconds)
23:48:06EXetoCwhat about the other stuff?
23:48:32ekarlso-flaviu: good q, I just suck at it :)
23:49:10akiradeveloperEXetoC: Rake can refer to the namespace from the command like like rake namespace::task name. Furthermore, namespaces can be nested.
23:49:34akiradeveloperI think, at the first look, this is what nake isn't able to do
23:49:47flaviuekarlso-: Can you be more detailed? It's just recursive <foo></foo>. The hard part is the CSS :)
23:50:10ekarlso-flaviu: +1 for css and styling / layouts
23:50:51EXetoCmaybe one day they can actually fix the fundamental problems
23:51:26EXetoCbut it's mostly for shiny web 2.0 stuff
23:53:41ekarlso-keyle: you wanna help out with JWT for nim ?
23:54:09*z1y joined #nim