B-C

 view release on metacpan or  search on metacpan

ramblings/yapceu2015.html  view on Meta::CPAN

**BEGIN for compile-time, INIT for run-time initializations.**

Esp. do not compile pointers into your shared library, initialize them
at **INIT**.
---
# Testing

The core testsuite runs now all tests in *12:40min* fully parallel.
With ccache *~5min*.

Before it needed *16min* for 75% of it.

---
# Testing

The core testsuite runs now all tests in *12:40min* fully parallel.
With ccache *~5min*.

Before it needed *16min* for 75% of it.

* our uncompiled perl 5.22 variant needs *8m40m*,
* a p5p perl 5.23 needs *11-13min*,
* 5.14 *15-19min*

---
# Broken

Moose, Coro, FCGI, v5.22

We'll rather fix perl 5.22 and B::C first, and make the Moose bloat history.
I maintain in p2/potion a perl6 like MOP in ~40 lines, which is 200x faster.

Fixing Moose is not priority, fixing perl5 is.
Coro next, when we'll start using it.

---
# Development

Via perl11 in nearby Austin we formulated goals
for perl6 feature integration.

* types (YAPC::EU 2012 Riga talk)
* B::CC optimizations (YAPC::EU 2013 Kiev talk, ~6x faster)
* p2/potion development (YAPC 2014 talks, ~5-200x faster)
* rperl (restrict the syntax, map to static C++ types, ~7-350x faster)
* plan on shared modules, less memory, better arrays and hashes
  and types (=> no magic, static optims and dispatch) and much more.

---
# Next goal

We skipped all versions from 5.16 to 5.20, since they got worse
in almost all aspects: memory, security, compiler API.

But with the monomorphic inline cache patch by Oleg Pronin early 2015
and the :const attribute in core (for anonsubs, but we took the syntax),
5.22 became the next realistic target to aim for.
---
# Next goal

Even with several major blocks (p5p, unicode bloat, COW,
SVf\_PROTECT, @\_ in sigs), I started working on a fixed and improved
perl version in Feb 2015. <!--  Starting with my early 2012 type system
work which had no chance to get accepted or even discussed with p5p.-->

:const made it possible.
---
# Next goal

Compiling >5.14 with perl5 proper is not worthwhile. 5.22 maybe without COW.
But targetting our improved version based on 5.22 and coretypes is.

We can control memory bloat, overcome the broken p5p development
status <!-- which is going on since 2002, add the needed features
which were not added since 2002, --> and can use the improved compiler
(op.c) and perl run-time in the B::C compiler to produce better code.

Back to the 5.6.2 level hopefully. Memory-wise and initialization already
there, but we still have some major improvements in not yet merged
branches. You can expect a **perl11 (5+6=11)** soon. But we
prototype and use it internally for a while first.

---
# Questions

    </textarea>
    <script src="remark.js" type="text/javascript">
    <!-- script src="https://gnab.github.io/remark/downloads/remark-latest.min.js" -->
    </script>
    <script type="text/javascript">
      var slideshow = remark.create();
    </script>
  </body>
</html>      



( run in 3.698 seconds using v1.01-cache-2.11-cpan-437f7b0c052 )