Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: Re: Why we want Lua on the IOC
From: Ben Franksen <benjamin.franksen@helmholtz-berlin.de>
To: "Hill, Jeff" <johill@lanl.gov>, Mark Rivers <rivers@cars.uchicago.edu>, "core-talk@aps.anl.gov" <core-talk@aps.anl.gov>
Date: Fri, 24 Feb 2017 00:28:34 +0100
Cool, how do i get it?

Am 23.02.2017 um 23:46 schrieb Hill, Jeff:
Also

https://indico.esss.lu.se/event/507/session/2/contribution/29/material/slides/0.pdf

-----Original Message-----
From: core-talk-bounces@aps.anl.gov [mailto:core-talk-
bounces@aps.anl.gov] On Behalf Of Mark Rivers
Sent: Thursday, February 23, 2017 3:08 PM
To: 'Ben Franksen'; core-talk@aps.anl.gov
Subject: RE: Why we want Lua on the IOC

Hi Ben,

Have you seen Jeff Hill's talks on this?

2015 EPICS collaboration meeting at Michigan State.
https://indico.fnal.gov/getFile.py/access?contribId=41&sessionId=2&resId=0
&materialId=slides&confId=9718

2016 EPICS collaboration meeting at Oak Ridge.
https://conference.sns.gov/event/11/session/1/contribution/63/attachments
/117/318/Applications_of_Lua_Scripting_at_LANSCE.pdf

Mark



-----Original Message-----
From: core-talk-bounces@aps.anl.gov [mailto:core-talk-
bounces@aps.anl.gov] On Behalf Of Ben Franksen
Sent: Thursday, February 23, 2017 4:00 PM
To: core-talk@aps.anl.gov
Subject: Why we want Lua on the IOC

Some people (Ralph?) mentioned that embedding Lua on EPICS IOCs might be
a good idea, perhaps even as a replacement for the iocsh. Prompted by
this I have been reading up on Lua, which, until now, I had dismissed as
yet another boring dynamically typed imperative/OO language (yawn). I
was wrong.

Yes, the language is procedural, imperative, with some OO features,
nothing spectacular. But it does have a number of features that make it
particularly suitable for EPICS. First of all, it has been designed from
the ground up for embedding in a host program. It is very small and
light-weight, so could easily run on 'real' IOCs, even on small devices.
Its language features have been carefully selected to offer only what
can be easily interacted with from a host program written in C. The
language itself is extremely simple, very much suitable for users who
are not professional programmers (constrast that with Unix shell
programming). The syntax is not whitespace (layout) sensitive, allowing
to write and execute simple programs on a terminal without any advanced
line-editing features; yet semicolons between statements are optional
(like in Eiffel, if anyone rembers that one). It has first class and
anonymous functions but provides syntactic sugar for the conventional
style of (named) function definitions. Registering C functions for Lua
(from the host program) is a straight forward exercise, requiring less
boilerplate than for the iocsh. Lua supports one and only one structured
data type, the table, which is enough for programming inside Lua. The
host program can add abstract data types and can even overload operators
or table key selection for them, giving users an OO-like API due to
support for first class functions.

Given appropriate support from the host (EPICS base) it could be used to
write simple "EPICS scripts" to be executed directly by the (Lua) shell,
for instance to access and manipulate the database (static and dynamic);
or one could conditionally configure a driver with different parameters,
depending on a configuration option; or start sequencer programs in a
loop. I would even consider adding a sequencer-like extension.

The only downside I can see at the moment (others will surely provide
more) is that strings must be quoted, which is a bit inconventient for
an interactive shell. (At least, as in Perl and in contrast to Python,
you can use identifiers (barewords in Perl speak) as table keys.)

Cheers
Ben

________________________________

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher
Forschungszentren e.V.

Aufsichtsrat: Vorsitzender Dr. Karl Eugen Huthmacher, stv. Vorsitzende Dr.
Jutta Koch-Unterseher
Geschäftsführung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas Frederking

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin

http://www.helmholtz-berlin.de



________________________________

Helmholtz-Zentrum Berlin für Materialien und Energie GmbH

Mitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.

Aufsichtsrat: Vorsitzender Dr. Karl Eugen Huthmacher, stv. Vorsitzende Dr. Jutta Koch-Unterseher
Geschäftsführung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas Frederking

Sitz Berlin, AG Charlottenburg, 89 HRB 5583

Postadresse:
Hahn-Meitner-Platz 1
D-14109 Berlin

http://www.helmholtz-berlin.de


Replies:
RE: Why we want Lua on the IOC Hill, Jeff
References:
Why we want Lua on the IOC Ben Franksen
RE: Why we want Lua on the IOC Mark Rivers
RE: Why we want Lua on the IOC Hill, Jeff

Navigate by Date:
Prev: RE: Why we want Lua on the IOC Hill, Jeff
Next: RE: Why we want Lua on the IOC Hill, Jeff
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: RE: Why we want Lua on the IOC Hill, Jeff
Next: RE: Why we want Lua on the IOC Hill, Jeff
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 23 Feb 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·