Skip to content

The Big Sleep

Pre-release
Pre-release
Compare
Choose a tag to compare
@rocky rocky released this 24 Oct 16:44
· 1574 commits to master since this release

Package Updates

All major packages that Mathics needs have been updated for more recent
releases. Specifically These include:

  • Python: Python 3.6-3.9 are now supported.
  • cython >= 0.15.1
  • Django 3.1.x
  • mpmath >= 1.1.0
  • sympy 1.6.2

New features (50+ builtins):

  • Association, AssociationQ, FirstPostion, LeafCount
  • Association, AssociationQ, Keys, Values #705
  • BarChart[], PieChart, Histogram, DensityPlot #499
  • BooleanQ, DigitQ and LetterQ
  • CharacterEncoding option for Import[]
  • Coefficient[], Coefficient[x * y, z, 0], Coefficient*[],
  • DiscreteLimit #922
  • Environment
  • File read operations from URLs
  • FirstPostions, Integers, PrePendTo[]
  • GetEnvironment # 938
  • Integers, PrependTo and ContainsOnly
  • Import support for WL packages
  • IterationLimit
  • LoadModule
  • MantissaExponent[], FractionalPart[], CubeRoot[]
  • PolynomialQ[], MinimalPolynomial[]
  • Quit[], Exit[] #523, #814,
  • RealDigits #891, #691, Interrupt, Unique
  • RemoveDiacritics[], Transliterate[] #617
  • Root #806
  • Sign[], Exponent, Divisors, QuotientRemainder,
    FactorTermsList
  • Speedups by avoiding inner classes, #616
  • StringRiffle[], StringFreeQ[], StringContainsQ[],
    StringInsert
  • SubsetQ and Delete[] #688, #784,
  • Subsets #685
  • SystemTimeZone and correct TimeZone #924
  • System\`Byteordering and System\`Environemnt #859
  • $UseSansSerif #908
  • randchoice option for NoNumPyRandomEnv #820
  • support for MATHICS_MAX_RECURSION_DEPTH
  • option --full-form (-F) on mathics to parsed FullForm of
    input expressions

Ehancements and Bug fixes:

  • speed up leading-blank patterns #625, #933
  • support for iteration over Sequence objects in Table, Sum, and
    Product
  • fixes for option handling
  • fixes for Manipulate[x,{x,{a,b}}]
  • fixes rule -> rule case for Nearest
  • fixes and enhancements to WordCloud
  • added StringTrim[]
  • fixes URLFetch options
  • fixes XMLGetString and parse error
  • fixes LanguageIdentify
  • fixes 2 <= base <= 36 in number parsing
  • improved error messages
  • fixes Check, Interrupt, and Unique #696
  • fixes Eigenvalues, Eigenvectors #804
  • fixes Solve #806
  • proper sympolic expantion for Re and Im
  • fixes a bug in the evaluation of SympyPrime #827
  • clean up ColorData
  • fixes unicode characters in TeX document
  • update Django gallery examples
  • fixes Sum and Product #869, #873
  • warn when using options not supported by a Builtin #898, #645

Mathematica tracking changes:

  • renamed FetchURL to URLFetch (according to the WL standard)
  • renamed SymbolLookup to Lookup

Performance improvements:

  • Speed up pattern matching for large lists
  • Quadraditc speed improvement in pattern matching. #619 and see the
    graph comparisons there
  • In-memory sessions #623

Other Changes:

  • bump RecursionLimit
  • blacken (format) a number of Python files and remove blanks at the
    end of lines
  • Adding several CI tests
  • Remove various deprecation warnings
  • Change shbang from python to python3
  • Update docs

Backward incompatablities:

  • Support for Python 3.5 and earlier, and in particular Python 2.7,
    has dropped
  • The graphs module (for Graphs) has been pulled until Mathics
    supports pymathics and graphics using networkx better. It will
    reappear as a pymathics module.
  • The natlang (for Natural Language processing) has also been
    pulled. The problem here too is that the pymathics mechanism needs a
    small amount of work to make it scalable, and in 1.0 these were hard
    coded. Also, both this module and graphs pulled in some
    potentially hard-to-satisfy non-Python dependencies such as
    matplotlib, or NLP libraries, and word lists. All of this made
    installation of mathics harder, and the import of these libraries,
    natlang in particular took some time. All of this points to having
    these live in their own repositories and get imported on laziliy on
    demand