<commit_before>VOC
===

A transpiler that converts Python bytecode into Java bytecode.

This is experimental code. If it breaks, you get to keep all the shiny pieces.

What it does:

* Provides an API to let you programmatically create Java class files.

Quickstart
----------

Install `voc`, then run the sample script::

    $ pip install voc
    $ python tests/sample.py
    Creating class 'sample'...
    Writing sample.class...
    Done.

This will produce a `sample.class` that you can run on any Java 1.7+ VM. You will
need to make sure that the python.jar support file is in your classpath::

    $ java -XX:-UseSplitVerifier --classpath python.jar:. sample
    Hello, World

The ``-CC:-UsesplitVerifier`` argument is necessary to turn off stack map
verification in Java 7. This could be addressed by computing stack maps
for generated code.

Documentation
-------------

Documentation for VOC can be found on `Read The Docs`_.

Why "VOC"?
----------

The `Vereenigde Oostindische Compagnie (VOC)`_, or Dutch East India Company,
is often considered the be the world's first multinational corporation. It was
also the first company to issue shares, and facilitate the trading of those
shares. It was granted a 21 year monopoly to carry out trade activities in
Asia, primarily the Spice Islands - the Dutch East Indies. They established a
major trading port at Batavia - now Jakarta, on the island of Java (now part
of Indonesia). As a result of their monopoly, the VOC became an incredibly
valuable company, issuing an 18% annual dividend for almost 200 years.

VOC was... the world's first Enterprise using Java. (rimshot!)

VOC is also a backronym for "Vestigial Output Compiler". Or "Vexing Obtuse
Compiler". Or "Valuable Obscure Compiler". Or "Varigated Ocelot Calibrator".
It's your choice.
<commit_msg>Updated README for public announcement.<commit_after>VOC
===

A transpiler that converts Python bytecode into Java bytecode.

This is experimental code. If it breaks, you get to keep all the shiny pieces.

What it does:

* Provides an API to let you programmatically create Java class files.

* Compiles a Python source file into a Java class file in a nominated
  package. Supports the conversion of:

   * Class definition and construction

   * Class instantiation

   * Method definition and invocation

   * Some mathematical operations

   * Exception handling

   * for/while/if constructs

   * Identification of mainline entry points

   * Static initialization of modules.

It *doesn't* currently support

* Keyword arguments

* List comprehensions

* Generators

* Import statements

* ``exec()``/``eval()``

These things should all be *possible* - it's just a matter of time
and development effort.

Quickstart
----------

Install `voc`, then run the sample script::

    $ pip install voc
    $ python -m voc tests/sample.py org.pyee
    Creating class 'sample'...
    Writing sample.class...
    Done.

This will produce a `sample.class`, in the org.pybee namespace, that you can
run on any Java 1.7+ VM. You will need to make sure that the python.jar
support file is in your classpath::

    $ java -XX:-UseSplitVerifier --classpath python.jar:. sample
    Hello, World

The ``-CC:-UsesplitVerifier`` argument is necessary to turn off stack map
verification in Java 7. This could be addressed by computing stack maps
for generated code.

Documentation
-------------

Documentation for VOC can be found on `Read The Docs`_.

Why "VOC"?
----------

The `Vereenigde Oostindische Compagnie (VOC)`_, or Dutch East India Company,
is often considered the be the world's first multinational corporation. It was
also the first company to issue shares, and facilitate the trading of those
shares. It was granted a 21 year monopoly to carry out trade activities in
Asia, primarily the Spice Islands - the Dutch East Indies. They established a
major trading port at Batavia - now Jakarta, on the island of Java (now part
of Indonesia). As a result of their monopoly, the VOC became an incredibly
valuable company, issuing an 18% annual dividend for almost 200 years.

VOC was... the world's first Enterprise using Java. (rimshot!)

VOC is also a backronym for "Vestigial Output Compiler". Or "Vexing Obtuse
Compiler". Or "Valuable Obscure Compiler". Or "Varigated Ocelot Calibrator".
It's your choice.

{'fraction_non_alphanumeric': 0.07685185185185185, 'fraction_numerical': 0.004629629629629629, 'mean_word_length': 3.582184517497349, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2421448', 'n_tokens_mistral': 1223, 'n_tokens_neox': 1147, 'n_words': 610}