Release Notes J9.6

From J Wiki
Jump to navigation Jump to search

>> << Pri JfC LJ Phr Dic Voc !: Rel NuVoc wd Help 


Work on J9.6 started in November 2023. J9.6.0-beta1 was released 20240102.

Request for Comments

Proposed addition of .. for comment delimiter and ... for line continuation

  • The J word .., when not further inflected, is equivalent to NB., starting a comment that ends at the next end-of-line (LF).
  • The J word ..., when not further inflected, is equivalent to NB., starting a comment that ends at the next end-of-line (LF), and the following line is appended as J words in place of the ....


Example:

  vec =. i. #y  .. index vector of length #y
  adj =. +/   ... add the weighted values
         vec * y   ..  weight each element of y by its position

Comment on the proposal

Changes to the J engine

Summary of Changes to the J Language in the release

  • New datatype floating16 for double-double floating-point values
  • New datatypes integer2 and integer4 for 2-byte and 4-byte integer values
  • New primitive verb x c. y converts noun y to the type given by x. x is the desired type/precision, and is the value 3!:0 (aka datatype) will return if applied to the result of c.
  • New foreign 9!:33 y controls number of retries for elliptic-curve factoring
  • New locative form: name__nn, where nn is a negative integer, looks up name starting in the namespace shown in the debug stack (dbstk''). nn of _1 refers to the topmost frame (the newest suspended frame), _2 to its caller, etc.


unreleased work in progress

  • none yet

J9.6.0-beta2 (the current beta)

  • The special forms ((q i.]) { p"_) y and (q&i. { p"_) y are no longer recognized. They are superseded by (p {~ q i. ]) y
  • (p {~ q i. ]) y runs inplace if possible
  • Virtual arguments to a task are realized in the task rather than in the caller, where possible
  • x , y faster and better when one argument is empty
  • fixed-precision datatypes given higher conversion priority than J native numbers
  • 256-bit code for +/ y and +/@:*"1 y when y is floating16
  • Fast support for +/ y, +/\ y, and +/\. y when y is integer2 or integer4
  • q: y on extended integer y now tries multiple random elliptic curves instead of just one. The default number is 3 but can be changed by 9!:33 y
  • New locative form: name__nn, where nn is a negative integer, looks up name starting in the namespace shown in the debug stack (dbstk''). nn of _1 refers to the topmost frame (the newest suspended frame), _2 to its caller, etc.
  • New feature: postmortem debugging allows you to inspect the situation after a sentence failed while debugging wasn't turned on.
  • display of a tacit verb uses default formatting instead of maximum precision

J9.6.0-beta1

  • New datatype floating16 for double-double floating-point values
  • New datatypes integer2 and integer4 for 2-byte and 4-byte integer values
  • New primitive verb x c. y converts noun y to the type given by x. x is the desired type/precision, and is the value 3!:0 (aka datatype) will return if applied to the result of c.

Changes to the base system

Changes to the Qt IDE


>> << Pri JfC LJ Phr Dic Voc !: Rel NuVoc wd Help S