Difference between revisions of "CalicoDevelopment"

From IPRE Wiki
Jump to: navigation, search
(Overview)
(Overview)
Line 67: Line 67:
 
# Scheme (somewhat working)
 
# Scheme (somewhat working)
 
# Dinah (drag and drop language, just started)
 
# Dinah (drag and drop language, just started)
 +
# Sympl (experimental Lisp-like language written in Python for the DLR)
  
 
A Language file in Pyjama/languages/*.py defines the editing document, and the shell executor API. Documents can do things like open, save, and display data for editing. Engines can do things like execute, execute_file, and parse files. Engines also allow for the languages to share data and functionality.
 
A Language file in Pyjama/languages/*.py defines the editing document, and the shell executor API. Documents can do things like open, save, and display data for editing. Engines can do things like execute, execute_file, and parse files. Engines also allow for the languages to share data and functionality.

Revision as of 13:25, 19 January 2011

This page describes the planning of Pyjama Editor and Shell. The Pyjama IDE is a cross-platform environment for learning about computing. This is part of the Pyjama Project.

Development

Getting Source Code

For those with write permissions to the SVN Bryn Mawr College source code repository:

svn co https://svn.cs.brynmawr.edu/Pyjama/trunk Pyjama

You can browse the source code here:

You will also need:

  • mono
  • gtk (and libgtk2.0-cil-dev, for package-config files)
  • gtk-sourceview (libgtksourceview2-2.0-cil package on Ubuntu)

Building

To build everything, run "make" in the root:

cd Pyjama
make

That will build platform independent modules/Myro.dll, modules/Graphics.dll, and languages/Scheme.dll.

To run code:

cd Pyjama
make

Overview

There are 5 directories in the Pyjama folder:

  1. bin - contains the startup exe and dll files
    1. bin/Lib - contains the standard Python libraries
  2. languages - contains the language definition files for Python, Ruby, Scheme, and Dinah
  3. modules - Cross-language modules that can be used by all Pyjama languages
  4. examples - sample code, broken down by language
  5. src - the code to run the Pyjama Project

Pyjama is written in IronPython, using the Gtk# graphical toolkit. The Python files for the Pyjama Project are in Pyjama/src/*.py. They are:

  • document.py - base classes for Document interface
  • editor.py - the Editor Window
  • engine.py - base classes for the Engine interface
  • pyjama.py - setup and startup code
  • reflection.py - code to read DLL data
  • shell.py - the Shell Window
  • utils.py - utility functions and classes
  • window.py - base class for Shell and Editor

Pyjama is an editor and executor of code from a Language. Languages are defined in Pyjama/languages and define two items: editor document, and an executor engine. Pyjama has 4 languages, in various states of completeness:

  1. Python (finished)
  2. Ruby (nearly finished)
  3. Scheme (somewhat working)
  4. Dinah (drag and drop language, just started)
  5. Sympl (experimental Lisp-like language written in Python for the DLR)

A Language file in Pyjama/languages/*.py defines the editing document, and the shell executor API. Documents can do things like open, save, and display data for editing. Engines can do things like execute, execute_file, and parse files. Engines also allow for the languages to share data and functionality.

TODO

See NOTES in the Pyjama download (package or svn).

Screen Shots

Pyjama-010.gif

For more, see PyjamaScreenShots

Troubleshooting

If you have any trouble, find bugs, or want to make a feature request, please do that at:

pyjama.codeplex.com/WorkItem/