While the runtime optimizations are cool, I think ClojureScript could
benefit from just having compile time optimized expressions. Mostly
thinking about the applicability for certain interactive applications and
games.


On Fri, Aug 30, 2013 at 3:45 AM, Maik Schünemann
<maikschuenem...@gmail.com>wrote:

> Hi David,
> The core of expresso wouldn't be much work to port to clojurescript.
> The rule based translator is built on top of core.logic, so porting
> that should be straightforward.
> Also the manipulation routines are very much purely algorithmic so
> should work without much trouble in clojurescript.
>
> There are two things which need to be resolved, though:
> 1.) what execution engine: expresso is very close to core.matrix and
> uses its functions to execute the expressions and it's function names
> and semantics for the encoded expressions.
> 2.) compiling optimized expressions to functions at runtime:
> In clojure I managed to compile optimized expressions to optimized
> code at runtime through a code-emitting protocol and a call to eval to
> create the function. Without eval in clojurescript this couldn't be
> done easily. With compile-time constant expressions this could be made
> to work with a macro. At runtime there would still be the normal
> evaluate function which however traverses the whole expression tree.
>
> So if anyone knows a good execution engine for expresso in
> clojurescript or has thoughts about the compiling issue please post!
>
> I think it would be a good showcase for clojurescript to bring
> symbolic manipulation cababilities including solving equations etc to
> the browser.
>
> On Thu, Aug 29, 2013 at 10:19 PM, David Nolen <dnolen.li...@gmail.com>
> wrote:
> > Very cool stuff :) How much work would it take for this to work with
> > ClojureScript?
> >
> > David
> >
> >
> > On Mon, Aug 26, 2013 at 4:47 AM, Maik Schünemann <
> maikschuenem...@gmail.com>
> > wrote:
> >>
> >> Hi,
> >> I released a first version of my gsoc project expresso [1].
> >> This is an important Milestone in my gsoc project.
> >> What is there:
> >> an expressive and powerful rule based translator, on top of which many
> >> transformations can be based.
> >> functions to simplify (currently without ratio test), differentiate,
> >> rearrange, solve expressions.
> >> functions to optimize an expression (includes
> >> common-sub-expression-elimination, constant-folding, replacement
> >> with special operators, matrix-chain-optimization, ...)
> >>
> >> The solver can solve multiple simultaneous equations.
> >> currently it solves equations, which are polynomials up to degree 2, in
> >> which the number of occurrences of the unknown
> >> can be reduced to one by simplifying the expression or which consists of
> >> factors in above form. variables as parameters
> >> are supported everywhere.
> >>
> >> The last weeks of gsoc I will be making the above transformations more
> >> stable, eliminate as many bugs as I can find
> >> (feel free to report some you notice), and extending the range of
> >> expressions which can be transformed by these transformations,
> >> as well as thoroughly documenting the work that has been done.
> >> See the github repository and README.md for details [1]
> >>
> >> [1] https://github.com/clojure-numerics/expresso
> >>
> >> --
> >> --
> >> You received this message because you are subscribed to the Google
> >> Groups "Clojure" group.
> >> To post to this group, send email to clojure@googlegroups.com
> >> Note that posts from new members are moderated - please be patient with
> >> your first post.
> >> To unsubscribe from this group, send email to
> >> clojure+unsubscr...@googlegroups.com
> >> For more options, visit this group at
> >> http://groups.google.com/group/clojure?hl=en
> >> ---
> >> You received this message because you are subscribed to the Google
> Groups
> >> "Clojure" group.
> >> To unsubscribe from this group and stop receiving emails from it, send
> an
> >> email to clojure+unsubscr...@googlegroups.com.
> >> For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
> > --
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> your
> > first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> > ---
> > You received this message because you are subscribed to the Google Groups
> > "Clojure" group.
> > To unsubscribe from this group and stop receiving emails from it, send an
> > email to clojure+unsubscr...@googlegroups.com.
> > For more options, visit https://groups.google.com/groups/opt_out.
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to