FAQ for gbeta |
This is a list of Frequently Asked Questions for gbeta, both the language and the environment. I'll put more questions & answers in here as soon as they get frequent ;-), hence: Don't hesitate to tell me when you think something is missing! Q1: Why can't I run my existing BETA program under gbeta? A: There are some low-level differences between the Mjolner BETA System implementation of BETA and the gbeta implementation which makes it impossible to run Mjolner BETA code directly with gbeta. Check out the compatibility section for details. A future release will contain a slightly adapted version of the Mjolner basic libraries that will work with gbeta. Even then, however, support for calling external code (such as compiled C) is probably not ready, and lots of the libraries of the Mjolner BETA System use externals, e.g. to create BETA-bindings for GUI APIs. Q2: Why doesn't gbeta discover my source code changes? A: During an interactive session, e.g. under Emacs, it is possible and
often relevant to change the source code of the program being
interpreted, but gbeta will not notice the changes, and the
color coding in the source code window will still correspond to the
original program, as when the interpretation started. It probably
looks as if the colored block is an arbitrary part of the source code,
and not the currently executing imperative. Even This is because gbeta reads the source code at startup, then builds an internal representation of the program, an abstract syntax tree, and then decorates this abstract syntax tree with static analysis information and executes. It never looks at the text files after the startup phase.
To refresh gbeta's picture of the program,
Q3: Why doesn't it work to A: When single-stepping through a piece of code like:
for -imperative, because single-stepping them is not
likely to reveal any new information. If you haven't stepped into the
for -imperative yet, the next command will
execute all of it in one go. But if you have already stepped into the
body of the for -imperative, you have to do something else.
This looks like a job for
The solution is to put a temporary breakpoint after the
Q4: How do I get a list of breakpoints? A: The currently installed breakpoints can be printed with the command
Other sourcesIf you cannot find an answer to your question here, there are a few other possibilities. For questions about the language, consider the general BETA FAQ. Except for a few, small changes, the language gbeta is a backwards compatible superset of the traditional BETA language. Consequently, a large number of questions about gbeta could as well be seen as questions about BETA. For questions about the practical usage of and interaction with the current gbeta implementation, check out the section "Getting Started". |