00:05:22 | lorxu | Yeap |
00:05:39 | lorxu | I can't compile without that |
00:05:48 | NimBot | Araq/Nimrod devel 54f6280 Luis Ricardo [+0 ±1 -0]: Update cpuinfo.nim... 3 more lines |
00:05:48 | NimBot | Araq/Nimrod devel 8afb85b Andreas Rumpf [+0 ±1 -0]: Merge pull request #1559 from lorxu/devel... 2 more lines |
00:10:36 | Jehan_ | Araq: I think gradha's library and compiler may be out of sync. |
00:10:50 | Araq | ok |
00:13:36 | Jehan_ | Araq: Is there a reason why the libsqlite version for OS X is written that particular way? |
00:13:38 | Jehan_ | Lib = "(libsqlite3(|.0).dylib|sqlite-3.6.13.dylib)" |
00:14:24 | Jehan_ | I only encountered it because --dynliboverride didn't work, apparently because of the surrounding parentheses. |
00:14:44 | Jehan_ | But the fixed version number baffles me in particular. |
00:15:02 | * | ehaliewicz quit (Ping timeout: 255 seconds) |
00:15:15 | Araq | yeah |
00:15:19 | Araq | there is a reason |
00:15:39 | Araq | the syntax is (|) |
00:15:56 | Araq | so for the |sqlite part the () are required |
00:16:01 | Jehan_ | I see. |
00:16:17 | Jehan_ | And any reason why the sqlite-3.6.13.dylib is required? |
00:16:24 | * | dom96_ quit (Remote host closed the connection) |
00:19:28 | Araq | unlikely |
00:20:21 | * | q66 quit (Quit: Leaving) |
00:21:01 | Jehan_ | I see. I may still look into why dynliboverride doesn't work. |
00:21:24 | Araq | startswith vs contains, my guess |
00:24:57 | Jehan_ | No, there's actually a simple parser to return the canonical dynlib name, which apparently doesn't work for this case. |
00:26:16 | lorxu | May be could be added in future a array on header |
00:26:20 | Jehan_ | Not difficult to fix, but not something for tonight, either. :) |
00:26:39 | Araq | lol. amazing how much I forget about my own code |
00:26:46 | Jehan_ | lorxu: You're not the first one to suggest that. :) |
00:26:58 | lorxu | OK :) |
00:27:07 | Jehan_ | Araq: It's not just you. :) |
00:27:27 | Araq | header: "<foo.h>\n#include <hack.h>" |
00:27:45 | Araq | you simply need to be more creative :P |
00:29:06 | lorxu | I know that but it's not pretty |
00:29:17 | Jehan_ | Araq: Something tells me that whatever language spec there is, it doesn't include that. :) |
00:29:50 | Araq | indeed you might as well use .emit then |
00:30:26 | Jehan_ | 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:29 | Araq | sure, but I prefer header: ["foo.h", "bar.h"] instead of string voodoo |
00:33:05 | Araq | that's harder to implement though |
00:33:55 | Varriount | Meep |
00:34:24 | Varriount | Araq: 'winrelease'? |
00:34:54 | Jehan_ | Araq: Yeah, I know. |
00:35:19 | Jehan_ | I'm not sure if I currently have the energy to do that, though. But probably better to do it cleanly. |
00:39:19 | Araq | well it's super low priority IMHO |
00:39:54 | * | BlaXpirit-UA quit (Quit: Quit Konversation) |
00:42:16 | Jehan_ | Yeah. |
00:42:56 | Araq | Varriount: your question requires a verb |
00:44:14 | Varriount | Araq: What is 'winrelease' for? |
00:44:32 | Araq | it is for you. |
00:45:01 | Araq | my suggestion of how it should be done |
00:45:07 | Araq | with a nice XXX for you |
00:57:23 | Varriount | Araq: 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:11 | Araq | don't do that. do include a nimd.exe instead |
00:58:36 | Araq | we can make the error message say "use nimd.exe to get a stack trace" |
00:59:07 | Araq | nimd is the debug version of the compiler, obviously |
00:59:15 | Varriount | Hm, good idea. |
00:59:52 | Varriount | It's not like the compiler executable itself takes up much space. |
01:04:10 | Jehan_ | Interestingly enough, you can make tar.gz/.bz2/.xz files for csources considerably smaller by reordering the files in build/c_code. |
01:04:43 | Araq | reordering? |
01:06:21 | Jehan_ | Within the tar file that you then compress. |
01:06:43 | Jehan_ | By putting the different versions of each C file next to each other. |
01:07:23 | Varriount | That 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:22 | Jehan_ | Exactly. |
01:08:28 | Jehan_ | Doesn't work with .zip, of course. |
01:08:52 | Varriount | Jehan_: Because zip does per-file compression? |
01:08:58 | Jehan_ | Yes. |
01:09:45 | Jehan_ | I was primarily interested because I need compile-from-scratch source distributions for some of my stuff. |
01:10:01 | Varriount | Jehan_: Which makes me wonder if there isn't a program out there which re-arranges file contents to get the best compression |
01:10:06 | Araq | Jehan_: looked at niminst to do it for you? |
01:10:12 | Jehan_ | Araq: Do what? |
01:10:24 | Araq | source based distribution |
01:10:35 | Jehan_ | Oh, the source based distribution is not the problem. |
01:10:51 | Araq | Varriount: see you tomorrow? I need to sleep now |
01:10:59 | Jehan_ | I do ./koch csource -d:release -d:nocaas for that and package the compiler+build dir, basically. |
01:11:10 | Jehan_ | Which, obviously, does use niminst internally. |
01:11:34 | Varriount | Araq: Yes. |
01:11:35 | Araq | ah ok, good |
01:11:58 | Varriount | Araq: I have nothing but studying tomorrow, and it's a long weekend here (holidays) |
01:12:35 | Araq | Jehan_: I have another research task for you |
01:12:42 | Jehan_ | Araq: Oh? |
01:12:50 | Araq | figure out why compilation of niminst takes so long |
01:13:12 | Araq | I know it's because of the long .tmpl files |
01:13:27 | Araq | which get transformed into long add and & expressions |
01:13:38 | Jehan_ | Huh. I'll see if I can figure it out. Not tonight, though. |
01:13:48 | Araq | but I don't know why these are slow to compile |
01:14:04 | Araq | sure, no need to hurry |
01:14:16 | Araq | good 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:14 | Onionhammer | dom96_ i got it working |
02:46:28 | Onionhammer | dom96_ 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:11 | Araq | ping 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:31 | Onionhammer | hola |
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:07 | AndChat|18324 | Hola |
15:57:20 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
15:57:30 | * | saml_ joined #nimrod |
16:34:31 | Araq | servus |
16:49:31 | AndChat|18324 | Araq why you choose claro? For ui toolkit |
16:49:39 | * | AndChat|18324 is now known as lorxu |
16:49:59 | Araq | I didn't really choose it, I tried to revive it |
16:50:24 | Araq | it's small, in C and uses native widgets for macosx, linux and windows |
16:50:33 | lorxu | OK I was thinking in porting iup |
16:50:42 | Araq | and it's the *only* UI toolkit with these features |
16:51:18 | lorxu | What about IUP? |
16:52:00 | lorxu | And iup is MIT |
16:53:17 | Araq | we have an iup wrapper |
16:53:48 | Araq | but it doesnt run well on osx, afaict |
16:54:00 | lorxu | Ok |
16:59:12 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:00:28 | * | Trustable joined #nimrod |
17:01:24 | Trustable | Hi all |
17:05:02 | lorxu | Hi |
17:08:43 | * | Ven joined #nimrod |
17:11:30 | Araq | lorxu: do you mean wrapping or porting? |
17:11:46 | Araq | porting would be really awesome! |
17:24:46 | lorxu | Porting |
17:25:19 | Araq | than IUP looks better than Claro |
17:25:29 | Araq | Claro's code kind of sucks |
17:25:31 | Araq | bbl |
17:25:49 | lorxu | Jajaj |
17:25:57 | lorxu | Ok |
17:27:04 | lorxu | I will try to do that |
17:40:35 | NimBot | nimrod-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:41 | Araq | dom96: I've backported .deprecated to 0.9.6 |
17:51:52 | Araq | kind of embarrassing that it didn't work already |
17:51:59 | dom96 | Araq: lol ok |
17:52:11 | Araq | so ... we could do all the stdlib updates for 0.9.6 |
17:52:26 | Araq | bigbreak then would be --cs:partial plus the language enhancements |
17:52:40 | dom96 | that sounds like a lot of work |
17:52:43 | Araq | so that people actually have a migration path |
17:52:47 | Araq | it's not |
17:53:30 | dom96 | A case of copying + pasting lib/ from bigbreak to devel? |
17:55:38 | Araq | yup |
17:59:20 | dom96 | cool |
17:59:27 | dom96 | That would be nice. |
17:59:43 | dom96 | Means 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:07 | NimBot | Araq/Nimrod devel 6c9730b Araq [+0 ±2 -0]: fixes #1551 |
18:48:07 | NimBot | Araq/Nimrod devel 753d18d Araq [+0 ±1 -0]: minor cleanup for cpuinfo |
18:48:07 | NimBot | Araq/Nimrod devel 028a62e Araq [+0 ±2 -0]: documentation updates |
18:48:07 | NimBot | Araq/Nimrod devel 661c516 Araq [+0 ±6 -0]: backported .deprecated statement |
18:49:18 | * | Lorxu joined #nimrod |
18:50:45 | Lorxu | Araq you broke cpuinfo again |
18:50:50 | Lorxu | Lol |
18:51:56 | NimBot | Araq/Nimrod devel 34e96e3 Araq [+4 ±0 -0]: added missing nimfix files |
18:52:49 | Lorxu | emit put code after header pragma |
19:00:25 | Araq | Lorxu: how is that possible? |
19:00:40 | Araq | order dependency for headers? |
19:04:37 | Lorxu | Yes |
19:05:01 | Araq | that is just garbage |
19:05:22 | Araq | who comes up with crazy bullshit like this? |
19:05:48 | Lorxu | Param declare stuff used by sysctl |
19:06:05 | Lorxu | Param need to be first |
19:12:07 | Araq | see? bsd is an utter piece of shit stuck in the 70ies |
19:13:36 | Lorxu | Lol |
19:13:47 | Lorxu | This make sysctl portable |
19:15:36 | Lorxu | Not only BSD do that |
19:20:35 | Araq | no idea what you mean. order dependencies for public includes is just broken by design. |
19:20:47 | Lorxu | You can use sysctl to different function and don't have to rewrite |
19:21:04 | Lorxu | Only change the header |
19:21:42 | Araq | let me repeat: order dependencies for public includes is broken. I don't care if there are reasons for it. |
19:22:14 | Araq | it's like telling people they first have to import strutils before they are allowed to import os. |
19:22:47 | Araq | if Nim would do the same we wouldn't have a single user. |
19:23:16 | Varriount_ | The only reason C/C++ gets away with it is because when they were introduced, there wasn't a good alternative. |
19:23:34 | Araq | there was plenty of good alternatives out there |
19:23:44 | Araq | but programmers are stupid as fuck |
19:23:56 | Varriount_ | Araq: Including you and me? :3 |
19:24:00 | * | Varriount_ is now known as Varriount |
19:24:04 | Araq | oooh I like {} better than 'begin end'. memory safety? what's that? |
19:24:20 | Araq | programmers have no clue whatsoever about semantics |
19:24:25 | Lorxu | Bbl |
19:25:15 | Varriount | Araq: 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:34 | Varriount | You want me to use the trim tool to trim them down, correct? |
19:25:49 | Araq | only for 64 bits |
19:25:55 | Araq | I already did it for 32 bits |
19:26:05 | Araq | no need to do it again and go through the testing |
19:26:05 | Varriount | Araq: Which 32 bit package did you download? |
19:26:20 | Araq | Varriount: I used the mingw that we ship with 0.9.4 |
19:26:31 | Varriount | Eh.. that's outdated. |
19:26:48 | Araq | that's good enough for me |
19:26:51 | Araq | but ok fine |
19:27:01 | Araq | if you wanna do it, go ahead |
19:27:42 | Araq | actually trimcc has problems |
19:27:51 | Varriount | Oh? |
19:27:56 | Araq | so I only used it to determine deletion candidates |
19:28:15 | Araq | and then used restorecc to fix the resulting broken installation |
19:28:21 | Araq | however |
19:28:34 | Araq | if you're more patient than me it should work fine |
19:28:41 | Araq | without my voodoo |
19:28:48 | * | Jehan_ joined #nimrod |
19:28:55 | Varriount | Araq: What kind of problems? |
19:29:03 | Araq | it runs too long |
19:30:34 | Araq | btw it doesn't patch gdb |
19:32:21 | * | Lorxu quit (Ping timeout: 246 seconds) |
19:32:45 | * | Trustable quit (Quit: Leaving) |
19:46:23 | Varriount | Araq: I feel bad for my desktop computer. I'm running two buildbots, and two instances of trimcc |
19:47:09 | Varriount | That's 4 nimrod installations being used, two of which are being accessed constantly. |
19:47:30 | Araq | well read trimcc and come up with a more efficient solution |
19:48:09 | Araq | you can do much better if you could ask the OS which files have been read from recently |
19:48:16 | Araq | but I couldn't find such an API |
19:48:43 | Araq | the timestamps itself are wrong / misleading |
19:49:08 | Varriount | Yeah, timestamps aren't very reliable for such work. |
19:50:24 | Varriount | I 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:50 | Araq | trimcc deletes 30 files at once iirc |
19:50:57 | Varriount | Oh? |
19:51:08 | Araq | well I updated it, read the code |
19:51:50 | Araq | a mingw installation has over 8K files |
19:51:53 | * | xcombelle_ joined #nimrod |
19:52:07 | Araq | we cannot invoke nim+gcc over 8K times |
19:52:12 | Varriount | Araq: Was this on the devel or bigbreak branch? |
19:52:12 | Araq | that's just madness |
19:52:19 | Araq | bigbreak |
19:52:25 | Varriount | -_- |
19:52:54 | Varriount | I'm running off of devel. I assumed, since we were aiming to release devel, that this would be on the devel branch. |
19:53:02 | Araq | sorry |
19:53:14 | Araq | I'm usually on bigbreak |
19:55:24 | Jehan_ | Given how much you complain about Unix, Araq, Windows seems to involve a whole lot more work. :) |
19:57:35 | Araq | well, we're fighting with stuff on windows that unix people produced. |
19:57:51 | Araq | so .. I see no contradiction here :P |
19:58:12 | Varriount | Jehan_: Araq tends to complain about everything. |
19:58:32 | Jehan_ | Varriount: I know, me too. It's the German national sport. :) |
19:58:42 | Araq | lol, indeed |
19:58:57 | Araq | it's typical of germans indeed |
20:02:18 | Araq | speaking of which ... why would somebody like shebangs for nim? |
20:02:19 | Varriount | Again, I'm amazed my computer doesn't explode with the strain I put it under on a daily basis. |
20:02:24 | Araq | what's the use case? |
20:02:38 | Varriount | Araq: Nim as a scripting language? |
20:03:00 | Araq | sure but he doesn't want "nim i" for it |
20:04:34 | Jehan_ | Araq: Because "nim i" is not very usable at the moment? |
20:04:38 | EXetoC | why? you removed your fans? :p |
20:04:48 | Jehan_ | And yes, that's what I use it for at times. |
20:05:05 | Araq | ok, let me put it differently: |
20:05:10 | Araq | # is already a comment |
20:05:24 | Araq | so #! works if your shell thinks it should work |
20:05:32 | Araq | what am I missing? |
20:06:19 | Varriount | Araq: Uh, I'm getting a C compilation error when trying to compile trimcc.nim |
20:06:38 | Araq | Varriount: you need a patch from bigbreak to compile it |
20:06:48 | Araq | in fact, you can only compile it with bigbreak |
20:07:46 | Jehan_ | 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:16 | Varriount | Jehan_: By the way, why does you tool require sqlite? |
20:08:22 | Varriount | *your |
20:08:36 | Jehan_ | Varriount: Because there's no portable file locking in Nim. |
20:08:54 | Jehan_ | So I use SQLite's "begin exclusive" as a hack to emulate it. |
20:08:54 | Varriount | And what is file locking needed for? |
20:09:24 | Jehan_ | So that two instances of the process running concurrently don't mess up the nimcache directory (or the executable that's generated). |
20:09:50 | Varriount | Ah. |
20:10:12 | EXetoC | lock file + unique id? |
20:10:41 | Varriount | Araq: I'm getting "c:\test\nimrod64\tools\nimcache\trimcc.c:14:18: fatal error: vector: No such file or directory |
20:10:41 | Varriount | #include <vector>" |
20:10:48 | Jehan_ | 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:54 | Jehan_ | EXetoC: Hmm? |
20:12:30 | Araq | Varriount: with mixed mode working I want to ensure c++ installation still works |
20:12:44 | Araq | apparently it already doesn't work for you |
20:12:47 | * | Francisco joined #nimrod |
20:12:51 | Araq | use 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:58 | Araq | so Varriount ... how should we proceed? |
20:57:48 | NimBot | Araq/Nimrod devel 6a29fbf Araq [+0 ±1 -0]: be explicit about single letter options |
20:57:48 | NimBot | Araq/Nimrod devel 826d529 Araq [+4 ±22 -0]: Merge branch 'devel' of https://github.com/Araq/Nimrod into devel |
20:57:48 | NimBot | Araq/Nimrod devel 399c985 Araq [+0 ±1 -0]: fixes recent regression |
20:58:46 | * | BlaXpirit joined #nimrod |
21:01:43 | Onionhammer | araq when is the new nim website redesign coming out |
21:02:28 | Araq | Onionhammer: no idea |
21:03:15 | Onionhammer | maybe i'll pitch some concept designs :P |
21:03:26 | Onionhammer | we need to be more trendy |
21:04:07 | Araq | er no |
21:04:11 | Araq | the design is finished |
21:04:23 | Onionhammer | the nimrod-lang.org site design? |
21:04:25 | Araq | but I don't know when we mange to update the docgen |
21:04:45 | Onionhammer | no offense.. but the design is pretty dated looking |
21:05:20 | Onionhammer | and UX wise not awesome. Each news article you add, the further down the page important links get pushed |
21:09:41 | Araq | I wonder if you saw the *old* site |
21:10:06 | Araq | anyway we have a new design and it's really nice, IMHO |
21:13:09 | Onionhammer | i did see the old site |
21:13:41 | Onionhammer | <argument from authority> I do web apps for a living, so.. :P |
21:14:12 | Araq | well do you have an alternative design? |
21:14:21 | Araq | or are you just complaining? |
21:14:32 | Onionhammer | i dont right now, I was thinking of proposing one |
21:14:46 | Onionhammer | im not complaining, just expressing an opinion |
21:15:17 | Onionhammer | a rename deserves a rebrand |
21:15:36 | Araq | ok well. propose one then |
21:15:45 | Onionhammer | also consistency between the docs, the forum and the main site |
21:15:50 | Araq | ha |
21:15:56 | Araq | that's what we're getting |
21:16:06 | Onionhammer | ugh, with the purple? :P |
21:18:53 | Araq | what? purple? |
21:21:14 | Onionhammer | the background |
21:21:55 | Araq | that's some darkish blue for me :P |
21:22:09 | Onionhammer | lol |
21:22:27 | rpag | color blind people unite |
21:23:11 | Onionhammer | hehe |
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:08 | flaviu | Araq, Onionhammer: Wasn't filwit doing a redesign? |
21:40:33 | Araq | flaviu: yes, and he's basically finished |
21:40:51 | Araq | but it takes some effort to incorporate it into our website builder |
21:41:06 | flaviu | ah |
21:43:40 | Varriount | Araq: I finally ported my python directory symlinking tool to nimrod |
21:45:43 | NimBot | nimrod-code/babel master 7d18e2b Dominik Picheta [+0 ±1 -0]: Fixes version peg for multiple digit versions. |
21:45:43 | NimBot | nimrod-code/babel master adbc30c Dominik Picheta [+7 ±1 -6]: Renamed babel to nimble. |
21:45:43 | NimBot | nimrod-code/babel master b4d6b1f Dominik Picheta [+2 ±0 -2]: s/babel/nimble |
21:47:54 | Araq | Varriount: what does that mean? |
21:48:06 | Araq | and how is trimcc working for you? |
21:49:58 | Varriount | Araq: Still trying to figure out why it won't compile. |
21:50:31 | Varriount | Araq: 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:40 | dom96_ | Araq: Voila. |
21:55:05 | Araq | dom96_: yay :-) |
21:56:19 | Varriount | Huh? What did dom96 do? |
22:00:20 | Varriount | Araq: 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:21 | Varriount | It's much faster than copying an entire directory structure. |
22:02:57 | Varriount | It 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:09 | Varriount | Araq: 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:59 | Araq | hi flaviu |
22:23:10 | Araq | I'm installing virtualbox on my linux machine |
22:23:21 | Araq | guess what. it does not work. |
22:23:36 | Varriount | Uh oh. |
22:23:50 | * | Varriount hands flaviu the rantbrella |
22:23:50 | Araq | so I'm googling around |
22:23:55 | Araq | http://askubuntu.com/questions/41118/virtualbox-kernel-driver-not-installed |
22:24:36 | Araq | so much for bloated installers |
22:24:52 | Araq | but maybe I should really switch distros |
22:25:09 | Araq | can't lose anything since nothing works anyway |
22:26:23 | will | don't you normally have to build some dkms modules? |
22:30:41 | Araq | Please reinstall the kernel module by executing |
22:30:43 | Araq | '/etc/init.d/vboxdrv setup' |
22:30:44 | Araq | as root. |
22:30:52 | Araq | nope, no way I'll do that |
22:32:11 | will | maybe try qemu ;D |
22:32:24 | Araq | oh well, let me try it, it will fail anyway |
22:32:33 | EXetoC | -.- |
22:32:34 | Araq | sudo /etc/init.d/vboxdrv setup |
22:32:46 | Araq | sudo: /etc/init.d/vboxdrv: command not found |
22:33:20 | Araq | ok, so let's install vboxdrv via synaptic |
22:33:39 | Araq | ah but there is no package of that name |
22:33:47 | Araq | so ... google again I guess? |
22:33:55 | * | brson joined #nimrod |
22:34:27 | flaviu | lol |
22:35:16 | * | flaviu holds the rantbrella |
22:35:43 | Araq | and the thing is: |
22:35:51 | Araq | all these things used to work with this distro |
22:35:53 | flaviu | Araq: FWI, that hi was 40 minutes late :P |
22:36:10 | Araq | these are all regressions |
22:36:19 | Araq | because there is no QA |
22:36:37 | Araq | and that's why every year is the year of the linux desktop |
22:36:49 | Araq | except that it never happens |
22:37:44 | Jehan_ | Well, Linux is an OS for DIY types. |
22:38:00 | Jehan_ | Nothing inherently wrong with that, just not surprising that its popularity is limited. |
22:38:34 | flaviu | Araq: Arch linux Just Works wrt virtualbox |
22:38:47 | flaviu | You just have to modprobe vboxdrv and you're done |
22:39:52 | EXetoC | possibly after upgrading the kernel |
22:40:16 | EXetoC | if versions are not synced that is |
22:40:47 | EXetoC | worked for me after that |
22:41:21 | Araq | an *un*operating system is inherently wrong :P |
22:42:39 | Araq | I 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:22 | flaviu | Varriount: I removed the first couple of paragraphs of your style FAQ, since they were a bit rambly and didn't say much |
22:52:59 | flaviu | Is https://github.com/Araq/Nimrod/wiki/Community-Projects really helpful? Isn't that the purpose of Babel? |
22:54:40 | Araq | babel has no website exposing nice packages |
22:54:44 | flaviu | Wait, what is the difference between the whitespace FAQ and the NEP Style Guide? |
22:54:52 | flaviu | Araq: Sounds like a bug in babel. |
22:55:07 | Araq | the whitespace FAQ predates the NEP |
22:55:11 | Araq | I think |
23:09:19 | Araq | flaviu: feel free to "fix" it |
23:09:30 | Araq | btw it just got renamed to Nimble |
23:09:44 | flaviu | Really? Ok. |
23:09:52 | flaviu | I left the whitespace FAQ mostly as-is |
23:10:09 | flaviu | There was another style guide, which I merged into NEP1 |
23:11:27 | Varriount | flaviu: I don't mind. I was following the style of the python PEP's, which usually have a paragraph explaining their purpose. |
23:11:42 | flaviu | ok |
23:15:17 | * | will quit (Ping timeout: 245 seconds) |
23:16:36 | Araq | flaviu: excellent, thank you. |
23:27:50 | Jehan_ | 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:05 | Araq | the later |
23:28:22 | Varriount | *latter |
23:28:26 | Araq | .babel file should still be fine |
23:29:09 | flaviu | Just curious, what purpose does the C++ backend have? |
23:29:27 | Varriount | flaviu: Interacting with C++ libraries? |
23:29:33 | flaviu | C works fine for that. |
23:29:42 | flaviu | Nimrod is mostly a procedural language anyway. |
23:30:02 | flaviu | Oh, the other way around |
23:31:03 | EXetoC | exception handling performance |
23:33:11 | Varriount | Araq: Mingw also includes a distribution of ada and tcl. :3 |
23:33:12 | flaviu | Is 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:37 | Varriount | flaviu: Depends on the quality of the program. |
23:33:40 | Jehan_ | flaviu: Short answer: Yes. |
23:34:04 | Varriount | flaviu: I once (naively) created a parser which made prominant use of exceptions as control flow. |
23:34:13 | Araq | Varriount: I noticed. the Ada binaries are big. got rid of them before anything else |
23:34:19 | flaviu | Varriount: Why? Just write a goto library. |
23:34:26 | Varriount | flaviu: This was for python |
23:35:04 | Jehan_ | In particular, C++ allows for zero cost exceptions (i.e., zero overhead if no exception is raised). C doesn't. |
23:35:26 | Varriount | flaviu: 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:08 | Jehan_ | Well, technically C allows it with libunwind, but that's a portability hassle. |
23:36:23 | Araq | flaviu 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:56 | flaviu | I'm not sure I understand. |
23:37:41 | Jehan_ | 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:39 | EXetoC | Jehan_: almost zero |
23:38:41 | Jehan_ | I still end up with the problem that there's no sane alternative to handling a failed precondition. |
23:38:59 | EXetoC | right? gotta push a pointer or something |
23:39:13 | Araq | flaviu: it's no offense |
23:39:31 | Jehan_ | EXetoC: Yes, with libunwind it's near zero. With C++, you can actually make it zero, as I recall. |
23:40:48 | Jehan_ | 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:03 | Jehan_ | E.g. if you want to write Prolog-style logic. |
23:42:02 | Araq | perhaps one root problem is that excessive implicit parameter passing is usually not a language feature |
23:42:32 | Jehan_ | Araq: Hmm, what's the context for that? |
23:42:39 | Araq | with that I can envision a decent error object that's passed around everywhere |
23:42:48 | Araq | and then no exceptions are necessary |
23:42:59 | Jehan_ | Oh, I see. |
23:43:00 | Araq | well very roughly speaking |
23:43:07 | Araq | didn't think it through |
23:43:10 | Jehan_ | Well, there's also the Smalltalk approach. |
23:43:21 | Jehan_ | I.e. … ifFailed: […] |
23:45:04 | Jehan_ | 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:55 | flaviu | Has anyone profiled nimble exceptions? |
23:47:06 | Varriount | *Nim |
23:47:27 | Jehan_ | flaviu: They're exactly as fast or slow as setjmp()/longjmp() and try/throw. |
23:48:07 | Jehan_ | Basically, setjmp() requires you to dump all registers to memory and declare some local variables as volatile. |
23:48:57 | flaviu | 3.80s with exceptions throwable but never thrown, 4.08s without one throwable. |
23:49:31 | flaviu | My code: https://gist.github.com/70a085e3b50427d7b84f |
23:49:49 | Araq | the volatile is necessary because C's idea of simplicity is to conflate lots of different things with a single keyword |
23:50:28 | Varriount | Jehan_, Araq: Could the nimrod compiler generate extra variables to store *just* the state that needs to be saved for a try/except? |
23:51:14 | Jehan_ | Varriount: Yes, but that's not necessarily cheaper. |
23:51:22 | Jehan_ | Difficult to tell for any specific case. |
23:52:33 | Jehan_ | flaviu: The cost is in the try statement if the exception is never raised in C mode. |
23:54:37 | flaviu | Jehan_: Right, let me fix that. I also forgot to print my result. |
23:54:43 | Jehan_ | 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:37 | Araq | is it too late to make 'asm' a pragma? |
23:55:40 | flaviu | Well, I added try-catch in my benchmark. The difference is .. dramatic. |
23:56:01 | flaviu | 3.81s without the try-catch, 74.44s with |
23:56:03 | Araq | makes no sense it isn't a pragma |
23:56:03 | Varriount | Araq: Probably not. There's only a handful of things that use the asm pragma (if any) |
23:56:13 | flaviu | Araq: Nope. We have emit. |
23:56:40 | Araq | ok, will do it for bigbreak |
23:56:42 | Jehan_ | flaviu: Have you tried both C and C++ mode? |
23:56:48 | Varriount | So... perhaps we could introduce libunwind as an optional dependancy? |
23:57:27 | Jehan_ | Varriount: Not sure if that's cleanly doable everywhere. |
23:57:40 | flaviu | C++, with try: 4.09s, without try: 3.74s |
23:57:48 | Jehan_ | I'd have to look at it first. |
23:57:58 | flaviu | Anyway, far too much complexity. |
23:58:10 | flaviu | The only correct choice is to wait until someone complains |
23:58:12 | Jehan_ | I vaguely recall something about libunwind being a bit fickle. |
23:58:21 | Araq | Varriount: sounds like another maintenance desaster |
23:58:22 | flaviu | and then get them to add the zero-overhead exceptions |
23:59:43 | flaviu | Have there been any idea on how to make variant types type-safe? |