Notes:
--------------------------------------------------
PEBL: Psychology Experiment Building Language
http://pebl.sourceforge.net
pebl-list at lists sourceforge net
http://lists.sourceforge.net/lists/listinfo/pebl-list
--------------------------------------------------
About:
PEBL is a new programming language and interpreter/compiler designed
to make experiment-writing easy. It is cross-platform, written in C++,
and relies on a Flex/Bison parser. Although other platforms are
possible, we currently use the SDL game-programming library
(http://libsdl.org) to easily support multiple platforms with one code
base. PEBL does not require you to purchase anything in order to use
it. It does not require a compiler or experience using any other
programming system. PEBL is designed to be an open system. It
requires no licensing or registration fees to use, and you can re-use
the source code as long as you abide by the GNU GPL. This allows you
to freely share your experiments with others without worrying about
licenses, vendor lock-in, or whether you will be able to run your
experiments down the road when your current hardware systems are
obsolete.
RELEASE NOTES
--------------------------------------------------
Version 0.06
January 2006
The sixth version of PEBL has been released. While the previous
release focused on stability, this release brings some substantial
changes to the underlying object management system. Consequently, we
expect a few bugs to have crept in undetected. Major user-visible
changes include the ability to create simple shape objects (like
Circle(), Ellipse(), etc.), the ability to access object properties
directly with a variable.property syntax, and a few new statistical
functions. A new command-line option, -s, enables you to set the
variable gSubNum automatically at initiation, and the global variables
gVideoWidth and gVideoHeight can now be changed at the beginning of a
script, affecting the display screen size when MakeWindow() is called.
We also have a nicely improved 100-page manual in pdf and html format
thanks to the efforts of Gulab Parab and Samuele Carcegeno, a new
tutorial for beginners trying to learn PEBL, and a WIKI available on
the website for help and tips, and where you can post your own
experiments. We have improved PEBL's handling of international
keyboards, and so a number of non-US keyboards may now work better, albeit
with a few problems. The windows version seems to not work however, so please
test your favorite keyboard setup with the testinput.pbl script and
send us feedback. This will be a priority for version 0.07.
SHAPES.
Now, several graphical 'shape' objects can be created and
displayed directly, as an alternative to generating an image file with
an external drawing program and loading it with MakeImage(). These
include Line(), Square(), Rectangle(), Circle(), and Ellipse(). They
can be created as filled or unfilled objects, moved around with the
Move() function or .x and .y properties. Like regular images, they
must be added to the parent window with the AddObject() function, and
are drawn when the Draw() function is called. Shapes definition
function include their initial coordinates in the parent window.
Shapes come courtesy of the sdl_gfx library, so if you are compiling
on linux, you need this library installed. Unfortunately, this library appears to be unstable on the PPC architecture because it is unable to use MMX optimization.
Object/Properties.
Previously, properties of objects were held privately by the object
and were essentially inaccessible to user experiments, and modified by
special functions. With the new changes, object properties are
available directly from the variable using a variable.property
syntax. All properties of an object are available for reading, and
many can be set using the assignment symbol '<-'. For example, if a
variable representing an object has the property TEXT, it can be
accessed like:
myText <- object.TEXT
Print(myText)
and it can be modified by doing something like:
object.TEXT <- "New Text"
Old accessor functions are still available, so
SetText(object, "Alternative new text")
still works.
Properties are case insensitive, and are currently predefined for all
objects. Some objects and their accessible properties:
All Widgets: .X, .Y, .Width, .Height, .Visible
Text-based widgets: .Font, .Text
TextBoxes: .CursorPos, .Editable
Colors: .Red, .Green, .Blue, .Alpha
Fonts: .Bold, .Italic, .Underline, .Filename, .FGColor,
.BGColor
All Shapes: properties of widgets, .Color, .OutlineColor, .Filled
Circle: .Radius
Square: .Size
Rectangle: .SizeX, .SizeY
Ellipse: .rX, .rY
Line: .dX, dY
New Functions:
PEBL 0.06 introduces several new for creating shapes: Circle(),
Square(), Line(), Ellipse(), Rectangle(). Median(), Mean(),
Order(), Rank(), Sum(), and StdDev()
Changes:
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use