<< 11-10-2014 >>

00:05:22lorxuYeap
00:05:39lorxuI can't compile without that
00:05:48NimBotAraq/Nimrod devel 54f6280 Luis Ricardo [+0 ±1 -0]: Update cpuinfo.nim... 3 more lines
00:05:48NimBotAraq/Nimrod devel 8afb85b Andreas Rumpf [+0 ±1 -0]: Merge pull request #1559 from lorxu/devel... 2 more lines
00:10:36Jehan_Araq: I think gradha's library and compiler may be out of sync.
00:10:50Araqok
00:13:36Jehan_Araq: Is there a reason why the libsqlite version for OS X is written that particular way?
00:13:38Jehan_ Lib = "(libsqlite3(|.0).dylib|sqlite-3.6.13.dylib)"
00:14:24Jehan_I only encountered it because --dynliboverride didn't work, apparently because of the surrounding parentheses.
00:14:44Jehan_But the fixed version number baffles me in particular.
00:15:02*ehaliewicz quit (Ping timeout: 255 seconds)
00:15:15Araqyeah
00:15:19Araqthere is a reason
00:15:39Araqthe syntax is (|)
00:15:56Araqso for the |sqlite part the () are required
00:16:01Jehan_I see.
00:16:17Jehan_And any reason why the sqlite-3.6.13.dylib is required?
00:16:24*dom96_ quit (Remote host closed the connection)
00:19:28Araqunlikely
00:20:21*q66 quit (Quit: Leaving)
00:21:01Jehan_I see. I may still look into why dynliboverride doesn't work.
00:21:24Araqstartswith vs contains, my guess
00:24:57Jehan_No, there's actually a simple parser to return the canonical dynlib name, which apparently doesn't work for this case.
00:26:16lorxuMay be could be added in future a array on header
00:26:20Jehan_Not difficult to fix, but not something for tonight, either. :)
00:26:39Araqlol. amazing how much I forget about my own code
00:26:46Jehan_lorxu: You're not the first one to suggest that. :)
00:26:58lorxuOK :)
00:27:07Jehan_Araq: It's not just you. :)
00:27:27Araqheader: "<foo.h>\n#include <hack.h>"
00:27:45Araqyou simply need to be more creative :P
00:29:06lorxuI know that but it's not pretty
00:29:17Jehan_Araq: Something tells me that whatever language spec there is, it doesn't include that. :)
00:29:50Araqindeed you might as well use .emit then
00:30:26Jehan_I could probably hack together a patch that allows for space or comma-separated header files in the pragma, if you're willing to consider it?
00:32:29Araqsure, but I prefer header: ["foo.h", "bar.h"] instead of string voodoo
00:33:05Araqthat's harder to implement though
00:33:55VarriountMeep
00:34:24VarriountAraq: 'winrelease'?
00:34:54Jehan_Araq: Yeah, I know.
00:35:19Jehan_I'm not sure if I currently have the energy to do that, though. But probably better to do it cleanly.
00:39:19Araqwell it's super low priority IMHO
00:39:54*BlaXpirit-UA quit (Quit: Quit Konversation)
00:42:16Jehan_Yeah.
00:42:56AraqVarriount: your question requires a verb
00:44:14VarriountAraq: What is 'winrelease' for?
00:44:32Araqit is for you.
00:45:01Araqmy suggestion of how it should be done
00:45:07Araqwith a nice XXX for you
00:57:23VarriountAraq: How do you feel about adding --stackTrace:on to the released compiler, at least for Windows?
00:57:26*Joe_knock quit (Quit: Leaving)
00:58:11Araqdon't do that. do include a nimd.exe instead
00:58:36Araqwe can make the error message say "use nimd.exe to get a stack trace"
00:59:07Araqnimd is the debug version of the compiler, obviously
00:59:15VarriountHm, good idea.
00:59:52VarriountIt's not like the compiler executable itself takes up much space.
01:04:10Jehan_Interestingly enough, you can make tar.gz/.bz2/.xz files for csources considerably smaller by reordering the files in build/c_code.
01:04:43Araqreordering?
01:06:21Jehan_Within the tar file that you then compress.
01:06:43Jehan_By putting the different versions of each C file next to each other.
01:07:23VarriountThat makes sense - to the best of my knowledge, tar just globs an entire hierarchy of files together, while gz/bz2/xz do the compression.
01:08:22Jehan_Exactly.
01:08:28Jehan_Doesn't work with .zip, of course.
01:08:52VarriountJehan_: Because zip does per-file compression?
01:08:58Jehan_Yes.
01:09:45Jehan_I was primarily interested because I need compile-from-scratch source distributions for some of my stuff.
01:10:01VarriountJehan_: Which makes me wonder if there isn't a program out there which re-arranges file contents to get the best compression
01:10:06AraqJehan_: looked at niminst to do it for you?
01:10:12Jehan_Araq: Do what?
01:10:24Araqsource based distribution
01:10:35Jehan_Oh, the source based distribution is not the problem.
01:10:51AraqVarriount: see you tomorrow? I need to sleep now
01:10:59Jehan_I do ./koch csource -d:release -d:nocaas for that and package the compiler+build dir, basically.
01:11:10Jehan_Which, obviously, does use niminst internally.
01:11:34VarriountAraq: Yes.
01:11:35Araqah ok, good
01:11:58VarriountAraq: I have nothing but studying tomorrow, and it's a long weekend here (holidays)
01:12:35AraqJehan_: I have another research task for you
01:12:42Jehan_Araq: Oh?
01:12:50Araqfigure out why compilation of niminst takes so long
01:13:12AraqI know it's because of the long .tmpl files
01:13:27Araqwhich get transformed into long add and & expressions
01:13:38Jehan_Huh. I'll see if I can figure it out. Not tonight, though.
01:13:48Araqbut I don't know why these are slow to compile
01:14:04Araqsure, no need to hurry
01:14:16Araqgood night
01:19:03*Jehan_ quit (Quit: Leaving)
02:04:48*xenagi|2 joined #nimrod
02:09:07*xenagi quit (Ping timeout: 272 seconds)
02:17:09*xenagi|2 quit (Quit: Leaving)
02:43:34*saml_ joined #nimrod
02:46:14Onionhammerdom96_ i got it working
02:46:28Onionhammerdom96_ it is a case sensitivity issue
03:03:13*EXetoC quit (Remote host closed the connection)
03:06:52*Demos quit (Ping timeout: 255 seconds)
03:10:13*dapz joined #nimrod
03:17:53*Demos joined #nimrod
03:49:52*Fran__ is now known as Francisco
03:50:02*Francisco is now known as Fr4n
04:24:06*dapz quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:48:51*Francisco joined #nimrod
04:51:02*Fr4n quit (Ping timeout: 245 seconds)
05:41:41*fowlmouth joined #nimrod
06:00:58*saml_ quit (Quit: Leaving)
06:58:01*Ven joined #nimrod
07:05:50*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:44:20*Demos quit (Read error: Connection reset by peer)
07:46:09*Francisco is now known as Fr4n
07:48:56*BlaXpirit joined #nimrod
07:55:12*Ven joined #nimrod
08:31:41*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
08:39:07*dirkk0 joined #nimrod
08:40:37*zahary joined #nimrod
09:07:09*bjz joined #nimrod
09:07:55*EXetoC joined #nimrod
09:18:43*dirkk0 quit (Quit: Leaving)
09:58:11Araqping kokozedman
10:08:37*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:08:46*Ven joined #nimrod
10:11:38*Ven quit (Client Quit)
10:13:29*Ven joined #nimrod
10:15:01*kuzy000_ joined #nimrod
10:19:41*lorxu quit (Ping timeout: 258 seconds)
10:39:29*Matthias247 joined #nimrod
11:02:03*darkf quit (Ping timeout: 246 seconds)
11:14:23*johnsoft quit (Read error: Connection reset by peer)
11:15:09*johnsoft joined #nimrod
11:27:23*bjz quit (Ping timeout: 240 seconds)
11:52:49*bjz joined #nimrod
12:36:10*saml_ joined #nimrod
12:52:23*Varriount_ joined #nimrod
12:52:45*io2 joined #nimrod
12:52:59*kuzy000_ quit (Read error: Connection reset by peer)
12:55:23*Varriount quit (Ping timeout: 240 seconds)
13:05:56*vezzy quit (Quit: No Ping reply in 180 seconds.)
13:06:21*quasinoxen joined #nimrod
13:14:47*darkf joined #nimrod
13:16:07*quasinoxen quit (Quit: No Ping reply in 180 seconds.)
13:18:15*quasinoxen joined #nimrod
13:30:09*untitaker quit (Ping timeout: 260 seconds)
13:36:02*untitaker joined #nimrod
13:36:16*saml_ quit (Ping timeout: 250 seconds)
13:54:51*darkf quit (Quit: Leaving)
13:59:22*io2 quit (Ping timeout: 255 seconds)
14:09:41*io2 joined #nimrod
15:20:45*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:37:31Onionhammerhola
15:49:10*Ven joined #nimrod
15:51:48*Lorxu joined #nimrod
15:53:04*AndChat|18324 joined #nimrod
15:53:05*Lorxu quit (Read error: Connection reset by peer)
15:54:07AndChat|18324Hola
15:57:20*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
15:57:30*saml_ joined #nimrod
16:34:31Araqservus
16:49:31AndChat|18324Araq why you choose claro? For ui toolkit
16:49:39*AndChat|18324 is now known as lorxu
16:49:59AraqI didn't really choose it, I tried to revive it
16:50:24Araqit's small, in C and uses native widgets for macosx, linux and windows
16:50:33lorxuOK I was thinking in porting iup
16:50:42Araqand it's the *only* UI toolkit with these features
16:51:18lorxuWhat about IUP?
16:52:00lorxuAnd iup is MIT
16:53:17Araqwe have an iup wrapper
16:53:48Araqbut it doesnt run well on osx, afaict
16:54:00lorxuOk
16:59:12*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:00:28*Trustable joined #nimrod
17:01:24TrustableHi all
17:05:02lorxuHi
17:08:43*Ven joined #nimrod
17:11:30Araqlorxu: do you mean wrapping or porting?
17:11:46Araqporting would be really awesome!
17:24:46lorxuPorting
17:25:19Araqthan IUP looks better than Claro
17:25:29AraqClaro's code kind of sucks
17:25:31Araqbbl
17:25:49lorxuJajaj
17:25:57lorxuOk
17:27:04lorxuI will try to do that
17:40:35NimBotnimrod-code/nimforum new_async da1876f Dominik Picheta [+0 ±3 -0]: Fixes CS problems.
17:42:20*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:42:49*io2 joined #nimrod
17:44:27*Ven joined #nimrod
17:45:02*Ven quit (Client Quit)
17:51:41Araqdom96: I've backported .deprecated to 0.9.6
17:51:52Araqkind of embarrassing that it didn't work already
17:51:59dom96Araq: lol ok
17:52:11Araqso ... we could do all the stdlib updates for 0.9.6
17:52:26Araqbigbreak then would be --cs:partial plus the language enhancements
17:52:40dom96that sounds like a lot of work
17:52:43Araqso that people actually have a migration path
17:52:47Araqit's not
17:53:30dom96A case of copying + pasting lib/ from bigbreak to devel?
17:55:38Araqyup
17:59:20dom96cool
17:59:27dom96That would be nice.
17:59:43dom96Means 0.9.6 would get better async.
18:04:09*dom96_ joined #nimrod
18:18:22*lorxu quit (Ping timeout: 240 seconds)
18:19:01*saml_ quit (Ping timeout: 260 seconds)
18:46:34*dom96_ quit (Quit: Leaving)
18:46:49*dom96_ joined #nimrod
18:48:07NimBotAraq/Nimrod devel 6c9730b Araq [+0 ±2 -0]: fixes #1551
18:48:07NimBotAraq/Nimrod devel 753d18d Araq [+0 ±1 -0]: minor cleanup for cpuinfo
18:48:07NimBotAraq/Nimrod devel 028a62e Araq [+0 ±2 -0]: documentation updates
18:48:07NimBotAraq/Nimrod devel 661c516 Araq [+0 ±6 -0]: backported .deprecated statement
18:49:18*Lorxu joined #nimrod
18:50:45LorxuAraq you broke cpuinfo again
18:50:50LorxuLol
18:51:56NimBotAraq/Nimrod devel 34e96e3 Araq [+4 ±0 -0]: added missing nimfix files
18:52:49Lorxuemit put code after header pragma
19:00:25AraqLorxu: how is that possible?
19:00:40Araqorder dependency for headers?
19:04:37LorxuYes
19:05:01Araqthat is just garbage
19:05:22Araqwho comes up with crazy bullshit like this?
19:05:48LorxuParam declare stuff used by sysctl
19:06:05LorxuParam need to be first
19:12:07Araqsee? bsd is an utter piece of shit stuck in the 70ies
19:13:36LorxuLol
19:13:47LorxuThis make sysctl portable
19:15:36LorxuNot only BSD do that
19:20:35Araqno idea what you mean. order dependencies for public includes is just broken by design.
19:20:47LorxuYou can use sysctl to different function and don't have to rewrite
19:21:04LorxuOnly change the header
19:21:42Araqlet me repeat: order dependencies for public includes is broken. I don't care if there are reasons for it.
19:22:14Araqit's like telling people they first have to import strutils before they are allowed to import os.
19:22:47Araqif Nim would do the same we wouldn't have a single user.
19:23:16Varriount_The only reason C/C++ gets away with it is because when they were introduced, there wasn't a good alternative.
19:23:34Araqthere was plenty of good alternatives out there
19:23:44Araqbut programmers are stupid as fuck
19:23:56Varriount_Araq: Including you and me? :3
19:24:00*Varriount_ is now known as Varriount
19:24:04Araqoooh I like {} better than 'begin end'. memory safety? what's that?
19:24:20Araqprogrammers have no clue whatsoever about semantics
19:24:25LorxuBbl
19:25:15VarriountAraq: So I downloaded the 32 & 64 bit Mingw-w64 compilers last night. Both are built to use win32 threading and sjlj exception handling.
19:25:34VarriountYou want me to use the trim tool to trim them down, correct?
19:25:49Araqonly for 64 bits
19:25:55AraqI already did it for 32 bits
19:26:05Araqno need to do it again and go through the testing
19:26:05VarriountAraq: Which 32 bit package did you download?
19:26:20AraqVarriount: I used the mingw that we ship with 0.9.4
19:26:31VarriountEh.. that's outdated.
19:26:48Araqthat's good enough for me
19:26:51Araqbut ok fine
19:27:01Araqif you wanna do it, go ahead
19:27:42Araqactually trimcc has problems
19:27:51VarriountOh?
19:27:56Araqso I only used it to determine deletion candidates
19:28:15Araqand then used restorecc to fix the resulting broken installation
19:28:21Araqhowever
19:28:34Araqif you're more patient than me it should work fine
19:28:41Araqwithout my voodoo
19:28:48*Jehan_ joined #nimrod
19:28:55VarriountAraq: What kind of problems?
19:29:03Araqit runs too long
19:30:34Araqbtw it doesn't patch gdb
19:32:21*Lorxu quit (Ping timeout: 246 seconds)
19:32:45*Trustable quit (Quit: Leaving)
19:46:23VarriountAraq: I feel bad for my desktop computer. I'm running two buildbots, and two instances of trimcc
19:47:09VarriountThat's 4 nimrod installations being used, two of which are being accessed constantly.
19:47:30Araqwell read trimcc and come up with a more efficient solution
19:48:09Araqyou can do much better if you could ask the OS which files have been read from recently
19:48:16Araqbut I couldn't find such an API
19:48:43Araqthe timestamps itself are wrong / misleading
19:49:08VarriountYeah, timestamps aren't very reliable for such work.
19:50:24VarriountI was thinking that possibly deleting more than one file at a time might make things go faster. You would have to backtrack more often, but assuming that there are many redundant files, that shouldn't matter too much in the beginning of the process.
19:50:50Araqtrimcc deletes 30 files at once iirc
19:50:57VarriountOh?
19:51:08Araqwell I updated it, read the code
19:51:50Araqa mingw installation has over 8K files
19:51:53*xcombelle_ joined #nimrod
19:52:07Araqwe cannot invoke nim+gcc over 8K times
19:52:12VarriountAraq: Was this on the devel or bigbreak branch?
19:52:12Araqthat's just madness
19:52:19Araqbigbreak
19:52:25Varriount-_-
19:52:54VarriountI'm running off of devel. I assumed, since we were aiming to release devel, that this would be on the devel branch.
19:53:02Araqsorry
19:53:14AraqI'm usually on bigbreak
19:55:24Jehan_Given how much you complain about Unix, Araq, Windows seems to involve a whole lot more work. :)
19:57:35Araqwell, we're fighting with stuff on windows that unix people produced.
19:57:51Araqso .. I see no contradiction here :P
19:58:12VarriountJehan_: Araq tends to complain about everything.
19:58:32Jehan_Varriount: I know, me too. It's the German national sport. :)
19:58:42Araqlol, indeed
19:58:57Araqit's typical of germans indeed
20:02:18Araqspeaking of which ... why would somebody like shebangs for nim?
20:02:19VarriountAgain, I'm amazed my computer doesn't explode with the strain I put it under on a daily basis.
20:02:24Araqwhat's the use case?
20:02:38VarriountAraq: Nim as a scripting language?
20:03:00Araqsure but he doesn't want "nim i" for it
20:04:34Jehan_Araq: Because "nim i" is not very usable at the moment?
20:04:38EXetoCwhy? you removed your fans? :p
20:04:48Jehan_And yes, that's what I use it for at times.
20:05:05Araqok, let me put it differently:
20:05:10Araq# is already a comment
20:05:24Araqso #! works if your shell thinks it should work
20:05:32Araqwhat am I missing?
20:06:19VarriountAraq: Uh, I'm getting a C compilation error when trying to compile trimcc.nim
20:06:38AraqVarriount: you need a patch from bigbreak to compile it
20:06:48Araqin fact, you can only compile it with bigbreak
20:07:46Jehan_Araq: Correct. The problem he was concerned with was how to use nim in a hashbang line to run the script similar to dmdrun, not having #! suppported.
20:08:16VarriountJehan_: By the way, why does you tool require sqlite?
20:08:22Varriount*your
20:08:36Jehan_Varriount: Because there's no portable file locking in Nim.
20:08:54Jehan_So I use SQLite's "begin exclusive" as a hack to emulate it.
20:08:54VarriountAnd what is file locking needed for?
20:09:24Jehan_So that two instances of the process running concurrently don't mess up the nimcache directory (or the executable that's generated).
20:09:50VarriountAh.
20:10:12EXetoClock file + unique id?
20:10:41VarriountAraq: I'm getting "c:\test\nimrod64\tools\nimcache\trimcc.c:14:18: fatal error: vector: No such file or directory
20:10:41Varriount #include <vector>"
20:10:48Jehan_Calling it a hack is actually a bit crude. I consider SQLite to essentially be a universal tool for file-based transactions and structured file access.
20:10:54Jehan_EXetoC: Hmm?
20:12:30AraqVarriount: with mixed mode working I want to ensure c++ installation still works
20:12:44Araqapparently it already doesn't work for you
20:12:47*Francisco joined #nimrod
20:12:51Araquse a mingw with c++ support
20:15:41*Fr4n quit (Ping timeout: 260 seconds)
20:17:25*q66[lap] joined #nimrod
20:21:03*Varriount quit (Read error: Connection reset by peer)
20:25:51*xcombelle_ quit (Ping timeout: 272 seconds)
20:41:12*Varriount joined #nimrod
20:44:16*q66[lap] quit (Quit: Textual IRC Client: www.textualapp.com)
20:44:37*q66[lap] joined #nimrod
20:44:37*BlaXpirit quit (Quit: Quit Konversation)
20:47:47*Ven joined #nimrod
20:54:58Araqso Varriount ... how should we proceed?
20:57:48NimBotAraq/Nimrod devel 6a29fbf Araq [+0 ±1 -0]: be explicit about single letter options
20:57:48NimBotAraq/Nimrod devel 826d529 Araq [+4 ±22 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
20:57:48NimBotAraq/Nimrod devel 399c985 Araq [+0 ±1 -0]: fixes recent regression
20:58:46*BlaXpirit joined #nimrod
21:01:43Onionhammeraraq when is the new nim website redesign coming out
21:02:28AraqOnionhammer: no idea
21:03:15Onionhammermaybe i'll pitch some concept designs :P
21:03:26Onionhammerwe need to be more trendy
21:04:07Araqer no
21:04:11Araqthe design is finished
21:04:23Onionhammerthe nimrod-lang.org site design?
21:04:25Araqbut I don't know when we mange to update the docgen
21:04:45Onionhammerno offense.. but the design is pretty dated looking
21:05:20Onionhammerand UX wise not awesome. Each news article you add, the further down the page important links get pushed
21:09:41AraqI wonder if you saw the *old* site
21:10:06Araqanyway we have a new design and it's really nice, IMHO
21:13:09Onionhammeri did see the old site
21:13:41Onionhammer<argument from authority> I do web apps for a living, so.. :P
21:14:12Araqwell do you have an alternative design?
21:14:21Araqor are you just complaining?
21:14:32Onionhammeri dont right now, I was thinking of proposing one
21:14:46Onionhammerim not complaining, just expressing an opinion
21:15:17Onionhammera rename deserves a rebrand
21:15:36Araqok well. propose one then
21:15:45Onionhammeralso consistency between the docs, the forum and the main site
21:15:50Araqha
21:15:56Araqthat's what we're getting
21:16:06Onionhammerugh, with the purple? :P
21:18:53Araqwhat? purple?
21:21:14Onionhammerthe background
21:21:55Araqthat's some darkish blue for me :P
21:22:09Onionhammerlol
21:22:27rpagcolor blind people unite
21:23:11Onionhammerhehe
21:23:27*BlaXpirit quit (Quit: Quit Konversation)
21:25:36*BlaXpirit joined #nimrod
21:26:28*Lorxu joined #nimrod
21:39:00*flaviu joined #nimrod
21:39:14*will joined #nimrod
21:40:08flaviuAraq, Onionhammer: Wasn't filwit doing a redesign?
21:40:33Araqflaviu: yes, and he's basically finished
21:40:51Araqbut it takes some effort to incorporate it into our website builder
21:41:06flaviuah
21:43:40VarriountAraq: I finally ported my python directory symlinking tool to nimrod
21:45:43NimBotnimrod-code/babel master 7d18e2b Dominik Picheta [+0 ±1 -0]: Fixes version peg for multiple digit versions.
21:45:43NimBotnimrod-code/babel master adbc30c Dominik Picheta [+7 ±1 -6]: Renamed babel to nimble.
21:45:43NimBotnimrod-code/babel master b4d6b1f Dominik Picheta [+2 ±0 -2]: s/babel/nimble
21:47:54AraqVarriount: what does that mean?
21:48:06Araqand how is trimcc working for you?
21:49:58VarriountAraq: Still trying to figure out why it won't compile.
21:50:31VarriountAraq: It compiles fine with my local mingw installation, but not with the one I place in the folder I'm using to carry out the trimming
21:54:07*dom96_ quit (Quit: Leaving)
21:54:20*dom96_ joined #nimrod
21:54:40dom96_Araq: Voila.
21:55:05Araqdom96_: yay :-)
21:56:19VarriountHuh? What did dom96 do?
22:00:20VarriountAraq: The one-way-link-synchronization tool (or owls) copies a directory, recreating the folder structure, but symlinking files instead of copying their contents.
22:01:05*shevy joined #nimrod
22:01:21VarriountIt's much faster than copying an entire directory structure.
22:02:57VarriountIt creates an effect very similar to that of a union mount.
22:08:02*io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist)
22:11:09VarriountAraq: Ok, trimcc is working away. There must have been an error or something in how I copied mingw before.
22:13:43*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:13:56*Ven joined #nimrod
22:20:36*BlaXpirit-UA joined #nimrod
22:22:35*BlaXpirit quit (Ping timeout: 272 seconds)
22:22:59Araqhi flaviu
22:23:10AraqI'm installing virtualbox on my linux machine
22:23:21Araqguess what. it does not work.
22:23:36VarriountUh oh.
22:23:50*Varriount hands flaviu the rantbrella
22:23:50Araqso I'm googling around
22:23:55Araqhttp://askubuntu.com/questions/41118/virtualbox-kernel-driver-not-installed
22:24:36Araqso much for bloated installers
22:24:52Araqbut maybe I should really switch distros
22:25:09Araqcan't lose anything since nothing works anyway
22:26:23willdon't you normally have to build some dkms modules?
22:30:41AraqPlease reinstall the kernel module by executing
22:30:43Araq'/etc/init.d/vboxdrv setup'
22:30:44Araqas root.
22:30:52Araqnope, no way I'll do that
22:32:11willmaybe try qemu ;D
22:32:24Araqoh well, let me try it, it will fail anyway
22:32:33EXetoC-.-
22:32:34Araqsudo /etc/init.d/vboxdrv setup
22:32:46Araqsudo: /etc/init.d/vboxdrv: command not found
22:33:20Araqok, so let's install vboxdrv via synaptic
22:33:39Araqah but there is no package of that name
22:33:47Araqso ... google again I guess?
22:33:55*brson joined #nimrod
22:34:27flaviulol
22:35:16*flaviu holds the rantbrella
22:35:43Araqand the thing is:
22:35:51Araqall these things used to work with this distro
22:35:53flaviuAraq: FWI, that hi was 40 minutes late :P
22:36:10Araqthese are all regressions
22:36:19Araqbecause there is no QA
22:36:37Araqand that's why every year is the year of the linux desktop
22:36:49Araqexcept that it never happens
22:37:44Jehan_Well, Linux is an OS for DIY types.
22:38:00Jehan_Nothing inherently wrong with that, just not surprising that its popularity is limited.
22:38:34flaviuAraq: Arch linux Just Works wrt virtualbox
22:38:47flaviuYou just have to modprobe vboxdrv and you're done
22:39:52EXetoCpossibly after upgrading the kernel
22:40:16EXetoCif versions are not synced that is
22:40:47EXetoCworked for me after that
22:41:21Araqan *un*operating system is inherently wrong :P
22:42:39AraqI constantly reminded of that quote ... "Linux is only free when your time has no value."
22:43:03*flaviu adjusts the rantbrella
22:47:41*Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:52:22flaviuVarriount: I removed the first couple of paragraphs of your style FAQ, since they were a bit rambly and didn't say much
22:52:59flaviuIs https://github.com/Araq/Nimrod/wiki/Community-Projects really helpful? Isn't that the purpose of Babel?
22:54:40Araqbabel has no website exposing nice packages
22:54:44flaviuWait, what is the difference between the whitespace FAQ and the NEP Style Guide?
22:54:52flaviuAraq: Sounds like a bug in babel.
22:55:07Araqthe whitespace FAQ predates the NEP
22:55:11AraqI think
23:09:19Araqflaviu: feel free to "fix" it
23:09:30Araqbtw it just got renamed to Nimble
23:09:44flaviuReally? Ok.
23:09:52flaviuI left the whitespace FAQ mostly as-is
23:10:09flaviuThere was another style guide, which I merged into NEP1
23:11:27Varriountflaviu: I don't mind. I was following the style of the python PEP's, which usually have a paragraph explaining their purpose.
23:11:42flaviuok
23:15:17*will quit (Ping timeout: 245 seconds)
23:16:36Araqflaviu: excellent, thank you.
23:27:50Jehan_By the way, do .babel files have to be renamed to .nimble files or will they still be recognized, at least for a transitional period?
23:28:05Araqthe later
23:28:22Varriount*latter
23:28:26Araq.babel file should still be fine
23:29:09flaviuJust curious, what purpose does the C++ backend have?
23:29:27Varriountflaviu: Interacting with C++ libraries?
23:29:33flaviuC works fine for that.
23:29:42flaviuNimrod is mostly a procedural language anyway.
23:30:02flaviuOh, the other way around
23:31:03EXetoCexception handling performance
23:33:11VarriountAraq: Mingw also includes a distribution of ada and tcl. :3
23:33:12flaviuIs C++ that much faster there? Exceptions are supposed to be exceptional anyway, so I don't see how their performance matters much anyway.
23:33:37Varriountflaviu: Depends on the quality of the program.
23:33:40Jehan_flaviu: Short answer: Yes.
23:34:04Varriountflaviu: I once (naively) created a parser which made prominant use of exceptions as control flow.
23:34:13AraqVarriount: I noticed. the Ada binaries are big. got rid of them before anything else
23:34:19flaviuVarriount: Why? Just write a goto library.
23:34:26Varriountflaviu: This was for python
23:35:04Jehan_In particular, C++ allows for zero cost exceptions (i.e., zero overhead if no exception is raised). C doesn't.
23:35:26Varriountflaviu: Taking out exceptions and replacing them with returning None cut down parsing a file from 40 seconds to 6
23:35:54*zahary quit (Ping timeout: 255 seconds)
23:36:08Jehan_Well, technically C allows it with libunwind, but that's a portability hassle.
23:36:23Araqflaviu is the kind of guy who wanders around through the desert and says: "so, I'm jumping into this pool now to refresh myself". :-)
23:36:56flaviuI'm not sure I understand.
23:37:41Jehan_For what it's worth, I tend to waffle back and forth myself on the question of whether to use exceptions at all.
23:38:39EXetoCJehan_: almost zero
23:38:41Jehan_I still end up with the problem that there's no sane alternative to handling a failed precondition.
23:38:59EXetoCright? gotta push a pointer or something
23:39:13Araqflaviu: it's no offense
23:39:31Jehan_EXetoC: Yes, with libunwind it's near zero. With C++, you can actually make it zero, as I recall.
23:40:48Jehan_It can sometimes be more interesting to have a cheap catch and a cheap throw rather than a zero-cost catch and a moderately expensive throw.
23:41:03Jehan_E.g. if you want to write Prolog-style logic.
23:42:02Araqperhaps one root problem is that excessive implicit parameter passing is usually not a language feature
23:42:32Jehan_Araq: Hmm, what's the context for that?
23:42:39Araqwith that I can envision a decent error object that's passed around everywhere
23:42:48Araqand then no exceptions are necessary
23:42:59Jehan_Oh, I see.
23:43:00Araqwell very roughly speaking
23:43:07Araqdidn't think it through
23:43:10Jehan_Well, there's also the Smalltalk approach.
23:43:21Jehan_I.e. … ifFailed: […]
23:45:04Jehan_option/either types can handle some cases cleanly, but can also really litter your code with boilerplate (esp. if you need to pass them up a few levels).
23:46:55flaviuHas anyone profiled nimble exceptions?
23:47:06Varriount*Nim
23:47:27Jehan_flaviu: They're exactly as fast or slow as setjmp()/longjmp() and try/throw.
23:48:07Jehan_Basically, setjmp() requires you to dump all registers to memory and declare some local variables as volatile.
23:48:57flaviu3.80s with exceptions throwable but never thrown, 4.08s without one throwable.
23:49:31flaviuMy code: https://gist.github.com/70a085e3b50427d7b84f
23:49:49Araqthe volatile is necessary because C's idea of simplicity is to conflate lots of different things with a single keyword
23:50:28VarriountJehan_, Araq: Could the nimrod compiler generate extra variables to store *just* the state that needs to be saved for a try/except?
23:51:14Jehan_Varriount: Yes, but that's not necessarily cheaper.
23:51:22Jehan_Difficult to tell for any specific case.
23:52:33Jehan_flaviu: The cost is in the try statement if the exception is never raised in C mode.
23:54:37flaviuJehan_: Right, let me fix that. I also forgot to print my result.
23:54:43Jehan_Try https://gist.github.com/rbehrends/4d990488284f87ee7ba4 in C and C++ mode.
23:55:04*Matthias247 quit (Read error: Connection reset by peer)
23:55:37Araqis it too late to make 'asm' a pragma?
23:55:40flaviuWell, I added try-catch in my benchmark. The difference is .. dramatic.
23:56:01flaviu3.81s without the try-catch, 74.44s with
23:56:03Araqmakes no sense it isn't a pragma
23:56:03VarriountAraq: Probably not. There's only a handful of things that use the asm pragma (if any)
23:56:13flaviuAraq: Nope. We have emit.
23:56:40Araqok, will do it for bigbreak
23:56:42Jehan_flaviu: Have you tried both C and C++ mode?
23:56:48VarriountSo... perhaps we could introduce libunwind as an optional dependancy?
23:57:27Jehan_Varriount: Not sure if that's cleanly doable everywhere.
23:57:40flaviuC++, with try: 4.09s, without try: 3.74s
23:57:48Jehan_I'd have to look at it first.
23:57:58flaviuAnyway, far too much complexity.
23:58:10flaviuThe only correct choice is to wait until someone complains
23:58:12Jehan_I vaguely recall something about libunwind being a bit fickle.
23:58:21AraqVarriount: sounds like another maintenance desaster
23:58:22flaviuand then get them to add the zero-overhead exceptions
23:59:43flaviuHave there been any idea on how to make variant types type-safe?