00:00:56 | * | nande quit (Client Quit) |
00:02:55 | * | nande joined #nimrod |
00:03:07 | * | noam joined #nimrod |
00:14:48 | * | untitaker quit (Quit: ZNC - http://znc.in) |
00:15:18 | * | untitaker joined #nimrod |
00:19:29 | * | untitaker quit (Client Quit) |
00:19:53 | * | brson quit (Ping timeout: 240 seconds) |
00:19:59 | * | untitaker joined #nimrod |
00:22:51 | * | brson joined #nimrod |
00:39:51 | * | xenagi joined #nimrod |
01:04:14 | flaviu | Araq: Break up the compiler into at least 10 different passes and figure out a way to make the AST typesafe and I will not have any excuse not to help. |
01:21:10 | * | willwillson quit (Ping timeout: 250 seconds) |
01:25:09 | * | q66 quit (Quit: Leaving) |
01:25:17 | * | brson quit (Ping timeout: 245 seconds) |
01:29:24 | * | brson joined #nimrod |
01:31:18 | * | nande_ joined #nimrod |
01:31:59 | * | EXetoC quit (Quit: WeeChat 0.4.3) |
01:32:26 | * | nande quit (Ping timeout: 250 seconds) |
01:49:11 | * | Kelet quit (Remote host closed the connection) |
02:06:06 | * | filwit quit (Quit: Leaving) |
02:14:28 | * | saml_ joined #nimrod |
02:37:28 | * | fran__ joined #nimrod |
02:39:53 | * | Fr4n quit (Ping timeout: 240 seconds) |
02:54:06 | * | adoniscik quit (Quit: Leaving) |
02:55:09 | * | brson quit (Ping timeout: 240 seconds) |
02:58:37 | * | brson joined #nimrod |
03:04:49 | * | Demos quit (Quit: Leaving) |
03:09:30 | * | nande_ is now known as nande |
03:13:04 | * | Boscop joined #nimrod |
03:25:25 | * | ehaliewicz joined #nimrod |
04:05:34 | * | darkf_ joined #nimrod |
04:06:25 | * | flaviu quit (Ping timeout: 272 seconds) |
04:06:48 | * | darkf quit (Ping timeout: 250 seconds) |
04:09:53 | * | darkf_ is now known as darkf |
04:15:34 | * | brson quit (Ping timeout: 264 seconds) |
04:26:56 | * | bogen joined #nimrod |
04:34:20 | * | xenagi quit (Quit: Leaving) |
04:37:16 | * | ome joined #nimrod |
04:37:31 | * | saml_ quit (Remote host closed the connection) |
04:39:57 | * | ARCADIVS joined #nimrod |
05:11:03 | * | nande quit (Read error: Connection reset by peer) |
05:44:32 | * | gkoller joined #nimrod |
06:10:44 | * | ehaliewicz quit (Read error: Connection reset by peer) |
06:41:50 | * | bjz quit (Quit: Textual IRC Client: www.textualapp.com) |
06:46:22 | * | shodan45 quit (Quit: Konversation terminated!) |
07:05:27 | Skrylar | hmm |
07:39:54 | * | vegai joined #nimrod |
07:46:33 | vegai | hey |
07:46:46 | vegai | are people aware that nimrod-0.9.4 and babel-0.4 seems to be an uncompilable combo? |
07:47:11 | vegai | documentation says to run |
07:47:11 | vegai | nimrod c -r src/babel install |
07:47:14 | vegai | which ends up with |
07:47:22 | vegai | Hint: compat [Processing] |
07:47:22 | vegai | /home/vegai/git/babel/src/babel.nim(293, 6) Hint: 'depNameVer' is declared but not used [XDeclaredButNotUsed] |
07:47:25 | vegai | /home/vegai/git/babel/src/babel.nim(674, 66) Error: undeclared identifier: '{}' |
07:48:29 | vegai | that line is |
07:48:30 | vegai | let thisPkgsDep = options.babelData["reverseDeps"]{pkg.name}{pkg.version} |
07:48:36 | vegai | so I suppose pkg.version is empty for some reason |
07:52:33 | vegai | this was attempted on ARM platform btw, if that matters |
07:58:56 | * | kunev joined #nimrod |
08:01:44 | Skrylar | truth be told, i have never even tried to use babel even though i've been writing nimrod code for a few months |
08:06:11 | * | Boscop quit (Read error: Connection reset by peer) |
08:21:43 | def- | vegai: I think yesterday dom96 was trying to fix that |
08:39:04 | * | Ven joined #nimrod |
09:18:32 | * | Trustable joined #nimrod |
09:59:37 | * | ARCADIVS quit (Quit: WeeChat 0.4.3) |
10:00:40 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:04:41 | * | Ven joined #nimrod |
10:10:24 | vegai | def-: ok |
10:48:31 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
11:11:13 | * | Ven joined #nimrod |
11:18:56 | * | saml_ joined #nimrod |
12:56:22 | * | darkf quit (Quit: Leaving) |
13:02:04 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:21:50 | * | saml_ quit (Quit: Leaving) |
13:23:40 | * | willwillson joined #nimrod |
13:24:13 | * | Ven joined #nimrod |
13:40:18 | * | gkoller quit (Quit: Textual IRC Client: www.textualapp.com) |
14:32:28 | * | Ven quit (Ping timeout: 260 seconds) |
15:25:49 | * | Ven joined #nimrod |
15:33:44 | * | fran__ quit (Ping timeout: 255 seconds) |
15:34:59 | * | kunev quit (Quit: leaving) |
15:56:07 | * | fran__ joined #nimrod |
16:08:12 | * | untitaker quit (Ping timeout: 250 seconds) |
16:13:39 | * | untitaker joined #nimrod |
16:22:39 | * | brson joined #nimrod |
16:31:11 | * | EXetoC joined #nimrod |
16:39:20 | * | gkoller joined #nimrod |
16:54:10 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:03:56 | * | Ven joined #nimrod |
17:15:33 | * | willwillson quit (Ping timeout: 240 seconds) |
17:19:27 | * | q66 joined #nimrod |
17:42:07 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
17:50:15 | * | jhc76 joined #nimrod |
17:54:13 | Araq | hi jhc76 welcome |
17:54:59 | jhc76 | Araq: Hi! |
17:55:13 | dom96 | Argh. I guess I need to install 0.9.4 |
17:56:01 | * | io2 joined #nimrod |
18:00:27 | Araq | I need a new library directory for the new names |
18:03:11 | * | sdough joined #nimrod |
18:03:36 | Araq | hi sdough welcome |
18:03:44 | sdough | Hi Araq |
18:04:34 | * | jjap joined #nimrod |
18:06:27 | dom96 | hello jjap |
18:06:29 | jjap | Any advice about best practices for calling external process? I'm looking at the osproc.exec* procs and I'm trying to figure out the best way to call external processes without pain related to specific OSes, shells, bash quoting, etc |
18:06:33 | jjap | hi |
18:06:34 | * | dom96 wonders why the sudden influx of new users |
18:07:07 | reactormonk | dom96, we should have a survey to find out how users heard of nimro |
18:07:20 | reactormonk | dom96, wanna have a strawpoll lying around? |
18:08:06 | dom96 | reactormonk: I don't think we'll be able to come up with the correct answers. |
18:08:15 | jjap | Dunno. I heard about nimrod a years ago, but only now am I really giving it a shot. All this talk about compiled/static/"better c" finally pushed me over the edge |
18:08:17 | reactormonk | dom96, then keep a manual file. |
18:08:19 | jjap | *years ago |
18:08:19 | dom96 | Checking analytics is good enough. |
18:08:26 | dom96 | I can see a spike in visitors today |
18:09:47 | dom96 | Looks like I underestimated slashdot. http://news.slashdot.org/story/14/08/21/216217/latest-wikipedia-uproar-over-superprotection |
18:10:02 | reactormonk | dom96, you calling any external processes on a regular basis? |
18:11:01 | jjap | I'd like to replace my bash/ruby/etc scripts (glue code, commandline utilities) with something like nimrod |
18:11:05 | dom96 | reactormonk: external processes? Not sure what you mean. |
18:11:57 | Araq | jjap: dunno, osproc.execCmdEx is quite good, I think |
18:12:31 | Araq | execCmd is fine too but loses the exitCode |
18:16:03 | jjap | Thanks. I noticed one of them... execProcess, lets me send the args as a seq of strings. like startProcess(command="touch",args=["me.txt", "-xyz"])... I'm still experimenting |
18:16:26 | * | Ven joined #nimrod |
18:17:32 | reactormonk | dom96, ah, cool |
18:18:06 | jjap | When I used execCmd with one long string to send to the shell (bash in my case, but could be different), I had to run the input filenames through a regex to escape it properly. I was wondering if there's a way to avoid that, and not have to expect a bash shell |
18:20:26 | * | Matthias247 joined #nimrod |
18:20:32 | Araq | jjap: well os.execShellCmd() invokes it via a posix shell (wraps C's system() call) |
18:22:28 | * | jjap quit (Ping timeout: 246 seconds) |
18:23:52 | * | jjap joined #nimrod |
18:24:02 | jjap | sorry, shaky internet |
18:26:29 | reactormonk | jjap, gotta buy an internet stabilizer - for just 99,99BTC |
18:27:49 | jjap | I tried a conditioner, a booster, a http prefetcher, but nothing helps! |
18:28:30 | dom96 | jjap: You can take a look at the irc logs here: http://build.nimrod-lang.org/irclogs/ if you miss something. |
18:29:36 | jjap | Hmm. osproc.startProcess says "If env == nil the environment is inherited of the parent process." Running the nimrod code in terminal, this parent env should include my $PATH, no? |
18:29:38 | jjap | dom96: thanks |
18:30:04 | EXetoC | jjap: are your tubes clogged? |
18:31:04 | jjap | EXetoC: With the emails! They arrive days late. |
18:31:39 | EXetoC | :/ |
18:34:13 | jjap | Araq: execShellCmd seems like the most straightforward, but seems like the most fragile (passing one long string I'm hoping is escape, hoping is running on posix/bash). Am I just making this up? |
18:36:15 | jjap | Ah. I see osproc has quoteShell[Windows|Posix].... But I also notice that `discard osproc.startProcess(command="/usr/bin/touch",args=["me's y!.txt"])` creates the file without quoting problems |
18:52:04 | Araq | jjap: there is also some findExe() call that looks for the exe in your $PATH |
18:58:18 | * | willwillson joined #nimrod |
19:10:57 | jjap | Araq: Thanks. I'm having success so far with execProcess, using a sequence/array for the args (and removing poEvalCommand from the options, and including poUsePath) |
19:17:10 | Araq | brb |
19:18:42 | jjap | Hrm. Now I'd like to pipe from one process to another (sox -> faac)... Sounds like a great time to finally take the dogs out for a wa |
19:18:45 | jjap | lk |
19:31:14 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
19:32:04 | * | EXetoC quit (Read error: Connection reset by peer) |
19:34:12 | * | Ven joined #nimrod |
19:42:36 | Araq | back |
19:43:01 | Araq | so dom96 ... we either have large 'when defined(newNames)' section everywhere |
19:43:15 | Araq | or we duplicate the stdlib for the transition |
19:43:27 | * | flaviu joined #nimrod |
19:43:31 | Araq | or we need to rebuilt the C sources |
19:43:47 | Araq | and 0.9.4 can't even compile the new system.nim |
19:45:19 | Araq | hi flaviu |
19:45:25 | flaviu | Hi |
19:45:37 | * | Jehan_ joined #nimrod |
19:46:29 | Araq | we have: lexing, parsing, semcheck1, semcheck2, transf, lambdalifting, optional compile-time evaluation, code generation as passes |
19:46:35 | Araq | that's 8. |
19:46:47 | Araq | do you really think having 2 more would improve anything? |
19:46:48 | flaviu | lexing, parsing don't count as passes |
19:46:54 | Araq | sure they do |
19:47:33 | flaviu | In my world, the definition of pass is AST -> AST transformation |
19:47:52 | flaviu | So in which pass are symbols bound? |
19:48:00 | Araq | semcheck1 |
19:48:04 | flaviu | I don't see a "bind-symbol" pass |
19:48:17 | Araq | *shrug* that doesn't mean anything |
19:48:40 | Araq | it exists and also needs to do type-checking because of overloading |
19:49:29 | flaviu | Yes it does. More passes means that the programmer has to keep less in his head, just one pass at a time. |
19:49:48 | Araq | when you transform X -> Y X, you have to ensure that it doesn't produce Y Y X when the pass happens again |
19:50:17 | Araq | this can be a harder problem than "keeping less in one's head" |
19:51:19 | Araq | more passes also immediately means "slower compilations" btw |
19:51:35 | flaviu | Araq: There are worse things than slower compiles |
19:52:23 | flaviu | Like no one wanting to work on the compiler |
19:54:40 | dom96 | Araq: rebuild C sources sounds like the easiest option? |
19:55:15 | Araq | flaviu: so what other compilers did you ever look at and felt like contributing? |
19:55:33 | Araq | Lua? Python? GCC? FPC? clang? |
19:55:54 | Araq | LuaJIT? |
19:56:16 | Araq | the truth is Nim's internals are far easier than any of the above |
19:56:17 | flaviu | Araq: Good point, I should look around and see what compilers do what things right |
19:57:07 | flaviu | Araq: BTW, scala has 25 passes |
19:57:08 | flaviu | https://gist.github.com/flaviut/dc8cd86c69973ea3b0b9 |
19:57:27 | Jehan_ | I wouldn't exactly praise Scala's compilation process. :) |
19:57:48 | Araq | scala also compiles slowly and its architecture has more issues than nim's |
19:57:57 | flaviu | Araq: I won't argue there |
19:59:20 | Araq | ok, maybe Lua's internals are easier |
19:59:47 | Araq | if you don't look at the upval processing |
20:00:01 | Araq | which got its own paper written about it |
20:01:04 | flaviu | https://github.com/scala/scala/blob/2.11.x/src/compiler/scala/tools/nsc/transform/LazyVals.scala |
20:01:31 | flaviu | Pretty short, you can tell exactly what is going on and make changes without really worrying about how it interacts with everything else |
20:02:05 | Araq | lol, in your dreams |
20:08:19 | * | Joe_knock joined #nimrod |
20:08:43 | * | Joe_knock quit (Max SendQ exceeded) |
20:09:11 | * | Joe_knock joined #nimrod |
20:10:02 | * | Joe_knock quit (Max SendQ exceeded) |
20:10:28 | * | Joe_knock joined #nimrod |
20:11:22 | * | Joe_knock quit (Max SendQ exceeded) |
20:11:46 | * | Joe_knock joined #nimrod |
20:12:39 | * | Joe_knock quit (Max SendQ exceeded) |
20:13:06 | * | Joe_knock joined #nimrod |
20:13:59 | * | Joe_knock quit (Max SendQ exceeded) |
20:14:33 | * | Joe_knock joined #nimrod |
20:15:26 | * | Joe_knock quit (Max SendQ exceeded) |
20:15:26 | dom96 | Araq: Should this output true? https://gist.github.com/dom96/c7e89189ecc0bf1be26a |
20:15:57 | * | Joe_knock joined #nimrod |
20:16:09 | Araq | dom96: I think it shouldn't compile |
20:16:28 | Araq | not foo is bool, 5 is int, bool >= int makes no sense |
20:16:48 | * | Joe_knock quit (Max SendQ exceeded) |
20:16:49 | NimBot | nimrod-code/babel master 07d4fd2 Dominik Picheta [+0 ±1 -0]: Fixes compilation on 0.9.4. |
20:17:11 | Araq | oh wait |
20:17:16 | flaviu | Araq: not foo is bitwise not |
20:17:18 | Araq | not foo is an int too lol |
20:17:20 | * | Joe_knock joined #nimrod |
20:17:47 | dom96 | uhhh, that's a terrible gotcha. |
20:17:58 | Araq | yeah, perhaps we should use ~ instead |
20:18:14 | * | Joe_knock quit (Max SendQ exceeded) |
20:18:41 | * | Joe_knock joined #nimrod |
20:18:56 | flaviu | Araq: ~ is already regex match |
20:19:01 | flaviu | well, =~ |
20:19:32 | * | Joe_knock quit (Max SendQ exceeded) |
20:19:48 | flaviu | But `=~` and `~=` being different is weird |
20:19:58 | * | Joe_knock joined #nimrod |
20:20:31 | dom96 | yay, more code breakage :( |
20:20:52 | * | Joe_knock quit (Max SendQ exceeded) |
20:21:19 | * | Joe_knock joined #nimrod |
20:22:42 | flaviu | Save it for the code linters? |
20:27:33 | * | Ven quit (Ping timeout: 240 seconds) |
20:31:13 | Araq | bitnot can easily stay a function with the new ()-less syntax |
20:33:39 | * | Ven joined #nimrod |
20:34:47 | Araq | it's not commonly used anyway, no need to make it an operator |
20:36:57 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
20:40:23 | dom96 | it is if you're writing code which needs it. |
20:40:48 | Araq | we have bitsets instead |
20:41:40 | * | nande joined #nimrod |
20:45:19 | * | Mat3 joined #nimrod |
20:45:21 | Mat3 | hello |
20:47:35 | * | ome quit (Quit: Connection closed for inactivity) |
20:50:44 | Araq | hi Mat3 |
20:51:17 | Mat3 | hi Araq |
20:56:28 | Mat3 | I'm writing a monitor program for my native-code compiler which can be used as AOT backend for Nim(rod). This way all work left would be replacing Nimrod's C code generator |
20:57:01 | Mat3 | I see two advantages of this effort: |
20:57:26 | Mat3 | 1. I do not need to patch your VM |
20:57:46 | Mat3 | 2. it is still possible to compile code JIT at demand |
20:58:31 | Mat3 | the drawback is: The whole run-time state is not avariable for code optimization |
20:59:34 | Araq | what do you mean by "monitor program"? |
21:01:49 | Mat3 | something like this: http://blog.trikaliotis.net/index.php?post/2007/03/25/2-the-vice-monitor-part-i-memory-contents |
21:02:30 | Mat3 | http://en.wikipedia.org/wiki/Machine_language_monitor |
21:05:42 | * | io2 joined #nimrod |
21:08:12 | Mat3 | ^which such program I can code and debug the backend interactively at runtime |
21:08:27 | * | Mat3 thinks this is a good idea |
21:09:14 | * | sdough quit (Quit: sdough) |
21:16:09 | Araq | dunno. sounds complex |
21:18:20 | flaviu | complex is bad, mmkay |
21:22:20 | Araq | Mat3: a native code compiler is really nice, but "all the work left would be replacing the C code generator" is quite some work |
21:26:55 | * | jjap quit (Ping timeout: 246 seconds) |
21:27:56 | Mat3 | so what would be a better approach ? |
21:33:50 | Araq | make it generate GNU inline assembler per proc, then you can easily switch between the C impl and the asm impl to see which proc produces wrong code? |
21:34:31 | Araq | just an idea, but it seems feasible |
21:37:08 | Mat3 | hmm, I try it out |
21:39:43 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:40:02 | Araq | depends whether you have a GNU asm string representation of the assembler though |
21:40:36 | Araq | how do you currently emit the assembler? |
21:40:54 | Araq | in its binary representation? |
21:43:11 | Mat3 | yes, the code is compiled from an IL representation (NAVM code) |
21:44:53 | Mat3 | I have in addition coded an inline assembler for embedding NAVM code in Nimrod |
21:46:18 | Araq | perhaps you should generate ELF object files and then we can mix the C and asm backends this way |
21:46:53 | Mat3 | this would be an easy task |
21:46:55 | Araq | as I said, the mixing should be nice for debugging |
21:51:08 | Mat3 | get some sleep, ciao |
21:51:15 | * | Mat3 quit (Quit: Verlassend) |
21:56:58 | * | gkoller quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
22:06:50 | * | Jehan_ quit (Quit: Leaving) |
22:32:24 | * | Sht0 joined #nimrod |
22:33:28 | Varriount | Meep |
22:33:33 | Varriount | What's up guys? |
22:34:41 | Araq | hi Sht0 welcome |
22:37:12 | * | brson quit (Quit: Lost terminal) |
22:37:21 | * | brson joined #nimrod |
22:38:11 | Sht0 | Hi Araq & y'all! Nice to meet you :) |
22:38:31 | Araq | Varriount: I started a bigbreak branch |
22:38:52 | Araq | that contains the renamefest |
22:39:07 | Araq | but I'm struggling with how to do the backwards compatibility |
22:39:53 | * | saml quit (Quit: Leaving) |
22:41:48 | * | nande quit (Read error: Connection reset by peer) |
22:47:51 | Varriount | Araq: Well, you could throw it to the wind. |
22:48:23 | Varriount | Araq: There are plenty of things that need to be changed. *cough*walkTreeRec*cough* |
22:49:39 | Araq | what's wrong with that? |
22:49:52 | Araq | you mean walkDirRec, right? |
22:52:26 | Varriount | Er, yes. |
22:52:51 | Araq | yeah I recently tried to use it, lol |
22:52:52 | Varriount | Araq: The fact that returning a FileInfo object would be much more useful. |
22:53:07 | Araq | no, its interface is stupid and error prone |
22:53:21 | Araq | that it doesn't yield a FileInfo was not my problem with it |
22:53:24 | Varriount | What would be a more useful interface? |
22:53:42 | Araq | the filter is weird, but it is documented correctly |
22:53:51 | Araq | I didn't read the docs of course |
22:53:56 | Varriount | How is the filter wierd? |
22:55:32 | Araq | well I wanted to delete any dir that's named .svn |
22:55:41 | Araq | try that with walkDirRec |
22:55:53 | Araq | it cannot even yield directories |
22:56:28 | * | Sht0 quit () |
22:57:04 | * | io2 quit (Quit: ...take irc away, what are you? genius, billionaire, playboy, philanthropist) |
22:57:26 | * | Sht0 joined #nimrod |
23:13:37 | * | darkf joined #nimrod |
23:20:09 | * | enquora joined #nimrod |
23:24:18 | * | ARCADIVS joined #nimrod |
23:25:01 | * | Trustable quit (Quit: Leaving) |
23:28:23 | * | brson quit (Ping timeout: 240 seconds) |
23:29:33 | Araq | hmm with the new rules we have OSError for the exception and osError as the proc raising it |
23:30:42 | * | Sht0 quit () |
23:32:54 | dom96 | That's not a problem is it? |
23:33:07 | dom96 | Remember to make these errors a 'ref' so that we can write: raise OSError(..) |
23:38:45 | Araq | that is a problem for cs:none which is required by "nim pretty" to update the code |
23:41:32 | * | Boscop joined #nimrod |
23:46:54 | * | xenagi joined #nimrod |