<< 05-08-2015 >>

00:01:32*yglukhov quit (Ping timeout: 250 seconds)
00:23:18*Kingsquee quit (Read error: Connection reset by peer)
00:23:25*Kingsquee joined #nim
00:37:33*brson quit (Quit: leaving)
01:03:06*yomiel quit (Ping timeout: 255 seconds)
01:17:44*strcmp2 joined #nim
01:20:51*strcmp1 quit (Ping timeout: 252 seconds)
01:23:30*elbow_jason quit (Quit: Leaving)
01:25:12*Cryptotoad quit (Quit: Leaving)
01:31:41*MatrixBridge quit (Remote host closed the connection)
01:31:41*M-max quit (Remote host closed the connection)
01:31:53*MatrixBridge joined #nim
01:32:20*MatrixBridge1 joined #nim
01:34:24*MatrixBridge quit (Remote host closed the connection)
01:34:24*MatrixBridge1 quit (Read error: Connection reset by peer)
01:35:16*MatrixBridge joined #nim
01:35:25*MatrixBridge1 joined #nim
01:35:27*MatrixBridge2 joined #nim
01:51:58*Kingsquee quit (Read error: Connection reset by peer)
01:52:05*Kingsqueee joined #nim
02:07:29*Jesin quit (Quit: Leaving)
02:22:18*mtj_ quit (Remote host closed the connection)
02:46:06*yglukhov joined #nim
02:50:25*yglukhov quit (Ping timeout: 240 seconds)
03:05:30*mtj_ joined #nim
03:06:26*shodan45 joined #nim
03:07:26*mtj_ quit (Remote host closed the connection)
03:08:29*mtj_ joined #nim
03:34:50*strcmp2 quit (Quit: Leaving)
03:35:33*darkf joined #nim
03:48:55*zahary joined #nim
05:20:54*Demos joined #nim
05:25:22*Demos quit (Ping timeout: 246 seconds)
05:39:43*BitPuffin|osx quit (Ping timeout: 252 seconds)
05:40:52*Kingsqueee quit (Ping timeout: 246 seconds)
05:47:33*yglukhov joined #nim
05:50:33*Jesin joined #nim
05:51:58*yglukhov quit (Ping timeout: 246 seconds)
06:00:42*Demon_Fox quit (Quit: Leaving)
07:02:15*shodan45 quit (Quit: Konversation terminated!)
07:30:29*jszymanski joined #nim
07:44:22*yglukhov joined #nim
07:49:14*yglukhov quit (Ping timeout: 260 seconds)
07:52:17*yglukhov joined #nim
07:52:21*yglukhov quit (Remote host closed the connection)
07:52:55*yglukhov joined #nim
08:32:23yglukhovHi All. Does anyone have an idea how to derive a type from a non-object? e.g. my type A derives from int. It has to be implicitly converted to int, where appropriate. But int should not be implicitly "upcasted" to it.
08:33:33yglukhovClarification: A has to be implicitly "downcasted" to int. Int should not be implicitly "upcasted" to A.
08:45:39*yglukhov quit (Remote host closed the connection)
08:56:46*yglukhov joined #nim
09:05:34*silven quit (Quit: No Ping reply in 180 seconds.)
09:06:50*silven joined #nim
09:24:57*Trustable joined #nim
09:27:47*MatrixBridge quit (Remote host closed the connection)
09:27:47*MatrixBridge1 quit (Remote host closed the connection)
09:27:47*MatrixBridge2 quit (Remote host closed the connection)
09:28:04*silven quit (Quit: No Ping reply in 180 seconds.)
09:28:52*MatrixBridge joined #nim
09:29:27*silven joined #nim
09:31:46reactormonkyglukhov, that's what converters are for
09:32:12reactormonkAnd since nim isn't too much OO, downcasting and upcasting don't apply too well
09:34:12yglukhovOK, that's what I suspected. Thank you.
09:37:29baabelfishAny idea why nim idetools with --def doesn't find packages installed with nimble?
09:45:01*silven quit (Read error: Connection reset by peer)
09:45:45Araqbaabelfish: nim idetools is nimsuggest now
09:45:55Araqnimsuggest has a --debug switch which makes it show messages
09:46:05Araqso you can check what's added to the path
09:46:08*silven joined #nim
09:46:34baabelfishAraq: nim idetools invokes nimsuggest automatically?
09:49:14reactormonkbaabelfish, nim idetools should die.
09:49:19reactormonkjust use nimsuggest
09:49:30baabelfishreactormonk: with nimble I get "Unsatisfied dependency: nim (>= 0.11.3)"
09:49:32reactormonkit's actually already dead in the devel branch
09:49:33baabelfishwhen installing nimsuggest
09:49:45reactormonkyeah, that part is slighly fucked, I know :-/
09:50:07baabelfishso I'll be using idetools for now...
09:50:55reactormonktry nimble install nim first
09:51:08reactormonkpackage not found... argh
09:51:16reactormonkworks here, don't know why
09:51:41reactormonkah, it's called "compiler" not "nim"
09:52:33baabelfishstill not working
09:52:44reactormonkbaabelfish, could you try cloning https://github.com/nim-lang/nimsuggest
09:52:48baabelfish"Downloading https://github.com/Araq/Nim.git into /tmp/nimble_22242/githubcom_AraqNimgit_0.11.3 using git..."
09:52:50reactormonkand then remove the nim
09:52:57reactormonk... part
09:53:09reactormonkyeah, it takes a while
09:54:20reactormonkthe compiler requirement via nimble is kinda wonky :-(
09:55:00reactormonkotherwise just copy the *.nim from nimsuggest to compiler/nimsuggest/ and compile there, and move them to bin/ in the nim directory - that's the old version
09:55:47baabelfishI'll wait until it's stable
09:56:12reactormonkdoes nimble install compiler work for you?
09:56:21baabelfishthe point of this is to get easy nim completion and friends with ycmd
09:56:35baabelfishreactormonk: yeah it worked
09:57:22reactormonkbaabelfish, now cd into nimsuggest and see if nimble build works after you modified nimsuggest.nimble
09:57:24*silven quit (Quit: No Ping reply in 180 seconds.)
09:58:42baabelfishGot "sexp.nim(469, 26) Error: undeclared identifier: 'Hash'"
09:58:42*coffeepot joined #nim
09:58:47*silven joined #nim
09:59:04reactormonkhrm. how old is your stdlib?
09:59:20reactormonkaka your nim checkout
10:00:17baabelfishhah, wrong nimsuggest
10:00:22reactormonk^^
10:00:25baabelfishthe one under compiler worked
10:00:37reactormonkthat one's old too :-/
10:00:43reactormonktry git pull
10:01:15reactormonkhttps://github.com/nim-lang/Nim/blob/devel/compiler/nimsuggest/nimsuggest.nim someone even officially killed it :-)
10:01:45Araqyeah -.-
10:01:46baabelfishxS
10:01:53Araqthanks for that btw
10:02:19Araqreplacing a solution that worked with one that doesn't
10:02:39reactormonkAraq, works for me :-P
10:02:53reactormonkbaabelfish, anyway, tell me if you can compile nimsuggest after updating both repos
10:08:40baabelfishreactormonk: still the same problem with sexp.nim
10:08:57reactormonkbaabelfish, currently using a kinda fresh install
10:11:02baabelfishI'm using arch with nim and nimble installed with pacman, compiler installed with nimble and nimsuggest cloned manually
10:11:39baabelfishnimble-1:0.6.2-1 and nim-0.11.2-1 from pacman
10:11:58reactormonkbaabelfish, ah, the pacman part might a problem... I just cloned it anew with the newest versions and it works
10:12:52reactormonkI'll see what I can do.
10:12:57baabelfishreactormonk: ok, thanks
10:13:30reactormonkbaabelfish, maybe a simple sed -i "s/Hash/THash/g" **/*.nim might do it
10:13:39reactormonkbut there might be some other things too...
10:14:00Araqreally? linux packaging causes problems? surprise, surprise
10:14:33reactormonkAraq, I'm still waiting for the next release.
10:15:10reactormonkbaabelfish, the problem here - nimsuggest was coded against the devel stdlib (which replaced THash with Hash), and the latest release was a few months back
10:15:15baabelfishMy original point was to get idefeatures to vim easily, so nimsuggest is not really an option yet
10:15:30reactormonkIt's your only option kinda :-/
10:15:38Araqnim idetools is *unusuable*
10:15:47baabelfishreactormonk: idetools seems to work quite ok...
10:15:56Araqreally?
10:16:08Araqnever got a single example to work with it
10:16:13baabelfishwhat? :D
10:16:27reactormonkbaabelfish, nimsuggest works kinda well for emacs via epc
10:16:41*silven quit (Read error: Connection reset by peer)
10:17:08reactormonkif you want some ycmd, you should be able to mess with nimsuggest in an easy manner, you should be able to copy the archidecture from epc
10:17:28*silven joined #nim
10:18:30baabelfishreactormonk: I'll check it out
10:19:27reactormonkbaabelfish, I have no idea about the ycmd protocol, but the stdlib should have json and you'll only need to create the json equivalents to the sexp stuff
10:21:36Araqreactormonk: well what do you do to get the next release out? ;-) how about fixing some bugs?
10:22:17reactormonkAraq, yeah, I'll find some with concepts soon enough ;-)
10:22:23reactormonkgotta make some money right now
10:22:39AraqI said "fixing", not "finding"
10:22:45Araqfinding bugs is easy
10:23:20baabelfishreactormonk: I'll check nim-mode sources and monkey with them
10:24:03reactormonkbaabelfish, no real need for that, the protocol stuff is handled by emacs-epc
10:24:29reactormonknim-mode sources only have a bit of glue to get the answers back into company-mode
10:24:50reactormonkbut the code you're looking for is in nim-company
10:26:05baabelfishhttp://www.nim.co.th/ (sorry, I just had to)
10:29:22baabelfishreactormonk: https://gist.github.com/baabelfish/8d9e1a1f41a977e6640f this is what I did last weekend
10:30:06baabelfishI completion and goto works with everything but nimble packages
10:30:13baabelfish-I
10:30:41*silven quit (Read error: Connection reset by peer)
10:31:08*silven joined #nim
10:31:17reactormonkas mentioned, use nimsuggest
10:41:12*silven quit (Ping timeout: 264 seconds)
10:42:48*silven joined #nim
10:53:46*drewsrem joined #nim
10:55:21baabelfishreactormonk: yes
10:57:03drewsremAraq, actually, I'm using arch packages for nim and it's lovely, I can switch between nim versions with 1 command in a second, I can fetch and build the latest with 1 command and it stores all the versions for me to switch automatically which I annotated how buggy they are, try doing this on Windows :P
10:58:37coffeepotI wish windows implemented a path profile type thing, then I think you could switch out without too much trouble
10:59:58*silven quit (Ping timeout: 246 seconds)
11:00:10drewsremWell the nice thing about packaging is that I don't have to know anything about Nim in order to do this, in Win if you're lucky enough so that it doesn't touch the reg then at least you have to know full-paths to where the stuff sits, no need to know anything about whats inside the packages for me to do my stuff
11:00:30Araqbli bla blub
11:00:48drewsremI'm just saying, I'm really not that much of a nix fan, but Araq seems to enjoy hating it deeply
11:01:09Araqactually I hate package managers with a passion
11:01:32*silven joined #nim
11:01:34drewsremI hate using weird installers in Win that clunk up my system until I need to reinstall the whole thing
11:01:36Araqbrew install boost # hangs forever for me
11:01:54drewsremAnd every application having its own auto-updater
11:02:02drewsremAnd 20 symbols in my systray just for that
11:02:22Araqwell I don't blame windows for crapware
11:02:57drewsremI do, because it provides no service for people to use, so everyone cooks their own
11:03:21drewsremI'm not saying package managing on nix is perfect or anything, but come on, it certainly has upsides to the nonexistance of Windows side of it
11:04:03drewsremI think Microsoft is actually working on a package manager for Win10 devs?
11:04:09drewsremAs one of their "killer-app" things
11:04:20Araqyeah, but that won't make like package managers
11:04:23coffeepotpersonally I'm ambivalent towards *nix/windows but the other day I had to compress the paths in my windows install because it got "too long"... I mean... really, there's a hard limit in 2015?
11:04:24Araq*make me
11:04:41Araqha, that's my favourite feature
11:04:51Araqyes, hard limit for fuckings paths
11:04:55Araqfuck paths anyway
11:05:33Araqthere is hardly anything more unproductive than navigating through a deep path
11:06:35drewsremI mean clearly this is a DOS remnant and not a willing decision from MS right?
11:08:20coffeepotI can't think of any reason why there would be a limit on path length, if a DOS program doesn't support it, then fine your punishment is to make your system appease the DOS program, but why apply this for all of windows?
11:08:52drewsremIt's probably a compatibility thing, but don't ask me
11:09:48Araqyou could also just use a reasonable path structure, it's not that hard. ok, for java-based development it can actually be impossible
11:09:56drewsremAraq, what Win you're own? - Are you fine eventually switching to like Win10?
11:10:13coffeepotsome programs spam loads of paths in there, it got to the point where a colleague considered writing a profile switcher for paths just to save hassle
11:10:18Araqbut when I had that problem I did quit my job instead.
11:10:36drewsrem:)
11:10:37coffeepothaha :D
11:12:36Araqbut speaking of paths, I don't consider /usr/etc/banana.joe an improvement over c:\autoexec.bat
11:13:12drewsremAraq, it is, because if everyone would just dump their stuff in / then / would be a mess
11:13:16Araqyou cannot even blacklist *.exe in your .gitignore cause exes have no extension on unix
11:13:27drewsremThat said, there are directory-path-structures on distributions that are much saner then others
11:13:47Araqthe only system that kinda got it right was GoboLinux
11:14:06Araqeverywhere else it's a clusterfuck
11:14:13drewsremIt's something you get used to, and when you get used to, it's no problem
11:14:17drewsremArch does it nice I think
11:14:25drewsremEspecially because it merges most of the /bins
11:14:30drewsremInto one
11:15:24drewsremI actually hate it when something puts something directly under C, like when you install python or cygwin, its always under C
11:15:31drewsremAt least by default
11:16:30drewsremWindows home directory is a total mess, AppData/Roaming/ AppData/Local Appdata/something, two C:/Programs, one for x86 one for x64 ...
11:16:54Araqyup, windows gets worse with every version
11:17:08Araqbut so did Ubuntu for me
11:17:28drewsremI never really used Ubuntu
11:17:30Araqso *shrug* I simply don't give a fuck anymore
11:17:37drewsremI get that for sure
11:17:55drewsremBecause switching is so much work, for really little
11:19:20*xcombelle joined #nim
11:19:45drewsremWhat made me jump was loads of times on my hand and the realization that they took "windows classic" shell design away from me >= Win8, which I knew I would be forced to switch to eventually
11:20:18drewsremLife w/o windows-classic on windows ain't the same
11:20:51coffeepottbh with windows 10 seeming like adware I'm considering switching
11:21:08coffeepotat home anyway
11:21:16drewsremPay 10 USD/year for not having 5ads while playing solitaire :> made me laugh
11:21:24Araqhrm? what do you mean?
11:21:35Araq"seeming like adware"?
11:22:10coffeepothttp://arstechnica.com/information-technology/2015/08/windows-10-doesnt-offer-much-privacy-by-default-heres-how-to-fix-it/
11:22:33coffeepotwindows 10 is free -> you are the product
11:22:45coffeepotyou can turn it all off but you know
11:22:57drewsremYeah it's pretty ridiculous
11:23:08coffeepotI accept this for phones or even web browsers but not my OS
11:23:20drewsremOr that you automatically distribute their updates over your internet-line by default so they can save server cost
11:23:35reactormonkdrewsrem, don't try fighting with windmills
11:24:04coffeepottargetted ads for an OS :(
11:24:10drewsremreactormonk, I am?
11:24:21*grumbly joined #nim
11:26:23grumblyShould I be able to see my exportc'ed proc in the generated C code? I don't, except for a N_NIMCALL wrapped version.
11:27:07*zahary_ joined #nim
11:27:12Araqhi grumbly, the N_NIMCALL wrapped version is just an ordinary C function
11:27:34Araqyou likely want cdecl, exportc though
11:32:25Araqcoffeepot: oh yeah that's a good point, solitaire got unusable ... pathetic. but on the other hand
11:33:07Araqtook them some time to figure out solitaire is one of the most commonly used software on Windows
11:34:52reactormonkAraq, time for a solitare implemented in nim? ^^
11:34:58Araqby making it unusable they improved productivity of administrations by 500%
11:35:33baabelfishI assume this is going away sometime: "lib/nim/pure/lexbase.nim(149, 11) Error: VM is not allowed to 'cast'"?
11:35:41drewsremI don't think anyone would stop playing it, they'd just buy barrels of coke while doing.
11:35:45reactormonkbaabelfish, very unlikely
11:36:12Araqdrewsrem: yeah that's the power of ads
11:36:21drewsremAraq, "Doesn't work on me"
11:37:10coffeepotpeople seem very upset about solitaire and honestly it seems cheap for them to target that for adware, but it's more the principle that you have to dig around and keep on top of any settings MS hides away to stop it leaking away data
11:37:13Araqbaabelfish: perhaps
11:37:58Araqcoffeepot: true but at least I can print with my printer :P
11:38:05drewsremAraq, got me there
11:38:07coffeepotlmao XD
11:39:03Araqor watch videos without the screen saver activating in between
11:39:10Araq*watching
11:39:31coffeepotor play games (if you're into that, which I am)
11:39:42drewsremAraq, maybe on Ubuntu
11:41:21grumblyThanks Araq. I'll try cdecl, exportc
11:42:04drewsremBut equating Ubuntu with Linux is like equating "programming" with Java
11:43:24Araqdrewsrem: I used enough different distros
11:43:35drewsremAraq, also Arch?
11:43:43drewsremThe one true savior of mankind?
11:44:21Araqiirc that one didn't even have a graphical installer :P
11:44:30drewsremAraq, of course not :>
11:45:00drewsremYou have to become a terminal to truly enjoy nix
11:45:13baabelfishdrewsrem: nicely put :D
11:45:36drewsrembaabelfish, you're working on auto-completion for youcompleteme?
11:46:06baabelfishdrewsrem: yeah
11:46:10drewsremI was wanting that :3
11:46:33drewsrembaabelfish, seen this? https://github.com/BitR/ycm-nimsuggest
11:46:46baabelfishdrewsrem: guess what, no I haven't
11:47:07*zahary quit (Ping timeout: 244 seconds)
11:47:10*BitPuffin joined #nim
11:47:40baabelfishdrewsrem: that didn't work?
11:47:42drewsrembaabelfish, tried it, without success tho
11:47:47drewsremNot really
11:47:58drewsremBut I gave up early
11:48:33drewsremAnd I tried this a month ago and it's been updated 18days ago, so eventually I'd try this again
11:49:37Araqbut then what's the point of me running linux anyway? the only useful tool that doesn't run on windows is "valgrind"
11:49:44baabelfishdrewsrem: that only supports completion...
11:50:03drewsrembaabelfish, opposed to?
11:50:30baabelfishdrewsrem: at least GoTo works with mine :D
11:50:41baabelfish...unless it's a pkg from nimble
11:50:48drewsrembaabelfish, oh!, link?
11:51:31drewsremAraq, so much, tiling vms, beautiful, package-managers, neat, low performance footprint, mhhhhhhh, powerful terminal-tools yay, ...
11:52:15drewsremAraq, primarily tho, using nix makes you understand how flawed everything is and it gives you the impression you can fix it tho you'd have to give up your life for that
11:55:14baabelfishdrewsrem: I pm'd you
11:56:40coffeepotdrewsrem, you captured my experience with linux "gives you the impression you can fix it tho you'd have to give up your life for that"
11:57:15drewsremcoffeepot, it's inspiring for every upcoming dev, there is no such experience in Windows
11:57:45coffeepotquite right, most of the time in windows if something doesn't work, you're stuck with it - but at least you are forced to accept that hehe
11:58:12coffeepothaving said that I find I have better success with compiling open source on linux
12:01:14*xificurC quit (Ping timeout: 265 seconds)
12:06:05*unclechu1 joined #nim
12:19:23Araqdrewsrem: well I am not an "upcoming dev"
12:19:28*unclechu1 quit (Quit: Leaving.)
12:20:02drewsremAraq, yeah, so you might just be annoyed having to deal with this stuff
12:21:18AraqI'm not even annoyed anymore. at the end of the day I have to decide whether to fix destructors for every Nim programmer out there or to fix my personal X11 installation that keeps crashing
12:21:50reactormonkAraq, X11? Luxury!
12:22:15*Araq is fixing destructors right now
12:22:34gokrI can't really understand why people experience problems with Linux these days - the last machines I have used have run Ubuntu mostly flawless.
12:22:57gokrAnd that's like a span of at least the last 5 years, or perhaps even moreö.
12:23:08coffeepotwell there is nimkernel, someone just needs to finish it off to make a new operating system we can be happy with :) We could call it SisyphusOS
12:24:16gokrAnd I mean end user issues of course. Issues around tool chains like say autoconf/automake (shudder) is another thing :)
12:25:24drewsremgokr, there are problems, from the top off my head, driver problems, tho they're going away, 2 years ago with Ubuntu, using the outdated gpu drivers in the official repos could've easily caused usability issues
12:26:02drewsremBut it's really a thing of "getting used to", once you're used to any modern Linux distro, there's barely any maintenance work
12:26:09gokrI know, but... still, I haven't experienced big issues with drivers. Most stuff just works. Windows on the other hand, is en endless hunt for drivers IMHO.
12:26:16drewsremI agree
12:26:42Araqinteresting, me it's always just plug-and-play on windows
12:27:24coffeepotthe corollary of that is I don't remember downloading a driver in windows since XP (aside from updating graphics card drivers)
12:27:51coffeepotbut honestly I also found linux was pretty good for drivers when i used it years ago
12:27:54drewsremI had lots of issues with video drivers
12:28:05drewsremWith linux it either works or it doesn't, with Windows it often half-works
12:28:11drewsremMy experience
12:28:27drewsremBut driver support is clearly superior in Windows
12:31:08drewsremI recently realized tho that installing intel chipset drivers from my mainboard vendors support site causes ~1/3 of my win startups to hang ~1min on the login screen unless I press a key
12:31:57drewsremAnd there is no uninstall-procedure for the drivers either, so now I live with it
12:32:36Araqpretty sure I could uninstall them :P
12:33:00coffeepotcan't you just go to device manager and uninstall them from there?
12:33:20drewsremIt's a bunch of INF files that the installer installed and I used some MS support page where it told me to do something but then I got back that the INF-files have no uninstall section
12:33:30drewsremIt's like 30 INF files or something
12:33:38drewsremI guess I could do it by hand
12:33:53drewsremDevice Manager only shows currently installed driver per device?
12:34:08Araqon Linux you would do it by hand and tell me how awesome it is that you can do it by hand
12:34:18drewsremnah nah see, package manager
12:34:58drewsremAnd I can read the PKGBUILD, which is nothing but a bash file and see what the package does when I Install it
12:35:22drewsremUnlike Windows where some GUI stuff flashes, shows me ads and after it every issue that I might experience makes me wonder if the last thing I did caused it or not
12:35:24reactormonkdrewsrem, except chromium, which drags a binary blob along
12:35:51Araqso ... reading configuration files doesn't count as "manually fixing stuff" anymore?
12:36:34drewsremAraq, that was for the case of me wanting to understand how it works, it's usually not required to remove the package
12:37:33drewsremMaybe it is possible to look at a binary-installer and have it run thorugh some sandboxing env to see what it actually does to your system in Windows but I'm not aware of it
12:38:16drewsremMaybe with Sandboxie
12:42:30drewsremAraq, I'm curious tho, I have 76-pairs of INF and CAT files, e.g. whtpi2c2.cat/whtpi2c2.inf - how'd I remove them?
12:43:12*grumbly quit (Quit: Page closed)
12:44:55reactormonkdrewsrem, powershell ;-)
12:45:45drewsremreactormonk, I gave up when I wasn't able to execute a hello-world script unless I either signed it myself or disabled verification altogether :P
12:45:47coffeepotdrewsrem maybe this might help? https://support.microsoft.com/en-us/kb/813449
12:46:55coffeepothonestly, glad I don't have that problem, looks like a PITA
12:49:17drewsremI mean I definitely learned that one just should go with official Windows drivers if you're not having problems or missing features
12:53:48drewsremAt least I have cut my Windows installation in half by reinstalling it, because Windows loves to irreversibly eat up valuable SSD disk space
12:53:50Araqwhat's the problem? remove the files?
12:55:09drewsremThe installer might have installed programs on my startup that require the INF files? - The support page recommends that I don't delete the INF files.
12:56:05drewsremI guess tho because the installer was named INF, that's all it did.
13:00:27drewsremMhhh, it's actually easier then I thought.
13:03:18drewsremYou just have to be careful to not delete files right next to them that might make your system unbootable?
13:04:23Araqwindows also does backups and has "repair" mode for these things
13:04:36drewsremfair enough
13:10:52drewsremAraq, but then I still have to uninstall the devices in the device-manager?
13:11:35Araqno idea, but you can trigger "detect attached devices" or something
13:12:26drewsremI'll see later, but I suspect I have to uninstall them and I don't think you can uninstall all the devices at runtime? - Which is why the installer required a restart to set up some hooks pre/post ?
13:12:39drewsremI'll see myself later
13:13:22Araqin the worst case you have to open regedit and throw out the old values
13:14:18drewsremAraq, I see, ty
13:16:32*IRIXuser joined #nim
13:22:24*MatrixBridge quit (Remote host closed the connection)
13:24:07*MatrixBridge joined #nim
13:29:45*pirithous joined #nim
13:31:28*pirithous left #nim ("Konversation terminated!")
13:31:55*M-max joined #nim
13:44:03*Kingsquee joined #nim
13:51:29*ekarlso joined #nim
13:51:43ekarlsohow hard would it be to add bindings for grpc ?
13:52:25*k1i quit (Ping timeout: 240 seconds)
13:52:25*k1i joined #nim
13:54:11Araqekarlso: seems trivial
13:55:20*Demon_Fox joined #nim
13:57:00drewsremekarlso, https://github.com/nim-lang/c2nim
13:58:11ekarlsogrpc for nim I think would be awesomeness!
13:58:24ekarlsomicroservers in nim w http2 / protobuffers
13:59:33drewsremprotobuf bindings would be great, capnproto as well
14:00:12drewsremThe only problem with sitting here and wishing things is that it won't make them happen :(
14:01:21drewsremAraq, any news when that oscon footage hits YouTube or similar?
14:01:42Araqnope
14:02:09drewsrem:(
14:04:14ekarlsodrewsrem: checked out grpc ?
14:06:08*pregressive joined #nim
14:06:11drewsremekarlso, a bit
14:11:30drewsremFrom what I saw here tho, there aren't that many people actively working on web-service-thingies in nim?
14:11:40*Demos joined #nim
14:11:43*Demos quit (Remote host closed the connection)
14:12:20*Demos joined #nim
14:19:44coffeepotI dunno i think there are a few web people here. I might be doing a web API soon hopefully. Had a look at grpc, looking pretty damn interesting and might be something I'd use tbh
14:20:57AraqI'd just use marshals.nim, a macro and perhaps 0mq
14:21:41Araqgrpc looks like single huge security issue with its memcpys everywhere :P
14:22:36coffeepottbh I've never written a web based API before so this is all quite interesting :)
14:24:01coffeepothuh, 0mq has delphi bindings :)
14:24:14coffeepot& examples
14:24:21drewsremAraq, you checked out nanomsg?
14:24:21Araqactually, it's not. it's just like a unix command line tool except that you have a serving loop and instead of untyped streams of bytes, json is usually used
14:25:07drewsremCapnproto will save us from untyped bytestreams
14:26:18Araqyeah but replacing std::string by memcpy cause "C++ sux" is not my idea of improving software quality
14:26:57Araqneither is replacing exception handling with 'if (errno) goto exitHandler; '
14:27:04drewsrem^^ I don't remember what the zmq guy had to pick on zmq
14:27:09drewsremRight, I think it was mostly exceptions
14:27:33drewsremI think he wrote at least 2 blog-posts about c error-code-checking is superior?
14:27:45drewsrempick on c++*
14:27:54coffeepotsuperior to what though?
14:28:01drewsremExceptions
14:28:10coffeepotoh
14:28:16drewsremhttp://250bpm.com/blog:4
14:28:50drewsremIt became a series on his blog where he started to write about what he describes as shortcomings of C++ compared to C
14:30:48coffeepoti don't really know enough to assert, but should {.raises.} ameliorate the guaranteeing no UB, somewhat?
14:31:56coffeepotwhen it comes to errors
14:33:19Araqhis usage of the term UB makes little sense
14:34:34drewsremPart2 http://250bpm.com/blog:8
14:38:16Araqoh yeah, that one actually hurts my brain
14:38:54drewsrembut... but... he's a good programmer
14:39:48Araq"First thing to note is that the C++ solution allocates twice the number of memory chunks compared to the C solution." er, yeah but only because your C++ solution is crap
14:40:13Araqinterestingly the "C++ solution" is exactly what glib implements too ...
14:41:18drewsremBut "people" hate glib as well?
14:42:05drewsremI would give him the benefit of the doubt that he's smart enough to get trivial examples right
14:42:55Araqit's called non-intrusive list vs intrusive list. This issue has been known for decades and is mostly orthogonal to C vs C++
14:43:55*coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
14:44:31AraqI cannot give him the benefit of doubt cause his arguments are just too weak
14:44:35drewsrem"Yes. They break the encapsulation principle as well. My point was that in C++ you can't have an "intrusive" container and proper encapsulation at the same time."
14:45:07drewsremWell, I'm not going to argue a case I don't understand so...
14:45:29*coffeepot joined #nim
14:45:33drewsremYou may be right, he doesn't seem to raise strong points to those replies in the comment section as well.
14:45:33*MatrixBridge quit (Remote host closed the connection)
14:45:33*M-max quit (Remote host closed the connection)
14:46:01drewsremHe's probably misguided
14:47:39*MatrixBridge joined #nim
14:48:26*itPuffinB joined #nim
14:48:44*BitPuffin quit (Disconnected by services)
14:49:09Araqthat said, nanomsg has a better license and likely a better API
14:49:32*itPuffinB is now known as BitPuffin
14:50:10Araqthough the 40 lines header files full of nothingness make me question his sanity again
14:50:28drewsrem^^
14:52:30coffeepotwhat are these libraries doing that's actually sophisticated? ZeroMQ looks pretty similar to httpserver. I am new to all this though...
14:52:51coffeepotat least from the examples I've seen
14:53:04drewsremcoffeepot, http://zguide.zeromq.org/page:all knock yourself out
14:53:32coffeepotdrewsrem cheers I'll have a gander
14:54:53*Demos_ joined #nim
14:55:45*M-max joined #nim
14:56:59drewsremAraq, what's your take on capnproto?
14:57:14Araqnever looked at it
14:58:30*Demos quit (Ping timeout: 240 seconds)
15:02:31drewsremAraq, you know protobuf I assume? - It's from the primary author of protobuf v2. It's like protobuf but instead of using some disk-binary format it uses an in-memory representation, apparently, so there's no "encoding/decoding" step.
15:03:01drewsremAraq, if you'd use Linux you'd totally want this I bet for the untyped byte-stream thingies :)
15:03:13drewsremWhich are everywhere on nix
15:03:39Araqwhy? I already know where to find mmap.
15:04:32drewsremhmm? - I mean when you want to do RPC via unix-domain-sockets etc.
15:04:53*polde quit (Ping timeout: 258 seconds)
15:05:25Demos_ZMQ looks like sockets to me
15:05:43drewsremIsn't that the idea?
15:05:53Demos_yeah I guess
15:05:58Demos_but why not use sockets?
15:06:22drewsremBecause it actually implements concurrency patterns?
15:06:23*polde joined #nim
15:11:39Demos_oh
15:11:41*Demos_ quit (Remote host closed the connection)
15:12:15*Demos joined #nim
15:12:28drewsremthat's its thing
15:13:14drewsremAraq, 2 nix-processes want to talk to each other, they use nim marshal to serialize their objects to JSON and do something like JSON-RPC, capnproto replaces JSON, difference being that there's no marshal-phase, when you construct the message-object in nim you already work on an in-memory representation you can flush to disk or send to the other process, no encoding/decoding step.
15:14:19*yglukhov quit (Remote host closed the connection)
15:14:39Araqyes, I know. but for this to work the machines need to agree on endianness, alignments etc etc
15:14:51Araqso it ends up as "works when on the same machine"
15:14:57Araqso I might as well use mmap instead
15:15:01drewsrem"NO! The encoding is defined byte-for-byte independent of any platform. However, it is designed to be efficiently manipulated on common modern CPUs."
15:15:08drewsremhttps://capnproto.org/index.html
15:15:20drewsrem"Integers use little-endian byte order because most CPUs are little-endian, and even big-endian CPUs usually have instructions for reading little-endian data."
15:16:10drewsremNote I don't know the internals, I'm just drinking his kool-aid
15:17:03*yglukhov joined #nim
15:18:06coffeepotFrom what I've read it seems like it's basically sockets but with a layer underneath that automatically allocates threads when the throughput reaches a certain threshold, and also tries balance the throughput of sockets
15:18:42coffeepoti don't quite see where the 'distributed' stuff comes in, yet, but there's a lot to read
15:21:10drewsremAraq, I mean on top of this, it has a nice strongly-typed Schema Language: https://capnproto.org/language.html
15:21:41drewsremSo if you want to "talk" to another language, it seems pretty solid as well
15:23:22*yglukhov_ joined #nim
15:23:48*yglukhov quit (Ping timeout: 264 seconds)
15:25:16Araqdrewsrem: that's cool but in Nim it would just be a macro ...
15:29:52drewsremAraq, that's true, Nim is just too awesome
15:30:48coffeepotWhat other languages have macros anyway? I'm gonna assume lisp :)
15:31:14drewsremC has macros!
15:31:23drewsrem;>
15:31:26coffeepotwell, I dont think text macros count :P
15:31:58drewsremWell C++ has templates and stuff
15:32:23drewsremAnd I know almost no esoteric languages
15:32:53coffeepotare templates macros though? Nim templates are awesome, and I only touched the surface (pain) of C++ templates, but aren't macros kinda a step beyond in terms of metaprogramming?
15:34:27*jszymanski quit (Ping timeout: 252 seconds)
15:34:30coffeepotI am really confused by something the 0mq guy said in the article you posted drewsrem. He says the C++ list is slow because it needs to iterate over it's items to check if it needs to delete one, whereas the C version doesn't because ... and then seems to describe a linked list?!
15:34:56coffeepotvoid erase_person (struct person *ptr)
15:34:56coffeepot{
15:34:56coffeepot ptr->next->prev = ptr->prev;
15:34:56coffeepot ptr->prev->next = ptr->next;
15:34:56coffeepot ptr->next = NULL;
15:34:56coffeepot ptr->prev = NULL;
15:34:56coffeepot}
15:35:13coffeepotvs
15:35:13coffeepotvoid erase_person (person *ptr)
15:35:13coffeepot{
15:35:14coffeepot for (std::list <person*>::iterator it = people.begin ();
15:35:14coffeepot it != people.end (); ++it)
15:35:14coffeepot if (*it == ptr)
15:35:14coffeepot people.erase (it);
15:35:14coffeepot}
15:36:14drewsremcoffeepot, he argues that you can't use intrusive-lists in C++ because that isn't "real C++", as in, adheres to some principle, this explains the difference between linked-lists and intrusive-lists: http://www.codeofhonor.com/blog/avoiding-game-crashes-related-to-linked-lists
15:36:30*jszymanski joined #nim
15:39:45*Sembei joined #nim
15:40:39*polde quit (Ping timeout: 258 seconds)
15:40:44*Pisuke quit (Ping timeout: 272 seconds)
15:41:32*polde joined #nim
15:44:30coffeepotAh i see! The iterator threw me :)
15:48:26*yglukhov joined #nim
15:48:26*yglukhov_ quit (Read error: Connection reset by peer)
15:49:04*yglukhov quit (Remote host closed the connection)
15:49:06coffeepotstill, odd that he blames it on C++ when he could have written a different container fairly easily. Also, "intrusive" linked lists? Everything little thing these days seems to have a flashy name..
15:49:36*yglukhov joined #nim
15:50:17coffeepotthe zeromq lib looks good though
15:51:17drewsremcoffeepot, it's not odd, he probably refers to some C++ standard in which such a principle is defined, but this topic is very much laden with semantics and there's no general answer how lenient you should be with violating certain principles, experienced developers usually know the tradeoffs
15:52:00drewsremIt's clearly part of a bigger picture with him losing "faith" in C++
15:53:27coffeepotwell I'm certainly not dissing the guy, how many distributed network libs have I written? None! :P But if it were a standards thing then you just drop standards for C?
15:53:58coffeepotwhy is writing your own list container breaking standards anyways
15:54:31coffeepotregardless, it's just a minor point.
15:55:10*yglukhov quit (Remote host closed the connection)
15:55:27coffeepothe obviously cares a lot about performance, which is good in that context
15:55:29drewsremThat's his point tho, "C++" is not just the syntax, or the implementation of your compiler, it's a standard and if there's some principle within the standard, if you break it, you're doing something that's "not C++", it's semantics
15:56:12ekarlsoanyone attempted to use nim for microservices ?
15:56:21drewsremHe says it breaks the encapsulation-principle, e.g. https://en.wikipedia.org/wiki/Encapsulation_(computer_programming) ?
15:56:52drewsremI really don't care that much, what principle in detail he's talking about, he might be talking about some notion he got after all those decades of programming in C++ by co-worker, what do I know :)
15:57:04coffeepotvery true
16:00:47*yglukhov joined #nim
16:02:28Demosc++ does have some cultural problems
16:02:47Demosthere's a lot of navel gazing and "good c++"
16:02:55Demoscan encourage some really wacky code
16:06:42drewsremIIRC he also mostly just said that C fits a socket-lib like zeromq much better then C++, he never said C is a "better" language or anything, same for exceptions, I don't think he claimed they're generally bad, rather that they're problematic in essentially a giant state-machine
16:06:59*yglukhov quit (Remote host closed the connection)
16:07:41drewsremI think he also thought about nanomsg eventually becoming a kernel-module and those can't use exceptions or something
16:10:53*darkf quit (Quit: Leaving)
16:14:19*strcmp1 joined #nim
16:15:08*coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
16:17:52*FedeOmoto joined #nim
16:19:54*ChrisMAN quit (Quit: Leaving)
16:20:11*ChrisMAN joined #nim
16:27:33*yglukhov joined #nim
16:30:14*yglukhov quit (Remote host closed the connection)
16:30:28*yglukhov joined #nim
16:52:59*yglukhov_ joined #nim
16:56:12*yglukhov quit (Ping timeout: 264 seconds)
16:57:21*yglukhov_ quit (Ping timeout: 256 seconds)
16:57:24*elbow_jason joined #nim
17:07:52*Arrrr joined #nim
17:09:59*brson joined #nim
17:31:40*yglukhov joined #nim
17:33:39Araqyglukhov: I think I fixed destructors
17:35:52*yglukhov quit (Ping timeout: 244 seconds)
17:40:30*yglukhov joined #nim
17:44:04dom96filwit: update your nimble and it will work
17:47:52*X67r joined #nim
18:02:21*Demos_ joined #nim
18:05:10*Demos quit (Ping timeout: 240 seconds)
18:06:53ArrrrCould nim be funded like crystal? https://www.bountysource.com/teams/crystal-lang/fundraisers/702-crystal-language
18:08:16dom96Yeah, we're considering doing that.
18:08:25*BitPuffin quit (Ping timeout: 244 seconds)
18:09:12Arrrrfantastic
18:09:56reactormonkdom96, how difficult is it?
18:17:46*Sahnvour joined #nim
18:25:13dom96reactormonk: dunno
18:25:21dom96Haven't looked into it much yet
18:26:21*X67r_ joined #nim
18:26:27*X67r quit (Ping timeout: 265 seconds)
18:29:43Arrrrkickstart nim: if it reaches 10k $, Araq will upload a photo smiling.
18:41:25NimBotnim-lang/Nim devel 436b847 Yuriy Glukhov [+0 ±1 -0]: Workaround for #3179.
18:41:25NimBotnim-lang/Nim devel 05ada2d Dominik Picheta [+0 ±1 -0]: Merge pull request #3180 from yglukhov/3179-workaround... 2 more lines
18:42:17NimBotnim-lang/Nim devel eac4841 Nycto [+0 ±2 -0]: Fix multiple requires in a test
18:42:17NimBotnim-lang/Nim devel e2886ee Dominik Picheta [+0 ±2 -0]: Merge pull request #3172 from Nycto/devel... 2 more lines
18:42:28Araqdom96: bah, I was about to fix that. oh well
18:42:43dom96Araq: Fix it anyway :P
18:45:30*NimBot joined #nim
18:47:57*yglukhov quit (Remote host closed the connection)
18:52:38*filcuc joined #nim
19:05:58*alpaca__ quit (Ping timeout: 260 seconds)
19:06:49*NimBot joined #nim
19:09:58*unclechu joined #nim
19:11:08ekarlsoanyone given it a go at package management yet for nim ?
19:11:56filwitekarlso: https://github.com/nim-lang/nimble
19:12:11ekarlsofilwit: a nonstatic file one then ;)
19:13:15*NimBot joined #nim
19:13:31notfowlekarlso i have a macro to `import_repo github.com/u/pkg/module.nim`
19:13:58notfowlBut thats less package management and more gorge("git ...")
19:19:00*drewsrem quit (Quit: Leaving)
19:19:32*Arrrr quit (Quit: WeeChat 1.2)
19:22:32*unclechu1 joined #nim
19:22:55*unclechu1 quit (Max SendQ exceeded)
19:23:20*unclechu quit (Ping timeout: 244 seconds)
19:24:00*unclechu joined #nim
19:32:01*NimBot joined #nim
19:33:51Sahnvouranyone heard of cases where `x += y` triggers a compiler error while `x = x + y` works fine ?
19:34:19Araqyeah, these are not equivalent
19:35:32*xcombelle quit (Quit: Leaving)
19:35:42Sahnvouroh
19:35:56Sahnvouris that mentionned in the manual/doc ?
19:36:49Araq+= is in system.nim
19:37:02Araqthere is nothing magical about it
19:37:11Araq(even though it might use .magic :P )
19:38:43Sahnvourgot it
19:39:03Sahnvourthanks
19:47:28*unclechu1 joined #nim
19:47:52*unclechu1 quit (Max SendQ exceeded)
19:48:26*xificurC joined #nim
19:48:33*unclechu quit (Ping timeout: 250 seconds)
19:49:02NimBotnim-lang/Nim devel 0d8942d Araq [+2 ±5 -1]: destructors now work with overloaded assignment operators; fixes #2811; fixes #1632
19:49:02NimBotnim-lang/Nim devel 14ce3c7 Araq [+0 ±1 -0]: fix regressions
19:49:04*unclechu joined #nim
19:49:26*unclechu quit (Max SendQ exceeded)
19:50:04*unclechu joined #nim
19:50:28*unclechu quit (Max SendQ exceeded)
19:51:21*unclechu joined #nim
19:52:31*NimBot joined #nim
19:53:15Araqc2nim it
19:54:00ekarlsoi mean a codegen Araq ;P
19:54:25Araqbut it requires reading of c2nim's manual and tinkering around
19:54:56Araqmaybe you can pretend it's got something to do with Linux. Then it counts as fun, right?
19:56:20ekarlsosigh.. you and nice answers ..
19:58:21*alpaca joined #nim
19:59:27ekarlsoapparantly rust has protobuf + grpc
19:59:29ekarlsonice -,,-
19:59:43ekarlsohttps://github.com/stepancheg?tab=repositories
20:02:44Araqyup, there are some advantages when you got Mozilla backing
20:02:53ekarlso:P
20:03:00ekarlsonoones wanting to back nim ? :p
20:08:25*strcmp1 quit (Ping timeout: 246 seconds)
20:11:17*NimBot joined #nim
20:12:48Demos_Araq is filled with salt
20:15:53ekarlsonoone doing services with nim?
20:18:39Araqcan you explain to me again why I should give you friendly answers when all you do is trolling?
20:21:49Demos_I think your salt is pretty funny :D
20:21:50*IRIXuser left #nim ("Exit")
20:24:44wuehlmauslet a = 3
20:24:53wuehlmausecho $a & '-'
20:24:55wuehlmausdoesn't work
20:25:14wuehlmausi don't understand why
20:25:37filwittry with parentheses, eg 'echo(..)'
20:25:41*strcmp1 joined #nim
20:25:45def-wuehlmaus: echo a, '-'
20:25:58filwiter.. yes, what def said..
20:26:16def-the $ turns it into `$`(echo, a & '-') or something like that
20:26:52filwitwhich is part of the argument behind strong-spaces..
20:27:27wuehlmausthanks for help
20:57:13*kilon joined #nim
20:57:22alpaca dumpTree shows that it is parsed as (echo $ a ) & '-'
20:59:48*yglukhov joined #nim
21:02:10*alpaca quit (Ping timeout: 260 seconds)
21:04:10*yglukhov quit (Ping timeout: 246 seconds)
21:17:43*kilon quit ()
21:26:08*Demos_ quit (Remote host closed the connection)
21:30:17*Demos joined #nim
21:33:46*filwit quit (Remote host closed the connection)
21:34:57*BitPuffin|osx joined #nim
21:35:39*Demos quit (Remote host closed the connection)
21:36:39*filwit_ joined #nim
21:36:40*johnsoft quit (Read error: Connection reset by peer)
21:37:05*jszymanski quit (Quit: computer sleeps...)
21:39:31*BitR quit (Ping timeout: 260 seconds)
21:41:50*FedeOmoto quit (Quit: Leaving)
21:44:40filcucekarlso: https://github.com/huodon/protobuf
21:45:00filcucekarlso: funny, i wanted to start a protobuf implementation for nim too
21:45:28filcucekarlso: obviously is not pure
21:46:53*BitR joined #nim
21:48:24*filcuc quit (Quit: Konversation terminated!)
21:57:16*pregressive quit (Remote host closed the connection)
21:59:07*unclechu quit (Quit: Leaving.)
22:07:36*polde quit (Ping timeout: 258 seconds)
22:12:05*polde joined #nim
22:16:17*strcmp2 joined #nim
22:17:27*strcmp1 quit (Ping timeout: 244 seconds)
22:23:03zaspardl
22:23:22*zaspard quit (Quit: Lost terminal)
22:24:56*Sahnvour quit (Read error: Connection reset by peer)
22:33:59*elbow_jason quit (Remote host closed the connection)
22:44:57*filwit_ quit (Remote host closed the connection)
23:08:55*X67r_ quit (Quit: leaving)
23:12:27*Kingsquee quit (Read error: Connection reset by peer)
23:12:40*Kingsquee joined #nim
23:13:20*vikaton joined #nim
23:19:48*vikaton quit ()
23:48:09*pregressive joined #nim