Skip to content

Commit b902c98

Browse files
committed
Move privately into TrufflePrimitive space
1 parent d3fb596 commit b902c98

File tree

19 files changed

+67
-61
lines changed

19 files changed

+67
-61
lines changed

lib/truffle/digest.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,13 @@ def reset
8383

8484
def digest(message = NO_MESSAGE)
8585
if NO_MESSAGE == message
86-
Truffle.privately do
86+
TrufflePrimitive.privately do
8787
clone.finish
8888
end
8989
else
9090
reset
9191
update message
92-
digested = Truffle.privately { finish }
92+
digested = TrufflePrimitive.privately { finish }
9393
reset
9494
digested
9595
end

lib/truffle/truffle/cext.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,7 +1257,7 @@ def rb_io_puts(out, args)
12571257
end
12581258

12591259
def rb_obj_call_init(obj, args)
1260-
Truffle.privately do
1260+
TrufflePrimitive.privately do
12611261
obj.initialize(*args)
12621262
end
12631263
end
@@ -1363,13 +1363,13 @@ def rb_complex_polar(r, theta)
13631363
end
13641364

13651365
def rb_complex_set_real(complex, real)
1366-
Truffle.privately do
1366+
TrufflePrimitive.privately do
13671367
complex.real = real
13681368
end
13691369
end
13701370

13711371
def rb_complex_set_imag(complex, imag)
1372-
Truffle.privately do
1372+
TrufflePrimitive.privately do
13731373
complex.imag = imag
13741374
end
13751375
end

lib/truffle/truffle/stubs.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
raise 'this file is a stub file for development and should never be loaded'
2+
3+
module TrufflePrimitive
4+
def self.privately(&block)
5+
# language=java
6+
/** @see org.truffleruby.parser.BodyTranslator.translateInvokePrimitive */
7+
end
8+
end

src/main/java/org/truffleruby/parser/BodyTranslator.java

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -519,15 +519,7 @@ public RubyNode visitCallNode(CallParseNode node) {
519519
return addNewlineIfNeeded(node, ret);
520520
}
521521

