gecoder-with-gecode 0.7.1-mswin32 → 0.8.0-mswin32

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.
Files changed (66) hide show
  1. data/CHANGES +7 -0
  2. data/README +10 -1
  3. data/lib/gecode.dll +0 -0
  4. data/lib/gecoder/bindings/bindings.rb +407 -731
  5. data/lib/gecoder/interface/binding_changes.rb +1 -1
  6. data/lib/gecoder/interface/branch.rb +25 -25
  7. data/lib/gecoder/interface/constraints.rb +47 -4
  8. data/lib/gecoder/interface/constraints/bool/boolean.rb +18 -16
  9. data/lib/gecoder/interface/constraints/bool_enum/boolean.rb +13 -11
  10. data/lib/gecoder/interface/constraints/int/arithmetic.rb +5 -4
  11. data/lib/gecoder/interface/constraints/int/domain.rb +8 -9
  12. data/lib/gecoder/interface/constraints/int/linear.rb +10 -8
  13. data/lib/gecoder/interface/constraints/int_enum/arithmetic.rb +4 -4
  14. data/lib/gecoder/interface/constraints/int_enum/channel.rb +2 -2
  15. data/lib/gecoder/interface/constraints/int_enum/count.rb +4 -5
  16. data/lib/gecoder/interface/constraints/int_enum/distinct.rb +7 -2
  17. data/lib/gecoder/interface/constraints/int_enum/element.rb +2 -2
  18. data/lib/gecoder/interface/constraints/int_enum/equality.rb +6 -3
  19. data/lib/gecoder/interface/constraints/int_enum/sort.rb +17 -5
  20. data/lib/gecoder/interface/constraints/set_enum/distinct.rb +0 -36
  21. data/lib/gecoder/interface/constraints/set_var_constraints.rb +5 -0
  22. data/lib/gecoder/interface/model.rb +3 -3
  23. data/lib/gecoder/interface/search.rb +5 -4
  24. data/lib/gecoder/version.rb +1 -1
  25. data/specs/branch.rb +27 -27
  26. data/specs/constraints/arithmetic.rb +48 -30
  27. data/specs/constraints/bool_enum.rb +39 -19
  28. data/specs/constraints/boolean.rb +10 -10
  29. data/specs/constraints/cardinality.rb +12 -9
  30. data/specs/constraints/channel.rb +6 -6
  31. data/specs/constraints/connection.rb +22 -26
  32. data/specs/constraints/constraint_helper.rb +125 -41
  33. data/specs/constraints/count.rb +22 -15
  34. data/specs/constraints/distinct.rb +10 -64
  35. data/specs/constraints/element.rb +14 -12
  36. data/specs/constraints/equality.rb +4 -4
  37. data/specs/constraints/int_domain.rb +8 -7
  38. data/specs/constraints/int_relation.rb +12 -8
  39. data/specs/constraints/linear.rb +4 -4
  40. data/specs/constraints/reification_sugar.rb +22 -4
  41. data/specs/constraints/selection.rb +2 -2
  42. data/specs/constraints/set_domain.rb +7 -3
  43. data/specs/constraints/set_operation.rb +2 -2
  44. data/specs/constraints/set_relation.rb +2 -6
  45. data/specs/constraints/sort.rb +20 -16
  46. data/specs/model.rb +4 -4
  47. data/tasks/dependencies.txt +21 -0
  48. data/tasks/distribution.rake +13 -5
  49. data/vendor/gecode/win32/lib/libgecodeint.dll +0 -0
  50. data/vendor/gecode/win32/lib/libgecodekernel.dll +0 -0
  51. data/vendor/gecode/win32/lib/libgecodeminimodel.dll +0 -0
  52. data/vendor/gecode/win32/lib/libgecodesearch.dll +0 -0
  53. data/vendor/gecode/win32/lib/libgecodeset.dll +0 -0
  54. data/vendor/gecode/win32/lib/libgecodesupport.dll +0 -0
  55. data/vendor/rust/include/rust_checks.hh +2 -1
  56. data/vendor/rust/include/rust_conversions.hh +2 -2
  57. data/vendor/rust/rust/attribute.rb +2 -2
  58. data/vendor/rust/rust/class.rb +2 -2
  59. data/vendor/rust/rust/cxxclass.rb +0 -2
  60. data/vendor/rust/rust/function.rb +2 -2
  61. data/vendor/rust/rust/templates/AttributeDefinition.rusttpl +1 -1
  62. data/vendor/rust/rust/templates/StandaloneClassDeclarations.rusttpl +1 -1
  63. data/vendor/rust/rust/templates/VariableFunctionCall.rusttpl +1 -1
  64. data/vendor/rust/rust/type.rb +1 -1
  65. metadata +4 -3
  66. data/tasks/building.howto +0 -65
