Releases: pharo-ide/Seamless
Pharo10 compatibility
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
updated baseline to ReadWriteLock:v2.0.0 to compatibility with Pharo 7/8/9
Better connection management and Pharo 9 compatibility
Version is based on updated BasysNetwork and TostSerializer.
- 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.
-
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. -
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
v2.0.2 Merge pull request #41 from oliveiraallex/Fix-Pharo-8-Remote-Playgrou…
Timeout and announcers improvements
Merge pull request #40 from dionisiydk/simplifyRequestSend Simplify request send logic
Pharo 8 compatibility and dependences update
And tests are back to green
Tonel migration
Remove Pharo 6 from CI Pharo 6 requires special support to load Tonel separately. It will not be done
TostSerializer update
TostSerializer is updated to fix Bitmap's transfer
Dependencies update
v0.9.18 Update ReadWriteLock
Transfer literal arrays as integral part of methods
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