522-
if (receiver instanceof ConstParseNode && ((ConstParseNode) receiver).getName().equals("Truffle")) {
523-
// Truffle.<method>
524-
// TODO (pitr-ch 29-Nov-2019): move under TrufflePrimitive ?
525-
if ("privately".equals(methodName)) {
526-
final RubyNode ret = translatePrivately(node);
527-
return addNewlineIfNeeded(node, ret);
528-
}
529-
530-
} else if (receiver instanceof Colon2ConstParseNode // Truffle::Graal.<method>
522+
if (receiver instanceof Colon2ConstParseNode // Truffle::Graal.<method>
531523
&& ((Colon2ConstParseNode) receiver).getLeftNode() instanceof ConstParseNode &&
532524
((ConstParseNode) ((Colon2ConstParseNode) receiver).getLeftNode()).getName().equals("Truffle") &&
533525
((Colon2ConstParseNode) receiver).getName().equals("Graal")) {
@@ -578,23 +570,29 @@ private RubyNode translateInvokePrimitive(SourceIndexLength sourceSection, CallP
578570
*/
579571

580572
final String primitiveName = node.getName();
581-
final PrimitiveNodeConstructor primitive = context.getPrimitiveManager().getPrimitive(primitiveName);
582573

583-
final ArrayParseNode args = (ArrayParseNode) node.getArgsNode();
584-
final int size = args != null ? args.size() : 0;
585-
final RubyNode[] arguments = new RubyNode[size];
586-
for (int n = 0; n < size; n++) {
587-
arguments[n] = args.get(n).accept(this);
588-
}
574+
if ("privately".equals(primitiveName)) {
575+
final RubyNode ret = translatePrivately(node);
576+
return addNewlineIfNeeded(node, ret);
577+
} else {
578+
final PrimitiveNodeConstructor primitive = context.getPrimitiveManager().getPrimitive(primitiveName);
579+
580+
final ArrayParseNode args = (ArrayParseNode) node.getArgsNode();
581+
final int size = args != null ? args.size() : 0;
582+
final RubyNode[] arguments = new RubyNode[size];
583+
for (int n = 0; n < size; n++) {
584+
arguments[n] = args.get(n).accept(this);
585+
}
589586

590-
return primitive.createInvokePrimitiveNode(context, source, sourceSection, arguments);
587+
return primitive.createInvokePrimitiveNode(context, source, sourceSection, arguments);
588+
}
591589
}
592590

593591
private RubyNode translatePrivately(CallParseNode node) {
594592
/*
595593
* Translates something that looks like
596594
*
597-
* Truffle.privately { foo }
595+
* TrufflePrimitive.privately { foo }
598596
*
599597
* into just
600598
*
@@ -604,12 +602,12 @@ private RubyNode translatePrivately(CallParseNode node) {
604602
*/
605603

606604
if (!(node.getIterNode() instanceof IterParseNode)) {
607-
throw new UnsupportedOperationException("Truffle.privately needs a literal block");
605+
throw new UnsupportedOperationException("TrufflePrimitive.privately needs a literal block");
608606
}
609607

610608
final ArrayParseNode argsNode = (ArrayParseNode) node.getArgsNode();
611609
if (argsNode != null && argsNode.size() > 0) {
612-
throw new UnsupportedOperationException("Truffle.privately should not have any arguments");
610+
throw new UnsupportedOperationException("TrufflePrimitive.privately should not have any arguments");
613611
}
614612

615613
/*
@@ -2828,7 +2826,7 @@ public RubyNode visitBigRationalNode(BigRationalParseNode node) {
28282826
}
28292827

28302828
private RubyNode translateRationalComplex(SourceIndexLength sourceSection, String name, RubyNode a, RubyNode b) {
2831-
// Translate as Truffle.privately { Rational.convert(a, b) }
2829+
// Translate as TrufflePrimitive.privately { Rational.convert(a, b) }
28322830

28332831
final RubyNode moduleNode = new ObjectLiteralNode(context.getCoreLibrary().getObjectClass());
28342832
ReadConstantNode receiver = new ReadConstantNode(moduleNode, name);

src/main/ruby/truffleruby/core/array.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,7 @@ def permutation(num=undefined, &block)
725725
if block
726726
# offensive (both definitions) copy.
727727
offensive = dup
728-
Truffle.privately do
728+
TrufflePrimitive.privately do
729729
offensive.__permute__(num, perm, 0, used, &block)
730730
end
731731
else
@@ -844,7 +844,7 @@ def repeated_combination(combination_size, &block)
844844
if combination_size < 0
845845
# yield nothing
846846
else
847-
Truffle.privately do
847+
TrufflePrimitive.privately do
848848
dup.compile_repeated_combinations(combination_size, [], 0, combination_size, &block)
849849
end
850850
end
@@ -878,7 +878,7 @@ def repeated_permutation(combination_size, &block)
878878
elsif combination_size == 0
879879
yield []
880880
else
881-
Truffle.privately do
881+
TrufflePrimitive.privately do
882882
dup.compile_repeated_permutations(combination_size, [], 0, &block)
883883
end
884884
end
@@ -1346,7 +1346,7 @@ def recursively_flatten(array, out, max_levels = -1)
13461346
# Use this instead of #dup as we want an instance of Array
13471347
sorted = Array.new(self)
13481348

1349-
Truffle.privately do
1349+
TrufflePrimitive.privately do
13501350
if block
13511351
sorted.mergesort_block!(block)
13521352
else

src/main/ruby/truffleruby/core/channel.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def receive
5050
end
5151

5252
def receive_timeout(duration)
53-
Truffle.privately do
53+
TrufflePrimitive.privately do
5454
@queue.receive_timeout(duration)
5555
end
5656
end

src/main/ruby/truffleruby/core/enumerator.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ def each(*args)
8787
new_args = @args.empty? ? args : (@args + args)
8888
end
8989

90-
Truffle.privately do
90+
TrufflePrimitive.privately do
9191
enumerator.args = new_args
9292
end
9393

9494
if block_given?
95-
Truffle.privately do
95+
TrufflePrimitive.privately do
9696
enumerator.each_with_block do |*yield_args|
9797
yield(*yield_args)
9898
end
@@ -160,7 +160,7 @@ def next
160160
end
161161

162162
exception = StopIteration.new 'iteration reached end'
163-
Truffle.privately do
163+
TrufflePrimitive.privately do
164164
exception.result = @generator.result
165165
end
166166

@@ -282,7 +282,7 @@ def to_enum(method_name=:each, *method_args, &block)
282282
size = block_given? ? block : nil
283283
ret = Lazy.allocate
284284

285-
Truffle.privately do
285+
TrufflePrimitive.privately do
286286
ret.initialize_enumerator self, size, method_name, *method_args
287287
end
288288

src/main/ruby/truffleruby/core/exception.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def exception(message=nil)
137137
# Exception#initialize (via __initialize__) is exactly what MRI
138138
# does.
139139
e = clone
140-
Truffle.privately do
140+
TrufflePrimitive.privately do
141141
e.__initialize__(message)
142142
end
143143
return e

src/main/ruby/truffleruby/core/immediate.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def klass.__allocate__
3535
raise TypeError, "allocator undefined for #{self}"
3636
end
3737

38-
Truffle.privately do
38+
TrufflePrimitive.privately do
3939
klass.singleton_class.undef_method(:new)
4040
end
4141
end

src/main/ruby/truffleruby/core/io.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,7 +433,7 @@ def read_method(obj)
433433
end
434434

435435
def run
436-
Truffle.privately do
436+
TrufflePrimitive.privately do
437437
@from.ensure_open_and_readable if @from.kind_of? IO
438438
@to.ensure_open_and_writable if @to.kind_of? IO
439439
end
@@ -537,7 +537,7 @@ def self.foreach(name, separator=undefined, limit=undefined, options=undefined,
537537
io = File.open(name, options)
538538
end
539539

540-
each_reader = Truffle.privately { io.create_each_reader(separator, limit) }
540+
each_reader = TrufflePrimitive.privately { io.create_each_reader(separator, limit) }
541541

542542
begin
543543
each_reader&.each(&block)
@@ -2090,7 +2090,7 @@ def reopen(other, mode=undefined)
20902090
end
20912091

20922092
if @descriptor != io.fileno
2093-
Truffle.privately do
2093+
TrufflePrimitive.privately do
20942094
io.ensure_open
20952095
end
20962096

0 commit comments

Comments
 (0)