Giter Site home page Giter Site logo

sparkleffi's Introduction

SparkleFFI

GemStone GCI access via Pharo FFI

Prerequisites

Installation instructions assume that you have registered SSH Keys with your GitHub account. See Connecting to GitHub with SSH for more information.

You must have git installed: git setup

You must have access to the GemStone client libraries for 3.6.1 or 3.7.0 for the client platform you're running on . The build step [slow|fast]clientlibs generates a zip file containing these libraries in the correct directory structure.

Installation

If you are installing Sparkle, it will automatically install SparkleFFI, and there is no need to perform an manual install of SparkleFFI. See Sparkle on github; the Installation Guide is under Documentation.

Client Library Installation

Choose a location for the client library files and copy the client library zip file to that location. ClientLibs for Alpha1 are available here: https://downloads.gemtalksystems.com/pub/GemStone64/3.7.0-Alpha1/GemStoneClientLibs3.7.0-x86.Windows_NT.zip https://downloads.gemtalksystems.com/pub/GemStone64/3.7.0-Alpha1/GemStoneClientLibs3.7.0-x86_64.Linux.zip

unzip the zip file into a directory named clientLibs.

The examples below show installing on Windows under cygwin, but the process is similar for Linux.

$ mkdir clientlibs
$ cd clientlibs
$ cp installdir/GemStoneClientLibs3.7.0-x86.Windows_NT.zip .
$ unzip GemStoneClientLibs3.7.0-x86.Windows_NT.zip
Archive:  GemStoneClientLibs3.7.0-x86.Windows_NT.zip
   creating: 3.7.0/
   creating: 3.7.0/32bit/
  inflating: 3.7.0/32bit/libgcirpc-3.7.0-32.dll
  inflating: 3.7.0/32bit/libgcirpc-3.7.0-32.pdb
  inflating: 3.7.0/32bit/libgcits-3.7.0-32.dll
  inflating: 3.7.0/32bit/libgcits-3.7.0-32.pdb
  inflating: 3.7.0/32bit/libssl-3.7.0-32.dll
  inflating: 3.7.0/32bit/libssl-3.7.0-32.pdb
  inflating: 3.7.0/32bit/vcruntime140d.dll
   creating: 3.7.0/64bit/
  inflating: 3.7.0/64bit/libgcirpc-3.7.0-64.dll
  inflating: 3.7.0/64bit/libgcirpc-3.7.0-64.pdb
  inflating: 3.7.0/64bit/libgcits-3.7.0-64.dll
  inflating: 3.7.0/64bit/libgcits-3.7.0-64.pdb
  inflating: 3.7.0/64bit/libssl-3.7.0-64.dll
  inflating: 3.7.0/64bit/libssl-3.7.0-64.pdb
  inflating: 3.7.0/64bit/vcruntime140d.dll
  inflating: 3.7.0/64bit/vcruntime140_1d.dll

The installdir/clientLibs directory is your client libs directory. Remember this location, you will need it later. On Windows, this must be a path in Windows format, NOT cygwin format.

Note: slow client libs will not function properly on Windows unless you have the debug versions of the vcruntime dlls that come with MS VisualStudio 2019. Therefore it is better to use fast builds on Windows.

Sparkle FFI Smaltalk code Installation

If you don't already have one, choose a standard location on disk where you will locate your GitHub project clones. Clone the sparkleffi repository:

cd <GitHub clones directory>
git clone [email protected]:GemTalk/sparkleffi.git

If you have already performed the clone, do a "git pull origin development" before running the install (if you will install the current developement branch).

  • Start a Pharo 9 image and open Iceberg.
  • In the Repositories window, click "+" and select "Import from existing clone".
  • Select the directory you cloned to above and add the repository.
  • Right click and select "Load" to load the code.
  • Open a Pharo playground and execute this code to tell the FFI where to find the client libraries using the directory you saved from above:
GciInterface libraryDirectory: 'installDir\clientlibs'
  • Save the image.

That's it, you're done!

There are examples in classmethods in GsSession that demonstrate how to login and logout of GemStone and execute strings. To do that you will need a running GemStone server that you can log into.

sparkleffi's People

Contributors

nrgiii avatar akgrant43 avatar dalehenrich avatar chisandrei avatar martinmcclure avatar lisaalmarode avatar j-brant avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.