Show enters and exits. Hide enters and exits.
| 01:57:37 | cout | hmm. |
| 01:58:27 | evan | finally got alias workig. |
| 01:58:30 | evan | that was fun. |
| 02:00:11 | evan | though, i might have found a super cache bug. |
| 02:00:22 | evan | i'm thinking I might have to just turn off all inline caching for super |
| 02:00:46 | evan | or improve the caching check |
| 02:00:47 | evan | ooh.. |
| 02:00:48 | evan | i wonder.. |
| 02:03:11 | boyscout | Speed up Array#pack, String#unpack, and String#rpartition - 26c73d4 - Ivan Samsonov |
| 02:03:11 | boyscout | Add spec for super/alias_method interaction - a93958e - Evan Phoenix |
| 02:03:11 | boyscout | Fix the super/alias interaction problem - 7e7fcdd - Evan Phoenix |
| 02:12:17 | boyscout | CI: rubinius: 7e7fcdd successful: 3041 files, 11843 examples, 36124 expectations, 0 failures, 0 errors |
| 02:26:19 | brixen | argh, encodings are frustrating! |
| 02:26:42 | brixen | code that works in 1.9 on the cmd line with -e fails in a file |
| 04:04:52 | rue | Think there was some chatter on -core about file-related encoding stuff just recently |
| 05:20:28 | leavengood | Just a quick note: you may want to update http://rubini.us/ to reflect the recent Tweet about implementing some of the ObjectSpace methods |
| 05:20:50 | leavengood | in particular the bottom part about compatibility |
| 05:21:20 | rue | This is all very hush-hush ;) |
| 05:23:36 | leavengood | hush-hush? |
| 05:23:41 | leavengood | Then don't tweet ;) |
| 05:24:41 | rue | Protocol error :P |
| 05:26:17 | leavengood | any good areas for a some new to Rubinius to jump in? |
| 05:26:25 | leavengood | s/some/someone |
| 05:26:50 | leavengood | hold on, I see stuff on the web-site |
| 05:27:02 | leavengood | though if you have any suggestions |
| 05:31:19 | leavengood | broken link from the FAQ (at the bottom): http://rubini.us/about/contributing |
| 05:33:28 | leavengood | I guess that link should be http://rubini.us/about/contribute |
| 06:51:23 | rue | Yup |
| 06:51:44 | rue | Fixing broken specs or running your own code and fixing what breaks are popular |
| 08:21:13 | dbussink | evan: did you run your fiber stuff against the specs for 1.9? |
| 08:40:35 | rue | Did you? :) |
| 08:48:49 | dbussink | rue: nope, not yet ;) |
| 08:49:03 | dbussink | rue: problem is that we should devise a better way to run specs for stuff that we already support from 1.9 |
| 08:49:29 | dbussink | there are a few other things that were added, like source_location and method parameters |
| 17:22:09 | evan | rad. |
| 17:22:44 | evan | rubinius, for a trivial invocation benchmark, is the same speed as unoptimized, all virtual C++ |
| 17:23:23 | rue | Newt |
| 17:23:30 | kronos_vano | cool! |
| 17:23:50 | evan | interesting side note |
| 17:23:59 | evan | i guess there are cases where g++ will eliminate a virtual call |
| 17:24:11 | rue | It will, yes. |
| 17:24:23 | evan | demote it to non-virtual, then optimize |
| 17:24:53 | rue | Might need O3 for it to trigger |
| 17:24:55 | evan | so writing a trivial benchmark, all virtual benchmark it's easy to have g++ make it into a constant |
| 17:25:02 | evan | O2 seemed to do it |
| 17:25:07 | evan | if i split the code between 2 .o files |
| 17:25:10 | evan | i'll bet i can fool it. |
| 17:27:10 | evan | ack! |
| 17:27:13 | evan | even at -O0 |
| 17:27:20 | evan | g++ has eliminate the virtual call |
| 17:27:34 | evan | and put in a raw, static call. |
| 17:28:03 | evan | so rbx is as fast as unoptimized NON-virtual g++ in this case. |
| 17:30:04 | Zoxc | having fun? |
| 17:30:51 | rue | That is somewhat odd, actually. |
| 17:31:20 | evan | rue: http://gist.github.com/294899 |
| 17:31:29 | evan | running g++ -O0 -g -S -o benchmark/raw/invoke_cpp_virt.s benchmark/raw/invoke_cpp_virt.cpp |
| 17:31:33 | evan | check out the .s file |
| 17:31:44 | evan | you'll see that the places where more and call are called |
| 17:31:50 | evan | they're normal function calls, not virtual |
| 17:36:01 | rue | Weird...though I suppose the reasoning could be that the virtual resolution is not a debuggable step |
| 17:37:12 | evan | perhaps |
| 17:37:16 | rue | Wish you could do prefix commas in Ruby too, so much nicer for multiple arguments |
| 17:40:25 | evan | rue: looks like it's a class hierarchy optimization |
| 17:40:42 | evan | combined with creating a C++ object on the stack |
| 17:41:12 | evan | actually |
| 17:41:17 | evan | i think it's JUST creating it on the stack. |
| 17:41:38 | evan | the justification being that the compiler knows the exact type of that object |
| 17:41:44 | evan | because it's got full control over it |
| 17:41:46 | rue | Yef |
| 17:41:55 | evan | rather than just seeing a pointer returned from something |
| 17:47:02 | evan | btw |
| 17:47:06 | evan | if you want to REALLY know whats going on |
| 17:47:13 | evan | you have to use "otool -t -v <file>" |
| 17:47:23 | evan | ie, don't even trust g++ -S output |
| 18:22:39 | brixen | dbussink: just fyi, I have a facility for running specs like those for Fiber on other version |
| 18:22:54 | brixen | dbussink: I'm fixing up rubyspec now and then I'll sync |
| 18:47:03 | dbussink | brixen: ah, cool, that's available in mspec? |
| 18:47:16 | dbussink | brixen: would be nice if we can include stuff into ci |
| 18:48:48 | brixen | it will be in mspec |
| 18:49:00 | brixen | and yes, we can include stuff in ci |
| 18:49:07 | brixen | that'd be the point of having specs ;) |
| 19:49:20 | brixen | arg, misfired a git reset --hard |
| 19:49:38 | brixen | *and* reloaded my vim buffer |
| 19:49:46 | brixen | <- dork |
| 20:01:03 | VVSiz | brixen: whooops! and 'git reflog' is probably not going to help... |
| 20:04:32 | brixen | it wasn't too bad, I just rewrote it |
| 20:23:10 | evan | sweet |
| 20:23:13 | evan | got another llvm patch in |
| 20:23:25 | evan | 2.7 is going to give us some nice things |
| 20:23:49 | Zoxc | ARM JIT? :D |
| 20:24:31 | evan | i think so |
| 20:24:34 | evan | yes |
| 20:24:59 | brixen | nice |
| 20:25:53 | scott | woh, nice |
| 20:33:06 | dbussink | evan: that definitely needs prebuilt arm files ;) |
| 20:34:31 | brixen | we just need to get an arm farm going in the cloud :) |
| 20:35:06 | evan | hehe |
| 20:35:07 | evan | arm farm |
| 20:35:09 | evan | ok, lunch time. |
| 20:35:15 | dbussink | evan: did you already take a look at #179? |
| 20:35:21 | evan | no |
| 20:35:42 | brixen | actually, arch specific build farms as a service sounds awesome |
| 20:36:03 | brixen | type rake in rbx and it farms it out for your platform and downloads the files |
| 20:36:06 | evan | dbussink: i'll take a look after lunch |
| 20:36:31 | evan | brixen: code in the cloud! |
| 20:36:36 | brixen | heh |
| 20:40:00 | dbussink | brixen: might be too specific to make a lot of money off though |
| 20:47:18 | brixen | dbussink: hrm dunno, could be great for dev-on-the-go with an ipad or iee-like netbook |
| 20:47:46 | brixen | I'll leave that do the bizdev folks to market research :) |
| 20:48:10 | boyscout | Really use llvm-config flags when building with system LLVM - 5531a56 - Dmitriy Timokhin |
| 20:48:45 | brixen | dbussink: also, maybe just a matter of time, we we're talking about vmware "clouds" in late '90s |
| 20:48:59 | brixen | -' |
| 20:49:17 | dbussink | brixen: true, although build farms are quite a different beast |
| 20:49:39 | brixen | different beasts just need different automation |
| 20:49:40 | maharg | sourceforge used to have a build farm like that |
| 20:49:45 | maharg | I guess they shut it down |
| 20:50:59 | brixen | I think the way we manually build or cross-compile is < ideal |
| 20:51:13 | brixen | but, that could be the low blood sugar talking! |
| 20:51:15 | brixen | lunches! |
| 20:51:41 | dbussink | oh definitely yeah, the question is more whether the problem annoys people enough so they want to fork over money |
| 20:52:30 | boyscout | CI: rubinius: 5531a56 successful: 3041 files, 11843 examples, 36124 expectations, 0 failures, 0 errors |
| 21:18:46 | tenderlove | HI! |
| 21:19:01 | evan | hola. |
| 21:19:06 | tenderlove | broooooo |
| 21:19:12 | tenderlove | can I pick your brain about rubyspec? |
| 21:19:27 | evan | course |
| 21:19:55 | tenderlove | why does rubyspec have tests for stdlib? |
| 21:20:08 | tenderlove | shouldn't those be checked in to ruby's svn? |
| 21:20:32 | evan | well, there was that discussion |
| 21:20:41 | evan | for the vast majority |
| 21:20:44 | evan | there were no tests even. |
| 21:20:59 | evan | and since the stdlib is basically part of an implementation |
| 21:21:01 | evan | we put them into rubyspec. |
| 21:21:12 | tenderlove | hrm |
| 21:21:43 | evan | you could make the same argument for all of rubyspec |
| 21:21:51 | evan | that it should be within ruby-core svn |
| 21:22:19 | tenderlove | The "language spec" part of it makes sense to me |
| 21:22:20 | evan | but ruby-core has never seemed terribly interested |
| 21:22:37 | tenderlove | but stuff like "yaml" isn't really part of the ruby language |
| 21:22:48 | evan | but it's part of an implementation |
| 21:23:01 | tenderlove | hmmm |
| 21:23:03 | tenderlove | I guess so |
| 21:23:09 | evan | if, say, maglev didn't provide any of the stdlib |
| 21:23:18 | evan | no one could/would use it |
| 21:23:21 | tenderlove | right |
| 21:23:30 | tenderlove | okay, other topic |
| 21:23:30 | evan | the fact that you have to require them is beside the point |
| 21:23:41 | evan | every developer expects them to be there and to behave in a certain way |
| 21:23:41 | tenderlove | so, syck is going away |
| 21:23:48 | evan | right, i've heard. |
| 21:23:54 | tenderlove | well, I want it to go away |
| 21:24:02 | tenderlove | but I don't want to support the same api that syck provides |
| 21:24:21 | evan | ug. |
| 21:24:21 | tenderlove | some of it is the same |
| 21:24:23 | evan | thats.. |
| 21:24:25 | evan | not going to work. |
| 21:24:42 | evan | unless you figure out which parts of the public API and which parts are the private API |
| 21:24:52 | evan | and then tell people "sorry, all these things are broken now" |
| 21:25:07 | tenderlove | right |
| 21:26:06 | evan | but you're likely not going to be able to change much "just because" |
| 21:26:12 | evan | as it will break a lot of things |
| 21:26:48 | tenderlove | I can change some things |
| 21:26:59 | tenderlove | the thing is though, nobody wants to maintain syck |
| 21:27:27 | tenderlove | from what I can tell, it's either remove syck, or replace it |
| 21:27:31 | evan | oh, I understand that |
| 21:27:37 | evan | they don't want to maintain the C code |
| 21:27:38 | evan | i'm assuming. |
| 21:27:57 | tenderlove | not sure. there was no differentiation between the C and the ruby code |
| 21:28:14 | evan | k. |
| 21:28:16 | evan | well... |
| 21:28:25 | evan | imho, yaml should be unbundled from stdlib all together. |
| 21:28:30 | evan | and syck moved into a gem |
| 21:28:46 | evan | and your new yaml code should be a gem called yaml or somethnig |
| 21:28:57 | tenderlove | imho, all of stdlib should be gems |
| 21:29:01 | evan | to allow people to choose |
| 21:29:57 | evan | this is going into 1.9.2? |
| 21:30:01 | tenderlove | I think so |
| 21:30:17 | tenderlove | I was going to ask about how this would muck with rubyspec |
| 21:30:34 | tenderlove | but my initial inspection leads me to believe that I support all the tests that are here |
| 21:30:36 | evan | rubyspec will run the specs |
| 21:30:39 | evan | and they will pass or fail. |
| 21:30:57 | rue | Specs for some arbitrary gem? |
| 21:31:24 | tenderlove | evan: I'm not sure why rubyspec is testing this though: http://github.com/rubyspec/rubyspec/blob/master/library/yaml/tagurize_spec.rb |
| 21:31:45 | tenderlove | doesn't seem like a public api thing |
| 21:31:51 | evan | well |
| 21:31:57 | evan | don't take whats in rubyspec as the public API |
| 21:32:05 | evan | we have no clue what the public API is most of the time |
| 21:32:13 | evan | and so we let people spec the shit out of stuff |
| 21:32:26 | evan | and worry about it removing stuff later. |
| 21:32:36 | evan | tagurize is a public method |
| 21:32:44 | evan | so i'm assuming it's thought to be in the public API |
| 21:32:50 | evan | welcome to rubyspec |
| 21:32:53 | tenderlove | But it's not useful |
| 21:33:08 | tenderlove | I don't want rubyspec to bind me to methods that are useless |
| 21:33:14 | tenderlove | or to force my implementation |
| 21:33:18 | rue | Each individual gem can certainly co-opt the specs, but if YAML is not a part of the standard distribution, its specs have no place in RubySpec |
| 21:33:30 | rue | Proffers he as his opinion |
| 21:33:31 | tenderlove | rue: it is part of the standard distro |
| 21:33:31 | evan | tenderlove: how do you know it's not useful? |
| 21:33:39 | evan | that seems like your opinion |
| 21:33:42 | rue | tenderlove: But it is a gem? |
| 21:33:54 | tenderlove | tags are arbitrary strings. what would you use this for? |
| 21:33:58 | evan | what matters is if your opinion is authorative |
| 21:34:06 | evan | tenderlove: check google code search |
| 21:34:10 | evan | again |
| 21:34:18 | evan | we have no way to know what is public and what is not. |
| 21:34:28 | evan | if you want to push back on things |
| 21:34:31 | evan | thats fine |
| 21:34:34 | evan | we'll discuss them. |
| 21:34:46 | evan | esp. if you,re becoming the yaml maintainer. |
| 21:34:51 | evan | as the yaml maintainer |
| 21:34:59 | evan | we're HAPPY HAPPY HAPPY to have you say "thats not public" |
| 21:35:09 | evan | we can't get verification of 90% of things |
| 21:35:16 | evan | so someone telling us is awesome. |
| 21:35:29 | tenderlove | according to this: http://redmine.ruby-lang.org/wiki/ruby/Maintainers |
| 21:35:32 | tenderlove | I am the maintainer :-) |
| 21:35:39 | imajes | w000t! |
| 21:35:59 | rue | tenderlove: How does the standardness manifest? |
| 21:36:03 | evan | wonderful! |
| 21:36:13 | evan | tenderlove: we're happy to add guards for things that you're deprecating in 1.9 then. |
| 21:36:27 | tenderlove | great! that is what I'm here to find out about |
| 21:36:28 | evan | and happy to sort out how you want to continue forward with the testing strategy. |
| 21:36:50 | tenderlove | ^5 |
| 21:36:50 | evan | rubyspec is amatuers filling a vacuum |
| 21:36:56 | evan | if a pro wants to fill the vacuum |
| 21:37:01 | evan | we're happy to give up the space. |
| 21:37:03 | tenderlove | haha |
| 21:37:03 | imajes | hah |
| 21:37:09 | imajes | what a kiss ass |
| 21:37:10 | imajes | :P |
| 21:37:16 | evan | it's my nature. |
| 21:37:33 | tenderlove | I just wanted to find out how "in-stone" the ruby specs are |
| 21:37:45 | tenderlove | also, how much of them are based on actual use |
| 21:37:51 | imajes | evan: you are sweet |
| 21:37:58 | tenderlove | I'm doing my best to support the syck api |
| 21:38:04 | tenderlove | but some if it just doesn't make sense |
| 21:38:11 | evan | tenderlove: it used to be based on usage |
| 21:38:16 | rue | I just do not see how it will be different from any other arbitrary gem out there that people can optionally use |
| 21:38:17 | evan | but usage is subjective |
| 21:38:21 | evan | so we don't hold back |
| 21:38:30 | evan | if people want to read yaml.rb and write specs for every method |
| 21:38:32 | evan | we're fine with that |
| 21:38:41 | tenderlove | rue: It ships with ruby, that's what's different |
| 21:38:41 | evan | BECAUSE there was no yaml maintainer to tell us otherwise |
| 21:39:01 | tenderlove | cool |
| 21:39:29 | tenderlove | what is your opinion on merging these tests in to the yaml test suite? |
| 21:39:39 | evan | i'm fine with that |
| 21:39:49 | evan | i'm against the idea of rewriting them all though. |
| 21:40:18 | tenderlove | hrm.... |
| 21:40:30 | rue | What is the gain from shipping a .gem rather than the library? |
| 21:40:34 | tenderlove | I wonder if merging *my* specs to ruby spec is getter |
| 21:40:35 | tenderlove | better |
| 21:40:51 | tenderlove | rue: gems can be updated. stdlib cannot |
| 21:40:57 | evan | tenderlove: possibly |
| 21:41:19 | tenderlove | evan: the reason I'm thinking that is because I think you're right |
| 21:41:24 | tenderlove | wrt implementations |
| 21:41:43 | tenderlove | but I hate the idea of having duplicate codes |
| 21:42:05 | evan | agreed, thats less than ideal |
| 21:42:20 | evan | uniformity in rubyspec is a huge deal. |
| 21:43:00 | tenderlove | ugh |
| 21:43:14 | tenderlove | stdlib seems to blur the line of what rubyspec should test |
| 21:43:20 | evan | yep. |
| 21:43:31 | tenderlove | If stdlib were all gems, this wouldn't be an issue |
| 21:43:32 | tenderlove | :-/ |
| 21:43:39 | evan | yep. |
| 21:44:04 | evan | all the big libs in stdlib should be unbundled |
| 21:44:09 | evan | leaving stuff like thread, etc in stdlib. |
| 21:44:19 | evan | though, i think even thread has moved into the core in 1.9 |
| 21:44:24 | evan | Mutex, etc. |
| 21:44:33 | rue | It is not "unbundled" though, if it is just a .gem file instead |
| 21:45:06 | evan | rue: you mean so that they can be upgraded via gem |
| 21:45:08 | evan | right. |
| 21:45:50 | rue | So the gem-ness is sort of a distinction without difference. What matters is whether the code comes with Ruby, or if it lives on gemcutter or wherever |
| 21:46:04 | rue | The former should be specced, the latter not |
| 21:46:36 | evan | sure |
| 21:46:42 | evan | but rubyspec will still and always fill a vacuum |
| 21:47:04 | evan | if there are gems that everyone uses everyday and there are no tests/specs for it, and we're expected to implement it |
| 21:47:10 | evan | then we're going to write specs and put them in rubyspec. |
| 21:47:21 | evan | the critical part of that equation is "and we're expected to implement it" |
| 21:47:33 | evan | every impl. pretty much has their own yaml library at this point. |
| 21:47:55 | evan | rubinius uses syck only because I finally got enough of capi implemented to run it. |
| 21:48:59 | tenderlove | evan: ^5 |
| 21:49:39 | evan | tenderlove: one thing to consider, btw, is that all the other yaml implementations pass the yaml rubyspecs (i'd expect) |
| 21:49:53 | evan | so the java one jruby uses, the smalltalk one maglev uses, etc. |
| 21:50:02 | tenderlove | I'm looking through them now |
| 21:50:07 | tenderlove | I need to take a closer look |
| 21:50:11 | evan | you could consider your new one just another form of this equation |
| 21:50:12 | tenderlove | but they seem to just test the basic stuff |
| 21:50:24 | evan | BUT the difference is that you'd also like to increment the version number |
| 21:50:30 | evan | and deprecated/clarify a number of existing APIs |
| 21:50:39 | evan | as the yaml maintainer, you're free to do so. |
| 21:50:53 | evan | an envyable position. |
| 21:51:14 | evan | the rest of us have to suck it up and make it bug-to-bug compatible. |
| 21:51:22 | evan | yes, bug-to-bug. |
| 21:51:55 | tenderlove | hah |
| 21:52:05 | tenderlove | hopefully that will be easy |
| 21:52:09 | tenderlove | since I'm just using libyaml |
| 21:52:19 | tenderlove | actually, I think all of my codes will run on rubinius now |
| 21:52:36 | evan | wonderful! |
| 21:53:03 | evan | tenderlove: seems like you should just say "ok guys, yaml has been upgraded to 2.0. it's now based on libyaml and a number of APIs have been removed and deprecated" |
| 21:53:15 | evan | ie, tried it as a new major version of a library we know and love. |
| 21:53:19 | evan | s/tried/treated/ |
| 21:53:21 | tenderlove | yes |
| 21:53:21 | evan | er. |
| 21:53:23 | evan | s/tried/treat/ |
| 21:53:34 | tenderlove | I *think* the plan is to ship 1.9.2 with both syck and psych |
| 21:53:48 | tenderlove | in order to let people migrate |
| 21:54:02 | tenderlove | though I'm just going to cut a gem release |
| 21:54:47 | evan | something you should try and work out NOW |
| 21:54:57 | evan | is how code changes are going to make there way from the gem into MRI |
| 21:55:08 | evan | ie, if you release a version 2.0.2 of the gem |
| 21:55:18 | evan | does MRI need to do a new release to get that? |
| 21:56:31 | tenderlove | I don't think so |
| 21:56:43 | tenderlove | I'm going to try to get this extension such that you can use it from stdlib or gems |
| 21:56:44 | evan | you should figure it out now |
| 21:56:46 | evan | and write it down |
| 21:56:50 | tenderlove | sort of like rdoc |
| 21:56:50 | evan | so people know what to expect |
| 21:56:57 | evan | this has been a HUGE problem for the bundled libs up to now |
| 21:57:05 | evan | well, rdoc is the worst example |
| 21:57:11 | tenderlove | soap4r |
| 21:57:14 | evan | the version change has been HUGE |
| 21:57:16 | evan | same with soap4r |
| 21:57:26 | evan | the version in MRI is totally different than the gem |
| 21:57:33 | evan | it lagged by YEARS |
| 21:57:35 | evan | in MRI. |
| 21:57:36 | evan | years. |
| 21:57:40 | tenderlove | I know |
| 21:57:41 | tenderlove | ;-) |
| 21:57:56 | evan | so if you mean use soap4r as an example of what NOT to do, sure. |
| 21:58:01 | tenderlove | hahaha |
| 22:00:28 | rue | MRI would be bundling a specific version of these libraries, which is what we would have to target |
| 22:01:57 | rue | It seems to me that completely severing them would be better overall. |
| 22:02:31 | evan | agreed, but that doesn't seem to be in the cards. |
| 22:03:08 | tenderlove | *sigh* |
| 22:03:09 | tenderlove | ya |
| 22:03:16 | rue | The thing is, if the libraries are supposed to be viable as gems, they ought to provide their own specs |
| 22:03:39 | evan | double agree. |
| 22:04:06 | evan | thats why i hope tenderlove and I figure out how to keep the testing/specing of his new yaml library sane. |
| 22:04:09 | evan | and happy |
| 22:04:43 | rue | So, conceptually, rather than writing "rubyspecs" for them, the situation would be that the set of specs from whichever version is bundled gets pulled in instead |
| 22:05:02 | evan | that would be best |
| 22:05:05 | tenderlove | yes |
| 22:05:10 | evan | because the the library maintainer would be writing the specs. |
| 22:05:27 | evan | the flip side of that is that rubyspecs contains specs but no implementation |
| 22:05:38 | evan | so either they'd be unbundled from rubyspec entirely |
| 22:05:42 | tenderlove | the problem though, is that if it ships as a stdlib, all implementations need to provide it. :-( |
| 22:05:48 | evan | or we'd have to figure out what version of the specs should be in rubyspec |
| 22:05:57 | evan | tenderlove: exactly |
| 22:06:10 | evan | not only that, they have to provide it BUT don't have to use your implementation. |
| 22:06:29 | tenderlove | do you expect other implementations to pass all tests that ship with mri? |
| 22:06:48 | rue | In short, yes |
| 22:07:02 | evan | tenderlove: typically, yes. |
| 22:07:13 | tenderlove | if that's true, then I could safely pull all yaml specs in to ruby svn |
| 22:07:19 | evan | the tests that ship with MRI leave something to be desired at present. |
| 22:08:23 | rue | Pull them into the YAML gem and then "freeze" them thence to SVN. Maybe |
| 22:08:41 | tenderlove | If I were to move the rubyspec yaml tests to MRI, would they be removed from rubyspec? |
| 22:09:10 | evan | tenderlove: brixen would have more of an opinion |
| 22:09:16 | evan | but i'd put that largely up to you, the yaml maintainer. |
| 22:09:23 | tenderlove | I'm just curious |
| 22:09:25 | rue | I think conceptually, yes |
| 22:09:28 | evan | so long as you understand the requirements |
| 22:09:41 | tenderlove | it seems to me that rubyspec is like one giant patch that should be applied to MRI's tests |
| 22:09:44 | evan | that the yaml specs exist to allow people to write yaml libraries that have a certain API |
| 22:10:01 | evan | tenderlove: sure, like I said, it's filling a vacuum |
| 22:10:17 | evan | tenderlove: MRIs test not really useful for implementers though |
| 22:10:25 | evan | because they don't actually indicate anything about the behavior being tested |
| 22:10:26 | rue | For any given Ruby version, the YAML specs would become "externals" in the RubySpec repository |
| 22:10:40 | tenderlove | rue: yes |
| 22:10:48 | tenderlove | evan: interesting.... |
| 22:10:56 | tenderlove | they /should/ though |
| 22:11:06 | evan | tenderlove: additionally, MRI-core has only recently shown themselves to pay much attention to rubyspec |
| 22:11:30 | evan | so them having some level of ownership of them would be nice, but they haven't given much indication that they're interested at this point. |
| 22:11:38 | rue | In reality, they probably do need to be in the repo because other implementations will rely on them. And, obviously, you may end up with eighteen billion different "externals" that way. |
| 22:11:44 | evan | they're focused on the NEXT ruby version |
| 22:11:52 | evan | rubyspec is interested in a number of ruby versions. |
| 22:11:59 | evan | 1.8.6, 18.7, etc. |
| 22:12:32 | tenderlove | rue: right. it seems like one repo should be an "external" for the other repo |
| 22:12:34 | boyscout | Support early exit from #find_object. Fixes #179. - d94820f - Evan Phoenix |
| 22:12:40 | tenderlove | but which is which confuses me |
| 22:12:56 | rue | RubySpec is the umbrella |
| 22:13:27 | evan | yes, rubyspec is a umbrella vacuum. |
| 22:13:48 | tenderlove | evan: that sounds like new logo opportunities |
| 22:13:54 | evan | fuck yeah. |
| 22:14:15 | evan | things that fill that vacuum are core specs, language specs, stdlib specs |
| 22:14:29 | evan | stdlib specs have always been the most nebulous |
| 22:14:33 | rue | I do not think there is any real merit to the half-bundled-half-not mode of distribution |
| 22:14:35 | evan | for exactly the reasons we've been discussing. |
| 22:15:08 | tenderlove | rue: I agree, but duplication seems crazy |
| 22:15:17 | evan | tenderlove: one thing I should note is that the yaml specs can't just be the current/next yaml version |
| 22:15:27 | evan | they need to be for the a few past versions too. |
| 22:15:38 | tenderlove | hah |
| 22:15:40 | tenderlove | that's funny |
| 22:15:48 | tenderlove | the yaml specs are so bad |
| 22:15:49 | evan | it's true. |
| 22:15:58 | rue | tenderlove: Duplication? If they are wholly severed, then it works just like any other gem |
| 22:16:34 | tenderlove | rue: I mean, rubyspec tests YAML.dump, and so do the syck tests. I don't like having it in two places |
| 22:17:01 | boyscout | CI: rubinius: d94820f successful: 3041 files, 11843 examples, 36124 expectations, 0 failures, 0 errors |
| 22:17:05 | rue | If yaml is only distributed as a gem, then RubySpec would have no yaml specs |
| 22:17:14 | tenderlove | but it isn't |
| 22:17:17 | tenderlove | :-) |
| 22:17:28 | evan | yaml is, at present, just an API |
| 22:17:44 | evan | it WAS an implementation, but it's now an API with many implementations. |
| 22:18:03 | evan | just like the ruby core libraries. |
| 22:18:27 | rue | My argument was that the model where it is both a gem and bundled is unviable; completely severing it to a gem is the better solution - and does not involve duplication |
| 22:18:28 | evan | rubyspec provides an implementer the ability to know if their implementation satisfies the yaml API requirements. |
| 22:19:18 | tenderlove | evan: yes, but does that mean I should remove the tests I wrote that test the same thing rubyspec tests? |
| 22:19:26 | evan | the idea for that has always been that rubyspec provides a suite of tests for knowing if one implementation could be dropped in place of another without disrupting anything |
| 22:19:32 | rue | Ah, OK, you mean the existing specs for the Ruby versions that do have it bundled |
| 22:19:43 | brixen | atw, we're talking about 349 lines of code in the yaml specs in rubyspec |
| 22:19:47 | evan | tenderlove: perhaps |
| 22:19:51 | brixen | atm rather |
| 22:19:58 | evan | oh really? |
| 22:19:59 | tenderlove | brixen: that's for putting that in perspective ;-) |
| 22:20:00 | evan | i should have looked. |
| 22:20:02 | tenderlove | err thanks |
| 22:20:04 | evan | you know |
| 22:20:04 | brixen | half of those are require spec_helper |
| 22:20:06 | evan | nevermind. |
| 22:20:11 | evan | tenderlove: you've got full control. |
| 22:20:15 | tenderlove | ^5 |
| 22:20:16 | evan | we'll do whatever you need. |
| 22:20:18 | tenderlove | wild west! |
| 22:20:21 | tenderlove | yee haw |
| 22:20:22 | rue | It is not just yaml, though. |
| 22:20:24 | tenderlove | haha |
| 22:20:31 | evan | tenderlove: i trust you to do the right thing |
| 22:20:54 | evan | my only request is this: rubyspec needs to remain conservative and consise. |
| 22:20:55 | tenderlove | rue: I agree. I'm glad to hear the rubyspec perspective |
| 22:21:11 | evan | and it must be able to test multiple versions. |
| 22:21:36 | tenderlove | can you mark particular tests as only working on a particular version? |
| 22:21:43 | evan | sure |
| 22:21:47 | tenderlove | cool |
| 22:21:52 | evan | it's versions of ruby though, not yaml. |
| 22:22:03 | tenderlove | yes |
| 22:22:29 | rue | tenderlove: In the hypothetical case of a severed, standalone gem, the specs would be with the gem. They could be pulled into RubySpec to cover the legacy bundled version as appropriate |
| 22:22:34 | brixen | tenderlove: do you need a rubyspec tutorial? |
| 22:22:41 | brixen | tenderlove: in all seriousness |
| 22:22:45 | tenderlove | brixen: I think that I do |
| 22:22:49 | tenderlove | where should I read up? |
| 22:22:54 | brixen | ok, let's move to #rubyspec |
| 22:23:08 | rue | But the two are independent |