Coder Social home page Coder Social logo

pal's People

Contributors

hackmd-deploy avatar scott-cotton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

pal's Issues

Roadmap

  • #34
    - [x] analyzer framework stub
    - [ ] service
  • #35
    - [x] constraints (load, store, transfer)
    - [x] plain serialize
    - [ ] solve
    - [ ] solve with opaque bindings
    - [ ] export
    - [ ] import
  • #36
    - [ ] integrate types
    - [ ] dev.typeparams version
  • #37
    - [ ] to go types
    - [x ] from go types
    - [x ] serialize
  • #40
    - [x] creation
    - [ ] function call
    - [x] map update, lookup
    - [x] slice indexing
  • #38
    - [x] loads
    - [x] stores
    - [x] map values to memory locations
    - [x] map values to objects
    - [ ] indexing arithmetic operations
    - [x] structs
    - [x] arrays
    - [ ] slices
    - [x] returns
    - [x] phi nodes
    - [x] function objects
    - [ ] function variadics
    - [ ] builtins
    - [x] range/next iterations.
  • #39
    - [x] statement of purpose
    - [ ] design
    - [ ] cli
    - [ ] service
    - [ ] tutorial
    - [ ] reference

memory model

  • constraints (load, store, transfer)
  • plain serialize
  • integrate types. memory model currently uses go/types and should use typeset instead.
  • solve
  • solve with opaque bindings
  • export
  • import

function call

Function calls

  • static dispatch of user code
  • static dispatch builtins
  • dispatch of *ssa.MakeClosure
  • dynamic dispatch
  • method calls by interface (invoke)

ssa2pal

  • stores
  • map values to memory locations
  • map values to objects
  • indexing arithmetic operations
  • structs
  • arrays
  • slices
  • loads
  • returns
  • phi nodes
  • function objects
  • function variadics
  • builtins
  • range/next

docs

  • statement of purpose
  • design
    • cli
    • service
  • tutorial
  • reference

cli-

  • analyzer framework stub
  • service

Tracking issue for https://github.com/golang/go/issues/47725

golang/go#47725 highlights some problems with the serialisation and filtering mechanism of Facts in go's analysis library.

This issue is here to track how pal interacts with it.

At this time, pal has only been tested as a single/multi checker, and we have tried to work around the whole fact mechanism as it does not seem to fit pal's needs.

indexing

  • dev.typeparams version.
  • integrate types.
  • constants (integrate go/constant).
  • plain serialise.

naive solver

Implement a naive solver for which we have a good level of confidence in correctness. This will be a baseline.

Generate a first basic memory model from ssa

Make a pass over go/ssa form, extract all heap allocations (including things such as varargs), model and index them with mems.

(This was perhaps underestimated in effort, typical of a first prototype...)

I think it will be worthwhile to reduce the scope and make things more explicit.

  • globals
  • locals
  • stores
  • field address
  • #14
  • #15

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.