mmap2 2.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Changes +55 -0
- data/README.rdoc +36 -0
- data/b.rb +33 -0
- data/ext/mmap/extconf.rb +22 -0
- data/ext/mmap/mmap.c +2606 -0
- data/lib/mmap/version.rb +5 -0
- data/lib/mmap.rb +21 -0
- data/mmap.rd +253 -0
- data/test/test_mmap.rb +373 -0
- metadata +60 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: bfc0c4712a435e770b3bd57fbfd958a93b0a7551
|
4
|
+
data.tar.gz: 55ae9104e0068bff1b272c90185be0cb1a412100
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 9a9733202cdb8e45b272979835c9d76b7bff98a91e706d58b0ea98cee98599b909ef19aa2680c56dec26717a326bd69f44b17f7edd5a9600e712185b4a643cb7
|
7
|
+
data.tar.gz: e271a48e4db8127d6bb8cd8a0bc3f1451e6badacbb7e987db938381feebbbb40207a76238067f79db2bfbd7e34888283c95332ac1636cb5b376f7cbc7b573ff9
|
data/Changes
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
|
2
|
+
-- 0.1.2
|
3
|
+
|
4
|
+
* fixed some bugs (options & new) (Thanks Joseph McDonald <joe@vpop.net>)
|
5
|
+
* added anonymous map
|
6
|
+
* added mlock, munlock, etc
|
7
|
+
|
8
|
+
-- 0.1.3
|
9
|
+
|
10
|
+
* added #count, #slice, #slice!
|
11
|
+
* added #insert, #casecmp (>= 171)
|
12
|
+
* corrected NEW2LONG
|
13
|
+
|
14
|
+
-- 0.1.4
|
15
|
+
|
16
|
+
* added #lstrip!, #rstrip! for 1.7.1
|
17
|
+
* corrected strip!
|
18
|
+
* corrected mm_bang_i (reverse!, etc)
|
19
|
+
* added a small test (make test)
|
20
|
+
|
21
|
+
-- 0.1.5
|
22
|
+
|
23
|
+
* added str[/a(a)/, 1] for 1.7.1
|
24
|
+
* corrected mm_aset (mm_update(str, ...))
|
25
|
+
* corrected ==, ===, eql?
|
26
|
+
* corrected mm_sub_bang, mm_gsub_bang (to_str)
|
27
|
+
|
28
|
+
-- 0.1.6
|
29
|
+
|
30
|
+
* adapted for 1.7.2 (mm_str)
|
31
|
+
* corrected real for mm_sub_bang
|
32
|
+
* protected against old class
|
33
|
+
|
34
|
+
-- 0.1.7
|
35
|
+
|
36
|
+
* 1.7.2 (::allocate, #initialize)
|
37
|
+
* added "a" for ::new
|
38
|
+
* experimental EXP_INCR_SIZE (4096) ("increment" => 4096)
|
39
|
+
* tests for RUNIT/Test::Unit
|
40
|
+
|
41
|
+
-- 0.1.8
|
42
|
+
|
43
|
+
* test for madvise(2)
|
44
|
+
* don't test size for MAP_ANON
|
45
|
+
* added syntax Mmap(nil, length)
|
46
|
+
* documentation : make rd2; make rdoc
|
47
|
+
|
48
|
+
-- 0.1.9
|
49
|
+
|
50
|
+
* String#slice! was modified in 1.6.8
|
51
|
+
* added ::new(IO)
|
52
|
+
|
53
|
+
--- 0.2.0
|
54
|
+
|
55
|
+
* adapted for 1.8.0
|
data/README.rdoc
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
= Mmap
|
2
|
+
|
3
|
+
* http://rubyforge.org/frs/?group_id=8350
|
4
|
+
|
5
|
+
== DESCRIPTION
|
6
|
+
|
7
|
+
The Mmap class implement memory-mapped file objects
|
8
|
+
|
9
|
+
== SYNOPSIS
|
10
|
+
|
11
|
+
require 'mmap'
|
12
|
+
|
13
|
+
mmap = Mmap.new(__FILE__)
|
14
|
+
mmap.advise(Mmap::MADV_SEQUENTIAL)
|
15
|
+
|
16
|
+
mmap.each do |line|
|
17
|
+
puts line
|
18
|
+
end
|
19
|
+
|
20
|
+
== Installation
|
21
|
+
|
22
|
+
gem install mmap
|
23
|
+
|
24
|
+
== Documentation
|
25
|
+
|
26
|
+
rake docs
|
27
|
+
|
28
|
+
== Copying
|
29
|
+
|
30
|
+
This extension module is copyrighted free software by Guy Decoux
|
31
|
+
|
32
|
+
You can redistribute it and/or modify it under the same term as
|
33
|
+
Ruby.
|
34
|
+
|
35
|
+
|
36
|
+
Guy Decoux <ts@moulon.inra.fr>
|
data/b.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
$LOAD_PATH.unshift "."
|
3
|
+
require "mmap"
|
4
|
+
PAGESIZE = 4096
|
5
|
+
f = File.open("aa", "w")
|
6
|
+
f.write("\0" * PAGESIZE)
|
7
|
+
f.write("b.rb")
|
8
|
+
f.write("\0" * PAGESIZE)
|
9
|
+
f.close
|
10
|
+
m = Mmap.new("aa", "w", "offset" => 0)
|
11
|
+
p m.size == "b.rb".size + 2 * PAGESIZE
|
12
|
+
p m.scan(/[a-z.]+/) == ["b.rb"]
|
13
|
+
p m.index("b.rb") == PAGESIZE
|
14
|
+
p m.rindex("b.rb") == PAGESIZE
|
15
|
+
p m.sub!(/[a-z.]+/, "toto") == m
|
16
|
+
p m.scan(/[a-z.]+/) == ["toto"]
|
17
|
+
begin
|
18
|
+
m.sub!(/[a-z.]+/, "alpha")
|
19
|
+
puts "not OK must give an error"
|
20
|
+
rescue
|
21
|
+
puts "OK : #$!"
|
22
|
+
end
|
23
|
+
m.munmap
|
24
|
+
m = Mmap.new("aa", "rw")
|
25
|
+
p m.index("toto") == PAGESIZE
|
26
|
+
p m.sub!(/([a-z.]+)/, "alpha") == m
|
27
|
+
p $& == "toto"
|
28
|
+
p $1 == "toto"
|
29
|
+
p m.index("toto") == nil
|
30
|
+
p m.index("alpha") == PAGESIZE
|
31
|
+
p m.size == 5 + 2 * PAGESIZE
|
32
|
+
m.gsub!(/\0/, "X")
|
33
|
+
p m.size == 5 + 2 * PAGESIZE
|
data/ext/mmap/extconf.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
ARGV.collect! {|x| x.sub(/^--with-mmap-prefix=/, "--with-mmap-dir=") }
|
3
|
+
|
4
|
+
require 'mkmf'
|
5
|
+
|
6
|
+
dir_config("mmap")
|
7
|
+
|
8
|
+
["lstrip", "match", "insert", "casecmp"].each do |func|
|
9
|
+
if "aa".respond_to?(func)
|
10
|
+
$CFLAGS += " -DHAVE_RB_STR_#{func.upcase}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
have_func 'rb_fstring_new'
|
15
|
+
|
16
|
+
if enable_config("ipc")
|
17
|
+
unless have_func("semctl") && have_func("shmctl")
|
18
|
+
$stderr.puts "\tIPC will not be available"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
create_makefile "mmap/mmap"
|