@@ -54,7 +54,7 @@ describe Gecode::Constraints::Int::Linear do
54
54
  (@x + @y).must_be.greater_than(@z, hash)
55
55
  @model.solve!
56
56
  end
57
- @expect_options = lambda do |strength, reif_var|
57
+ @expect_options = option_expectation do |strength, kind, reif_var|
58
58
  # TODO: this is hard to spec from this level.
59
59
  end
60
60
  end
@@ -187,7 +187,7 @@ describe Gecode::Constraints::Int::Linear do
187
187
  (@x * :foo).should be_nil
188
188
  end
189
189
 
190
- it_should_behave_like 'constraint with options'
190
+ it_should_behave_like 'reifiable constraint'
191
191
  end
192
192
 
193
193
  describe Gecode::Constraints::Int::Linear, '(with booleans)' do
@@ -202,7 +202,7 @@ describe Gecode::Constraints::Int::Linear, '(with booleans)' do
202
202
  (@x + @y).must_be.greater_than(@z, hash)
203
203
  @model.solve!
204
204
  end
205
- @expect_options = lambda do |strength, reif_var|
205
+ @expect_options = option_expectation do |strength, kind, reif_var|
206
206
  # TODO: this is hard to spec from this level.
207
207
  end
208
208
  end
@@ -326,7 +326,7 @@ describe Gecode::Constraints::Int::Linear, '(with booleans)' do
326
326
  (@x * :foo).should be_nil
327
327
  end
328
328
 
329
- it_should_behave_like 'constraint with options'
329
+ it_should_behave_like 'reifiable constraint'
330
330
  end
331
331
 
332
332
 
@@ -27,14 +27,23 @@ describe Gecode::Constraints::ReifiableConstraint do
27
27
  end
28
28
 
29
29
  it 'should translate disjunctions' do
30
+ Gecode::Raw.should_receive(:rel).once.with(
31
+ an_instance_of(Gecode::Raw::Space),
32
+ an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::BOT_OR,
33
+ an_instance_of(Gecode::Raw::BoolVar),
34
+ an_instance_of(Gecode::Raw::BoolVar),
35
+ Gecode::Raw::ICL_DEF, Gecode::Raw::PK_DEF
36
+ )
30
37
  Gecode::Raw.should_receive(:rel).once.with(
31
38
  an_instance_of(Gecode::Raw::Space),
32
39
  an_instance_of(Gecode::Raw::IntVar), Gecode::Raw::IRT_GR, 0,
33
- an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF)
40
+ an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF,
41
+ Gecode::Raw::PK_DEF)
34
42
  Gecode::Raw.should_receive(:rel).once.with(
35
43
  an_instance_of(Gecode::Raw::Space),
36
44
  an_instance_of(Gecode::Raw::IntVar), Gecode::Raw::IRT_EQ, 3,
37
- an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF)
45
+ an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF,
46
+ Gecode::Raw::PK_DEF)
38
47
  (@x.must > 0) | (@y.must == 3)
