taskSavannah Administration - Tasks: task #5412, Submission of libbf

 
 

task #5412: Submission of libbf

Submitter:  Even Rouault <rouault>
Submitted:  Sat 15 Apr 2006 01:44:33 PM UTC
   
 
Should Start On:  Sat 15 Apr 2006 12:00:00 AM UTC Should be Finished on:  Tue 25 Apr 2006 12:00:00 AM UTC
Category:  Project Approval Priority:  * 5 - Normal
Status:  Done Privacy:  Public
Assigned to:  tizzef Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Wed 10 May 2006 10:41:22 AM UTC, comment #3: 

Hi,

I have approved your project.  You will receive an automated e-mail containing detailed information about the approval.

Regards.

Patrick Camus <tizzef>
Thu 04 May 2006 08:07:02 PM UTC, comment #2: 

Hi,

Thanks for evaluating my project submission !

As you wished, I've changed the term 'Linux' to 'GNU/Linux' in the README file (from which I've extracted the description of the projet I've posted) in the enclosed libbf.tar.gz.
I've updated the README with a newly added feature: a converter from (a small subset of) C code to BrainFuck code.

We can consider the code in its current state as mostly functional, however it would need to be more widely tested by the community.

Even Rouault

Even Rouault <rouault>
Thu 04 May 2006 03:59:57 PM UTC, comment #1: 

Hi,

I'm evaluating the project you submitted for approval in Savannah.

At first, "Linux" is just a kernel of a more complex system that we like to refer to as GNU/Linux, to emphasize the ideals of the Free Software movement.

Would you mind changing references to Linux as an OS to GNU/Linux?

For more information, see http://www.gnu.org/gnu/linux-and-gnu.html.

At second, please include a (perhaps temporary) URL pointing to the source code. Alternatively, you can forward the code to me by email at <tizzef@gmail>.

We wish to review your source code, even if it is not functional, to catch potential legal issues early.

For example, to release your program properly under the GNU GPL you must include a copyright notice and permission-to-copy statements at the beginning of every  copyrightable file, usually any file more than 10 lines long.  This is explained in http://www.gnu.org/licenses/gpl-howto.html.  Our review would help catch potential omissions such as these.

Note that sending code to our repositories is a release, since the code will then be publicly available through anonymous access.

Cheers

Patrick Camus <tizzef>
Sat 15 Apr 2006 01:44:33 PM UTC, original submission:  

A new project has been registered at Savannah
The project account will remain inactive until a site admin approve or discard the registration.


######### REGISTRATION ADMINISTRATION #########

While this item will be useful to track the registration process, approving or discarding the registration must be done using the specific "Group Administration" page, accessible only to site administrators, effectively logged as site administrators (superuser):

  <https://savannah.gnu.org/siteadmin/groupedit.php?group_id=8481>


######### REGISTRATION DETAILS #########

Full Name:
----------
  libbf

System Group Name:
-----------------
  libbf

Type:
-----
  non-GNU software & documentation

License:
--------
  GNU Lesser General Public License

Description:
------------
  libbf is a free portable library for Brainfuck fast interpretion, optimization, compilation and execution.
It is developped under the GNU Lesser General Public License (GNU LGPL).

-----------------------------------------------------------------------------------------

The library supports regular Brainfuck source code as input, composed of
the following 8 opcodes
                            [ ] + - < > . ,

The library includes :

  • a naive Brainfuck interpreter
  • a less naive Brainfuck interpreter
  • a FAST! Brainfuck interpreter with optimization passes
  • a cross-compiler with optimization passes for the following target architectures :

  i386, x86_64 (amd64), ppc, arm, sparc, mips

  • a in-memory Brainfuck optimizer-compiler and launcher for

  those architectures

The optimizer-interpreter includes a profiling tool.
The optimizer-interpreter/compiler includes a step-by-step memory display.
Brainfuck code can be output can be dumped into equivalent C or Java code.

The optimization process transforms the 8 Brainfuck opcodes into a slightly larger
opcode set enabling basic and complex expression detection (affectation, addition/substraction/multiplication)
and simplifications, loop removal, etc...

The library supports many sizes for the Brainfuck data cell (regular Brainfuck data cell is 8 bits) :

  • 8, 16, 32, 64 bits for the various interpreters
  • 8, 16, 32, 64, 64n bits for the compiler for 64 bits supported architectures (x86_64)
  • 8, 16, 32, 32n bits for the compiler for 32 bits supported architectures (i386, ppc, arm, sparc, mips)


For i386 and x86_64 compiled code execution (under Linux, Win32, FreeBSD, OpenBSD), the library offers
a suspend-and-resume feature.

The library offers a rather nice "free" dynamic memory allocation feature for running brainfuck code.
It works through page protection mechanism and catching of SIGSEGV signals.
It has been successfully tested for the following cases:

  • Linux x86_64 optimizer-interpreter and compiler
  • Linux/Win32/FreeBSD/OpenBSD i386 optimizer-interpreter and compiler
  • Solaris SPARC optimizer-interpreter and compiler
  • Linux ppc optimizer-interpreter and compiler


Dynamic allocation should also work for the optimizer-interpreter for all Linux hosts.



Even Rouault <rouault>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #9893:  libbf_04052006_submitted_to_savannah.tar.gz added by rouault (161KiB - application/x-tgz - source code archive)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Follow 9 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2006-05-10 tizzef StatusWait reply Done
    Percent Complete20% 100%
    Open/ClosedOpen Closed
2006-05-04 rouault Attached File- Added libbf_04052006_submitted_to_savannah.tar.gz, #9893
2006-05-04 tizzef StatusIn Progress Wait reply
    Percent Complete10% 20%
2006-05-02 tizzef StatusNone In Progress
    Assigned toNone tizzef
    Percent Complete0% 10%

Back to the top

Powered by Savane 3.13-cf05.
Corresponding source code