2,951
edits
(Get rid of FP and FL mentions since they weren't a significant influence) |
(Version tables) |
||
Line 37: | Line 37: | ||
In 1990 Hui and Iverson joined Iverson Software Inc. (now [[Jsoftware]]), which had been founded that year by [[Eric Iverson]] to sell a [[SHARP APL]] product. Eric converted his SHARP [[session]] to use with J as Hui continued on the core language's implementation. The J language, including Eric's session environment, was first released at [[APL90]] in Copenhagen August 1990.<ref name="remembering"/> | In 1990 Hui and Iverson joined Iverson Software Inc. (now [[Jsoftware]]), which had been founded that year by [[Eric Iverson]] to sell a [[SHARP APL]] product. Eric converted his SHARP [[session]] to use with J as Hui continued on the core language's implementation. The J language, including Eric's session environment, was first released at [[APL90]] in Copenhagen August 1990.<ref name="remembering"/> | ||
== Versions == | |||
J has used two numbering systems. Releases prior to 1994 used a single decimal and the naming scheme "Version X.Y", while those after used two decimals and are called "Release X.YY", or "JXYY" as in "J807". | |||
{|class=wikitable | |||
! Version !! Date !! Features | |||
|- | |||
| 2.0 || 1990-08-09 || (APL90) | |||
|- | |||
| 2.7 || 1990-10-22 || [[Rank operator|Rank]] with a function right operand, [[Under]] | |||
|- | |||
| 2.8 || 1990-11-15 || | |||
|- | |||
| 2.9 || 1991-02-15 || Monadic <source lang=j inline>+:</source> (double), <source lang=j inline>-:</source> (halve), <source lang=j inline>*:</source> (square), dyadic <source lang=j inline>":</source> ([[Format]]), constant functions <source lang=j inline>0:</source> and <source lang=j inline>1:</source> | |||
|- | |||
| 3.0 || 1991-03-17 || Changes to spellings, [[Reverse]] with [[Variant]] to specify [[fill]] | |||
|- | |||
| 3.1 || 1991-05-17 || [[Determinant]] (<source lang=j inline>.</source>) | |||
|- | |||
| 3.2 || 1991-06-02 || <source lang=j inline>,.</source> for ravel items (like [[Table]]) and append lists, <source lang=j inline>;</source> for [[Raze]] and [[Link]], <source lang=j inline>@.</source> for agenda, non-[[close composition]]s | |||
|- | |||
| 3.3 || 1991-06-25 || Dyadic <source lang=j inline>,.</source> changed to append items, more types of trains | |||
|- | |||
| 3.4 || 1991-07-15 || <source lang=j inline>NB.</source> for comments | |||
|- | |||
| 4.0 || 1991-11-23 || Monadic <source lang=j inline>+.</source> and <source lang=j inline>*.</source> for complex components and phase/magnitude with <source lang=j inline>j.</source> and <source lang=j inline>r.</source> to recombine, <source lang=j inline>^:_</source> for power limit | |||
|- | |||
| 4.1 || 1992-02-02 || <source lang=j inline>^!.p</source> for rising/falling factorials | |||
|- | |||
| 4.2 || 1992-03-19 || | |||
|- | |||
| 5.0 || 1992-06-22 || [[Variant]] to specify [[comparison tolerance]] and [[fill]] for [[Take]] | |||
|- | |||
| 5.1 || 1992-07-28 || <source lang=j inline>f.</source> to expand a tacit function containing names, constant functions <source lang=j inline>2:</source> to <source lang=j inline>9:</source> | |||
|- | |||
| 5.1a || 1992-08-11 || | |||
|- | |||
| 6.0 || 1992-10-24 || Error handling with <source lang=j inline>::</source>, additional [[system function]]s | |||
|- | |||
| 6.1 || 1992-11-26 || Amend operator <source lang=j inline>}</source> | |||
|- | |||
| 6.2 || 1992-12-20 || Derivative operator <source lang=j inline>D.</source> | |||
|- | |||
| 7.0 || 1993-11-14 || [[wikipedia:Taylor series|Taylor series]] operators <source lang=j inline>t.</source> and <source lang=j inline>T.</source> | |||
|} | |||
{|class=wikitable | |||
! Release !! Date !! Features | |||
|- | |||
| 2.01 || 1994-09-01 || [[Control structure]]s, many additional [[system function]]s | |||
|- | |||
| 2.03 || 1994-09-21 || | |||
|- | |||
| 2.04 || 1994-11-28 || | |||
|- | |||
| 2.05 || 1995-02-26 || Additional [[inverse]]s, [[primitive array]] <source lang=j inline>a:</source> ("ace") | |||
|- | |||
| 2.06 || 1995-05-30 || More [[inverse]]s, hypergeometric operator <source lang=j inline>H.</source>, and prime functions <source lang=j inline>p.</source>, <source lang=j inline>p:</source>, and <source lang=j inline>q:</source> | |||
|- | |||
| 3.01 || 1996-01-16 || Repeatable [[Roll]]/[[Deal]] <source lang=j inline>?.</source>, [[Depth]] <source lang=j inline>L.</source> and [[Depth operator]] <source lang=j inline>L:</source> | |||
|- | |||
| 3.02 || 1996-06-24 || [[Pick]] variant <source lang=j inline>{::</source>, [[extended precision]] types | |||
|- | |||
| 3.03 || 1996-12-13 || [[Multiple assignment]] using a string target | |||
|- | |||
| 3.04 || 1997-05-19 || More operators with gerund operands, <source lang=j inline>for.</source> and <source lang=j inline>select.</source> [[control structure]]s | |||
|- | |||
| 3.05 || 1997-09-27 || Extended dyad <source lang=j inline>q:</source> ([[Factor]]) to take a negative left argument | |||
|- | |||
| 4.01 || 1998-03-22 || [[Find]] (<source lang=j inline>E.</source>) and [[Index of Last]] (<source lang=j inline>i:</source>) | |||
|- | |||
| 4.02 || 1998-11-07 || Symmetric range monad (<source lang=j inline>i:</source>), infinite left arguments to [[Take]] | |||
|- | |||
| 4.03 || 1999-04-21 || | |||
|- | |||
| 4.04 || 2000-01-02 || [[Sparse array]] support | |||
|- | |||
| 4.05 || 2000-09-05 || [[Comparison tolerance]] for [[Key]] | |||
|- | |||
| 4.06 || 2001-05-09 || <source lang=j inline>assert.</source> and <source lang=j inline>throw.</source>, Symbols (<source lang=j inline>s:</source>) and Unicode (<source lang=j inline>u:</source>), multiple axes in [[Cut]] operator | |||
|- | |||
| 5.01 || 2002-09-10 || Non-[[Close compositions|close]] [[Under]] <source lang=j inline>&.:</source>, Bitwise Operations (<source lang=j inline>b.</source>), Polynomial Derivative (<source lang=j inline>p..</source>), Head (<source lang=j inline>{.</source>) and Tail (<source lang=j inline>{:</source>) allow [[empty]] arguments | |||
|- | |||
| 5.02 || 2003-05-21 || | |||
|- | |||
| 5.03 || 2004-03-19 || [[Indices]] (<source lang=j inline>I.</source>), Sequential Machine (<source lang=j inline>;:</source>) | |||
|- | |||
| 5.04 || 2005-03-18 || J64 (64-bit version) introduced, boxed right argument for [[Power operator]], [[scalar extension]] for left argument of [[Cut]] (<source lang=j inline>;.</source>) | |||
|- | |||
| 6.01 || 2006-07-21 || Noun left arguments in trains (<source lang=j inline>N0 V1 V2</source>), dots removed from explicit argument names (<source lang=j inline>y.</source> to <source lang=j inline>y</source>, etc.), [[Interval Index]] (<source lang=j inline>I.</source>) | |||
|- | |||
| 6.02 || 2008-02-29 || [[Index Of]] (<source lang=j inline>i.</source>) extended to allow unmatched cell shapes, Memoize adverb (<source lang=j inline>M.</source>) | |||
|- | |||
| 7.01 || 2010-08-05 || GTK IDE | |||
|- | |||
| 7.02 || || | |||
|- | |||
| 8.01 || 2014-02 || Qt IDE | |||
|- | |||
| 8.02 || 2014-08-02 || Qt IDE improved | |||
|- | |||
| 8.03 || 2014-12-09 || Native read/write of jpeg and png images | |||
|- | |||
| 8.04 || 2016-01-04 || | |||
|- | |||
| 8.05 || 2016-12-19 || Improved UTF-8 handling, memory allocator rewritten with more in-place argument usage | |||
|- | |||
| 8.06 || 2017-11-12 || Allow array right operands to [[Atop]] and Adverse (<source lang=j inline>::</source>), treating as constant functions, improved [[vector instruction]] usage | |||
|- | |||
| 8.07 || 2018-10-08 || Removed support for dot-style explicit arguments (e.g. <source lang=j inline>y.</source>) | |||
|- | |||
| 9.01 || 2019-04 (beta) || Iteration primitives <source lang=j inline>F..</source>, <source lang=j inline>F.:</source>, <source lang=j inline>F.</source>, <source lang=j inline>F:.</source>, <source lang=j inline>F::</source>, <source lang=j inline>F:</source>; Remove calculus operators <source lang=j inline>d.</source>, <source lang=j inline>D.</source>, <source lang=j inline>D:</source>, <source lang=j inline>t.</source>, <source lang=j inline>t:</source>, <source lang=j inline>T.</source>, <source lang=j inline>..</source>, <source lang=j inline>.:</source>; <source lang=j inline>gerund"r</source> | |||
|} | |||
== References == | == References == |