39
48
  sol = @model.solve!
40
49
  end
@@ -52,14 +61,23 @@ describe Gecode::Constraints::ReifiableConstraint do
52
61
  end
53
62
 
54
63
  it 'should translate conjunctions' do
64
+ Gecode::Raw.should_receive(:rel).once.with(
65
+ an_instance_of(Gecode::Raw::Space),
66
+ an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::BOT_AND,
67
+ an_instance_of(Gecode::Raw::BoolVar),
68
+ an_instance_of(Gecode::Raw::BoolVar),
69
+ Gecode::Raw::ICL_DEF, Gecode::Raw::PK_DEF
70
+ )
55
71
  Gecode::Raw.should_receive(:rel).once.with(
56
72
  an_instance_of(Gecode::Raw::Space),
57
73
  an_instance_of(Gecode::Raw::IntVar), Gecode::Raw::IRT_GR, 0,
58
- an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF)
74
+ an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF,
75
+ Gecode::Raw::PK_DEF)
59
76
  Gecode::Raw.should_receive(:rel).once.with(
60
77
  an_instance_of(Gecode::Raw::Space),
61
78
  an_instance_of(Gecode::Raw::IntVar), Gecode::Raw::IRT_EQ, 2,
62
- an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF)
79
+ an_instance_of(Gecode::Raw::BoolVar), Gecode::Raw::ICL_DEF,
80
+ Gecode::Raw::PK_DEF)
63
81
  (@x.must > 0) & (@y.must == 2)
64
82
  sol = @model.solve!
65
83
  end
@@ -79,7 +79,7 @@ describe 'selection constraint', :shared => true do
79
79
  @stub.must_be.subset_of(@target, hash)
80
80
  @model.solve!
81
81
  end
82
- @expect_options = lambda do |strength, reif_var|
82
+ @expect_options = option_expectation do |strength, kind, reif_var|
83
83
  @expect.call(17, Gecode::Raw::SRT_SUB, @target, reif_var, false)
84
84
  end
85
85
  end
@@ -267,7 +267,7 @@ describe Gecode::Constraints::SetEnum::Selection, ' (disjoint)' do
267
267
  @sets[@set].must_be.disjoint(hash)
268
268
  @model.solve!
269
269
  end
270
- @expect_options = lambda do |strength, reif_var|
270
+ @expect_options = option_expectation do |strength, kind, reif_var|
271
271
  @expect.call(@set)
272
272
  end
273
273
  end
@@ -35,7 +35,7 @@ describe Gecode::Constraints::Set::Domain do
35
35
  @set.must_be.superset_of(@non_range, hash)
36
36
  @model.solve!
37
37
  end
38
- @expect_options = lambda do |strength, reif_var|
38
+ @expect_options = option_expectation do |strength, kind, reif_var|
39
39
  @expect.call(Gecode::Raw::SRT_SUP, @non_range, reif_var, false)
40
40
  end
41
41
  end
@@ -100,6 +100,7 @@ describe Gecode::Constraints::Set::Domain, ' (equality)' do
100
100
  @range = 0..1
101
101
  @non_range = [0, 2]
102
102
  @singleton = 0
103
+ @model.branch_on @model.wrap_enum([@set])
103
104
 
104
105
  @expect = lambda do |relation_type, rhs, reif_var|
105
106
  @model.allow_space_access do
@@ -123,7 +124,7 @@ describe Gecode::Constraints::Set::Domain, ' (equality)' do
123
124
  @set.must_be.equal_to(@non_range, hash)
124
125
  @model.solve!
125
126
  end
126
- @expect_options = lambda do |strength, reif_var|
127
+ @expect_options = option_expectation do |strength, kind, reif_var|
127
128
  @expect.call(Gecode::Raw::SRT_EQ, @non_range, reif_var)
128
129
  end
129
130
  end
@@ -174,7 +175,10 @@ describe Gecode::Constraints::Set::Domain, ' (equality)' do
174
175
 
