Bocca Reference And Guide

FAQ / b-rag
This is a user/developer written faq, reference, and guide for Bocca. Bocca's feature set is still emergent-- the authors do not anticipate finishing it any time soon, but they place a high value on features remaining stable once they appear. Editing is welcome.



  • Babel implementation files are huge. How do i find the function I want to implement? Just ask bocca to find it for you when starting the editor. See BoccaEdit for details.


  • I have a bocca project and want to upgrade to a new bocca. What do I do, and what do I do if the simple version doesn't work? See BoccaUpgradeAnswers.

  • I like printf style io in c++. Can't I have that? Yes. Just create your component with the options "-lcxx --dialect=cio".

  • Does bocca support fortran? Yes. See BoccaFortran for more.

  • Next to my Impl files I see .rej files. Should I edit them? What are they used for? No, you should not edit .rej files. These are leftovers from bocca splicing operations. You are free to delete every .rej file any time you want. Any code bocca takes from an impl and replaces or deletes when splicing is put into the matching .rej file. Normally the only code appearing in these files is default exception throwing blocks generated by babel and replaced with bocca generated code. If you think bocca somehow deleted your hand-written impl, just look in the .rej file.

  • What is bocca for? Creating and managing CCA-based component software with far fewer build-system worries than otherwise is possible.

  • Who should use bocca (as of October 2007)? There is a formal, feature limited release, 0.4.2. Early adopters are welcome to try it out. It ships with the cca-tools-0.6.4 tar file at cca-forum.org/download/cca-tools. Extremely early adopters are welcome to use bocca directly from subversion — doing so is implicitly an agreement to participate in the benefits and problems of our rapid development process — we do not recommend it for production yet,

  • How can I find out more about bocca's features? Use the help system! "bocca help; bocca create port --help; and bocca help --examples create component" are all examples of queries to the help system.

  • What is currently mostly working in bocca? Actions: create, change, edit, display, remove, rename. Subjects: project, package, interface, port, class, component. For up-to-date info, see the features matrix.

  • What is currently not working in bocca? Lots of things. Visit the bug tracker.

  • When is bocca going to be ready for production use? We have released 0.4.2 and created a stable branch for SC07.

  • How can I help write bocca documentation? Put useful text in one of the following sections, please! Or help with our TeX based documentation.

  • I get "Bocca ERROR: No valid project found in this directory" when trying to use help? With your (really old) version of bocca you need to "bocca create project {myproject}; cd {myproject}" and then run help queries from in the project directory. This has been fixed in bocca 0.3.

  • When i edit a port, there's long rebuild of it. How can I speed this up? See OptimizingBoccaUsage. This problem has largely been cured in versions of bocca after 0.2.

  • What languages does bocca support? Bocca supports f90, python, java, c, and c++. F77 support will appear in a future release of bocca; presently f77 in bocca is only experimental and should not be used for real work.

  • What is the current bocca version? 0.5.x in development, 0.4.x on the stable branch.


Bocca concepts

SIDL symbol
Project
Package
Component
Port
Importing
Protected splice blocks
User splice blocks
Babel splice blocks
SIDL splice blocks

Bocca syntax


Bocca examples
(These should be derived (and perhaps annotated) base on the output of bocca help --examples action subject.)


Bocca best practices


Created by: baallan last modification: Monday 31 of August, 2009 [15:08:05 UTC] by norris

The original document is available at http://www.cca-forum.org/wiki/tiki-index.php?page=Bocca%20Reference%20And%20Guide