Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Gutemberg Ribeiro
    @galvesribeiro
    yup
    Brendan Burns
    @brendandburns
    But the common core that is shared is as big as possible
    Gutemberg Ribeiro
    @galvesribeiro
    I need to understand how the compiler works
    Brendan Burns
    @brendandburns
    But generally I think experiment, play and suggest are the watchwords for the project.
    Gutemberg Ribeiro
    @galvesribeiro
    oh! it is Go
    :)
    Brendan Burns
    @brendandburns
    I have a vague sense of where it needs to go but it's going to take a lot of different opinions and experiments to get there.
    Yes metaparticle-ast is in go
    Vallery Lancey
    @vllry
    :+1:
    Brendan Burns
    @brendandburns
    It's actually designed to be a swagger API
    So you could run it as a server
    Gutemberg Ribeiro
    @galvesribeiro
    ok, so the bindings talk to it thru HTTP
    got it
    Brendan Burns
    @brendandburns
    So the compiler could live off machine...
    Vallery Lancey
    @vllry
    The idea is to avoid duplicating anything unnecessary in language libraries
    Gutemberg Ribeiro
    @galvesribeiro
    yeah I got it
    but, what the compiler actually does? what is it compiling? I didn't saw it by the pages published (sorry for the dumb question)
    Brendan Burns
    @brendandburns
    It's "compiling" in quotes
    Basically the language binding outputs a high level json
    The abstract syntax tree (ast)
    And the "compiler" generates a bunch of kubernetes objects from that json and deploys them
    Gutemberg Ribeiro
    @galvesribeiro
    hummm
    so lets assume the following example:
    in the C# project, you use some attributes at the main(). Those attributes describe the Docker image name, the replicas, etc. The compiler essentially read those metadata, generate the k8s objects from that JSON metadata, and call kubectl -f ...., correct?
    Brendan Burns
    @brendandburns
    yeah, more or less
    Gutemberg Ribeiro
    @galvesribeiro
    oh wait
    Brendan Burns
    @brendandburns
    basically when you run the main()
    it generates a JSON
    Gutemberg Ribeiro
    @galvesribeiro
    humm
    Brendan Burns
    @brendandburns
    then calls the compiler on that JSON
    which generates kubernetes objects
    and then calls kubectl create -f on those objects
    Gutemberg Ribeiro
    @galvesribeiro
    ok
    I wonder how it would work with a debugger
    Brendan Burns
    @brendandburns
    MetaparticleExecutor.cs is the code in question
    Gutemberg Ribeiro
    @galvesribeiro
    like visual studio for example
    Brendan Burns
    @brendandburns
    yeah, it won't really right now
    because it's all async
    but you could imagine using an annotation (or introspection) to detect "debug" and turning up a distributed debugger
    Gutemberg Ribeiro
    @galvesribeiro
    yes
    Brendan Burns
    @brendandburns
    we've done integration with VS Code and containers in Kubernetes for live debugging
    Gutemberg Ribeiro
    @galvesribeiro
    oh! that is cool
    Brendan Burns
    @brendandburns
    though honestly, I've found that live debugging is of limited use in real-world cloud settings
    Gutemberg Ribeiro
    @galvesribeiro
    if it works on VSCode, it should on VS
    well, debug on minikube localy is all the dev wants
    Brendan Burns
    @brendandburns
    yeah, definitely an area where it would be cool to prototype something
    Gutemberg Ribeiro
    @galvesribeiro
    we just need to overrride the ENTRYPOINT to run vsdbg and a cat << /dev/null or something like that
    Brendan Burns
    @brendandburns
    Have you seen:
    Gutemberg Ribeiro
    @galvesribeiro
    yes, I did