Skip to content

Releases: pharo-ide/Seamless

Pharo10 compatibility

23 Dec 12:53
70efba8
Compare
Choose a tag to compare

This version provides integration with Pharo10 NewTools.
No compatibility with previous Pharo versions.

updated baseline to ReadWriteLock:v2.0.0 to compatibility with Pharo 7/8/9

02 Dec 12:08
8358ed9
Compare
Choose a tag to compare

updated baseline to ReadWriteLock:v2.0.0 to compatibility with Pharo 7/8/9

Better connection management and Pharo 9 compatibility

16 Sep 22:24
209576a
Compare
Choose a tag to compare

Version is based on updated BasysNetwork and TostSerializer.

  1. New Basys version provides better connection management and simplifies the implementation of specific networks:
  • SeamlessRemotePeer is introduced to avoid extension methods
  • Clever result deliver for requests.
    No connection with remote side (or broken by any reason) is handled with special logic:
    • remote side does not fail and does not hang when it needs to return a result to a sender (no connection - no result)
    • client side (a sender) fails as soon as no connection is detected. The result delivery strategy on client side periodically checks the connectivity state and fails when it's broken. No more an infinite waiting on the result semaphore. No connection means that nothing can be returned ever.
  1. New TostSerializer simplifies the creation of new transporters.
    Now SeamlessNetwork has a #transport variable with SeamlessTransport instance. The network simply asks the transport to send and receive requests using Tost API.

  2. Pharo 9 compatibility consists of two parts:

  • missing transfer logic for FullBlockClosure and CompiledBlock (requires Pharo fix pharo-project/pharo#7321)
    FullBlockClosure brings extra indirection in CompiledMethod structure. Now it can include multiple compiled codes for blocks. And it requires extra configuration how to transfer methods as a whole thing (by value) suitable for the remote execution.
  • missing transfer logic for variables.
    Variables were unified under Variable hierarchy and now they are used directly in AST. It requires explicit value transfer strategy for all of them. For compatibility with old images it is duplicated in LiteralVariable and Slot

Pharo 8 compatibility with playground and browser

21 May 11:33
6552593
Compare
Choose a tag to compare
v2.0.2

Merge pull request #41 from oliveiraallex/Fix-Pharo-8-Remote-Playgrou…

Timeout and announcers improvements

28 Apr 13:09
cc476b5
Compare
Choose a tag to compare
Merge pull request #40 from dionisiydk/simplifyRequestSend

Simplify request send logic

Pharo 8 compatibility and dependences update

08 Apr 23:51
Compare
Choose a tag to compare

And tests are back to green

Tonel migration

05 Jul 15:38
f8482ec
Compare
Choose a tag to compare
Remove Pharo 6 from CI

Pharo 6 requires special support to load Tonel separately. It will not be done

TostSerializer update

15 May 22:26
6a08b2e
Compare
Choose a tag to compare

TostSerializer is updated to fix Bitmap's transfer

Dependencies update

05 May 14:32
7a8a525
Compare
Choose a tag to compare
v0.9.18

Update ReadWriteLock

Transfer literal arrays as integral part of methods

27 Mar 23:01
d52913e
Compare
Choose a tag to compare

Force transfer by deep copy for array literals and simple value strategy for bytearray literals.
Literals are integral part of method, so they must be transferred as a whole thing.

Without this change following script produces an unexpected proxy on remote side:

remotePeer evaluate: [ #[1 2 3] isSeamlessProxy]. "==>true which is wrong"

With this change it will be a normal array on remote side inside transferred method instance