ffi 1.1.6.pre2 → 1.2.0.dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ffi might be problematic. Click here for more details.
- data/README.md +104 -0
- data/Rakefile +36 -43
- data/ext/ffi_c/AbstractMemory.c +22 -16
- data/ext/ffi_c/AbstractMemory.h +1 -1
- data/ext/ffi_c/Buffer.c +2 -2
- data/ext/ffi_c/Call.c +8 -6
- data/ext/ffi_c/ClosurePool.c +1 -1
- data/ext/ffi_c/DynamicLibrary.c +2 -2
- data/ext/ffi_c/Function.c +25 -26
- data/ext/ffi_c/Function.h +1 -1
- data/ext/ffi_c/MappedType.c +1 -0
- data/ext/ffi_c/MemoryPointer.c +8 -2
- data/ext/ffi_c/MethodHandle.c +1 -4
- data/ext/ffi_c/Pointer.c +1 -1
- data/ext/ffi_c/Struct.c +5 -5
- data/ext/ffi_c/StructByValue.c +1 -1
- data/ext/ffi_c/StructLayout.c +5 -5
- data/ext/ffi_c/Thread.c +2 -2
- data/ext/ffi_c/Type.c +3 -3
- data/ext/ffi_c/Types.c +2 -4
- data/ext/ffi_c/Types.h +5 -0
- data/ext/ffi_c/Variadic.c +2 -4
- data/ext/ffi_c/extconf.rb +6 -7
- data/ext/ffi_c/ffi.c +1 -1
- data/ext/ffi_c/libffi.darwin.mk +2 -2
- data/ext/ffi_c/libffi.mk +1 -1
- data/ext/ffi_c/rbffi_endian.h +1 -10
- data/spec/ffi/rbx/memory_pointer_spec.rb +0 -4
- metadata +107 -126
- data/README.rdoc +0 -102
- data/gen/log +0 -1
- data/tasks/ann.rake +0 -80
- data/tasks/extension.rake +0 -32
- data/tasks/gem.rake +0 -199
- data/tasks/git.rake +0 -41
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -50
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -301
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/yard.rake +0 -11
    
        data/tasks/spec.rake
    DELETED
    
    | @@ -1,54 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            if HAVE_SPEC_RAKE_SPECTASK and not PROJ.spec.files.to_a.empty?
         | 
| 3 | 
            -
            require 'spec/rake/verify_rcov'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            namespace :spec do
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              desc 'Run all specs with basic output'
         | 
| 8 | 
            -
              Spec::Rake::SpecTask.new(:run) do |t|
         | 
| 9 | 
            -
                t.ruby_opts = PROJ.ruby_opts
         | 
| 10 | 
            -
                t.spec_opts = PROJ.spec.opts
         | 
| 11 | 
            -
                t.spec_files = PROJ.spec.files
         | 
| 12 | 
            -
                t.libs += PROJ.libs
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              desc 'Run all specs with text output'
         | 
| 16 | 
            -
              Spec::Rake::SpecTask.new(:specdoc) do |t|
         | 
| 17 | 
            -
                t.ruby_opts = PROJ.ruby_opts
         | 
| 18 | 
            -
                t.spec_opts = PROJ.spec.opts + ['--format', 'specdoc']
         | 
| 19 | 
            -
                t.spec_files = PROJ.spec.files
         | 
| 20 | 
            -
                t.libs += PROJ.libs
         | 
| 21 | 
            -
              end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
              if HAVE_RCOV
         | 
| 24 | 
            -
                desc 'Run all specs with RCov'
         | 
| 25 | 
            -
                Spec::Rake::SpecTask.new(:rcov) do |t|
         | 
| 26 | 
            -
                  t.ruby_opts = PROJ.ruby_opts
         | 
| 27 | 
            -
                  t.spec_opts = PROJ.spec.opts
         | 
| 28 | 
            -
                  t.spec_files = PROJ.spec.files
         | 
| 29 | 
            -
                  t.libs += PROJ.libs
         | 
| 30 | 
            -
                  t.rcov = true
         | 
| 31 | 
            -
                  t.rcov_dir = PROJ.rcov.dir
         | 
| 32 | 
            -
                  t.rcov_opts = PROJ.rcov.opts + ['--exclude', 'spec']
         | 
| 33 | 
            -
                end
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                RCov::VerifyTask.new(:verify) do |t| 
         | 
| 36 | 
            -
                  t.threshold = PROJ.rcov.threshold
         | 
| 37 | 
            -
                  t.index_html = File.join(PROJ.rcov.dir, 'index.html')
         | 
| 38 | 
            -
                  t.require_exact_threshold = PROJ.rcov.threshold_exact
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                task :verify => :rcov
         | 
| 42 | 
            -
                remove_desc_for_task %w(spec:clobber_rcov)
         | 
| 43 | 
            -
              end
         | 
| 44 | 
            -
             | 
| 45 | 
            -
            end  # namespace :spec
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            desc 'Alias to spec:run'
         | 
| 48 | 
            -
            task :spec => 'spec:run'
         | 
| 49 | 
            -
             | 
| 50 | 
            -
            task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
         | 
| 51 | 
            -
             | 
