# Announcing Maxima.jl

**URL:** <https://discourse.julialang.org/t/announcing-maxima-jl/3013>\
**Category:** Community\
**Tags:** package, announcement\
**Created:** [April 2, 2017, 6:02pm UTC](https://discourse.julialang.org/t/announcing-maxima-jl/3013 "2017-04-02T18:02:36Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![nsmith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsmith/32/979_2.png) [@nsmith](https://discourse.julialang.org/u/nsmith)\
**Post date:** [April 2, 2017, 6:02pm UTC](https://discourse.julialang.org/t/announcing-maxima-jl/3013/1 "2017-04-02T18:02:36Z")

</div>

I’d like to announce here for the first time the availability of [Maxima.jl](https://github.com/nsmith5/Maxima.jl). A symbolic mathematics package for julia that uses the [Maxima CAS](http://maxima.sourceforge.net/). Maxima features:

- a full Maxima REPL mode that can be extends the Julia REPL
- Pretty I/O for Maxima expressions including Latex output when using IJulia and formatted ‘2d’ plain text in the REPL
- Basic translation of expressions between Maxima and Julia
- Wrapper functions for many standard Maxima functions that operate on both Maxima and Julia expressions
- Plotting via Maxima’s gnuplot functionality

Maxima.jl is available through Julia METADATA so you can try it out by adding it at the REPL

```julia
julia> Pkg.add("Maxima")
INFO: Installing Compat v0.21.0
INFO: Installing Maxima v0.0.4
INFO: Package database updated

julia> using Maxima

julia> trigsimp(:(sin(x)^2 + cos(x)^2))
1

julia> expand(m"(a + b)^3")
 
                            3 2 2 3
                           b + 3 a b + 3 a b + a

```

Enjoy and feel free to submit issues or join the effort at [https://github.com/nsmith5/Maxima.jl](https://github.com/nsmith5/Maxima.jl)

---

<div class="post-metadata">

**Author:** ![isuruf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/isuruf/32/106_2.png) [@isuruf](https://discourse.julialang.org/u/isuruf)\
**Post date:** [April 5, 2017, 1:53pm UTC](https://discourse.julialang.org/t/announcing-maxima-jl/3013/2 "2017-04-05T13:53:50Z")

</div>

Nice. I can now use Maxima.jl to play with maxima. (I’ve been using sagemath to access maxima from python.)

FYI, you can use Conda.jl to install maxima on Linux and OSX and use that so that the users don’t have to install maxima themselves. Maxima in conda-forge is compiled with ecl. I’m maintaining the [conda-forge maxima package](https://github.com/conda-forge/maxima-feedstock), so let me know if there are any issues.

```julia
using Conda
Conda.add_channel("conda-forge")
Conda.add("maxima")
"$(Conda.BINDIR)/maxima" # where maxima binary is located.

```

---

<div class="post-metadata">

**Author:** ![nsmith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsmith/32/979_2.png) [@nsmith](https://discourse.julialang.org/u/nsmith)\
**Post date:** [April 5, 2017, 2:49pm UTC](https://discourse.julialang.org/t/announcing-maxima-jl/3013/3 "2017-04-05T14:49:32Z")

</div>

Excellent! Thanks for the heads up. I didn’t think to look in conda-forge and it seems ecl has unicode support so that’s perfect! 🙂

---

<div class="post-metadata">

**Author:** ![nsmith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nsmith/32/979_2.png) [@nsmith](https://discourse.julialang.org/u/nsmith)\
**Post date:** [April 5, 2017, 7:29pm UTC](https://discourse.julialang.org/t/announcing-maxima-jl/3013/4 "2017-04-05T19:29:48Z")

</div>

It seems that the unicode support in `ecl` is shaker than I would have hoped.

```python
Maxima 5.39.0 http://maxima.sourceforge.net
using Lisp ECL 16.1.3
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) π
;

Maxima encountered a Lisp error:

 Cannot coerce string $Π to a base-string

Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.

```

@isuruf Is there any chance you’d consider compiling your conda package against [sbcl](http://www.sbcl.org/)? [Clisp](http://www.clisp.org/) also works well, its just quite a bit slower than sbcl.

---

<div class="post-metadata">

**Author:** ![isuruf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/isuruf/32/106_2.png) [@isuruf](https://discourse.julialang.org/u/isuruf)\
**Post date:** [April 6, 2017, 1:35pm UTC](https://discourse.julialang.org/t/announcing-maxima-jl/3013/5 "2017-04-06T13:35:12Z")

</div>

That looks like a maxima issue, because I can use unicode from an ECL shell.  
About using sbcl, we’ll have to package sbcl as well, since there’s no conda package for it. If you want to package sbcl, let me know, I can help.
