This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Infinity is a platform-independent system for executables and shared libraries to export information to software development tools such as debuggers.

In Infinity, executable and shared library files contain Infinity notes in addition to their regular contents. Each Infinity note contains a function encoded in a platform-independent instruction set that note-consuming tools can load and execute.

This package provides I8C, a compiler for creating object files containing Infinity notes. This package also provides I8X, an execution environment that can be used to create unit tests for compiled notes.

Installation

The easiest way to install I8C and I8X is to use pip:

pip install -U --user i8c

or:

sudo pip install -U i8c

Either of those commands will install both I8C and I8X. If you don’t have pip please refer to installing pip. Hint: try one of these commands:

sudo apt-get install python-pip
sudo yum install python-pip

The latest development versions of I8C and I8X are available from GitLab. To build and install from source use setup.py:

python setup.py install --user

or:

sudo python setup.py install

I8C and I8X require Python 2.6 or newer.

License

I8C is licensed under the terms of the GNU General Public License, either version 3 of the License, or (at your option) any later version.

I8X is licensed under the terms of the GNU Lesser General Public License, either version 2.1 of the License, or (at your option) any later version.

I8X loads user-supplied note testcases into itself, making a combined work. The LGPL allows note testcases to be licensed however their authors choose.

For the avoidance of doubt, I8C does not make a combined work with its input. I8C’s input may also be licensed however its authors choose.

Note Compiler

The note compiler’s standard mode of operation is to translate source code into object files which can be linked into executables or shared libraries in the usual manner. This example will generate the file factorial.o:

cd examples/factorial
i8c -c factorial.i8

I8C uses GCC both to preprocess its input (unless invoked with -fpreprocessed) and to assemble its output (unless invoked with -E or -S). If GCC is used, all options not explicitly listed by i8c --help will be passed to GCC unmodified. In general I8C operates like GCC, so if you’re used to using GCC then I8C should make sense.

Execution Environment

I8X is an execution environment for testing Infinity notes. When invoked as i8x --quick (or i8x -q) I8X executes a single note function, taking arguments from the command line and displaying the result on the console:

cd examples/factorial
i8x -i factorial.o -q "example::factorial(i)i" 5

When invoked without -q or --quick I8X expects one or more note testcases to be specified on the command line. Note testcases are written in Python using an extension of the unittest unit testing framework. Testcases execute note functions with specific inputs and check the operation and result of the call proceeds as expected. This example tests the factorial.o object file created in the first example above:

cd examples/factorial
i8x -i factorial.o test-factorial.py

Documentation

Documentation for Infinity is currently being put together on the Infinity wiki. Good starting points are I8Language and NoteFormat.

Right now there’s no documentation for I8C and I8X aside from this file and what you see in i8c --help and i8x --help. This is being worked on. You could help!

Contributing

For help or to report bugs please email infinity@sourceware.org.

If you’re working on this software please join the mailing list and coordinate so we don’t collide.

Definitely mention if you’re writing software to consume Infinity notes because I8X doesn’t fully implement the as-yet unwritten spec and isn’t a good model to base things on.

Release History

Release History

0.0.4

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
i8c-0.0.4-py2.py3-none-any.whl (78.4 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Oct 12, 2016
i8c-0.0.4.tar.gz (94.1 kB) Copy SHA256 Checksum SHA256 Source Oct 12, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting