Code Monkey home page Code Monkey logo

tffi-dev's Introduction

tffi-dev

tffi-dev contains the extensions to core Pharo to get Iceberg / LibGit working with Threaded FFI.

The code relies on a modified version of libPThreadedPlugin.so with a single callbackStack.

While the code can be loaded, it will not function until the modified library is present.

Build a base Threaded FFI enabled Pharo 8 Image

Ensure you have the current headless VM:

curl get.pharo.org/64/80+vmHeadlessLatest | bash

Replace libPThreadedPlugin.so with the single callbackStack version - available on request. :-)

Copy the following in to a script, e.g. tffi.st:

"Load Threaded FFI and the extensions for LibGit"
EpMonitor disableDuring:
[ 
Metacello new
	baseline: 'GtThreadedFFIDev';
	repository: 'github://feenkcom/tffi-dev/src';
	load.
].

"Alien callbacks and Threaded FFI callbacks may not be used in the same session.
The following message send must be the last thing executed before saving the image and quitting."
ThreadedFFIMigration enableThreadedFFI.

Run the script with the following:

pharo Pharo.image ../tffi.st --save --quit

Using Gtoolkit with Threaded FFI

As of 13 December 2019 Gtoolkit loads Threaded FFI automatically, so the equivalent script may be used

Ensure you have the current headless VM:

curl get.pharo.org/64/80+vmHeadlessLatest | bash

Replace libPThreadedPlugin.so with the single callbackStack version - available on request. :-)

EpMonitor disableDuring:
[ 
  Metacello new
    baseline: 'GToolkit';
    repository: 'github://feenkcom/gtoolkit/src';
    load.

].

"Alien callbacks and Threaded FFI callbacks may not be used in the same session.
The following message send must be the last thing executed before saving the image and quitting."
ThreadedFFIMigration enableThreadedFFI.

Running Gtoolkit with native windows

To then run Pharo with Bloc graphics:

./pharo Pharo.image eval --interactive --no-quit "GtWorld open."

Running Gtoolkit with the old morphic interface

To run Pharo with the old Morphic world:

  1. Disable the suppression of the old morphic windowing system:

Start pharo using a standard VM (available with curl get.pharo.org/64/vm80 | bash).

BlNullWorldRenderer disable.

save the image.

  1. Start the image with the old morphic windowing system:
./pharo-ui Pharo.image

tffi-dev's People

Contributors

akgrant43 avatar akgrant avatar georgeganea avatar syrel avatar chisandrei avatar

Stargazers

Joel Boehland avatar Pavel avatar

Watchers

Tudor Girba avatar  avatar Juraj Kubelka avatar James Cloos avatar  avatar Ioana Verebi avatar  avatar  avatar  avatar John Brant 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.