Where communities thrive

  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
Repo info
    Steffen Forkmann
    hi, fsprojects/Paket#837 is now implemented. I hope it works for you.
    there is now a CURRENTVERSION placeholder that can be used. see http://fsprojects.github.io/Paket/template-files.html#Dependencies
    Lincoln Atkinson
    anyone active in this room?
    Eirik Tsarpalis
    Ryan Davis
    Hi @eiriktsarpalis, thanks for your work on FsPicker and vagabond! I am coming up to speed with f# and trying to use the above to enable a remote execution-style capability similar to your ThunkServer example, but with support for functions returning arbitrary types
    I would like to be able to have:
    • given a unit -> 't
    • serialize w/ vagabond + fs pickler
    • transmit to remote
    • deserialize as unit -> obj
    • execute and get result
    • serialize and return to sender
    • sender casts result back to 't
    all this works if we do not allow for a generic result (e.g. if we settle on unit -> string) but when using 't, of course, unit -> 't is not the same as unit -> obj. I have tried wrapping the original unit-'t in a function that boxes it (so that locally, it is inferred to be unit->obj), but on the other end, fspickler seems to 'know' it was actually unit->[concrete type of 't] and refuses to deserialize as unit->obj
    Ryan Davis
    I guess it may be due to cleverness of fspickler, or my general lack of understanding of f# boxing, etc., any ideas? I have the opportunity to wrap the function before sending it, or send additional information over, such as the type to be deserialized
    Ryan Davis
    uh, actually I went back to your ThunkServer example and see it was unit->obj after all.. time to do some more reading :clap:
    Eirik Tsarpalis
    @rdavisau The thunkserver example takes a generic unit -> 'T which it wraps in a unit -> obj before serializing, then downcasts the returned result back to 'T once received.
    Ryan Davis
    Yes, thanks - I sorted it out :star2:
    Originally when I looked at it I was brand new to f#, struggled to understand it but coming back it's quite clear. My issue was that I was sending a kind of LoadAndExecute of byte[] * byte[]message where first of the tuple was dependencies, and second was the pickled unit -> whatever. When I split it so that I could send an Execute of unit -> obj message after loading the dependencies, everything worked as expected. great stuff!
    Bartosz Sypytkowski
    could somebody help me resolve problem described in #67
    Ivo Grootjes
    Hi @eiriktsarpalis, I was wondering if libraries like fspickler and fsharp.quotations.evaluator could target a lower version of FSharp.Core.
    I'm seeing a lot of package downgrade warnings in the akka.net build and I was wondering if those should be solved in the packages which akka.net uses.
    e.g. [08:45:43][Build] D:\work\d26c9d7f36545acd\src\core\Akka.FSharp.Tests\Akka.FSharp.Tests.fsproj : warning NU1605: Detected package downgrade: FSharp.Core from 4.3.2 to 4.2.0. Reference the package directly from the project to select a different version.
    [08:45:43][Build] D:\work\d26c9d7f36545acd\src\core\Akka.FSharp.Tests\Akka.FSharp.Tests.fsproj : warning NU1605: Akka.FSharp.Tests (>= 1.3.7) -> Akka.FSharp (>= 1.3.7) -> FsPickler (>= 5.2.0) -> FSharp.Core (>= 4.3.2)
    [08:45:43][Build] D:\work\d26c9d7f36545acd\src\core\Akka.FSharp.Tests\Akka.FSharp.Tests.fsproj : warning NU1605: Akka.FSharp.Tests (>= 1.3.7) -> FSharp.Core (>= 4.2.3)