Skip to content

Commit

Permalink
builtin name is fetched from annotation
Browse files Browse the repository at this point in the history
  • Loading branch information
Akirathan committed Dec 18, 2024
1 parent 0f5dcc9 commit 4dbfdb6
Show file tree
Hide file tree
Showing 15 changed files with 20 additions and 62 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,9 @@
@ExportLibrary(TypesLibrary.class)
public abstract class BuiltinObject extends EnsoObject {

private final String builtinName;

private BuiltinWithContext cachedBuiltinType;

/**
* @param builtinName Simple name of the builtin that should be contained in {@link
* org.enso.interpreter.runtime.builtin.Builtins#builtinsByName}.
*/
protected BuiltinObject(String builtinName) {
this.builtinName = builtinName;
}
protected BuiltinObject() {}

@ExportMessage
public final boolean hasType() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,11 @@
import org.enso.polyglot.common_utils.Core_Date_Utils;

@ExportLibrary(InteropLibrary.class)
@Builtin(
pkg = "date",
name = EnsoDate.builtinName,
stdlibName = "Standard.Base.Data.Time.Date.Date")
@Builtin(pkg = "date", name = "Date", stdlibName = "Standard.Base.Data.Time.Date.Date")
public final class EnsoDate extends BuiltinObject {
static final String builtinName = "Date";
private final LocalDate date;

public EnsoDate(LocalDate date) {
super(builtinName);
this.date = date;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,12 @@
@ExportLibrary(InteropLibrary.class)
@Builtin(
pkg = "date",
name = EnsoDateTime.builtinName,
name = "Date_Time",
stdlibName = "Standard.Base.Data.Time.Date_Time.Date_Time")
public final class EnsoDateTime extends BuiltinObject {
static final String builtinName = "Date_Time";
private final ZonedDateTime dateTime;

public EnsoDateTime(ZonedDateTime dateTime) {
super(builtinName);
this.dateTime = dateTime;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,11 @@
import org.enso.interpreter.runtime.error.PanicException;

@ExportLibrary(InteropLibrary.class)
@Builtin(
pkg = "date",
name = EnsoDuration.builtinName,
stdlibName = "Standard.Base.Data.Time.Duration.Duration")
@Builtin(pkg = "date", name = "Duration", stdlibName = "Standard.Base.Data.Time.Duration.Duration")
public final class EnsoDuration extends BuiltinObject {
private final Duration duration;
static final String builtinName = "Duration";

public EnsoDuration(Duration duration) {
super(builtinName);
this.duration = duration;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,13 +50,12 @@
* please refer to {@link TruffleFile}.
*/
@ExportLibrary(InteropLibrary.class)
@Builtin(pkg = "io", name = EnsoFile.builtinName, stdlibName = "Standard.Base.System.File.File")
@Builtin(pkg = "io", name = "File", stdlibName = "Standard.Base.System.File.File")
public final class EnsoFile extends BuiltinObject {
static final String builtinName = "File";

private final TruffleFile truffleFile;

public EnsoFile(TruffleFile truffleFile) {
super(builtinName);
if (truffleFile == null) {
throw CompilerDirectives.shouldNotReachHere();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,13 @@
@ExportLibrary(InteropLibrary.class)
@Builtin(
pkg = "date",
name = EnsoTimeOfDay.builtinName,
name = "Time_Of_Day",
stdlibName = "Standard.Base.Data.Time.Time_Of_Day.Time_Of_Day")
public final class EnsoTimeOfDay extends BuiltinObject {
static final String builtinName = "Time_Of_Day";

private final LocalTime localTime;

public EnsoTimeOfDay(LocalTime localTime) {
super(builtinName);
this.localTime = localTime;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,13 @@
@ExportLibrary(InteropLibrary.class)
@Builtin(
pkg = "date",
name = EnsoTimeZone.builtinName,
name = "Time_Zone",
stdlibName = "Standard.Base.Data.Time.Time_Zone.Time_Zone")
public final class EnsoTimeZone extends BuiltinObject {
static final String builtinName = "Time_Zone";

private final ZoneId zone;

public EnsoTimeZone(ZoneId zone) {
super(builtinName);
this.zone = zone;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,8 @@
@Builtin(
pkg = "resource",
stdlibName = "Standard.Base.Runtime.Managed_Resource.Managed_Resource",
name = ManagedResource.builtinName)
name = "Managed_Resource")
public final class ManagedResource extends BuiltinObject {
static final String builtinName = "Managed_Resource";
private final Object resource;
private final PhantomReference<ManagedResource> phantomReference;

Expand All @@ -53,7 +52,6 @@ public final class ManagedResource extends BuiltinObject {
public ManagedResource(
Object resource,
java.util.function.Function<ManagedResource, PhantomReference<ManagedResource>> factory) {
super(builtinName);
this.resource = resource;
this.phantomReference = factory.apply(this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@

/** A mutable reference type. */
@ExportLibrary(InteropLibrary.class)
@Builtin(pkg = "mutable", stdlibName = "Standard.Base.Runtime.Ref.Ref", name = Ref.builtinName)
@Builtin(pkg = "mutable", stdlibName = "Standard.Base.Runtime.Ref.Ref", name = "Ref")
public final class Ref extends BuiltinObject {
static final String builtinName = "Ref";
private volatile Object value;

/**
Expand All @@ -22,7 +21,6 @@ public final class Ref extends BuiltinObject {
*/
@Builtin.Method(description = "Creates a new Ref", autoRegister = false)
public Ref(Object value) {
super(builtinName);
this.value = value;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,15 @@
* as it works in Enso.
*/
@ExportLibrary(InteropLibrary.class)
@Builtin(stdlibName = "Standard.Base.Data.Dictionary.Dictionary", name = EnsoHashMap.builtinName)
@Builtin(stdlibName = "Standard.Base.Data.Dictionary.Dictionary", name = "Dictionary")
public final class EnsoHashMap extends BuiltinObject {
static final String builtinName = "Dictionary";
private final EnsoHashMapBuilder mapBuilder;
private final int generation;
private final int size;

private Object cachedVectorRepresentation;

private EnsoHashMap(EnsoHashMapBuilder mapBuilder) {
super(builtinName);
this.mapBuilder = mapBuilder;
this.generation = mapBuilder.generation();
this.size = mapBuilder.size();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,8 @@
/** A primitive boxed array type for use in the runtime. */
@ExportLibrary(InteropLibrary.class)
@ExportLibrary(WarningsLibrary.class)
@Builtin(pkg = "mutable", stdlibName = "Standard.Base.Data.Array.Array", name = Array.builtinName)
@Builtin(pkg = "mutable", stdlibName = "Standard.Base.Data.Array.Array", name = "Array")
final class Array extends BuiltinObject {
static final String builtinName = "Array";
private final Object[] items;

/** If true, some elements contain warning, and thus, this Array contains warning. */
Expand All @@ -45,7 +44,6 @@ final class Array extends BuiltinObject {
* @param items the element values
*/
private Array(Object... items) {
super(builtinName);
this.items = items;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,10 @@
@Builtin(
pkg = "immutable",
stdlibName = "Standard.Base.Internal.Array_Like_Helpers",
name = ArrayLikeHelpers.builtinName)
name = "Array_Like_Helpers")
public final class ArrayLikeHelpers extends BuiltinObject {
static final String builtinName = "Array_Like_Helpers";

private ArrayLikeHelpers() {
super(builtinName);
}
private ArrayLikeHelpers() {}

@Builtin.Method(
name = "new_array_proxy_builtin",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,13 @@
import org.enso.interpreter.runtime.warning.WarningsLibrary;

@ExportLibrary(InteropLibrary.class)
@Builtin(
pkg = "immutable",
stdlibName = "Standard.Base.Data.Vector.Vector",
name = Vector.builtinName)
@Builtin(pkg = "immutable", stdlibName = "Standard.Base.Data.Vector.Vector", name = "Vector")
abstract class Vector extends BuiltinObject {
static final String builtinName = "Vector";
private static final Vector EMPTY_LONG = new Long(new long[0]);
private static final Vector EMPTY_DOUBLE = new Double(new double[0]);
private static final Vector EMPTY_VECTOR = new EnsoOnly(new Object[0]);

protected Vector() {
super(builtinName);
}
protected Vector() {}

@ExportMessage
boolean hasArrayElements() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,14 @@
import org.enso.interpreter.runtime.data.hash.EnsoHashMap;
import org.enso.interpreter.runtime.data.hash.HashMapInsertNode;

@Builtin(pkg = "error", stdlibName = "Standard.Base.Warning.Warning", name = Warning.builtinName)
@Builtin(pkg = "error", stdlibName = "Standard.Base.Warning.Warning", name = "Warning")
@ExportLibrary(value = InteropLibrary.class, delegateTo = "value")
public final class Warning extends BuiltinObject {
static final String builtinName = "Warning";
final Object value;
private final Object origin;
private final long sequenceId;

private Warning(Object value, Object origin, long sequenceId) {
super(builtinName);
this.value = value;
this.origin = origin;
this.sequenceId = sequenceId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
* org.enso.interpreter.node.expression.builtin.example}.
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Builtin {
/**
* @return the name of the subpackage for the generated method node.
Expand Down

0 comments on commit 4dbfdb6

Please sign in to comment.