175
176
  it 'should constrain the domain with inequality' do
176
177
  @set.must_not == @singleton
177
- @model.solve!.should be_nil
178
+ @model.solve!
179
+ @set.should be_assigned
180
+ @set.value.should include(@singleton)
181
+ @set.value.size.should > 1
178
182
  end
179
183
 
180
184
  it_should_behave_like 'reifiable set constraint'
@@ -31,7 +31,7 @@ describe Gecode::Constraints::Set::Operation do
31
31
  @set1.union(@set2).must_be.superset_of(@rhs, hash)
32
32
  @model.solve!
33
33
  end
34
- @expect_options = lambda do |strength, reif_var|
34
+ @expect_options = option_expectation do |strength, kind, reif_var|
35
35
  @expect.call(@set1, Gecode::Raw::SOT_SUP, @set2, Gecode::Raw::SRT_SUP,
36
36
  @rhs, reif_var, false)
37
37
  end
@@ -199,7 +199,7 @@ describe 'set enum operation constraint', :shared => true do
199
199
  @stub.must_be.superset_of(@rhs, hash)
200
200
  @model.solve!
201
201
  end
202
- @expect_options = lambda do |strength, reif_var|
202
+ @expect_options = option_expectation do |strength, kind, reif_var|
203
203
  @expect.call(@sets, @operation_type, Gecode::Raw::SRT_SUP, @rhs,
204
204
  reif_var, false)
205
205
  end
@@ -31,7 +31,7 @@ describe Gecode::Constraints::Set::Relation do
31
31
  @set.must_be.superset_of(@set2, hash)
32
32
  @model.solve!
33
33
  end
34
- @expect_options = lambda do |strength, reif_var|
34
+ @expect_options = option_expectation do |strength, kind, reif_var|
35
35
  @expect.call(Gecode::Raw::SRT_SUP, @set2, reif_var, false)
36
36
  end
37
37
  end
@@ -84,7 +84,7 @@ describe Gecode::Constraints::Set::Relation, ' (equality)' do
84
84
  @set.must_be.equal_to(@set2, hash)
85
85
  @model.solve!
86
86
  end
87
- @expect_options = lambda do |strength, reif_var|
87
+ @expect_options = option_expectation do |strength, kind, reif_var|
88
88
  @expect.call(Gecode::Raw::SRT_EQ, @set2, reif_var)
89
89
  end
90
90
  end
@@ -146,10 +146,6 @@ describe Gecode::Constraints::Set::Relation, ' (elements)' do
146
146
  @invoke_options = lambda do |hash|
147
147
  @set.elements.must_be.equal_to(@int_var, hash)
148
148
  end
149
-
150
- @invoke_options = lambda do |hash|
151
- @set.elements.must_be.equal_to(@int_var, hash)
152
- end
153
149
  end
154
150
 
155
151
  Gecode::Constraints::Util::RELATION_TYPES.each_pair do |relation, type|
@@ -28,24 +28,28 @@ describe Gecode::Constraints::IntEnum::Sort, ' (without :as and :order)' do
28
28
  @vars.must_be.sorted(hash)
29
29
  @model.solve!
30
30
  end
31
- @expect_options = lambda do |strength, reif_var|
31
+ @expect_options = option_expectation do |strength, kind, reif_var|
32
32
  if reif_var.nil?
33
33
  Gecode::Raw.should_receive(:rel).exactly(@vars.size - 1).times.with(
34
34
  an_instance_of(Gecode::Raw::Space),
35
35
  an_instance_of(Gecode::Raw::IntVar), Gecode::Raw::IRT_LQ,
36
- an_instance_of(Gecode::Raw::IntVar), strength)
36
+ an_instance_of(Gecode::Raw::IntVar), strength, kind)
37
37
  else
