From: matz@... (Yukihiro Matsumoto) Date: 2000-10-17T13:29:22+09:00 Subject: [ruby-talk:5625] Re: [RRFC] versioning revisited Hi, In message "[ruby-talk:5620] Re: [RRFC] versioning revisited" on 00/10/17, Dave Thomas writes: |To make this more orthogonal, how about generalizing the context. Add |a 'with' qualifier to 'require' which takes an arbitrary |expression. That expression is evaluated within the context of the |module just loaded, so you could write: | | fred.rb: | version = 4.3 | status = "debug" | # module stuff.. | | dave.rb | | require "fred" with version > 4 && status != "debug" | |that gives us an interesting way to introduce metadata. Are you going to make require a keyword? |Then, how about extending require again, so that if the first match |that it finds doesn't satisfy the 'with', it keeps searching, so that |we can have multiple libraries in the search path, with programs being |able to choose which ones they like? What do you think is a good idea to resolve version number mismatch? For example: my program requires libraries cgi and database cgi requires marshal 1.4 or later database requires marshal 1.2 Just crash? Note I didn't say this is a serious problem. matz.