[e-lang] JOSS PBC works between rune instances, not between local VATs?

Martin Scheffler martinscheffler at googlemail.com
Tue Jan 30 10:08:38 CST 2007


Hi,

I have some Java geometry classes: Quaternion, Vector3D. These classes
implement JOSSPassByConstruction. I pass objects of these classes
happily between my client and server, and they arrive as :near.
Now I tried to create a Vat with makeVat. When I pass a vector to that
vat, it arrives as a proxy!

BTW: My server and clients do connection setup just like
persist-echat, there it works perfectly.

Thanks,
Martin

Testcase:

#------------------------------- test.e -----------------------------

pragma.syntax("0.9")

def scriptSource:=" def tester(josstest) :void {
println(`Other Vat: Is Pass by Copy: ${Ref.isPassByCopy(josstest)}`)
println(`Other Vat: Is Pass by Construction: ${Ref.isPBC(josstest)}`)
} "

def makeVat := <unsafe:org.erights.e.elib.vat.makeVat>
def seedVat := <elang:interp.seedVatAuthor>(<unsafe>)

def vat := makeVat.make("headless", "testvat")
def	scriptObj:= seedVat(vat, scriptSource)

def josstest:=<import:de.flowdev.emonkey.maketestJOSSPBC>()

println(`This Vat: Is Pass by Copy: ${Ref.isPassByCopy(josstest)}`)
println(`This Vat: Is Pass by Construction: ${Ref.isPBC(josstest)}`)

def vec:=scriptObj<-run(josstest)

#Output:
#This Vat: Is Pass by Copy: false
#This Vat: Is Pass by Construction: true
#Other Vat: Is Pass by Copy: false
#Other Vat: Is Pass by Construction: false


#------------------------- testJOSSPBC.safej ------------------------
class(
	safe,
	"de.flowdev.emonkey.testJOSSPBC",
     statics(
      	method("run()")
     ),
     methods(
     )
)

#-------------------------- testJOSSPBC.java -----------------------
package de.flowdev.emonkey;

import java.io.Serializable;
import org.erights.e.elib.serial.JOSSPassByConstruction;

public class testJOSSPBC implements Serializable, JOSSPassByConstruction {
	private static final long serialVersionUID = 232067208534L;
	public testJOSSPBC() {
		//nothing
	}
}


More information about the e-lang mailing list