[Oberon] NAstrobe for RISC5 on Pepino

Chris Burrows chris at cfbsoftware.com
Sat Aug 4 01:29:02 CEST 2018

> -----Original Message-----
> From: Oberon [mailto:oberon-bounces at lists.inf.ethz.ch] On Behalf Of
> Andreas Pirklbauer
> Sent: Friday, 3 August 2018 10:37 PM
> To: oberon at lists.inf.ethz.ch
> Subject: [Oberon] NAstrobe for RISC5 on Pepino
>    > * The code space used by modules can be freed if no application
> is still referencing them
> Except that FPGA Oberon does NOT actually check whether such
> references exist - i.e. it *always* unloads the specified modules, no
> matter whether other modules reference them or not.

'always' ? 

That is not true and can be easily demonstrated:

1. Startup Oberon on actual FPGA hardware e.g. the Pepino.

2. Execute System.ShowModules. You will see that a number of modules have a
reference count > 0.

3. Pick one (e.g. MenuViewers - see my note below) and execute the command:

  System.Free MenuViewers ~

Make sure you get the capitalisation right. Don't expect an error message if
you put in the name of a module that doesn't exist!

4. You will see the message in the log:

  MenuViewers unloading failed

5. Execute System.ShowModules and you will see that MenuViewers is still
loaded with the same reference count.

Now there are some circumstances where the reference count is zero but it
would not be sensible to unload the module. One example that you can try is
'System' but make sure you have saved any work before you do. I retract my
claim that the system is 'idiotproof' ;-) 

Chris Burrows
CFB Software

More information about the Oberon mailing list