38
+ Gecode::Raw.should_receive(:rel).once.with(
39
+ an_instance_of(Gecode::Raw::Space), anything,
40
+ an_instance_of(Gecode::Raw::BoolVarArray),
41
+ anything, anything, anything)
38
42
  Gecode::Raw.should_receive(:rel).exactly(@vars.size - 1).times.with(
39
43
  an_instance_of(Gecode::Raw::Space),
40
44
  an_instance_of(Gecode::Raw::IntVar), Gecode::Raw::IRT_LQ,
41
45
  an_instance_of(Gecode::Raw::IntVar),
42
- an_instance_of(Gecode::Raw::BoolVar), strength)
46
+ an_instance_of(Gecode::Raw::BoolVar), strength, kind)
43
47
  end
44
48
  end
45
49
  end
46
50
 
47
51
  it 'should translate into n relation constraints' do
48
- @expect_options.call(Gecode::Raw::ICL_DEF, nil)
52
+ @expect_options.call({})
49
53
  @invoke_options.call({})
50
54
  end
51
55
 
@@ -62,7 +66,7 @@ describe Gecode::Constraints::IntEnum::Sort, ' (without :as and :order)' do
62
66
  values.should_not == values.sort
63
67
  end
64
68
 
65
- it_should_behave_like 'constraint with options'
69
+ it_should_behave_like 'reifiable constraint'
66
70
  end
67
71
 
68
72
  describe Gecode::Constraints::IntEnum::Sort, ' (with :as)' do
@@ -78,16 +82,16 @@ describe Gecode::Constraints::IntEnum::Sort, ' (with :as)' do
78
82
  @vars.must_be.sorted hash.update(:as => @sorted)
79
83
  @model.solve!
80
84
  end
81
- @expect_options = lambda do |strength, reif_var|
82
- Gecode::Raw.should_receive(:sortedness).once.with(
85
+ @expect_options = option_expectation do |strength, kind, reif_var|
86
+ Gecode::Raw.should_receive(:sorted).once.with(
83
87
  an_instance_of(Gecode::Raw::Space),
84
88
  an_instance_of(Gecode::Raw::IntVarArray),
85
- an_instance_of(Gecode::Raw::IntVarArray), strength)
89
+ an_instance_of(Gecode::Raw::IntVarArray), strength, kind)
86
90
  end
87
91
  end
88
92
 
89
93
  it 'should translate into a sortedness constraints' do
90
- @expect_options.call(Gecode::Raw::ICL_DEF, nil)
94
+ @expect_options.call({})
91
95
  @invoke_options.call({})
92
96
  end
93
97
 
@@ -107,7 +111,7 @@ describe Gecode::Constraints::IntEnum::Sort, ' (with :as)' do
107
111
  Gecode::MissingConstraintError)
108
112
  end
109
113
 
110
- it_should_behave_like 'constraint with strength option'
114
+ it_should_behave_like 'non-reifiable constraint'
111
115
  end
112
116
 
113
117
  describe Gecode::Constraints::IntEnum::Sort, ' (with :order)' do
@@ -124,22 +128,22 @@ describe Gecode::Constraints::IntEnum::Sort, ' (with :order)' do
124
128
  @vars.must_be.sorted hash.update(:order => @indices, :as => @sorted)
125
129
  @model.solve!
126
130
  end
127
- @expect_options = lambda do |strength, reif_var|
128
- Gecode::Raw.should_receive(:sortedness).once.with(
131
+ @expect_options = option_expectation do |strength, kind, reif_var|
132
+ Gecode::Raw.should_receive(:sorted).once.with(
129
133
  an_instance_of(Gecode::Raw::Space),
130
134
  an_instance_of(Gecode::Raw::IntVarArray),
131
135
  an_instance_of(Gecode::Raw::IntVarArray),
132
- an_instance_of(Gecode::Raw::IntVarArray), strength)
136
+ an_instance_of(Gecode::Raw::IntVarArray), strength, kind)
133
137
  end
