Show enters and exits. Hide enters and exits.
| 00:00:02 | brixen | I have all the gems it wants installed |
| 00:00:05 | brixen | I can load them |
| 00:00:06 | toulmean | yes. Something's not right about our way of specifying gem dependencies |
| 00:00:19 | evan | http://gist.github.com/412581 |
| 00:00:20 | toulmean | ok I pushed rjb changes |
| 00:00:29 | evan | toulmean: you're ending up specifying them as absolute version numbers |
| 00:00:41 | evan | rather than a minimum version |
| 00:00:59 | toulmean | evan: it makes sense to avoid going in support hell. It's kind of an historic stand by the original committer, Assaf Arkin |
| 00:01:04 | toulmean | I can open a bug for it. |
| 00:01:34 | evan | toulmean: it's pretty disruptive |
| 00:01:43 | evan | it means it's quite hard for buildr to interoperate with things. |
| 00:01:49 | toulmean | yep |
| 00:02:10 | toulmean | but then really. Didn't you know buildr was the center of the world ? |
| 00:02:33 | evan | i guess I missed that memo |
| 00:02:58 | toulmean | ok. Hey seriously. It's been that way forever for us because we had a good set of dependencies to work with. |
| 00:03:08 | toulmean | now. It's not a good idea in general. I agree. |
| 00:03:11 | toulmean | I'm ready to change that. |
| 00:03:17 | evan | the isuse is that you have a giant list of deps |
| 00:03:25 | evan | and it's trivial to not work |
| 00:03:34 | evan | heck, it didn't work for me out of the box. |
| 00:03:42 | evan | because i had rspec 1.3.0 installed |
| 00:03:49 | evan | and -S spec loaded 1.3.0 |
| 00:04:21 | toulmean | evan: I am used to install stuff with version numbers. |
| 00:04:27 | toulmean | good feedback. |
| 00:04:32 | toulmean | https://issues.apache.org/jira/browse/BUILDR-445 |
| 00:05:33 | toulmean | evan: I'll commit your change, actually |
| 00:05:52 | toulmean | or will redo it if you don't want to contribute the diff as apache attachment. |
| 00:06:44 | evan | toulmean: very few people commit stuff by forcing a older version of a gem |
| 00:06:48 | evan | they do "gem install rspec" |
| 00:06:50 | evan | and get the latest. |
| 00:09:43 | brixen | toulmean: did you push all your changes? |
| 00:09:46 | brixen | toulmean: to rjb? |
| 00:12:41 | toulmean | yes |
| 00:16:31 | brixen | toulmean: you have the ordering wonky |
| 00:16:32 | brixen | http://gist.github.com/412592 |
| 00:18:46 | toulmean | brixen: well it's defined right ? RHASH_TBL |
| 00:19:05 | toulmean | but yeah right. |
| 00:20:54 | brixen | toulmean: well, 1. it must be #ifdef HAVE_... and 2. checking that first gives us more latitude with RHASH_TBL |
| 00:21:14 | toulmean | oh ok |
| 00:21:25 | brixen | the #if HAVE was failing |
| 00:21:35 | toulmean | lol. I'm so bad at this. |
| 00:21:43 | brixen | no prob |
| 00:21:45 | toulmean | brixen: let me add you as committer on my rjb fork |
| 00:21:50 | brixen | ok |
| 00:22:11 | toulmean | done |
| 00:22:24 | brixen | I have no idea why gem cannot load gems when running rake spec in buildr clone |
| 00:22:41 | toulmean | brixen: ah ? |
| 00:22:51 | toulmean | hmmm |
| 00:23:03 | brixen | oh, I just updated |
| 00:23:06 | brixen | let's try again |
| 00:23:31 | brixen | nope, wtf |
| 00:23:49 | toulmean | evan: http://bit.ly/ccw54L |
| 00:24:07 | toulmean | brixen: for now, maybe just good enough to run spec directly |
| 00:24:19 | toulmean | brixen: spec spec/**/*spec.rb ? |
| 00:28:20 | brixen | toulmean: ok, I need evan's visibility fix now |
| 00:28:39 | evan | ok, give me a sec |
| 00:28:44 | evan | i had a call with my rubysoc student. |
| 00:28:51 | evan | and i'm getting some test failures I think. |
| 00:28:59 | brixen | anyway, あいきど |
| 00:29:08 | brixen | bbl... |
| 00:30:18 | toulmean | no problem guys. |
| 00:30:26 | toulmean | hey thanks for the hard work today, you are awesome. |
| 00:30:37 | brixen | heh, thank you! |
| 00:31:15 | toulmean | and thanks for sticking with me. I learn a lot. |
| 00:31:22 | brixen | n/p |
| 00:31:48 | brixen | we like hard problem, makes us stronger |
| 00:31:55 | brixen | like steel, in the flames... |
| 00:32:09 | brixen | ask Defiler about it, he's more poetic than I |
| 00:32:11 | brixen | :) |
| 00:32:15 | brixen | ok, gotta run.. |
| 00:32:22 | toulmean | lol |
| 00:34:30 | toulmean | for good measure adding evan as committer on rjb fork too |
| 00:34:31 | toulmean | in case |
| 00:34:38 | evan | ok! |
| 00:34:40 | evan | thanks! |
| 00:34:48 | evan | i'll do what I can to help make it better. |
| 00:35:14 | toulmean | evan: thanks so much. |
| 00:35:23 | evan | :) |
| 00:35:24 | toulmean | I will fix my code since brixen pointed me to it |
| 00:36:22 | toulmean | actually... I'd rather pull from his fork. Leave ownership of commit to him |
| 00:37:11 | evan | ok |
| 00:37:24 | toulmean | or if he can push whenever he's back actually, since he didn't fork on github. |
| 00:37:27 | toulmean | hmmm |
| 01:32:02 | boyscout | Make sure thet the default vis in a script body is private. Fixes #327 - e2edead - Evan Phoenix |
| 01:32:02 | boyscout | Fix INT2NUM to actually take a long, not an int. - 8b1f899 - Evan Phoenix |
| 01:32:45 | evan | e2edead... thats a weird SHA1 |
| 01:33:42 | Defiler | at least it isn't skreeee |
| 01:33:53 | Defiler | because then you know the git is haunted |
| 01:35:04 | evan | hah |
| 01:41:27 | boyscout | CI: rubinius: 8b1f899 successful: 3463 files, 13860 examples, 41514 expectations, 0 failures, 0 errors |
| 01:57:53 | Defiler | brixen: if you're working on something in stdlib, do you just use -I passwed to mspec to load your version of it? |
| 02:01:31 | Defiler | also, how could this possibly make sense? Revision = %q$Revision: 13657 $.split[1] |
| 02:01:37 | Defiler | why the hell would you do that? |
| 02:38:20 | toulmean | brixen : back ? can you push to rjb ? |
| 02:38:32 | toulmean | since you committed locally. |
| 03:01:04 | toulmean | ok never mind. I will fix my mess. |
| 03:01:57 | toulmean | evan: can I ask you about the .rbc files ? Can they be placed in a different dir ? Ok to add them to .gitignore, right ? |
| 03:06:53 | brixen | toulmean: yes, add .rbc to gitignore |
| 03:06:59 | brixen | toulmean: I pasted you a git format-patch |
| 03:07:09 | toulmean | oh ok |
| 03:07:10 | brixen | all you should have to do is save it and do: git am <file> |
| 03:07:18 | brixen | anyway, gotta grab some dinner |
| 03:07:20 | toulmean | ah ok... allright. |
| 03:07:22 | toulmean | thanks., |
| 03:07:23 | brixen | but I'll be back :) |
| 03:07:25 | brixen | n/p |
| 03:07:28 | toulmean | don't |
| 03:07:41 | toulmean | it's fine. I will clean up some more code and push all that. |
| 03:08:05 | brixen | k |
| 03:08:16 | brixen | Defiler: sorry, I have no idea what you mean about stdlib :) |
| 04:03:36 | toulmean | pushed all my rjb stuff |
| 04:10:20 | toulmean | brixen: looks like your format-patch was just a diff or missed a few lines at the top. I managed to get it committed though by recreating the missing mail headers. |
| 04:10:30 | toulmean | anyways. Got to go play GTA IV. |
| 08:50:41 | dbussink | brixen: still there? |
| 15:19:45 | Defiler | ssd so good: git clone rubinius rubinius_copy 0.41s user 1.24s system 94% cpu 1.738 total |
| 15:20:12 | Defiler | du -sh rubinius # 381M |
| 15:31:58 | Defiler | evan / brixen: Got some copy I'd like to change on the site; I guess it isn't in gh-pages anymore? |
| 15:33:44 | Defiler | "Highlevel, what is Rubinius?" is not english and must cease to be. |
| 15:57:06 | evan | Defiler: yes, it's move around. |
| 15:57:17 | evan | Defiler: what changes were you thinking? |
| 15:59:47 | matthewd | evan: http://gist.github.com/413163 -- any suggestions for a better parameter name than 'check_object_too'? :/ |
| 16:00:47 | evan | thats fine. |
| 16:01:48 | brixen | fine Goldfrapp rainy morning to y'all |
| 16:01:55 | brixen | dbussink: no, but I am now |
| 16:01:59 | evan | heh |
| 16:02:04 | matthewd | Okay... and any thoughts on the spec 92-107? |
| 16:02:16 | matthewd | brixen: ^^ |
| 16:02:31 | matthewd | It's probably too evil |
| 16:02:58 | matthewd | (Plus I think it has too many shoulds) |
| 16:03:41 | Defiler | evan: Highlevel, what => "What does Rubinius do?" |
| 16:03:42 | brixen | matthewd: yes, I have some things... |
| 16:03:56 | brixen | matthewd: should I just rewrite the spec or do you want me to try to explain them? :) |
| 16:03:58 | Defiler | and then maybe the next one as "How does Rubinius work?" |
| 16:04:16 | evan | Defiler: k |
| 16:04:37 | Defiler | Also, what do you think of making a preinstalled gem for 'system_timer' |
| 16:04:39 | matthewd | brixen: If you're okay with just rewriting it, I'm quite happy to try to learn by example :) |
| 16:04:47 | Defiler | which we could just stub with Timeout |
| 16:05:02 | Defiler | things that use it don't try to load it on rbx, 1.9, etc |
| 16:05:05 | brixen | matthewd: ok, le'me take a shot, then it will be easier to explain by contrast |
| 16:05:22 | Defiler | but it doesn't even install on rbx so you can't get that far if the gem lists it as a dependency |
| 16:05:26 | matthewd | brixen: Noting that Object and Kernel in there are special; they're not just me being too lazy to create my own class/module |
| 16:05:35 | evan | Defiler: We should talk to the system_timer author instead |
| 16:05:37 | brixen | matthewd: gotcha |
| 16:05:45 | Defiler | http://gist.github.com/413320 |
| 16:05:46 | evan | and get them to add code at the top to make it a noop on Rubinius |
| 16:05:52 | Defiler | is what memcache-client has in it |
| 16:06:04 | Defiler | but you'll never reach that code if you install a gem that depends on system_timer |
| 16:06:07 | Defiler | but yeah |
| 16:06:09 | Defiler | let me go find the code for that |
| 16:06:43 | evan | ug, memcache-client does that? |
| 16:07:00 | evan | well, SystemTimer needs to allow itself to be used as a noop if it's on 1.9 or Rubinius |
| 16:07:17 | brixen | matthewd: is Object.class_eval significant over class Object ? |
| 16:07:32 | matthewd | brixen: Nope |
| 16:07:37 | Defiler | no, it doesn't, but I ended up with some code that did |
| 16:07:38 | brixen | matthewd: k |
| 16:08:03 | Defiler | http://github.com/ph7/system-timer |
| 16:08:06 | Defiler | man, not linked ANYWHERE heh |
| 16:08:38 | matthewd | brixen: Though, there's a reasonable chance that if someone breaks this, the content of the module_eval will raise |
| 16:09:13 | matthewd | See, for example, the current rbx behaviour, IIRC :) |
| 16:09:30 | brixen | matthewd: ok, in that case I see the tradeoff |
| 16:10:22 | matthewd | But certainly the class_eval is pure setup |
| 16:15:58 | brixen | matthewd: in the alias_method specs, why are public_instance_methods mapped instead of have_public_instance_method used? |
| 16:17:01 | matthewd | brixen: Cargo culted :( |
| 16:17:11 | brixen | eeks seriously? |
| 16:17:19 | brixen | where do you see this? we need to fix it |
| 16:17:49 | matthewd | module_function_spec.rb |
| 16:17:55 | brixen | ok |
| 16:18:06 | matthewd | Erm, that uses public_methods |
| 16:18:14 | brixen | sure, bet same diff |
| 16:18:18 | brixen | er but |
| 16:18:59 | brixen | I need to add have_public_method |
| 16:20:23 | boyscout | Raise the right exception when alias fails in a module. - fa48655 - Matthew Draper |
| 16:23:54 | matthewd | evan: BTW, find_method_in_hierarchy and lookup_method are very similar... are they kept split deliberately? (both in common/module.rb, next to each other) |
| 16:25:18 | matthewd | And there's a find_class_method_in_hierarchy, for which I can't find a caller |
| 16:28:30 | boyscout | CI: rubinius: fa48655 successful: 3463 files, 13860 examples, 41514 expectations, 0 failures, 0 errors |
| 16:29:24 | evan | matthewd: it's fine to refactor them together |
| 16:29:32 | evan | matthewd: over time, we've grown methods for method lookup |
| 16:29:39 | evan | the tree just needs to be pruned. |
| 16:38:13 | evan | brixen: how would you prefer I test something that needs to reopen STDOUT |
| 16:38:23 | evan | fork? ruby_exe with -e? |
| 16:41:34 | brixen | I would use ruby_exe, yes |
| 16:41:40 | brixen | you can make a script if you need to |
| 16:41:46 | evan | thats fine |
| 16:41:49 | evan | it's a short sequence |
| 16:41:49 | brixen | put it in the fixture dir |
| 16:41:56 | brixen | ok, that's fine too |
| 16:41:57 | evan | i can put it straight into ruby_exe |
| 16:47:55 | boyscout | Add spec for STDOUT.reopen(path) effecting system fds - e3ddc73 - Evan Phoenix |
| 16:47:55 | boyscout | Make STDOUT.reopen(path) effect the system fd. Fixes #322. - 3cc99fa - Evan Phoenix |
| 16:52:23 | scoopr | did the llvm2.7 stuff land in master yet? |
| 16:55:33 | matthewd | must sleep |
| 16:55:50 | matthewd | brixen: If you can ping me with a gist, I'll clean up those specs tomorrow |
| 16:56:11 | evan | scoopr: no. |
| 16:56:22 | scoopr | k |
| 16:56:37 | brixen | matthewd: sure thing, almost there |
| 16:56:56 | brixen | matthewd: I'll give you a format-patch with my comments, but feel free to just apply it as a diff |
| 16:58:11 | evan | ok, gotta run an errand |
| 16:58:14 | evan | be back in about an hour. |
| 16:58:54 | brixen | poor errand, getting run around for an hour |
| 16:59:57 | boyscout | CI: rubinius: 3cc99fa successful: 3463 files, 13861 examples, 41515 expectations, 0 failures, 0 errors |
| 17:24:41 | dbussink | brixen: did you guys consider setting up a ci system that also includes specs / tests for known good gems? |
| 17:25:07 | brixen | dbussink: well, there is tinderbox |
| 17:25:41 | brixen | or what was that called... |
| 17:27:02 | dbussink | brixen: most stuff here is passing rbx btw :) http://wiki.github.com/datamapper/dm-core/matrix |
| 17:28:19 | brixen | dbussink: wow, that is so awesome :) |
| 17:28:30 | brixen | I can't find this damn gem test thing |
| 17:29:19 | brixen | woot dm-types :) |
| 17:31:08 | dbussink | brixen: there's something up there :P |
| 17:31:28 | dbussink | stuff passing 1.8.6 and not 1.8.7 / 1.9.1 etc. isn't normal |
| 17:31:42 | dbussink | this is last 1.8.6 supported release probably, or maybe that will be scrapped |
| 17:32:19 | brixen | ok, so tinderbox is the graphical campfire app, *firebrigade* is the testing framework |
| 17:33:40 | brixen | http://firebrigade.seattlerb.org/ |
| 18:19:50 | brixen | matthewd: http://gist.github.com/413468 |
| 18:20:03 | brixen | matthewd: please ask about anything that doesn't make sense |
| 18:20:17 | brixen | matthewd: I think I reproduced your intent, but I could be wrong |
| 18:21:06 | brixen | matthewd: these all pass on 1.8.6.369, 1.8.7.249, 1.9.3dev r27874 |
| 18:21:12 | brixen | matthewd: and fail terribly on rbx :) |
| 18:24:28 | evan | wback. |
| 18:24:31 | evan | back. |
| 18:24:33 | brixen | heh |
| 18:24:46 | brixen | wwb :) |
| 18:24:49 | evan | :) |
| 18:25:05 | evan | dbussink: yes, i'm going to setup CI for some well known good gems |
| 18:25:16 | evan | dbussink: but I vastly prefer people do like what you've done with dm |
| 18:25:33 | evan | beacuse when stuff breaks, your the person most qualified to help fix it. |
| 18:25:48 | dbussink | evan: i can imagine yeah, but it's also useful for you guys to know what broke stuff perhaps |
| 18:25:48 | brixen | totally |
| 18:25:56 | dbussink | if a certain rbx commit breaks some gems |
| 18:25:59 | evan | sure |
| 18:26:05 | evan | i'm not going to be running it on every commit. |
| 18:26:08 | evan | thats really too much. |
| 18:26:17 | brixen | yeah |
| 18:26:19 | evan | if the set is big. |
| 18:26:26 | dbussink | evan: i can imagine, but some ci system could do that |
| 18:26:31 | dbussink | or run one a night or something |
| 18:26:31 | brixen | in theory, the coverage of rubyspec would obviate the need for that |
| 18:26:45 | evan | dbussink: way to hand wave your way through that! |
| 18:26:46 | evan | good job! |
| 18:26:53 | brixen | we simply can't expect to know what the issues are |
| 18:27:04 | brixen | heh |
| 18:27:11 | evan | a ci system could also run all ruby code in the world against rbx every commit in constant time. |
| 18:27:15 | evan | tada! |
| 18:27:18 | brixen | yes, "in theory you could have a CI system.." |
| 18:27:19 | brixen | heh |
| 18:27:23 | dbussink | evan: instant fix :) |
| 18:28:09 | brixen | I would venture that if it's important enough for you to use rbx, you should know when your code runs |
| 18:28:10 | evan | yes, there also exists in theory a program that can find all known defects in another program |
| 18:28:37 | brixen | in fact, in every other program :) |
| 18:28:44 | evan | yep! |
| 18:29:26 | dbussink | i think the jruby guys do have some sort of clean set of stuff they run before release etc. |
| 18:29:57 | evan | sure, before a reason is fine |
| 18:30:02 | evan | i was going to set something up to run nightly |
| 18:30:09 | evan | where I don't care about the runtime |
| 18:31:54 | dbussink | evan: yeah, it's not like i'm talking about real time anyway |
| 18:32:19 | evan | oh, non real time? you've got a CI system that runs in a time bubble? |
| 18:32:21 | evan | RAD! |
| 18:33:40 | dbussink | evan: i got this experimental quantum computer in my closet here |
| 18:33:47 | evan | neato. |
| 18:33:53 | dbussink | evan: needs at least one planck time for a cycle |
| 18:33:59 | dbussink | can't beat physics with it |
| 18:34:19 | evan | how many nanosecs is one planck? |
| 18:34:35 | evan | a lot i'll bet. |
| 18:35:16 | evan | ooh |
| 18:35:18 | evan | "the smallest unit of time that was directly measured was on the order of 1 attosecond (10−18 s), or about 1026 Planck times." |
| 18:35:19 | evan | nice. |
| 18:35:41 | dbussink | evan: 5.4 × 10−44 s |
| 18:36:47 | dbussink | evan: that's a way too small number |
| 18:37:02 | evan | seriously. |
| 18:37:11 | dbussink | evan: http://en.wikipedia.org/wiki/Orders_of_magnitude_(time) |
| 18:37:47 | dbussink | evan: or did you mean 10^26 attoseconds? |
| 18:37:59 | dbussink | guess the power symbol was missing :) |
| 18:38:03 | evan | http://en.wikipedia.org/wiki/Planck_time |
| 18:39:30 | evan | ah yes |
| 18:39:32 | evan | it didn't paste right |
| 18:39:40 | evan | thats 10^26 planck times |
| 18:51:56 | toulmean | brixen: evan: I am pulled back in java world today. If you feel losing time over RJB, ping me... but I won't be of much help I guess. |
| 18:52:12 | brixen | toulmean: no worries |
| 18:52:24 | evan | toulmean: no problem. |
| 18:52:34 | evan | i think we've got rjb in hand at this point. |
| 18:53:06 | toulmean | think so ? Then I'll try to run with it over buildr later on. |
| 18:53:12 | toulmean | see what comes up next. |
| 18:53:23 | brixen | so that's the voice I've heard saying "Unhand me, Sir!" |
| 18:55:01 | evan | well, some of the buildr specs ran |
| 18:55:06 | evan | i didn't try to run them all |
| 18:55:14 | evan | but given that running those specs exercised rjb a bit |
| 18:55:18 | evan | i'll bet it's working now. |
| 18:56:01 | toulmean | evan: cool |
| 18:57:08 | brixen | evan: what do you get if you run rbx -S rake spec in buildr dir? |
| 18:57:33 | evan | I didn't run them all |
| 18:57:38 | evan | just the java_spec one |
| 18:57:46 | brixen | I'm curious if you have issues loading gems |
| 18:57:53 | toulmean | we could try the compiler_spec.rb one |
| 18:58:03 | toulmean | it's running javac |
| 18:58:04 | brixen | when I run that, it fails to load gems that I can load by hand |
| 18:58:13 | brixen | dunno if I want to try tracking it down |
| 18:58:15 | evan | loading which gems? |
| 18:58:16 | toulmean | brixen: yes, I commented on your gist |
| 18:58:22 | evan | you mean just loading the spec suite? |
| 18:58:26 | toulmean | brixen: you had a -S missing. |
| 18:58:35 | brixen | toulmean: hm, le'me see |
| 18:59:34 | brixen | toulmean: your comment does not seem relevent |
| 18:59:41 | brixen | rbx gem is short for rbx -S gem |
| 18:59:47 | brixen | and it shows the gem installed |
| 18:59:52 | brixen | but buildr specs will not load it |
| 19:00:02 | toulmean | ah, the -S is not necessary then. OK. |
| 19:00:12 | toulmean | ok then dunno |
| 19:00:20 | brixen | yeah, me neither |
| 19:31:12 | Defiler | evan: did you get a chance to put up that prebuilt llvm? |
| 19:48:56 | Defiler | brixen: could use some 'rbx-build' help when you have a minute |
| 19:49:53 | evan | Defiler: sup? |
| 19:51:11 | Defiler | http://gist.github.com/413596 |
| 19:51:25 | Defiler | so, rvm uses --prefix to get rbx to build to ~/.rvm/rubies/rbx-head |
| 19:51:44 | Defiler | but the extension building happens in the build directory, not the install directory |
| 19:52:48 | Defiler | so the first time you try to do it, it fails trying to execute bin/rbx |
| 19:53:00 | Defiler | because rbconfig has the --prefix bindir in there |
| 19:53:13 | evan | hrm. well, --prefix is meant to be used with install |
| 19:53:19 | evan | is it doing an install? |
| 19:53:28 | Defiler | this fails the install |
| 19:53:42 | Defiler | because rbx-build is used during the install, if it needs to build |
| 19:53:42 | evan | um |
| 19:53:45 | evan | i guess i don't follow. |
| 19:54:03 | Defiler | configure --prefix=/Users/wilson/.rvm/rubies/rbx-head --skip-system |
| 19:54:08 | Defiler | followed by rake install |
| 19:54:29 | Defiler | specifically `ruby-1.8.7-p249 -S rake install` |
| 19:55:04 | evan | ok, when it does that |
| 19:55:06 | evan | what happens? |
| 19:55:08 | evan | what goes wrong? |
| 19:55:31 | Defiler | Like i said |
| 19:55:32 | boyscout | Add spec for String#split using the encoding of the Regexp - be4643a - Evan Phoenix |
| 19:55:32 | boyscout | Use the encoding of the Regexp in String#split on characters. Fixes #323 - 3bed115 - Evan Phoenix |
| 19:55:39 | Defiler | it tries to exec bin/rbx out of the install directory |
| 19:55:43 | Defiler | but the install is still running |
| 19:55:45 | Defiler | and it isn't there yet |
| 19:55:58 | evan | it == rbx-build? |
| 19:56:03 | evan | who is running rbx-build? |
| 19:56:03 | Defiler | no, bin/rbx |
| 19:56:13 | Defiler | rake install uses rbx-build |
| 19:56:13 | evan | bin/rbx tries to exec bin/rbx? |
| 19:56:32 | evan | can you show me some terminal output? |
| 19:56:38 | evan | i think we're talking past eachother |
| 19:57:06 | Defiler | it's verbose, and I'm trying to cut through it. one sec |
| 19:58:31 | Defiler | clean checkout => ./configure --prefix=/instdir --skip-system => rake install => calls checkoutdir/bin/rbx-build to build extensions => dl extension has extconf.rb which now gets the just-compiled rbx bin's rbconfig |
| 19:59:03 | Defiler | "make" in lib/ext/dl now tries to use a ruby binary that hasn't been installed yet |
| 19:59:21 | Defiler | ruby 1.8.7 |
| 19:59:31 | evan | Defiler: that seems fine |
| 19:59:33 | evan | i don't see the problem. |
| 19:59:34 | Defiler | but it calls bin/rbx-build, which execs bin/rbx |
| 19:59:36 | Defiler | err, vm/vm, sorry |
| 19:59:45 | scoopr | rue|w, I've been running my code through clang recently, seems very very promising |
| 20:00:02 | evan | what rbx does the make file have? |
| 20:00:02 | Defiler | evan: check out the bottom of this log https://gist.github.com/42cd630cbc3bbee827ab |
| 20:00:21 | Defiler | hard to see, but the working dir at the end there is lib/ext/dl |
| 20:00:28 | evan | why is there no bin/rbx? |
| 20:00:30 | evan | there should be |
| 20:00:38 | Defiler | because configure was called with --prefix |
| 20:00:39 | evan | in that case, there should be vm/vm |
| 20:00:44 | evan | that doesn't matter |
| 20:00:52 | evan | because vm/vm is still where the file goes before it's installed |
| 20:00:54 | Defiler | and therefore the rbconfig in the build directory is pre-configured to point there |
| 20:01:03 | Defiler | and when the build uses itself to build a subcomponent.. |
| 20:01:12 | evan | so confusing. |
| 20:01:14 | Defiler | it uses an rbconfig that is for future use, not current use |
| 20:01:35 | evan | mm |
| 20:01:36 | evan | ok |
| 20:01:39 | evan | i think i see. |
| 20:01:42 | Defiler | I don't understand rbx-build at all; it doesn't seem at all safe to use bin/rbx mid-build |
| 20:01:45 | evan | i need full repro steps |
| 20:01:48 | Defiler | it should use the ruby you typed 'rake' with |
| 20:01:49 | evan | outside of rvm |
| 20:01:52 | evan | if you can get them to me. |
| 20:01:54 | Defiler | yeah, doing it now |
| 20:02:03 | Defiler | I just cleared the terminal before talking about it, like an idiot |
| 20:02:10 | evan | it shouldn't use 1.8 |
| 20:02:11 | evan | thats wrong. |
| 20:02:14 | evan | to build dl |
| 20:02:18 | evan | it needs to use rbx |
| 20:02:19 | Defiler | it doesn't |
| 20:02:24 | Defiler | and using rbx is wrong, with --prefix |
| 20:02:28 | evan | "it should use the ruby you typed 'rake' with |
| 20:02:29 | evan | " |
| 20:02:32 | evan | ^^ thath would be MRI |
| 20:02:35 | Defiler | Yes, in my opinion it should |
| 20:02:44 | Defiler | it should cross-compile with rbx's config |
| 20:02:45 | evan | then the extension would be linked against MRI |
| 20:02:46 | evan | and not work. |
| 20:03:12 | evan | doing a cross compile is adding another level of unnecessary complexity |
| 20:03:32 | evan | better to, in the case of install, put the files in place, then build the extensions. |
| 20:03:40 | boyscout | CI: rubinius: 3bed115 successful: 3463 files, 13862 examples, 41517 expectations, 0 failures, 0 errors |
| 20:03:57 | evan | so |
| 20:04:00 | evan | why doesn't openssl break? |
| 20:04:05 | evan | because it also uses extconf.rb |
| 20:04:07 | evan | just like dl |
| 20:04:28 | evan | is it because dl's Makefile calls back out to ruby? |
| 20:05:20 | Defiler | yes |
| 20:05:42 | Defiler | waiting on a build, and then I should have a consistent non-rvm log to show you |
| 20:06:03 | evan | the simple fix is to change dl's makefile to use 'ruby' instead of $(RUBY) |
| 20:06:15 | evan | which makes the makefile less portable, but avoids this issue. |
| 20:06:22 | evan | since we require a ruby to build rubinius |
| 20:06:27 | evan | thats an ok compromise. |
| 20:06:49 | Defiler | maybe there is an even easier fix in this log.. but otherwise yeah |
| 20:10:27 | dbussink | rue|W: i've compiled it with clang yeah |
| 20:10:35 | dbussink | rue|W: also committed some small fixes for it |
| 20:11:35 | Defiler | evan: http://gist.github.com/413621 |
| 20:11:55 | evan | right |
| 20:11:56 | evan | ok |
| 20:12:08 | evan | so lets change $(RUBY) in dl to ruby |
| 20:12:16 | Defiler | I modded the extconf.rb to print Config::CONFIG there near the end, for clarity |
| 20:12:21 | Defiler | but otherwise this is identical to HEAD |
| 20:12:41 | evan | yep |
| 20:14:26 | Defiler | the 'full' fix is, I guess, setting up rbconfig once during the build, and then only on install to use the --prefix option |
| 20:14:27 | evan | just have to figure out how the lines for $(RUBY) are created... |
| 20:14:43 | dbussink | rue|W: as in clang's c++ support? |
| 20:14:44 | evan | well, our rbconfig.rb is dynamic |
| 20:14:51 | evan | it pulls vars out of Rubinius:: to build |
| 20:15:03 | Defiler | some of those get baked into vm/vm though, right? |
| 20:15:06 | dbussink | rue|W: or do you mean that it translates into llvm? |
| 20:15:06 | Defiler | or is that not the case now? |
| 20:15:07 | evan | most |
| 20:15:16 | evan | Defiler: check out rbconfig.rb |
| 20:15:18 | Defiler | right; those are the ones I mean sadly |
| 20:15:24 | evan | the paths come from Rubinius:: |
| 20:15:28 | evan | righ |
| 20:15:28 | Defiler | hence how mri does miniruby |
| 20:15:29 | evan | right. |
| 20:15:43 | Defiler | minirbx heh |
| 20:18:34 | brixen | back |
| 20:18:38 | brixen | did you guys fix it? |
| 20:19:31 | brixen | i think it's time I get started on the build system :/ |
| 20:19:47 | brixen | but first, I'm getting these c-api specs pushed to rubyspec |
| 20:20:29 | brixen | goddamn ppl, latte's should not be 500 F |
| 20:21:10 | BrianRice-work | nuclear coolant latte's |
| 20:21:18 | brixen | applies an ice compress to his tongue |
| 20:21:25 | brixen | I'm losing my love for Stumptown |
| 20:21:37 | brixen | Sterling coffee outside TJ's is the only place in town |
| 20:21:39 | brixen | period |
| 20:21:45 | evan | hehehe |
| 20:22:00 | brixen | er outside TJ's in the NW 2 blocks from my apt :) |
| 20:22:10 | evan | yes, do they have special liquid sodium you can use to cool down a latte? |
| 20:22:11 | evan | they shuold. |
| 20:22:20 | evan | right next to the sugar |
| 20:22:21 | Defiler | man, burning espresso like that should be a crime |
| 20:22:29 | evan | just label it "Liquid Salt (sort of)" |
| 20:22:30 | brixen | evan: Sterling makes excellent lattes that are not in need of cooling |
| 20:22:38 | brixen | simply delicious |
| 20:23:08 | BrianRice-work | well, they all set their teas to boil, generally, so I'm rarely impressed |
| 20:24:24 | evan | how the heck down the lines about call.func get into the dl/Makefile from extconf.rb |
| 20:24:26 | evan | .... |
| 20:24:36 | brixen | ahhh magic! |
| 20:24:47 | brixen | I have no idea, I gave up tracking it down |
| 20:25:17 | brixen | evan: but see lib/ext/dl/depend |
| 20:25:37 | brixen | I'm sure mkmf cats that file into the makefile |
| 20:25:44 | evan | magically |
| 20:25:48 | evan | oh man |
| 20:25:50 | evan | i'll bet it does. |
| 20:26:09 | brixen | evan: so, yes, I should start on the build system... |
| 20:26:10 | evan | it's not in the .gitignore |
| 20:26:14 | evan | ok |
| 20:26:29 | brixen | how should we handle external libs that use configure to make a makefile? |
| 20:26:49 | evan | so, yes, mkmf.rb cats depend into the target makefile |
| 20:27:07 | evan | brixen: thats really the big question. |
| 20:27:20 | brixen | indeed |
| 20:27:32 | evan | i think the answer has to be that you have have to run make everytime |
| 20:27:52 | evan | there is no foolproof way to infer the deps for a make target so you can know to run make |
| 20:27:59 | evan | you have to just run make and let it sort it out. |
| 20:28:06 | evan | like we do with openssl and nkf now. |
| 20:28:06 | brixen | yeah |
| 20:28:19 | brixen | but running make would be well integrated |
| 20:28:20 | evan | so the question is "when should you run configure" |
| 20:28:32 | evan | ideally you don't run it everytime. |
| 20:28:36 | brixen | right |
| 20:28:48 | brixen | you run it when asked to configure |
| 20:28:53 | brixen | remember my diagram in SF? |
| 20:28:57 | brixen | probably not.. |
| 20:29:00 | evan | :) |
| 20:29:06 | brixen | but, everything is explicit |
| 20:29:06 | evan | refresh my memory. |
| 20:29:08 | Defiler | poor unremembered diagrams |
| 20:29:13 | Defiler | throughout history |
| 20:29:19 | Defiler | I weep for thee |
| 20:29:31 | brixen | if you do the configure step, that event propagates through the modules |
| 20:29:42 | brixen | and an external lib is just a module |
| 20:29:51 | brixen | that eg knows configure is run and make is used |
| 20:29:57 | brixen | little m module |
| 20:30:12 | evan | so if our toplevel ./configure is run |
| 20:30:23 | evan | it sets a flag so that the sub-component configures are run |
| 20:30:45 | evan | one configure to rule them all. |
| 20:30:53 | brixen | sets a flag <hand waves> does some shit... sub components run configure too |
| 20:30:53 | brixen | yes |
| 20:31:04 | evan | Defiler: so, try changing $(RUBY) to ruby in ext/dl/depend |
| 20:31:05 | brixen | same with eg clean |
| 20:31:10 | evan | yes. |
| 20:32:33 | evan | running configure is actually a minor note |
| 20:32:35 | evan | so i think thats fine |
| 20:32:42 | brixen | yeah |
| 20:32:50 | evan | i think the big note here is that there is no way to avoid running make on all sub-components everytime. |
| 20:32:55 | brixen | after all, *why* would you only want to run configure part way |
| 20:33:02 | Defiler | as long as it doesn't assume that ruby is one with the same rbconfig as it is seeing |
| 20:33:06 | Defiler | that will work |
| 20:33:13 | evan | Defiler: it shouldn't |
| 20:33:20 | evan | because it should use the ruby in the $PATH |
| 20:33:20 | brixen | I have some thoughs on that... but basically, running make in subcomponents is not a big deal |
| 20:33:28 | brixen | since make should do nothing if there is nothing to do |
| 20:33:34 | evan | exactly. |
| 20:35:53 | Defiler | and configure should always reconfigure |
| 20:36:09 | evan | right. |
| 20:36:15 | Defiler | yin and yang |
| 20:37:20 | brixen | Configure SHALL do as thou shouldest EXPECT |
| 20:37:36 | brixen | oh man, RFC's in old English |
| 20:37:40 | brixen | the bible! |
| 20:37:46 | evan | hah |
| 20:37:48 | brixen | heh |
| 20:38:16 | brixen | I still want to write an RFC for rubyspec |
| 20:43:36 | slava | I was a bit surprised that you had specs to test specific bytecode sequences emitted by the compiler |
| 20:43:53 | brixen | slava: you are not the only one |
| 20:44:01 | brixen | but it has been very very helpful |
| 20:44:21 | brixen | the only issue is deciding when enough of that is good enough to get you bootstrapped |
| 20:44:29 | brixen | and move to the behavior specs |
| 20:44:31 | brixen | eg rubyspec |
| 20:44:33 | brixen | er ie |
| 20:45:03 | brixen | but you will pry the bytecode specs from my cold, dead hands :) |
| 20:45:12 | slava | do you ever find it hard to strike a balance between tests that are exhaustive and helpful for catching regressions, and tests which overspecify and have to be thrown out after refactoring? |
| 20:45:19 | brixen | yes |
| 20:45:26 | evan | yeah |
| 20:45:28 | brixen | it's a hard problem |
| 20:45:33 | evan | the balance is found by practicing |
| 20:45:34 | brixen | but one I'm happy to deal with |
| 20:45:48 | brixen | rather than say "I've had to change the specs, throw them out!" |
| 20:45:52 | slava | I have tests that run a given IR through an optimizer pass, and check that the result matches the expected IR exactly |
| 20:45:56 | slava | its analogous to your bytecode specs |
| 20:46:07 | slava | but often I have to toss these out |
| 20:46:23 | evan | the optimization passes are different |
| 20:46:25 | evan | a lot different |
| 20:46:34 | evan | think of these more as parser tests. |
| 20:46:49 | brixen | well, they are the same in that you want precise output |
| 20:46:50 | evan | give a form of code, the bytecode composed. |
| 20:46:55 | brixen | not just equivalent behavior |
| 20:47:10 | slava | but if you add or change a bytecode, or add a minor peephole optimization to the bytecode translator |
| 20:47:14 | slava | do you ever end up having to update 23423432 specs? |
| 20:47:25 | slava | like you run the tests and everything fails but the code is correct, its just that the specs are out of date now :) |
| 20:47:27 | brixen | sometimes |
| 20:47:45 | brixen | but it's worth it in my experience |
| 20:47:52 | slava | me too |
| 20:47:56 | brixen | again, I want to know precise output, not equivalent behavior |
| 20:48:22 | evan | slava: it happens, sure. |
| 20:48:28 | brixen | I should say, equivalent behavior at some higher level of abstraction |
| 20:48:35 | evan | if it's a big thing, I refactor some becode generation into a method |
| 20:48:44 | evan | and change thing to call that method to generate bytecode |
| 20:48:50 | evan | so that as i'm working on it or changing it again |
| 20:48:57 | evan | there is one place to change and all users get the new code |
| 20:49:31 | slava | http://gitweb.factorcode.org/gitweb.cgi?p=factor/.git;a=blob;f=basis/compiler/cfg/value-numbering/ value-numbering-tests.factor;hb=HEAD |
| 20:51:27 | slava | there's more lines here than the actual optimization pass |
| 20:51:50 | slava | I wish those FP guys would hurry up and make everything provably correct |
| 20:52:26 | brixen | yes! then we could use that in our CI that tests every program runs on rbx |
| 20:52:53 | evan | woo |
| 21:29:09 | brixen | man, I hate trying to track down a change in MRi |
| 21:29:31 | brixen | or determine whether it was a bug or change in behavior |
| 21:30:23 | evan | as do I. |
| 21:30:37 | evan | i'm revamping the query agent a bit atm. |
| 21:30:44 | evan | i've decided to make it more like SNMP |
| 21:30:47 | brixen | fun |
| 21:30:52 | evan | so there are going to just be 3 main commands |
| 21:30:56 | evan | set, get, list |
| 21:31:16 | evan | the the agent will have basically, a tree of variables |
| 21:31:27 | evan | so you can do |
| 21:31:30 | evan | get system.name |
| 21:31:39 | evan | and the agent will find the variable for name in system |
| 21:31:44 | evan | and call read on it |
| 21:31:55 | evan | it's a dynamic variable, so it will run some code and send the result back |
| 21:32:06 | brixen | neat |
| 21:32:07 | evan | a variable can be another tree as well |
| 21:32:14 | evan | so it might be |
| 21:32:21 | evan | get system.info.name |
| 21:32:36 | evan | it's completed from left to right |
| 21:32:41 | evan | so that stuff like |
| 21:32:45 | evan | config.agent.start |
| 21:32:47 | evan | jsut works |
| 21:32:54 | brixen | ahh |
| 21:32:59 | evan | config will be a variable that exports all the -X config vars |
| 21:33:35 | evan | list config would be ["config.agent.start", "config.jit.inline.debug", ... ] |
| 21:34:17 | brixen | looks good |
| 21:38:40 | brixen | Complex#arg returns the angle from Complex(1,0) |
| 21:38:45 | brixen | aka Complex#angle |
| 21:38:54 | brixen | man, I'd love to know how it got that name |
| 21:39:42 | evan | hah |
| 21:40:22 | brixen | ok, it's from argument, as defined in the complex plane |
| 21:40:49 | brixen | also called phase or "more rarely and more confusingly" amplitude |
| 21:40:57 | brixen | quoting wolfram research |
| 21:41:13 | binary42 | We should just wrap it all up into argle |
| 21:41:23 | evan | yes |
| 21:41:25 | evan | argle it is. |
| 21:41:38 | brixen | binary42: dude! :) |
| 21:41:48 | brixen | binary42: how's things? |
| 21:42:00 | binary42 | Pretty great. Good to be done with GoRuCo mostly now. |
| 21:42:05 | brixen | nice |
| 21:42:18 | binary42 | It was a great conf but the A/V setup was a little tough to crack. |
| 21:42:33 | brixen | was it recorded? |
| 21:42:37 | binary42 | Yeah. |
| 21:42:43 | brixen | sweet |
| 21:42:47 | binary42 | Give it 2 weeks or so. |
| 21:42:51 | brixen | ok |
| 21:43:00 | brixen | puts it on the calendar |
| 21:43:25 | binary42 | So now I'm working on my postmodern ruby lib. (a.k.a. I don't like rubygems or rails) It's not ready yet but I think you guys might like it. |
| 21:43:38 | brixen | awesome |
| 21:43:59 | brixen | deconstructing the madness are you? |
| 21:44:00 | binary42 | It has a way to create top-level namespaces in 1.9. It would be interesting to see how organizing Rubinius code would work with it. |
| 21:44:05 | binary42 | Yes. |
| 21:44:30 | brixen | we'd love to see it when ready |
| 21:44:33 | binary42 | I hesitated using the word but it really is. |
| 21:44:50 | binary42 | Back to require and constant lookup. |
| 22:06:15 | evan | bbiab. |
| 22:54:01 | toulmean | brixen: you use dvorak ? |
| 22:55:39 | brixen | yes |
| 23:20:52 | dwaite | brixen just does that so that for the challenge playing video games with wasd |
| 23:22:40 | brixen | dwaite: are you trying to make me feel better? cus it's not working :P |
| 23:50:17 | Defiler | brixen: what are the supported 'rake build' platforms for rbx right now? just 1.8? |
| 23:58:47 | brixen | Defiler: yes |
| 23:59:02 | Defiler | ok. I have a commit that should cut down on the bug tickets then |