GithubHelp home page GithubHelp logo

generics's People

Contributors

adamo57 avatar heppu avatar merovius avatar mrxinu avatar stabbycutyou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

generics's Issues

CI for this project?

Hi, just wondering if you have any plans on adding CI to this. Here are a couple of popular options:

http://circleci.com/
https://travis-ci.org/

I think this will really help future contributors and is a great way to demonstrate to the open source community that -- despite the complexity of this package -- the testing story is well looked after.

Thank you.

Rewrite in Rust

For the good of the Internet, and in fact humanity, we need to migrate our software from Go to Rust (or something better) as quickly as possible. Here are some steps we need to take:

  • Use Rust. Using Rust instead of Go makes code safer. Using Rust instead of any other language grows the Rust community, making it easier for other people to use Rust.
  • Rewrite code in Rust. Starting with our most critical infrastructure, rewrite Go code to use Rust instead.
  • Extend Rust's guarantees. We can extend the classes of bugs that Rust prevents. For example, we should try to make Rust release builds check for integer overflow by default.
  • Verify "unsafe" Rust code. Sometimes the Rust type system is not strong enough to let you prove to the compiler that your code is safe, so you have to mark code blocks "unsafe". With tool support, you could instead generate a mathematical proof that your code is safe, checked by the compiler.

Ensure compatibility on a range of hardwares

In order to ensure that package generics can be used by golang gophers building on hardware other than the normal machines, I need to ensure that the tests run on a number of hardware and os types, in addition for as many versions of go as possible.

To that end, I'd like to solicit feedback from the Gommunity on how best to accomplish this in an affordable and effective manner.

G or interface{} is good?

Dear,
Good catch. I think that
G is interface{} and looks like object (Java, c#) or variant of vb.

Dynamic o manually type checking is inevitable for now, i.e.

Not work was spected...

func Add(a G, b G) G {
return a + b;
}
....
var ab := Add( 1, "test" )
...
Compiling ok, run fail without type check...

maybe you need to have a generic {} similar to interface {} but with type checking at compile time.

Long Term Goal: Translate docs into multiple languages

To best support the Gommunity of golang gophers using package generics, I need to provide documentation in multiple languages.

To that end, I'd like to solicit feedback on how best to provide an i18n integration with my documentation. Ideas may include something that automatically translates the documents from a source english file, or individuals who agree to be the maintainers of a given language or set of languages.

Ideally, a single source of truth where other languages are generated from would be best, but machine translations can lack subtlety and nuance, and so I'd like to gather opinions on the matter before moving forward.

Please use semver releases

With all the vendoring issues behind us, it's time for serious packages to get serious about the releases.

I think it's safe to say that G could start of with a v1.0.0 release. We've been using it in production for many weeks, after we've thoroughly tested it with data from several weeks worth of Fuzzy corpuses.

G or interface{} is good?

Dear,
Good catch. I think that
G is interface{} and looks like object (Java, c#) or variant of vb.

Dynamic o manually type checking is inevitable for now, i.e.

Not work was spected...

func Add(a G, b G) G {
return a + b
}
....
var ab := Add( 1, "test" )
...
Compiling ok, run fail without type check...

maybe you need to have a generic {} similar to interface {} but with type checking at compile time.

Update for Go 1.8

I'm sure there's something that happened with unsafe and garbage collection that completely break everything in this project. You must root out the evils to stay compliant.

Examples for generics

Would it be possible to get some practical examples on how to use this package (preferably in the godoc)? This will ensure consistent use of G and help newcomers like me use generics properly.

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.