134
138
  end
135
139
 
136
140
  it 'should translate into a sortedness constraints' do
137
- @expect_options.call(Gecode::Raw::ICL_DEF, nil)
141
+ @expect_options.call({})
138
142
  @invoke_options.call({})
139
143
  end
140
144
 
141
145
  it 'should translate into a sortedness constraints, even without a target' do
142
- @expect_options.call(Gecode::Raw::ICL_DEF, nil)
146
+ @expect_options.call({})
143
147
  @vars.must_be.sorted(:order => @indices)
144
148
  @model.solve!
145
149
  end
@@ -171,5 +175,5 @@ describe Gecode::Constraints::IntEnum::Sort, ' (with :order)' do
171
175
  end.should raise_error(Gecode::MissingConstraintError)
172
176
  end
173
177
 
174
- it_should_behave_like 'constraint with strength option'
178
+ it_should_behave_like 'non-reifiable constraint'
175
179
  end
data/specs/model.rb CHANGED
@@ -13,8 +13,8 @@ describe Gecode::Model, ' (integer creation)' do
13
13
  it 'should allow the creation of int variables without specified domain' do
14
14
  var = @model.int_var
15
15
  var.should be_range
16
- var.min.should == Gecode::Raw::Limits::Int::INT_MIN
17
- var.max.should == Gecode::Raw::Limits::Int::INT_MAX
16
+ var.min.should == Gecode::Raw::IntLimits::MIN
17
+ var.max.should == Gecode::Raw::IntLimits::MAX
18
18
  end
19
19
 
20
20
  it 'should allow the creation of int variables with non-range domains' do
@@ -98,8 +98,8 @@ describe Gecode::Model, ' (set creation)' do
98
98
  it 'should allow the creation of set variables without specified bounds' do
99
99
  var = @model.set_var
100
100
  var.lower_bound.size.should == 0
101
- var.upper_bound.min.should == Gecode::Raw::Limits::Set::INT_MIN
102
- var.upper_bound.max.should == Gecode::Raw::Limits::Set::INT_MAX
101
+ var.upper_bound.min.should == Gecode::Raw::SetLimits::MIN
102
+ var.upper_bound.max.should == Gecode::Raw::SetLimits::MAX
103
103
  end
104
104
 
105
105
  it 'should allow the creation of set variables with glb range and lub range' do
@@ -0,0 +1,21 @@
1
+ Doing the full "release" task requires a number of gems:
2
+
3
+ # To run the Rake scripts.
4
+ rake
5
+
6
+ # To generate the website.
7
+ webgen
8
+ coderay
9
+
10
+ # To run the specs and produce a report for the website.
11
+ rspec
12
+
13
+ # To release files to RubyForge.
14
+ meta_project
15
+ rubyforge
16
+
17
+
18
+
19
+ To precompile the Windows gem you need to set up a cross-compilation
20
+ environment. See the following notes for instructions:
21
+ http://rubyforge.org/pipermail/gecoder-devel/2008-January/000039.html
@@ -5,6 +5,8 @@ PKG_NAME_WITH_GECODE = 'gecoder-with-gecode'
5
5
  PKG_VERSION = GecodeR::VERSION
6
6
  PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
7
7
  PKG_FILE_NAME_WITH_GECODE = "#{PKG_NAME_WITH_GECODE}-#{PKG_VERSION}"
8
+ # The location where the precompiled DLL should be placed.
9
+ DLL_LOCATION = 'lib/gecode.dll'
8
10
 
9
11
  desc 'Generate RDoc'
10
12
  rd = Rake::RDocTask.new do |rdoc|
@@ -59,7 +61,7 @@ spec = Gem::Specification.new do |s|
59
61
  ].to_a
60
62
  s.require_path = 'lib'
61
63
  s.extensions << 'ext/extconf.rb'
62
- s.requirements << 'Gecode 1.3.1'
64
+ s.requirements << 'Gecode 2.1.1'
63
65
 
