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.07
June 2006
The seventh release of PEBL has arrived. This release incorporates a
set of functions allowing network communication via tcp/ip, a number
of bugfixes for the property system, a bunch of new functions, new
fonts, and several new mini-projects associated with PEBL. Along with
releasing the standard PEBL distribution, we are releasing (1) The
PEBL Test Battery, a set of tasks often used for clinical and
neuropsychological purposes; (2) PEBL image archive, a set of
public-domain images for use in experiments, and (3) PEBL sound
archive, a set of .wav files useful in experiments.
New fonts:
I've tracked down a bunch of fonts with really liberal
licensing, which should fill in a few gaps left in the Bitstream
Vera fonts. New fonts are listed below, and all fonts are viewable
by running the fonts.pbl script in the demo directory. One font,
called Stimulasia.ttf, is our own custom font that will be used to
put custom glyphs useful in experimental research.
Caliban.ttf CharisSILR.ttf FreeSansOblique.ttf
Caslon-Black.ttf DoulosSILR.ttf FreeSans.ttf
CaslonBold.ttf FreeMonoBoldOblique.ttf FreeSerifBoldItalic.ttf
CaslonItalic.ttf FreeMonoBold.ttf FreeSerifBold.ttf
CaslonRoman.ttf FreeMonoOblique.ttf FreeSerifItalic.ttf
CharisSILBI.ttf FreeMono.ttf FreeSerif.ttf
CharisSILB.ttf FreeSansBoldOblique.ttf GenI102.ttf
CharisSILI.ttf FreeSansBold.ttf GenR102.ttf
Humanistic.ttf Stimulasia.ttf
These new fonts add considerably to the download size, but it is still
pretty small, and it is pretty important to have a common set that can
be counted on being present.
Network Communication:
To enable synchronizing and communicating between computers, a set of
functions have been added that allows primitive communication via
TCP/IP. We use the sdl_net library to achieve this, and so that
library is now required to build and use PEBL.
Syntax:
Syntax has been polished to allow a bit more freedom in where
brackets { and } are placed, and we've added an elseif (){}
continuation to the if() statement, so you can do things like:
##This should print out "THREE"
if(3 == 1) {
Print("ONE")
}elseif(3==4){
Print("TWO")
}elseif(4==4){
Print("THREE")
}elseif(4==4){
Print("FOUR")
}else{Print("FIVE")}
New functions:
*Tab(<n>) Adds a tab character to a text string
*CR(<n>) Adds newline/carriage return
*Format() Prints a number/string with a specific number of
characters, either by truncating or padding with spaces.
*ListToString() Concatenates everything in a list into a string.
*ShowCursor() Hides or shows cursor
*WaitForListKeyPressWithTimeout()
Waits for either a keypress from a specified set or a timeout.
*Quantile(<list>,<quantile>) Computes specific quantile of a list of data.
*ShuffleRepeat() Repeats a list, shuffling each time.
*ShuffleWithoutAdjacents()
Shuffles a list, allowing one to specify
items that should not be adjacent in output list
*LatinSquare() Quick-and-dirty latin square
*ReplaceChar() Substitutes one character for another in a string.
*Lookup(<key>,<keylist>,<database>) Returns element matching a lookup key in another list.
*ConnectToIP(<ip>,<port>)
Connects to a port on another computer, returning
network object.
*ConnectToHost(<hostname>,<port>)
Connects to a port on another computer, returning
network object.
*WaitForNetworkConnection(<port>)
Listens on a port until another computer connects,
returning a network object
*CloseNetworkConnection(<network>)
Closes network connection
*SendData(<network>,<datastring>)
Sends a data string over connection.
*GetData(<network>,<length>)
Return a string from network connection
*ConvertIPString(<ip-as-string>)
Changes an ip-string into integer
Misc & Bugfixes:
* Arrow keys can be used--use "<left>", "<right>", "<up>" and "<down>" in
functions like WaitForKeyPress().
* The mathematical power operator (^) now works.
* Fixed a bug that introduced garbage characters when converting
number to string or printing numbers
* Fixed a wrapping bug in textboxes where a single letter followed
by a return would not wrap to the next line.
* When creating a file in a non-existent directory, PEBL did not
previously complain, but no file would be created. Now, the script
fails with appropriate warning.
* Fixed MakeColorRGB(). Previously, this function had defined colors with an
alpha transparency set to completely transparent, rather than
solid. Now it should be possible to create colors that can be seen!
Changes:
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use