| 52 | 
            -
            end  # if HAVE_SPEC_RAKE_SPECTASK
         | 
| 53 | 
            -
             | 
| 54 | 
            -
            # EOF
         | 
    
        data/tasks/svn.rake
    DELETED
    
    | @@ -1,47 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            if HAVE_SVN
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            unless PROJ.svn.root
         | 
| 5 | 
            -
              info = %x/svn info ./
         | 
| 6 | 
            -
              m = %r/^Repository Root:\s+(.*)$/.match(info)
         | 
| 7 | 
            -
              PROJ.svn.root = (m.nil? ? '' : m[1])
         | 
| 8 | 
            -
            end
         | 
| 9 | 
            -
            PROJ.svn.root = File.join(PROJ.svn.root, PROJ.svn.path) unless PROJ.svn.path.empty?
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            namespace :svn do
         | 
| 12 | 
            -
             | 
| 13 | 
            -
              # A prerequisites task that all other tasks depend upon
         | 
| 14 | 
            -
              task :prereqs
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              desc 'Show tags from the SVN repository'
         | 
| 17 | 
            -
              task :show_tags => 'svn:prereqs' do |t|
         | 
| 18 | 
            -
                tags = %x/svn list #{File.join(PROJ.svn.root, PROJ.svn.tags)}/
         | 
| 19 | 
            -
                tags.gsub!(%r/\/$/, '')
         | 
| 20 | 
            -
                tags = tags.split("\n").sort {|a,b| b <=> a}
         | 
| 21 | 
            -
                puts tags
         | 
| 22 | 
            -
              end
         | 
| 23 | 
            -
             | 
| 24 | 
            -
              desc 'Create a new tag in the SVN repository'
         | 
| 25 | 
            -
              task :create_tag => 'svn:prereqs' do |t|
         | 
| 26 | 
            -
                v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
         | 
| 27 | 
            -
                abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                svn = PROJ.svn
         | 
| 30 | 
            -
                trunk = File.join(svn.root, svn.trunk)
         | 
| 31 | 
            -
                tag = "%s-%s" % [PROJ.name, PROJ.version]
         | 
| 32 | 
            -
                tag = File.join(svn.root, svn.tags, tag)
         | 
| 33 | 
            -
                msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
         | 
| 34 | 
            -
             | 
| 35 | 
            -
                puts "Creating SVN tag '#{tag}'"
         | 
| 36 | 
            -
                unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
         | 
| 37 | 
            -
                  abort "Tag creation failed" 
         | 
| 38 | 
            -
                end
         | 
| 39 | 
            -
              end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
            end  # namespace :svn
         | 
| 42 | 
            -
             | 
| 43 | 
            -
            task 'gem:release' => 'svn:create_tag'
         | 
| 44 | 
            -
             | 
| 45 | 
            -
            end  # if PROJ.svn.path
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            # EOF
         | 
    
        data/tasks/test.rake
    DELETED
    
    | @@ -1,40 +0,0 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            if test(?e, PROJ.test.file) or not PROJ.test.files.to_a.empty?
         | 
| 3 | 
            -
            require 'rake/testtask'
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            namespace :test do
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              Rake::TestTask.new(:run) do |t|
         | 
| 8 | 
            -
                t.libs = PROJ.libs
         | 
| 9 | 
            -
                t.test_files = if test(?f, PROJ.test.file) then [PROJ.test.file]
         | 
| 10 | 
            -
                               else PROJ.test.files end
         | 
| 11 | 
            -
                t.ruby_opts += PROJ.ruby_opts
         | 
| 12 | 
            -
                t.ruby_opts += PROJ.test.opts
         | 
| 13 | 
            -
              end
         | 
| 14 | 
            -
             | 
| 15 | 
            -
              if HAVE_RCOV
         | 
| 16 | 
            -
                desc 'Run rcov on the unit tests'
         | 
| 17 | 
            -
                task :rcov => :clobber_rcov do
         | 
| 18 | 
            -
                  opts = PROJ.rcov.opts.dup << '-o' << PROJ.rcov.dir
         | 
| 19 | 
            -
                  opts = opts.join(' ')
         | 
| 20 | 
            -
                  files = if test(?f, PROJ.test.file) then [PROJ.test.file]
         | 
| 21 | 
            -
                          else PROJ.test.files end
         | 
| 22 | 
            -
                  files = files.join(' ')
         | 
| 23 | 
            -
                  sh "#{RCOV} #{files} #{opts}"
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
             | 
| 26 | 
            -
                task :clobber_rcov do
         | 
| 27 | 
            -
                  rm_r 'coverage' rescue nil
         | 
| 28 | 
            -
                end
         | 
| 29 | 
            -
              end
         | 
| 30 | 
            -
             | 
| 31 | 
            -
            end  # namespace :test
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            desc 'Alias to test:run'
         | 
| 34 | 
            -
            task :test => 'test:run'
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            task :clobber => 'test:clobber_rcov' if HAVE_RCOV
         | 
| 37 | 
            -
             | 
| 38 | 
            -
            end
         | 
| 39 | 
            -
             | 
| 40 | 
            -
            # EOF
         |