Skip to content

J* Version 1.8

Compare
Choose a tag to compare
@bamless bamless released this 08 Mar 16:19
· 220 commits to master since this release

J* AUR page

  • Reworked import system.
    Now, upon executing an import statement, the module name will be defined in the current scope instead of the global one. Same thing applies to the names of an import for statement. This is more consistent with the rest of the language that always defines names in the closest surrounding scope
  • As a consequence of the changes to the import system, the import ... for * syntax is not allowed anymore
  • Can now overload the power operator ^ using the __pow__ overload method
  • Added bitwise operators to the language:
    • Infix:
      • Bitwise and operator &. Overloads: __band__ and __rband__
      • Bitwise or operator |. Overloads: __bor__ and __rbor__
      • Bitwise xor operator ~. Overloads: __xor__ and __rxor__
      • Bitwise left shift operator <<. Overloads: __lshift__ and __rlshift__
      • Bitwise right shift operator >>. Overloads: __rshift__ and __rrshift__
    • Prefix
      • Bitwise complement ~. Overload __invert__
  • When applied to Numbers, bitwise operators implicitly convert the arguments to 32-bit unsigned integers and then perform the operation. Thus, one should be careful when using numbers greater than 2^32 - 1 or smaller than 0, as overflow wrapping will take place.
  • Quality of life changes in the jstar app, especially regarding multi-line input
  • Minor fixes in the jstarc app