[Plplot-devel] New binding of Go programming language

2014-01-21 Thread Hailiang Wang
Hello everyone,

I have made a Go (http://golang.org) binding for PLPlot, and put it
under my github repo:

https://github.com/hailiang/go-plplot

Wrappers to C functions are complete, and I plan to make a declarative
layer around it gradually.

Best regards,

Hǎiliàng

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] New binding of Go programming language

2014-01-21 Thread Hezekiah M. Carty
On Tue, Jan 21, 2014 at 8:21 AM, Hailiang Wang hwang@gmail.com wrote:
 Hello everyone,

 I have made a Go (http://golang.org) binding for PLPlot, and put it
 under my github repo:

 https://github.com/hailiang/go-plplot

 Wrappers to C functions are complete, and I plan to make a declarative
 layer around it gradually.


That's wonderful news!  Thank you for creating and releasing these bindings.

Do the Go bindings target a specific release/revision of PLplot?  If
so that should probably be documented.

Hez

 Best regards,

 Hǎiliàng


--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] Still on track for a February 1st release of 5.10.0

2014-01-21 Thread Arjen Markus
Hi Alan,

I am currently trying to reproduce the errors you documented via Cygwin, as 
that is
the most convenient platform available to me that comes close to Linux. And 
while this
has the benefit of unearthing the idiosyncracies of Cygwin that we need to deal 
with
it does also slow down my progress. Still, I have good hopes to at least weed 
out a
few more bugs before the release of 5.10.0.

Regards,

Arjen

 -Original Message-
 From: Alan W. Irwin [mailto:ir...@beluga.phys.uvic.ca]
 Sent: Tuesday, January 21, 2014 10:45 AM
 To: Arjen Markus; Andrew Ross
 Cc: PLplot development list
 Subject: Still on track for a February 1st release of 5.10.0

 My personal development goal for this release is to get a clean comprehensive 
 test
 of epa_build results both on Linux and MinGW/MSYS.
 So far (aside from the known propagation issues with OCaml) the results of a
 somewhat limited version of the test have looked good on PLplot. However, on
 MinGW/MSYS this comprehensive test fails at run time with a return code of 3 
 for the
 installed Ada examples. I encountered this same test failure before when I 
 hand-
 tested 5.9.11 on MinGW/MSYS, and it is good to know the recently updated 
 (revision
 12946) comprehensive test script finds the problem as well.

 Ada example builds are quite complex with many different directory locations 
 pointed
 to by various flags.  My plan for tomorrow is to do such a build by hand 
 using the
 build-tree locations for everything.
 And assuming that works (like it does for actual build-tree tests for
 MinGW/MSYS) gradually change over all locations to the install-tree 
 counterparts
 until I run into the build issue that is causing the return code of 3 at run 
 time.

 If the MSYS version of strace worked, that would likely be an even quicker 
 way to
 solve this issue. But currently I have not been able to get it to work so I 
 have a query
 into the MinGW mailing list about that issue.

 So that is the status of what I am working on currently. I also encourage 
 both Arjen
 and Andrew (who have both told me they plan some bug fixing between now and 
 the
 5.10.0 release) to give progress reports and updated plans from time to time 
 here so
 I don't get surprised by anything they do.

 Alan
 __
 Alan W. Irwin

 Astronomical research affiliation with Department of Physics and Astronomy,
 University of Victoria (astrowww.phys.uvic.ca).

 Programming affiliations with the FreeEOS equation-of-state implementation for
 stellar interiors (freeeos.sf.net); the Time Ephemerides project 
 (timeephem.sf.net);
 PLplot scientific plotting software package (plplot.sf.net); the libLASi 
 project
 (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the 
 Linux Brochure
 Project (lbproject.sf.net).
 __

 Linux-powered Science
 __

DISCLAIMER: This message is intended exclusively for the addressee(s) and may 
contain confidential and privileged information. If you are not the intended 
recipient please notify the sender immediately and destroy this message. 
Unauthorized use, disclosure or copying of this message is strictly prohibited. 
The foundation 'Stichting Deltares', which has its seat at Delft, The 
Netherlands, Commercial Registration Number 41146461, is not liable in any way 
whatsoever for consequences and/or damages resulting from the improper, 
incomplete and untimely dispatch, receipt and/or content of this e-mail.

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] New binding of Go programming language

2014-01-21 Thread Alan W. Irwin
On 2014-01-21 21:21+0800 Hailiang Wang wrote:

 Hello everyone,

 I have made a Go (http://golang.org) binding for PLPlot, and put it
 under my github repo:

 https://github.com/hailiang/go-plplot

 Wrappers to C functions are complete, and I plan to make a declarative
 layer around it gradually.

Hi Hailiang:

Inspired by Hez's positive reaction, I read
http://talks.golang.org/2012/splash.article, and indeed Go seems a
really cool and interesting language.

Just out of curiosity, how are you creating the Go bindings for
Plplot?  Do you use swig (currently used to generate our Python, Java,
Lua, and Octave bindings) or something else?

Alan
__
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__

Linux-powered Science
__

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] New binding of Go programming language