64
66
  s.has_rdoc = true
65
67
  s.rdoc_options = rd.options
@@ -87,7 +89,8 @@ spec_windows_binary_with_gecode.platform = Gem::Platform::WIN32
87
89
  # Create a clone of the gem spec that includes Gecode.
88
90
  spec_with_gecode = spec.dup
89
91
  spec_with_gecode.name = PKG_NAME_WITH_GECODE
90
- spec_with_gecode.extensions = spec.extensions.dup << 'ext/gecode-1.3.1/extconf.rb'
92
+ spec_with_gecode.extensions =
93
+ spec_with_gecode.extensions.dup.unshift 'ext/gecode-2.1.1/configure'
91
94
  spec_with_gecode.requirements = []
92
95
  spec_with_gecode.files = spec.files.dup + FileList['ext/gecode-*/**/*'].to_a
93
96
 
@@ -112,12 +115,17 @@ file 'lib/gecode.dll' do
112
115
  cd 'ext' do
113
116
  sh 'ruby -Iwin32 extconf-win32.rb'
114
117
  sh 'make'
115
- mv 'gecode.so', '../lib/gecode.dll'
118
+ mv 'gecode.so', "../#{DLL_LOCATION}"
116
119
  end
117
120
  end
118
121
 
122
+ desc 'Removes generated distribution files'
123
+ task :clobber do
124
+ rm DLL_LOCATION if File.exists? DLL_LOCATION
125
+ end
126
+
119
127
  desc 'Publish packages on RubyForge'
120
- task :publish_packages => [:publist_gecoder_packages,
128
+ task :publish_packages => [:publish_gecoder_packages,
121
129
  :publish_gecoder_with_gecode_packages]
122
130
 
123
131
  desc 'Publish Gecode/R packages on RubyForge'
@@ -153,4 +161,4 @@ task :publish_gecoder_with_gecode_packages => [:verify_user, :package] do
153
161
  xf.files = release_files.to_a
154
162
  xf.release_name = "Gecode/R with Gecode #{PKG_VERSION}"
155
163
  end
156
- end
164
+ end
@@ -82,7 +82,8 @@ static inline bool is_array(VALUE val)
82
82
 
83
83
  static inline bool is_int(VALUE val)
84
84
  {
85
- return isType(val, T_FIXNUM);
85
+ return isType(val, T_FIXNUM) ||
86
+ (isType(val, T_BIGNUM) && NUM2INT(val) < INT_MAX);
86
87
  }
87
88
 
88
89
  static inline bool is_hash(VALUE val)
@@ -38,11 +38,11 @@ static inline int32_t ruby2int(VALUE rval, int argn = -1) {
38
38
  }
39
39
 
40
40
  static inline VALUE cxx2ruby(int32_t val) {
41
- return INT2FIX(val);
41
+ return INT2NUM(val);
42
42
  }
43
43
 
44
44
  static inline VALUE cxx2ruby(uint32_t val) {
45
- return INT2FIX(val);
45
+ return INT2NUM(val);
46
46
  }
47
47
 
48
48
  static inline VALUE cxx2ruby(double val) {
@@ -38,10 +38,10 @@ module Rust
38
38
  @prototype_template = "void set!attribute_bindname!(VALUE self, VALUE val);\nVALUE get!attribute_bindname!(VALUE self);\n"
39
39
  @initialization_template = Templates["AttributeInitBinding"]
40
40
 
41
-
42
41
  add_expansion 'parent_varname', "@options[:parent].varname"
43
42
  add_expansion 'attribute_bindname', "@name"
44
- add_expansion 'attribute_type', "@type"
43
+ add_expansion 'attribute_type', "@type.name"
44
+ add_expansion 'attribute_convert_name', "@type.valid_name"
45
45
  add_expansion 'attribute_name', "@name"
46
46
  end
47
47