CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-org-scala-native--auxlib-native0-5-3

Auxiliary libraries for Scala Native runtime providing essential runtime support including boxed types, concurrent collections, and utility functions

Pending
Overview
Eval results
Files

boxing-unboxing.mddocs/

Boxing and Unboxing Operations

Comprehensive boxing/unboxing utilities with arithmetic, bitwise, and logical operators for primitive types. The BoxesRunTime object provides runtime support for Scala's unified type system, handling type coercion and operations on boxed primitive values.

Core Imports

import scala.runtime.{BoxesRunTime, BoxedUnit}

Capabilities

Boxing Operations

Converts primitive values to their corresponding boxed (object) representations.

object BoxesRunTime {
  def boxToBoolean(v: Boolean): java.lang.Boolean
  def boxToCharacter(v: Char): java.lang.Character  
  def boxToByte(v: Byte): java.lang.Byte
  def boxToShort(v: Short): java.lang.Short
  def boxToInteger(v: Int): java.lang.Integer
  def boxToLong(v: Long): java.lang.Long
  def boxToFloat(v: Float): java.lang.Float
  def boxToDouble(v: Double): java.lang.Double
}

Unboxing Operations

Extracts primitive values from their boxed representations, returning default values for null inputs.

object BoxesRunTime {
  def unboxToBoolean(o: java.lang.Object): Boolean
  def unboxToChar(o: java.lang.Object): Char
  def unboxToByte(o: java.lang.Object): Byte
  def unboxToShort(o: java.lang.Object): Short
  def unboxToInt(o: java.lang.Object): Int
  def unboxToLong(o: java.lang.Object): Long
  def unboxToFloat(o: java.lang.Object): Float
  def unboxToDouble(o: java.lang.Object): Double
}

Arithmetic Operations

Performs arithmetic operations on boxed numeric values with automatic type promotion.

object BoxesRunTime {
  def add(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def subtract(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def multiply(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def divide(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def takeModulo(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def negate(arg: java.lang.Object): java.lang.Object
  def positive(arg: java.lang.Object): java.lang.Object
}

Bitwise Operations

Performs bitwise operations on integral boxed values.

object BoxesRunTime {
  def takeAnd(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def takeOr(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def takeXor(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def complement(arg: java.lang.Object): java.lang.Object
  def shiftSignedLeft(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def shiftSignedRight(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def shiftLogicalRight(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
}

Logical Operations

Performs logical operations on boolean boxed values.

object BoxesRunTime {
  def takeConditionalAnd(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def takeConditionalOr(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def takeNot(arg: java.lang.Object): java.lang.Object
}

Comparison Operations

Performs comparison operations on boxed values with proper type handling.

object BoxesRunTime {
  def equals(x: java.lang.Object, y: java.lang.Object): Boolean
  def testEqual(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def testNotEqual(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def testLessThan(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def testLessOrEqualThan(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def testGreaterThan(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
  def testGreaterOrEqualThan(arg1: java.lang.Object, arg2: java.lang.Object): java.lang.Object
}

Type Checking and Conversion

Checks types and converts between different numeric representations.

object BoxesRunTime {
  def isBoxedNumber(arg: java.lang.Object): Boolean
  def isBoxedNumberOrBoolean(arg: java.lang.Object): Boolean
  def toCharacter(arg: java.lang.Object): java.lang.Character
  def toByte(arg: java.lang.Object): java.lang.Byte
  def toShort(arg: java.lang.Object): java.lang.Short
  def toInteger(arg: java.lang.Object): java.lang.Integer
  def toLong(arg: java.lang.Object): java.lang.Long
  def toFloat(arg: java.lang.Object): java.lang.Float
  def toDouble(arg: java.lang.Object): java.lang.Double
}

Usage Examples

import scala.runtime.BoxesRunTime

// Basic boxing and unboxing
val x = 42
val boxed = BoxesRunTime.boxToInteger(x)
val unboxed = BoxesRunTime.unboxToInt(boxed)

// Arithmetic operations
val a = BoxesRunTime.boxToInteger(10)
val b = BoxesRunTime.boxToInteger(5)
val sum = BoxesRunTime.add(a, b)
val difference = BoxesRunTime.subtract(a, b)
val product = BoxesRunTime.multiply(a, b)

// Comparison operations
val isEqual = BoxesRunTime.equals(a, b)
val isLess = BoxesRunTime.testLessThan(a, b)

// Type conversion
val asDouble = BoxesRunTime.toDouble(a)
val asFloat = BoxesRunTime.toFloat(a)

Types

BoxedUnit Support

class BoxedUnit extends java.io.Serializable {
  override def equals(that: Any): Boolean
  override def hashCode(): Int  
  override def toString: String
}

object BoxedUnit {
  def UNIT: BoxedUnit // Note: Implementation uses `???` - not functional
  def TYPE: Class[Unit]
}

Install with Tessl CLI

npx tessl i tessl/maven-org-scala-native--auxlib-native0-5-3

docs

array-runtime.md

boxing-unboxing.md

concurrent-collections.md

index.md

mathematical-support.md

reference-types.md

tile.json