From the gist it sounds like the file is OK, but would you try to see if you can manually list it's contents via something like this from cmd.exe.
C:/rubyinstaller/sandbox/extract_utils/basic-bsdtar.exe -tf C:/rubyinstaller/downloads/coreutils-5.97-3-msys-1.0.13-ext.tar.lzma
Jon
---
Fail fast. Fail often. Fail publicly. Learn. Adapt. Repeat.
http://thecodeshop.github.com | http://jonforums.github.com/
twitter: @jonforums
Can you provide more information about your environment?
I'm using Ruby 1.9.3-p0, Windows 7 x64, fresh checkout of
RubyInstaller and Ruby with patch applied, and it extracts properly.
This is how files looks like in my downloads folder:
https://gist.github.com/1353054
Can you verify the sizes of those?
--
Luis Lavena
AREA 17
-
Perfection in design is achieved not when there is nothing more to add,
but rather when there is nothing more to take away.
Antoine de Saint-Exupéry
And I'd like the full path to where you locally checked out Ruby.
It doesn't appear related to your failure but I don't like this command line
C:\rubyinstaller>rake ruby19 NOGEMS=1 NOTK=1 LOCAL=ruby --trace
because of "LOCAL=ruby". I usually use build with
rake ruby19 local=c:\Users\Jon\Documents\RubyDev\ruby-git nogems=1 notk=1
Please read Jon comment about using LOCAL and the need of a full path for it to work.
Sent from mobile.
--
You received this message because you are subscribed to the Google Groups "RubyInstaller" group.
To post to this group, send email to rubyin...@googlegroups.com.
To unsubscribe from this group, send email to rubyinstalle...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyinstaller?hl=en.
When you do get all the deps downloaded and cached to `downloads` I suggest using `rake clean` as it will save your `downloads` cache.
`rake clobber` really does do a wonderful job of clobbering ;)
Oh, is ansicon, that is a known issue. Remove it from autorun and should be fine.
Sent from mobile.
If you're still in the building and testing mood, would you try adding the fenix patch to the patches listed here and see what you get?
http://groups.google.com/group/thecodeshop/browse_thread/thread/b963c472e3c747a8
I have a belief/hope that the combination will lower both `user` and `system` time, but haven't had time yet to look into it.
Also, would you mind critically reviewing the following benchmark workloads?
https://github.com/jonforums/measurements/blob/master/workloads/core_require_empty.rb
https://github.com/jonforums/measurements/blob/master/workloads/core_require_nested.rb
and the `--extended` cmd line option
https://github.com/jonforums/measurements/blob/master/lib/inquisitor.rb#L79-103
https://github.com/jonforums/measurements/blob/master/config.yml#L2
I'd like to whip those workloads into shape so they're viewed as a valid way to emulate requiring a large number of files similar to enough to Rails apps without requiring that one build, or agree upon, a common test Rails app. I think an easy-to-use-and-valid require workload is important as we continue to test fenix and other require optimizations like Yura's patch and Xavier's work.
In a nutshell, once you've cloned the measurements repo and run `rci init`, the require workloads are meant to emulate requiring files, 1000 at a time. The `config.yml` setting and `--extended` try to make it easy to scale the emulation in 1000's. So to emulate requiring 4000 files, use `:extended_iterations: 4` and --extended.
https://github.com/jonforums/measurements/blob/master/README.mkd
That is correct, Fenix will only be enabled if RUBYOPT is set.
> It's still nowhere near your 2.x seconds, but i guess that here's just
> hardware factors to keep in mind. I'm using really average laptop
> here. Anyway, the drop is almost 50% for rails and less for other
> projects. It's still better than nothing :)
Yes, 2.x seconds are hardware factors. Core 2 Duo T7500 @ 2.2GHz
4GB of RAM and using a RAMDisk for both Ruby and the application just
to eliminate traditional HDD spinup or fragmentation factors that
could generate random results.
What is important is the difference percentage, in my case I did
obtain up to 40% boost in some cases (between empty and mid size
application).
Is worth to mention also the excessive amount of calls to
File.expand_path are done for every single require, at least 3 times
for every single element in $LOAD_PATH combining .rb, .so and .dll
extensions when looking up for files.
THAT needs to be improved beyond any API-usage improvement we do.
James.
Normally Ruby doesn't reach to .dll, either it finds .rb or .so before.
The thing is that every element in $LOAD_PATH gets expanded *over and
over again* multiple times.
The following is the pseudo code of what happens:
https://gist.github.com/1356075
Now, replace name for anything you want to require that is in the
$LOAD_PATH, and do the following on top of the code:
https://gist.github.com/1356101
And see the results:
found: C:/Users/Luis/Tools/Ruby/ruby-1.9.3-p0-i386-mingw32/lib/ruby/site_ruby/1.9.1/readline.rb
size of $LOAD_PATH: 8
calls to File.expand_path: 9
9 calls for 1 file in a LOAD_PATH of 8 elements.
Rails average LOAD_PATH (due all the gems that needs to be loaded) is 68.
Attempting the same after doing a gem "rails" and require on top of
the script (before $count):
found: C:/Users/Luis/Tools/Ruby/ruby-1.9.3-p0-i386-mingw32/lib/ruby/site_ruby/1.9.1/readline.rb
size of $LOAD_PATH: 32
calls to File.expand_path: 57
And that still didn't actually load any code, mainly because things
are using autoload for lazy loading, but once they are added to the
$LOAD_PATH, the number of calls to File.expand_path increase.
This could be solved if the expanded_path is expanded only once before
the extension or even better, $LOAD_PATH knows which ones are expanded
from the ones they aren't and avoid the expensive expand_path.
The main blocker here is that everything around feature loading and
tracking in the already loaded features is written in C, inside load.c
and combined with file.c (find_file_* functions)
The code is not easy to read and has zero comments to be able to
understand the whole process.
Sorry, couldn't avoid the rant :-P
http://redmine.ruby-lang.org/issues/5427
Is a non-complex patch that improves the require performance.
>I remember that i saw some patch when this "slow
> require problem" appeared some time ago where using an array was
> replaced with using a hashmap internally. This makes the lookup almost
> O(1) which ought to be a lot faster than using array as it used at the
> moment in official Ruby. Or?
>
That was Xavier Shay, didn't get accepted but a minor variance was
implemented in 1.9.3, that is why 1.9.3 is noticeable faster than
1.9.2. similar to 1.8.7
(but still slow as snail on Windows, that is another thing)
> Anyway, as seeing from the results then the fastest one is Luis's
> patch with fenix :)
>
Yura's + Dusan + Fenix does increase performance beyond just Fenix,
but that needs more experimentation. (don't have the results right now
but I believe I've commented that to Jon)
Thank you for volunteering to be guinea pig on this :o)
You should ask Ruby-Core (errr, that is me).
Was not accepted because:
#1 - The changes to how $LOADED_FEATURES work was BIG and could
introduce newer bugs
(rant: there is no single test or spec that defines what is the right
behavior, nor there is a comment in the code, so go figure)
#2 - 1.9.3 was already in feature-freeze mode, so big changes are not accepted.
If you want to learn more instead of my transcript, please read the
entire thread here:
http://redmine.ruby-lang.org/issues/3924
Just got out of a meeting and saw your results. Finally, a decent inbox message today ;)
> Yura's + Dusan + Fenix does increase performance beyond just Fenix,
> but that needs more experimentation. (don't have the results right now
> but I believe I've commented that to Jon)
Take a look again Luis...it looks to me that Jarmo's data shows ruby_1_9_3 + fenix beating the tcs-ruby193_require_winio (with load.c patch) and fenix.
Did I understand correctly that everything below `RUBYOPT=-rfenix/replace` line has fenix support compiled in? If so, just ruby_1_9_3 + fenix is the current winner in both `user` and `system`.
Or at least on those benchmarks. Probably need to correlate on a real Rails app to see if these results sync up with Rails reality?
Looks like we also need to build ruby_1_9_3 + fenix + http://redmine.ruby-lang.org/attachments/2214/win_io_for_r33699.patch and see how that works.
And as you both say, there's Xavier's work to check out too.
Short term, this may be interesting:
http://groups.google.com/group/thecodeshop/browse_thread/thread/741b810701b990e9
FWIW, I just built both ruby_1_9_3 and trunk on Win7 32bit and didn't run into the problem you're having.