2014-01-21 Thread Hailiang Wang
Hi Alan and Hez,

Yes, I used to use C++ and Python but now Go has become my primary language.

The binding is automatically generated from C header and is not
targeted to a specific version of PLPlot. I'm not quite satisfied with
the code that SWIG generated for Go, so I write a wrapper generator
called cwrap (https://github.com/hailiang/cwrap), it uses gccxml to
parse C header and generate Go wrappers.

By the way, before cwrap is made, I have tried another way, parsing
the PLPlot docbook XML document and generate the wrapper. The pro of
the method is that XML is a lot easier to parse than C header, and
also in the document, the parameters are already marked as IN or
OUT, sometimes more accurate than guessing by const modifier. The
con is that the doc may not be fully synchronized with the header
file.

Hǎiliàng

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] New binding of Go programming language

2014-01-21 Thread Alan W. Irwin
On 2014-01-22 08:55+0800 Hailiang Wang wrote:

 By the way, before cwrap is made, I have tried another way, parsing
 the PLPlot docbook XML document and generate the wrapper. The pro of
 the method is that XML is a lot easier to parse than C header, and
 also in the document, the parameters are already marked as IN or
 OUT, sometimes more accurate than guessing by const modifier. The
 con is that the doc may not be fully synchronized with the header
 file.

Hi Hailiang:

Yes, api.xml is currently maintained by hand so it is a substantial
concern whether it is consistent with the header.  But you have given
me an idea which would be to use gccxml to convert the header
information into XML, then check api.xml to make sure it is consistent
with that gccxml-generated information (i.e., check for a consistent
list of functions and a consistent list of arguments and their type
for each of those functions).  Once such a checking implementation
were implemented, it should also be possible to extend it slightly to
update the relevant subset of api.xml information to be consistent
with the header information.

I have too much on my plate already to implement this idea in the
forseeable future so I would welcome someone else here stepping
forward and implementing it instead.

Alan
__
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__

Linux-powered Science
__

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel


Re: [Plplot-devel] New binding of Go programming language

2014-01-21 Thread Hailiang Wang
It takes not much effort to build a comparison program because the
parser for api.xml is ready-made.

I put the tool under my github reop here

https://github.com/hailiang/go-plplot/tree/master/c/check

Hǎiliàng

P.S.
Here is the result of the comparison, the type information in api.xml
is not easy to parse by a program, so only name of the parameters are
compared.

c_plbtime is not documented.
c_plconfigtime is not documented.
c_plctime is not documented.
c_plgcmap1_range is not documented.
c_plgdrawmode is not documented.
c_plgriddata is not documented.
c_plot3dcl is not documented.
c_plscmap1_range is not documented.
c_plsdrawmode is not documented.
c_plsurf3dl is not documented.
c_plwid is not documented.
number 0 parameter name mismatch for function pladv ( sub page )
number 3 parameter name mismatch for function plbox3 ( nxsub nsubx )
number 7 parameter name mismatch for function plbox3 ( nysub nsuby )
number 11 parameter name mismatch for function plbox3 ( nzsub nsubz )
number 0 parameter name mismatch for function plcol0 ( color icol0 )
number 17 parameter name mismatch for function plcolorbar ( labels label )
number 0 parameter name mismatch for function plcont ( z f )
number 0 parameter name mismatch for function plfont ( font ifont )
number 0 parameter name mismatch for function plfontld ( set fnt )
number 0 parameter name mismatch for function plgfam ( fam p_fam )
number 1 parameter name mismatch for function plgfam ( num p_num )
number 2 parameter name mismatch for function plgfam ( bmax p_bmax )
number 0 parameter name mismatch for function plgfci ( fci pfci )
number 0 parameter name mismatch for function plgpage ( xp p_xp )
number 1 parameter name mismatch for function plgpage ( yp p_yp )
number 2 parameter name mismatch for function plgpage ( xleng p_xleng )
number 3 parameter name mismatch for function plgpage ( yleng p_yleng )
number 4 parameter name mismatch for function plgpage ( xoff p_xoff )
number 5 parameter name mismatch for function plgpage ( yoff p_yoff )
plggriddata does not exist but remains in doc.
number 0 parameter name mismatch for function plgstrm ( strm p_strm )
number 0 parameter name mismatch for function plgxax ( digmax p_digmax )
number 1 parameter name mismatch for function plgxax ( digits p_digits )
number 0 parameter name mismatch for function plgyax ( digmax p_digmax )
number 1 parameter name mismatch for function plgyax ( digits p_digits )
number 0 parameter name mismatch for function plgzax ( digmax p_digmax )
number 1 parameter name mismatch for function plgzax ( digits p_digits )
number 0 parameter name mismatch for function pllsty ( n lin )
parameter count mismatch for function plot3dc

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments  Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431iu=/4140/ostg.clktrk
___
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel