Pick programming in ALL common languages!!!

15 views
Skip to first unread message

Steve Bush

unread,
Jun 12, 2011, 10:07:41 AM6/12/11
to Exodus Users
I managed to fully bind Exodus into PHP, Python, Perl and Java! C#
should be done today.

It is fucking amazing typing typing "Pick Basic" interactively into a
python command prompt. I can hardly program for excitement.

That makes 3 out of 4 of the top scripting languages and both of the
top commercial application compilers. If I manage to bind Exodus into
server-side javascript (eg node.js) it will be a clean sweep! Bindings
into other languages like Tcl, Go, and Lua are easy if needed.

Shocked? I am!

This eliminates a C++ compiler as a dependency for using Exodus. I
still intend to port our apps to C++ but Exodus modules for all other
languages will allow anybody to get into Exodus. The only remaining
dependency then is Postgres for the datastore. Maybe someone can port
mvdbpostgres.cpp and pgexodus.c to mysql.

The "other language" interface needs some tinkering with to make it
more programmer friendly but it will probably only take days to finish
that.

I havent got the modules in installable packages yet but they can be
built, installed and tested from the subversion repository with a
single command build.sh - at least on ubuntu 10.04 after sudo apt-get
install php5-dev php5-cli swig default-jdk.

I am doing my best to setup yum and apt repository to make it totally
transparent to acquire these Exodus bindings without any messing
around with building.

Ashley Chapman

unread,
Jun 12, 2011, 12:21:22 PM6/12/11
to exodus...@googlegroups.com
> --


Wah-hoot! Now that's a great use of a horridly rainy day. I'm really
looking forward to getting some free time to try it out. Alas today,
I was tuning a slow MSSQL server. Horrid thing.

Diccon tesson

unread,
Jun 12, 2011, 3:58:07 PM6/12/11
to exodus...@googlegroups.com
Flipping fantastic Steve!
All I did today is put up 8 6 foot poles for a chicken shed in the rain! lol

I'll have a look at mvdbpostgres.cpp and pgexodus.c and see if I can get on a port to MySQL. Though that said I really don't mind Postgres as a dependency. Plenty of apps and systems solely use Postgres anyway. 

Congrats!!
--
Diccon


--
You received this message because you are subscribed to the Google Groups "Exodus Users" group.
To post to this group, send email to exodus...@googlegroups.com.
To unsubscribe from this group, send email to exodus-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/exodus-users?hl=en.


Norman Bauer

unread,
Jun 13, 2011, 8:04:09 AM6/13/11
to exodus...@googlegroups.com
This will bring in the widest target developers possible. This is awesome! 

Steve Bush

unread,
Jun 13, 2011, 8:07:04 AM6/13/11
to exodus...@googlegroups.com
haha well we all know you have perfect pitch!

On Sun, Jun 12, 2011 at 8:21 PM, Ashley Chapman <ash.c...@gmail.com> wrote:

Steve Bush

unread,
Jun 13, 2011, 8:47:44 AM6/13/11
to exodus...@googlegroups.com
life down on the farm hey??

I dont think it is worth providing mysql at the moment either but getting direct access to the data instead of going over tcp/ip may be required to get high performance.

mvdbpostgres is at http://code.google.com/p/exodusdb/source/browse/trunk/exodus/exodus/exodus/mvdbpostgres.cpp

There is all the read/write/delete stuff which is fairly straight forward postgres c interface - close to boilerplate

Here is a writing a record for example:

http://code.google.com/p/exodusdb/source/browse/trunk/exodus/exodus/exodus/mvdbpostgres.cpp#922

Maybe a quarter of the file is related to converting a pick sort/select statement into a postgres sql select statement. A major part of that process is reading a classic pick dictionary file and defining on the fly all sql columns as functions that extract the required text/numbers/date/time from the data record blob.

pgexodus is the plugin that runs inside postgres to do the extraction.

http://code.google.com/p/exodusdb/source/browse/trunk/exodus/pgexodus/src/pgexodus.c

Here is extracting a date for example:

http://code.google.com/p/exodusdb/source/browse/trunk/exodus/pgexodus/src/pgexodus.c#549

Steve Bush

unread,
Jun 13, 2011, 8:51:45 AM6/13/11
to exodus...@googlegroups.com
It is indeed, and it is all thanks to SWIG. I think Exodus will end up changing what is left of the multi-value world.
Reply all
Reply to author
Forward
0 new messages