[rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-02 Thread Fantix King
Hi,

Here is zmq.rs, a native implementation of ØMQ in the Rust programming
language in MPLv2. I've just got a very ugly prototype running till now,
and I'm expecting to hear more comments on anything.

https://github.com/zeromq/zmq.rs

For who wants to know more about ØMQ, it looks like an embeddable
networking library but acts like a concurrency framework. It gives you
sockets that carry atomic messages across various transports like
in-process, inter-process, TCP, and multicast. You can connect sockets
N-to-N with patterns like fan-out, pub-sub, task distribution, and
request-reply. (according to http://zguide.zeromq.org/page:all)

Back to the project, I did a few iterations and got what it is now, in the
hope that more discussion can be raised over some actual code to talk
about. zmq.rs currently has REQ and REP, can `send` and `recv` in ZMTP 2.0.
I also blogged a bit about the design here (more to come):

http://blog.segmentfault.com/fantix/119000593564

You are more than welcome to:
 * comment on the design
 * suggest different solution
 * complain about whatever you don't like
 * open issues on github
 * send me PRs and code reviews
 * join me developing and maintaining it
 * or even star it on github ;)


BR,
Fantix
--
http://about.me/fantix
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-02 Thread Corey Richardson
Complaining about something I don't like:

Due to the choice of MPLv2, this won't be usable in the wider Rust
ecosystem, which is MIT/ASL2 focused. In particular, section 3.2(a)
requires that any distribution in Executable Form carry a notice
about how to acquire the source code of zmq.rs. This is not
unworkable, but it is something we have avoided so far in the
community.

Otherwise, I look forward to reviewing this in more depth tomorrow. Nice work!

On Tue, Jul 1, 2014 at 11:38 PM, Fantix King fantix.k...@gmail.com wrote:
 Hi,

 Here is zmq.rs, a native implementation of ØMQ in the Rust programming
 language in MPLv2. I've just got a very ugly prototype running till now, and
 I'm expecting to hear more comments on anything.

 https://github.com/zeromq/zmq.rs

 For who wants to know more about ØMQ, it looks like an embeddable networking
 library but acts like a concurrency framework. It gives you sockets that
 carry atomic messages across various transports like in-process,
 inter-process, TCP, and multicast. You can connect sockets N-to-N with
 patterns like fan-out, pub-sub, task distribution, and request-reply.
 (according to http://zguide.zeromq.org/page:all)

 Back to the project, I did a few iterations and got what it is now, in the
 hope that more discussion can be raised over some actual code to talk about.
 zmq.rs currently has REQ and REP, can `send` and `recv` in ZMTP 2.0. I also
 blogged a bit about the design here (more to come):

 http://blog.segmentfault.com/fantix/119000593564

 You are more than welcome to:
  * comment on the design
  * suggest different solution
  * complain about whatever you don't like
  * open issues on github
  * send me PRs and code reviews
  * join me developing and maintaining it
  * or even star it on github ;)


 BR,
 Fantix
 --
 http://about.me/fantix

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
http://octayn.net/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-02 Thread Fantix King
Thank you, Corey!

Honestly I didn't dig deep about licensing. It was MIT which I think is the
most open one as BSD. Then http://zeromq.org/docs:organization suggested
MPLv2 - something between BSD and GPL just sounded also not bad for me,
so I didn't pay much attention changing to MPLv2. I wouldn't mind changing
back to MIT if that works better for the community :)

BR,
Fantix
--
http://about.me/fantix


On Wed, Jul 2, 2014 at 3:16 PM, Corey Richardson co...@octayn.net wrote:

 Complaining about something I don't like:

 Due to the choice of MPLv2, this won't be usable in the wider Rust
 ecosystem, which is MIT/ASL2 focused. In particular, section 3.2(a)
 requires that any distribution in Executable Form carry a notice
 about how to acquire the source code of zmq.rs. This is not
 unworkable, but it is something we have avoided so far in the
 community.

 Otherwise, I look forward to reviewing this in more depth tomorrow. Nice
 work!

 On Tue, Jul 1, 2014 at 11:38 PM, Fantix King fantix.k...@gmail.com
 wrote:
  Hi,
 
  Here is zmq.rs, a native implementation of ØMQ in the Rust programming
  language in MPLv2. I've just got a very ugly prototype running till now,
 and
  I'm expecting to hear more comments on anything.
 
  https://github.com/zeromq/zmq.rs
 
  For who wants to know more about ØMQ, it looks like an embeddable
 networking
  library but acts like a concurrency framework. It gives you sockets that
  carry atomic messages across various transports like in-process,
  inter-process, TCP, and multicast. You can connect sockets N-to-N with
  patterns like fan-out, pub-sub, task distribution, and request-reply.
  (according to http://zguide.zeromq.org/page:all)
 
  Back to the project, I did a few iterations and got what it is now, in
 the
  hope that more discussion can be raised over some actual code to talk
 about.
  zmq.rs currently has REQ and REP, can `send` and `recv` in ZMTP 2.0. I
 also
  blogged a bit about the design here (more to come):
 
  http://blog.segmentfault.com/fantix/119000593564
 
  You are more than welcome to:
   * comment on the design
   * suggest different solution
   * complain about whatever you don't like
   * open issues on github
   * send me PRs and code reviews
   * join me developing and maintaining it
   * or even star it on github ;)
 
 
  BR,
  Fantix
  --
  http://about.me/fantix
 
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev
 



 --
 http://octayn.net/

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Cargo multiple targets

2014-07-02 Thread Isak Andersson
Hello Rust folks!

I am using Cargo and I am trying to specify mulitple targets in my
Cargo.toml file.
First of all is this even possible?

The way I have set things up is that I have src/hmwhoami.rs which builds to
a binary,
and uses src/proof.rs and that builds totally fine.

My Cargo file looks like this:
[package]

name = hmproof
version = 0.1.0
authors = [ i...@houstonmedia.se ]

[[bin]]

name = hmwhoami

[dependencies.rust-http]

git = https://github.com/chris-morgan/rust-http.git;


Now what I also want to do is to build src/proof.rs as a library (that is
linkable with C programs
so they can call the extern fn's). My initial approach was this:

[package]

name = hmproof
version = 0.1.0
authors = [ i...@houstonmedia.se ]

[[bin]]

name = hmwhoami

[[lib]]

name = proof
(I also tried adding a path)
path = src/proof.rs

[dependencies.rust-http]

git = https://github.com/chris-morgan/rust-http.git;

I also tried putting the [[lib]] part after the dependencies part. The
error I get is this:
error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no such file
or directory (No such file or directory); path=src/bin/hmwhoami.rs;
mode=open; access=read)

Whiich doesn't make any sense at all to me. Why does it suddenly start
looking in src/bin?
Do I have to put my bin code in src/bin and my lib code in src lib or what?
That would probably break the hmwhoami executable because I'd have to make
the proof library an extern crate, at least I think I would have to do that.

Thanks!
Isak Andersson
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Cargo multiple targets

2014-07-02 Thread Sebastian Gesemann
On Wed, Jul 2, 2014 at 12:49 PM, Isak Andersson wrote:
 Hello Rust folks!

 I am using Cargo and I am trying to specify mulitple targets in my
 Cargo.toml file.
 First of all is this even possible?
 ...
 [package]
 name = hmproof
 version = 0.1.0
 authors = [ i...@houstonmedia.se ]
 [[bin]]
 name = hmwhoami
 [[lib]]
 name = proof
 (I also tried adding a path)
 path = src/proof.rs
 [dependencies.rust-http]
 git = https://github.com/chris-morgan/rust-http.git;

 I also tried putting the [[lib]] part after the dependencies part. The error
 I get is this:
 error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no such file
 or directory [...]
 Whiich doesn't make any sense at all to me. Why does it suddenly start
 looking in src/bin?

According to http://crates.io/manifest.html the default path for a
binary is src (if there is no other lib) and src/bin (if there is also
a lib target). You should be able to override this with path =
src/hmwhoami.

 Do I have to put my bin code in src/bin and my lib code in src lib or what?

Currently, only a single lib per package is supported and it seems,
judging by the document about the manifest format, that Cargo always
looks for src/lib.rs for a library unless you override this using a
path=something.

As for how to tell Cargo to invoke rustc with the appropriate -L
option: I don't know.

HTH,
sg
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Cargo multiple targets

2014-07-02 Thread Isak Andersson
Hi!

Thanks for the reply!

Apparently multiple targets does in fact work. Just that you can't rely on
the
default path anymore, so I had to add the path = ... to both the [[lib]]
and [[bin]].
Not sure if this is a bug or not.

However the library compiles as an rlib and I'm not sure how to change it
to build
a C library instead (a .a or .so on *nix or .lib I think on windows).

Actually I'm not even sure how to make rustc build a C library so I guess
that's what
I will start looking at.


On Wed, Jul 2, 2014 at 1:37 PM, Sebastian Gesemann s.gesem...@gmail.com
wrote:

 On Wed, Jul 2, 2014 at 12:49 PM, Isak Andersson wrote:
  Hello Rust folks!
 
  I am using Cargo and I am trying to specify mulitple targets in my
  Cargo.toml file.
  First of all is this even possible?
  ...
  [package]
  name = hmproof
  version = 0.1.0
  authors = [ i...@houstonmedia.se ]
  [[bin]]
  name = hmwhoami
  [[lib]]
  name = proof
  (I also tried adding a path)
  path = src/proof.rs
  [dependencies.rust-http]
  git = https://github.com/chris-morgan/rust-http.git;
 
  I also tried putting the [[lib]] part after the dependencies part. The
 error
  I get is this:
  error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no such
 file
  or directory [...]
  Whiich doesn't make any sense at all to me. Why does it suddenly start
  looking in src/bin?

 According to http://crates.io/manifest.html the default path for a
 binary is src (if there is no other lib) and src/bin (if there is also
 a lib target). You should be able to override this with path =
 src/hmwhoami.

  Do I have to put my bin code in src/bin and my lib code in src lib or
 what?

 Currently, only a single lib per package is supported and it seems,
 judging by the document about the manifest format, that Cargo always
 looks for src/lib.rs for a library unless you override this using a
 path=something.

 As for how to tell Cargo to invoke rustc with the appropriate -L
 option: I don't know.

 HTH,
 sg
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Cargo multiple targets

2014-07-02 Thread Vladimir Matveev
Hi, Isak!

According to manifest documentation [1] you can specify crate type (dynamic or 
static lib or rlib) using crate_type option:

[[lib]]
…
crate_type = [dylib, staticlib]

The above configuration should build you both .a and .so files.

[1]: http://crates.io/manifest.html, search for crate_type w/o quotes

On 02 июля 2014 г., at 15:58, Isak Andersson cont...@bitpuffin.com wrote:

 Hi!
 
 Thanks for the reply!
 
 Apparently multiple targets does in fact work. Just that you can't rely on the
 default path anymore, so I had to add the path = ... to both the [[lib]] and 
 [[bin]].
 Not sure if this is a bug or not.
 
 However the library compiles as an rlib and I'm not sure how to change it to 
 build
 a C library instead (a .a or .so on *nix or .lib I think on windows).
 
 Actually I'm not even sure how to make rustc build a C library so I guess 
 that's what
 I will start looking at.
 
 
 On Wed, Jul 2, 2014 at 1:37 PM, Sebastian Gesemann s.gesem...@gmail.com 
 wrote:
 On Wed, Jul 2, 2014 at 12:49 PM, Isak Andersson wrote:
  Hello Rust folks!
 
  I am using Cargo and I am trying to specify mulitple targets in my
  Cargo.toml file.
  First of all is this even possible?
  ...
  [package]
  name = hmproof
  version = 0.1.0
  authors = [ i...@houstonmedia.se ]
  [[bin]]
  name = hmwhoami
  [[lib]]
  name = proof
  (I also tried adding a path)
  path = src/proof.rs
  [dependencies.rust-http]
  git = https://github.com/chris-morgan/rust-http.git;
 
  I also tried putting the [[lib]] part after the dependencies part. The error
  I get is this:
  error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no such file
  or directory [...]
  Whiich doesn't make any sense at all to me. Why does it suddenly start
  looking in src/bin?
 
 According to http://crates.io/manifest.html the default path for a
 binary is src (if there is no other lib) and src/bin (if there is also
 a lib target). You should be able to override this with path =
 src/hmwhoami.
 
  Do I have to put my bin code in src/bin and my lib code in src lib or what?
 
 Currently, only a single lib per package is supported and it seems,
 judging by the document about the manifest format, that Cargo always
 looks for src/lib.rs for a library unless you override this using a
 path=something.
 
 As for how to tell Cargo to invoke rustc with the appropriate -L
 option: I don't know.
 
 HTH,
 sg
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev
 
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Cargo multiple targets

2014-07-02 Thread Isak Andersson
Hi!

Wow I didn't know about the manifest page, I was under the impression that
the docs were very lacking. But this is pretty great.

Thanks a bunch that was super helpful!


On Wed, Jul 2, 2014 at 2:09 PM, Vladimir Matveev dpx.infin...@gmail.com
wrote:

 Hi, Isak!

 According to manifest documentation [1] you can specify crate type
 (dynamic or static lib or rlib) using crate_type option:

 [[lib]]
 …
 crate_type = [dylib, staticlib]

 The above configuration should build you both .a and .so files.

 [1]: http://crates.io/manifest.html, search for crate_type w/o
 quotes

 On 02 июля 2014 г., at 15:58, Isak Andersson cont...@bitpuffin.com
 wrote:

  Hi!
 
  Thanks for the reply!
 
  Apparently multiple targets does in fact work. Just that you can't rely
 on the
  default path anymore, so I had to add the path = ... to both the [[lib]]
 and [[bin]].
  Not sure if this is a bug or not.
 
  However the library compiles as an rlib and I'm not sure how to change
 it to build
  a C library instead (a .a or .so on *nix or .lib I think on windows).
 
  Actually I'm not even sure how to make rustc build a C library so I
 guess that's what
  I will start looking at.
 
 
  On Wed, Jul 2, 2014 at 1:37 PM, Sebastian Gesemann s.gesem...@gmail.com
 wrote:
  On Wed, Jul 2, 2014 at 12:49 PM, Isak Andersson wrote:
   Hello Rust folks!
  
   I am using Cargo and I am trying to specify mulitple targets in my
   Cargo.toml file.
   First of all is this even possible?
   ...
   [package]
   name = hmproof
   version = 0.1.0
   authors = [ i...@houstonmedia.se ]
   [[bin]]
   name = hmwhoami
   [[lib]]
   name = proof
   (I also tried adding a path)
   path = src/proof.rs
   [dependencies.rust-http]
   git = https://github.com/chris-morgan/rust-http.git;
  
   I also tried putting the [[lib]] part after the dependencies part. The
 error
   I get is this:
   error: couldn't read src/bin/hmwhoami.rs: couldn't open file (no such
 file
   or directory [...]
   Whiich doesn't make any sense at all to me. Why does it suddenly start
   looking in src/bin?
 
  According to http://crates.io/manifest.html the default path for a
  binary is src (if there is no other lib) and src/bin (if there is also
  a lib target). You should be able to override this with path =
  src/hmwhoami.
 
   Do I have to put my bin code in src/bin and my lib code in src lib or
 what?
 
  Currently, only a single lib per package is supported and it seems,
  judging by the document about the manifest format, that Cargo always
  looks for src/lib.rs for a library unless you override this using a
  path=something.
 
  As for how to tell Cargo to invoke rustc with the appropriate -L
  option: I don't know.
 
  HTH,
  sg
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev
 
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev


___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] ref binding for parameters of functions?

2014-07-02 Thread Sebastian Gesemann
So far I knew that `ref` could be used in `let` and `match`
expressions. But I just tried using it for a function's parameter to
see what happens and it actually compiled! :)

fn foo(ref p: int) - int {
*p + 1
}

fn main() {
let x = 1729i;
let y = foo(x);
println!({},y);
}

What I was wondering then was: What is the type of foo and what does
it mean for how the parameter is passed exactly?

After adding

let bar: fn(int)-int = foo;

to the main function, I realized that the reference called p probably
refers to a function-local temporary int. A part of me hoped for p
referring to main's x thus saving a copy/move. But in that case, the
function's type would have to be different, right?

So, for a brief moment I thought that Rust already supports
auto-referencing for non-self parameters just like C++ does for const
T. The reason I'm mentioning this is that I noticed an RFC PR for a
feature like this.

So, what do you think about what kind of semantic you want for such a
function? Should its p refer to main's x in this case? Should its type
be fn(ref:int)-int which would be ABI-compatible with fn(T)-int?
Due to ABI compatibility one could even be allowed to convert one
function pointer to another:

   let f = foo; // fn(ref:int)-int with auto-referencing
   let g = f as fn(int)-int; // no auto-referencing anymore

The parameter type ref:T could be useful for getting rid of some
explicit borrows one would otherwise need at the invocation site:

fn show_vec(ref v: Vecint) {...}

fn main() {
let x = vec!(1,2,3i);
show_vec(x);
}

Comments? Opinions? Maybe this could be useful. And maybe this is a
bad idea. I don't know. What I *don't* like about it is that ref:T
is not really a type and this could compose badly in generic code.

Cheers!
sg
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] conflicting implementations for trait

2014-07-02 Thread Erick Tryzelaar
If you do want to do this, you can wrap the type in a struct, as in:

```
use foo_mod::MyTrait;

mod foo_mod {
pub trait MyTrait {
fn foo (self) - int;
}

impl MyTrait for int {
fn foo(self) - int {
return self + 2;
 }
}

impl MyTrait for ~str {
fn foo(self) - int {
 return 42;
}
}
}

struct MyInt(int)

impl MyTrait for MyInt {
fn foo(self) - int {
let MyInt(i) = *self;
return i - 2;
 }
}
```

Rust will optimize away the wrapper struct, so there's no overhead in doing
this.



On Tue, Jul 1, 2014 at 3:17 PM, Steve Klabnik st...@steveklabnik.com
wrote:

 You cannot.
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] ref binding for parameters of functions?

2014-07-02 Thread Alex Crichton
Binding by ref is subtly different that the function still owns the
argument. For example, this may go awry with ref:T

struct Foo;
impl Drop for Foo {
fn drop(mut self) { println!(dropping); }
}

fn foo(ref _param: Foo) {}

fn main() {
let f1: fn(ref:Foo) = foo;
let f2: fn(Foo) = foo;
let f3: fn(Foo) = foo;

f1(Foo);
f2(Foo);
f3(Foo);
}

In that program, how many times is `dropping` printed? It should be
three, but I believe it will print four times due to f3 not
understanding that the value has already been dropped.

On Wed, Jul 2, 2014 at 11:49 AM, Sebastian Gesemann
s.gesem...@gmail.com wrote:
 So far I knew that `ref` could be used in `let` and `match`
 expressions. But I just tried using it for a function's parameter to
 see what happens and it actually compiled! :)

 fn foo(ref p: int) - int {
 *p + 1
 }

 fn main() {
 let x = 1729i;
 let y = foo(x);
 println!({},y);
 }

 What I was wondering then was: What is the type of foo and what does
 it mean for how the parameter is passed exactly?

 After adding

 let bar: fn(int)-int = foo;

 to the main function, I realized that the reference called p probably
 refers to a function-local temporary int. A part of me hoped for p
 referring to main's x thus saving a copy/move. But in that case, the
 function's type would have to be different, right?

 So, for a brief moment I thought that Rust already supports
 auto-referencing for non-self parameters just like C++ does for const
 T. The reason I'm mentioning this is that I noticed an RFC PR for a
 feature like this.

 So, what do you think about what kind of semantic you want for such a
 function? Should its p refer to main's x in this case? Should its type
 be fn(ref:int)-int which would be ABI-compatible with fn(T)-int?
 Due to ABI compatibility one could even be allowed to convert one
 function pointer to another:

let f = foo; // fn(ref:int)-int with auto-referencing
let g = f as fn(int)-int; // no auto-referencing anymore

 The parameter type ref:T could be useful for getting rid of some
 explicit borrows one would otherwise need at the invocation site:

 fn show_vec(ref v: Vecint) {...}

 fn main() {
 let x = vec!(1,2,3i);
 show_vec(x);
 }

 Comments? Opinions? Maybe this could be useful. And maybe this is a
 bad idea. I don't know. What I *don't* like about it is that ref:T
 is not really a type and this could compose badly in generic code.

 Cheers!
 sg
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] ref binding for parameters of functions?

2014-07-02 Thread Sebastian Gesemann
On Wed, Jul 2, 2014 at 6:21 PM, Alex Crichton wrote:
 Binding by ref is subtly different that the function still owns the
 argument. For example, this may go awry with ref:T

 struct Foo;
 impl Drop for Foo {
 fn drop(mut self) { println!(dropping); }
 }

 fn foo(ref _param: Foo) {}

 fn main() {
 let f1: fn(ref:Foo) = foo;
 let f2: fn(Foo) = foo;
 let f3: fn(Foo) = foo;

 f1(Foo);
 f2(Foo);
 f3(Foo);
 }

 In that program, how many times is `dropping` printed? It should be
 three,

This program would not compile. Here's why: If one wanted `foo`'s
`_param` to refer to the caller's memory -- a behaviour one *might*
expect because that's how `ref` works in other contexts, specifically,
it does not create a temporary and then a reference it -- this would
make the first parameter of `foo` effectivly a reference to `Foo`, not
a value of `Foo`. The only difference between ref:T and T in a
function signature would be that ref:T implies auto-referencing at the
call site where T does not. The function pointers would be compatible
because the implementation of foo just works on a reference in both
cases. The line

let f2: fn(Foo) = foo;

however, tries to assign the adress of a function taking a reference
to Foo to a pointer for functions that take a value of Foo. This would
be a type error.

Cheers!
sg
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-02 Thread Erick Tryzelaar
This is awesome! I look forward to deprecating
https://github.com/erickt/rust-zmq.


On Wed, Jul 2, 2014 at 12:40 AM, Fantix King fantix.k...@gmail.com wrote:

 Thank you, Corey!

 Honestly I didn't dig deep about licensing. It was MIT which I think is
 the most open one as BSD. Then http://zeromq.org/docs:organization
 suggested MPLv2 - something between BSD and GPL just sounded also not bad
 for me, so I didn't pay much attention changing to MPLv2. I wouldn't mind
 changing back to MIT if that works better for the community :)

 BR,
 Fantix
 --
 http://about.me/fantix


 On Wed, Jul 2, 2014 at 3:16 PM, Corey Richardson co...@octayn.net wrote:

 Complaining about something I don't like:

 Due to the choice of MPLv2, this won't be usable in the wider Rust
 ecosystem, which is MIT/ASL2 focused. In particular, section 3.2(a)
 requires that any distribution in Executable Form carry a notice
 about how to acquire the source code of zmq.rs. This is not
 unworkable, but it is something we have avoided so far in the
 community.

 Otherwise, I look forward to reviewing this in more depth tomorrow. Nice
 work!

 On Tue, Jul 1, 2014 at 11:38 PM, Fantix King fantix.k...@gmail.com
 wrote:
  Hi,
 
  Here is zmq.rs, a native implementation of ØMQ in the Rust programming
  language in MPLv2. I've just got a very ugly prototype running till
 now, and
  I'm expecting to hear more comments on anything.
 
  https://github.com/zeromq/zmq.rs
 
  For who wants to know more about ØMQ, it looks like an embeddable
 networking
  library but acts like a concurrency framework. It gives you sockets that
  carry atomic messages across various transports like in-process,
  inter-process, TCP, and multicast. You can connect sockets N-to-N with
  patterns like fan-out, pub-sub, task distribution, and request-reply.
  (according to http://zguide.zeromq.org/page:all)
 
  Back to the project, I did a few iterations and got what it is now, in
 the
  hope that more discussion can be raised over some actual code to talk
 about.
  zmq.rs currently has REQ and REP, can `send` and `recv` in ZMTP 2.0. I
 also
  blogged a bit about the design here (more to come):
 
  http://blog.segmentfault.com/fantix/119000593564
 
  You are more than welcome to:
   * comment on the design
   * suggest different solution
   * complain about whatever you don't like
   * open issues on github
   * send me PRs and code reviews
   * join me developing and maintaining it
   * or even star it on github ;)
 
 
  BR,
  Fantix
  --
  http://about.me/fantix
 
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev
 



 --
 http://octayn.net/



 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Rust 0.11.0 Released

2014-07-02 Thread Alex Crichton
Mozilla and the Rust community are pleased to announce version 0.11.0 of
the Rust compiler and tools. Rust is a systems programming language with a
focus on safety, performance and concurrency.

While this was a very active development cycle, it was largely focused on
polishing the type system and libraries. The major technical focuses this
time were implementing infrastructure for dynamically sized types and
refactoring the standard library. This release also marks the complete
removal of the `~` and `@` syntax in favor of library types `Box` and
`Gc`.

The brief release notes are included in this announcement, and there is
further explanation in the detailed release [notes] on the wiki.
Documentation and all the links in this email are available on the
[website]. As usual, version 0.11.0 should be considered an alpha release,
suitable for early adopters and language enthusiasts. Please file [bugs]
and join the [fun].

[website]: http://www.rust-lang.org
[notes]: https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes
[bugs]: https://github.com/mozilla/rust/issues
[fun]: https://github.com/mozilla/rust/wiki/Note-guide-for-new-contributors

Source

* http://static.rust-lang.org/dist/rust-0.11.0.tar.gz
  http://static.rust-lang.org/dist/rust-0.11.0.tar.gz.asc
  SHA256 (of .tar.gz):
  d1b3e36448bf12b8c9289024df416de10774b6d3235d7b1d22b248ef634411ba

Windows installer

* http://static.rust-lang.org/dist/rust-0.11.0-install.exe
  http://static.rust-lang.org/dist/rust-0.11.0-install.exe.asc
  SHA256 (of .exe):
  fb253072ba5373eb0af388f63e51122af9dd13379d762ca4100ee7334dbec9d2

Linux binary tarballs

* http://static.rust-lang.org/dist/rust-0.11.0-x86_64-unknown-linux-gnu.tar.gz
  
http://static.rust-lang.org/dist/rust-0.11.0-x86_64-unknown-linux-gnu.tar.gz.asc
  SHA256 (of .tar.gz):
  331d6374b3c8fca3e2b5fffb65ce75dfce3529bd47333de4a9ce636cb87be432

* http://static.rust-lang.org/dist/rust-0.11.0-i686-unknown-linux-gnu.tar.gz
  http://static.rust-lang.org/dist/rust-0.11.0-i686-unknown-linux-gnu.tar.gz.asc
  SHA256 (of .tar.gz):
  cbfe2050f708479f2625a935d2f41165868f354ff740d2697e08acb2255670b2

Mac OS X binary installers

* http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.pkg
  http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  1183d6c8ab021f4049a2906c1527f705bae4bb4935aea897f4860eb5337363c3

* http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.pkg
  http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.pkg.asc
  SHA256 (of .pkg):
  8f5a1fe491d83c6be0a3082f0ac8504c89eed38263ae0ac0fad15d8c02e3b267

Mac OS X binary tarballs

* http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.tar.gz
  http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  bbac91aff5464c20f39afcf078a693c4612717d6b1cc3f86f92075b2103bc22e

* http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.tar.gz
  http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.tar.gz.asc
  SHA256 (of .tar.gz):
  93d6e6e98d00df3e946e4f7765172ad522a118dd34f1fac73ba74d43df92698b

Thanks to everyone who contributed!

Regards,
The Rust Team

Version 0.11.0 (July 2014)
-

  * ~1700 changes, numerous bugfixes

  * Language
* ~[T] has been removed from the language. This type is superseded by
  the VecT type.
* ~str has been removed from the language. This type is superseded by
  the String type.
* ~T has been removed from the language. This type is superseded by the
  BoxT type.
* @T has been removed from the language. This type is superseded by the
  standard library's std::gc::GcT type.
* Struct fields are now all private by default.
* Vector indices and shift amounts are both required to be a `uint`
  instead of any integral type.
* Byte character, byte string, and raw byte string literals are now all
  supported by prefixing the normal literal with a `b`.
* Multiple ABIs are no longer allowed in an ABI string
* The syntax for lifetimes on closures/procedures has been tweaked
  slightly: `'a|A, B|: 'b + K - T`
* Floating point modulus has been removed from the language; however it
  is still provided by a library implementation.
* Private enum variants are now disallowed.
* The `priv` keyword has been removed from the language.
* A closure can no longer be invoked through a -pointer.
* The `use foo, bar, baz;` syntax has been removed from the language.
* The transmute intrinsic no longer works on type parameters.
* Statics now allow blocks/items in their definition.
* Trait bounds are separated from objects with + instead of : now.
* Objects can no longer be read while they are mutably borrowed.
* The address of a static is now marked as insignificant unless the
  #[inline(never)] attribute is placed it.
* The #[unsafe_destructor] attribute is now behind a feature gate.
   

Re: [rust-dev] Partial meeting agenda - older RFCs

2014-07-02 Thread Gábor Lehel
Thanks, this is a good step, as is delaying taking actions by a day as
proposed in the meeting itself.


If you have any suggestions for how this regular email or the process in
 general could be improved, please let us know.


Most fundamentally, what I'm wondering is, why do most of the things
discussed at the meetings need to be discussed separately in the first
place?

Why not have those discussions directly in the comments for the respective
RFC PRs? Up to and including leaving comments like we suggest closing
this, because {justification}, unless someone convinces us otherwise, we
suggest merging this because {justification}, and so on. In an ideal
world, the meetings could merely ratify the decisions which were already
evident from the PR discussions themselves. This could also help avoid
situations where the two discussions end up disjoint in some way, e.g.
according to this week's meeting notes @pcwalton and @aturon essentially
recapitulated the exact same debate about the lifetime elision self rule
at the meeting which @aturon and I had previously gone through in the PR
comments.


From the proposed-for-discussion list:

https://github.com/rust-lang/rfcs/pull/122 - Syntax sugar for prefix-style
 type parameter lists - ben0x539
 Sugary syntax for putting a group of type parameters and their bounds
 before a group of functions. Motivation is our often unwieldly lists of
 type parameters.
 Not much feedback, but mostly positive. Generally for the motivation,
 rather than the solution.
 Recommend close in deference to RFC 135 (where clauses) which solve
 the motivating problem here, along with other issues.


The two are complementary, not substitutive. 122 allows factoring out type
parameter lists for multiple declarations. 135 allows writing them
differently.


From the meeting itself, because it concerns process:


- nrc: Do we want to keep this open? It's the  to [] changes.
- acrichto: It's so new, I don't think we should close it.
- nrc: Even so, if we're not going to do it, I don't think we should
keep it open.

 I don't see what could have been gained by closing it. Potential scenarios
if it's left open:

 (1) Participants end up convincing each other than the change is not worth
doing. (This is what ended up happening in this case.)
 (2) Contrary to expectations, a consensus emerges in favor of the change.
Maybe there is some factor that hadn't been taken into account previously,
or the arguments of one side end up convincing the other. I think this
might be useful information to have learned. Then you can evaluate the
decision on the merits.

Whereas if it's closed early:

 (3) People are left with the opinions they already had, and now might also
have the impression that Mozilla has heavy-handedly shut down the debate.

I mean, possibly leave a comment like Just so you know, we are extremely
unlikely to do this, but feel free to keep discussing, but I think that
was clear to everyone at the outset. I just don't see what could have been
gained by preventing the discussion from playing itself out.

Cheers,
Gábor



On Tue, Jul 1, 2014 at 1:23 AM, Nick Cameron li...@ncameron.org wrote:

 Hi all, there have recently been some calls to be more open about the Rust
 meetings, in particular to publish the agenda beforehand. The agenda
 setting has been quite informal, often not coming together until the
 meeting starts. Not to say that we won't publish an agenda in the future,
 but that it is not as easy as it might seem. However, as a step towards
 that, I will be mailing out the part of the agenda that is set in advance
 which is the set of (usually older) RFCs where discussion has mostly ceased
 and where we feel we can make a decision on progress. This email is a
 relatively new convention in any case. It has been sent to most meeting
 attendees at the start of the week. From now on, I'll send it to the
 mailing list instead. If you have comments on the RFCs, please comment on
 the RFC PR itself, please do not reply to the mailing list.

 Some explanation of the process here - each week there are two Rust
 meetings where we discuss RFCs, the general Rust meeting and the triage
 meeting. We only accept RFCs at the general meeting. RFCs may be closed at
 either meeting. In order to make sure no older RFCs slip through the
 cracks, RFCs where discussion has come to a stop (or nearly so) are
 recommended each week for discussion. Based on the outcome of the
 discussion on the PR and the current goals of the Rust project (in
 particular in not accepting any major backwards compatible changes before
 1.0) an RFC will be proposed for discussion at the general meeting if it
 needs discussion or we are likely to accept, or to the triage meeting if it
 is likely to closed. To clarify, what actually happens to an RFC is decided
 at the meeting, not by which meeting it is discussed at. Often, other RFCs
 are also discussed at the meetings where attendees think there is a more
 

Re: [rust-dev] Partial meeting agenda - older RFCs

2014-07-02 Thread Kevin Cantu
Possibly some of this is driven by how GitHub automatically spams a large
number of people with the conversations.  While I'm sure the core team is
more patient than me, I don't want to listen to twenty years worth of
debate about semicolons in a dead RFC.  ;D


Kevin




On Wed, Jul 2, 2014 at 11:19 AM, Gábor Lehel glaebho...@gmail.com wrote:

 Thanks, this is a good step, as is delaying taking actions by a day as
 proposed in the meeting itself.



 If you have any suggestions for how this regular email or the process in
 general could be improved, please let us know.


 Most fundamentally, what I'm wondering is, why do most of the things
 discussed at the meetings need to be discussed separately in the first
 place?

 Why not have those discussions directly in the comments for the respective
 RFC PRs? Up to and including leaving comments like we suggest closing
 this, because {justification}, unless someone convinces us otherwise, we
 suggest merging this because {justification}, and so on. In an ideal
 world, the meetings could merely ratify the decisions which were already
 evident from the PR discussions themselves. This could also help avoid
 situations where the two discussions end up disjoint in some way, e.g.
 according to this week's meeting notes @pcwalton and @aturon essentially
 recapitulated the exact same debate about the lifetime elision self rule
 at the meeting which @aturon and I had previously gone through in the PR
 comments.


 From the proposed-for-discussion list:


 https://github.com/rust-lang/rfcs/pull/122 - Syntax sugar for
 prefix-style type parameter lists - ben0x539
 Sugary syntax for putting a group of type parameters and their bounds
 before a group of functions. Motivation is our often unwieldly lists of
 type parameters.
 Not much feedback, but mostly positive. Generally for the motivation,
 rather than the solution.
 Recommend close in deference to RFC 135 (where clauses) which solve
 the motivating problem here, along with other issues.


 The two are complementary, not substitutive. 122 allows factoring out type
 parameter lists for multiple declarations. 135 allows writing them
 differently.


 From the meeting itself, because it concerns process:


- nrc: Do we want to keep this open? It's the  to [] changes.
- acrichto: It's so new, I don't think we should close it.
- nrc: Even so, if we're not going to do it, I don't think we should
keep it open.

 I don't see what could have been gained by closing it. Potential
 scenarios if it's left open:

  (1) Participants end up convincing each other than the change is not
 worth doing. (This is what ended up happening in this case.)
  (2) Contrary to expectations, a consensus emerges in favor of the change.
 Maybe there is some factor that hadn't been taken into account previously,
 or the arguments of one side end up convincing the other. I think this
 might be useful information to have learned. Then you can evaluate the
 decision on the merits.

 Whereas if it's closed early:

  (3) People are left with the opinions they already had, and now might
 also have the impression that Mozilla has heavy-handedly shut down the
 debate.

 I mean, possibly leave a comment like Just so you know, we are extremely
 unlikely to do this, but feel free to keep discussing, but I think that
 was clear to everyone at the outset. I just don't see what could have been
 gained by preventing the discussion from playing itself out.

 Cheers,
 Gábor



 On Tue, Jul 1, 2014 at 1:23 AM, Nick Cameron li...@ncameron.org wrote:

 Hi all, there have recently been some calls to be more open about the
 Rust meetings, in particular to publish the agenda beforehand. The agenda
 setting has been quite informal, often not coming together until the
 meeting starts. Not to say that we won't publish an agenda in the future,
 but that it is not as easy as it might seem. However, as a step towards
 that, I will be mailing out the part of the agenda that is set in advance
 which is the set of (usually older) RFCs where discussion has mostly ceased
 and where we feel we can make a decision on progress. This email is a
 relatively new convention in any case. It has been sent to most meeting
 attendees at the start of the week. From now on, I'll send it to the
 mailing list instead. If you have comments on the RFCs, please comment on
 the RFC PR itself, please do not reply to the mailing list.

 Some explanation of the process here - each week there are two Rust
 meetings where we discuss RFCs, the general Rust meeting and the triage
 meeting. We only accept RFCs at the general meeting. RFCs may be closed at
 either meeting. In order to make sure no older RFCs slip through the
 cracks, RFCs where discussion has come to a stop (or nearly so) are
 recommended each week for discussion. Based on the outcome of the
 discussion on the PR and the current goals of the Rust project (in
 particular in not accepting any major backwards compatible 

Re: [rust-dev] Partial meeting agenda - older RFCs

2014-07-02 Thread Brian Anderson


On 07/02/2014 11:19 AM, Gábor Lehel wrote:
Thanks, this is a good step, as is delaying taking actions by a day as 
proposed in the meeting itself.



If you have any suggestions for how this regular email or the
process in general could be improved, please let us know.


Most fundamentally, what I'm wondering is, why do most of the things 
discussed at the meetings need to be discussed separately in the first 
place?


Why not have those discussions directly in the comments for the 
respective RFC PRs? Up to and including leaving comments like we 
suggest closing this, because {justification}, unless someone 
convinces us otherwise, we suggest merging this because 
{justification}, and so on. In an ideal world, the meetings could 
merely ratify the decisions which were already evident from the PR 
discussions themselves. This could also help avoid situations where 
the two discussions end up disjoint in some way, e.g. according to 
this week's meeting notes @pcwalton and @aturon essentially 
recapitulated the exact same debate about the lifetime elision self 
rule at the meeting which @aturon and I had previously gone through 
in the PR comments.


I would like to move in this direction, but like many cultural changes 
it will be gradual. The primary reason we do so much in meetings is 
because face-to-face discussions move much faster and involve much less 
argumentation than asynchronous online discussions. In the immediate 
future I'd like to put more pressure on meeting participants to express 
their opinions on the issue ahead of meetings, which this initiative 
Nick is working on helps by making it clear what issues are coming up.





From the proposed-for-discussion list:

https://github.com/rust-lang/rfcs/pull/122 - Syntax sugar for
prefix-style type parameter lists - ben0x539
Sugary syntax for putting a group of type parameters and their
bounds before a group of functions. Motivation is our often
unwieldly lists of type parameters.
Not much feedback, but mostly positive. Generally for the
motivation, rather than the solution.
Recommend close in deference to RFC 135 (where clauses) which
solve the motivating problem here, along with other issues.


The two are complementary, not substitutive. 122 allows factoring out 
type parameter lists for multiple declarations. 135 allows writing 
them differently.



From the meeting itself, because it concerns process:

  * nrc: Do we want to keep this open? It's the || to |[]| changes.
  * acrichto: It's so new, I don't think we should close it.
  * nrc: Even so, if we're not going to do it, I don't think we
should keep it open.

I don't see what could have been gained by closing it. Potential 
scenarios if it's left open:


 (1) Participants end up convincing each other than the change is not 
worth doing. (This is what ended up happening in this case.)
 (2) Contrary to expectations, a consensus emerges in favor of the 
change. Maybe there is some factor that hadn't been taken into account 
previously, or the arguments of one side end up convincing the other. 
I think this might be useful information to have learned. Then you can 
evaluate the decision on the merits.


Whereas if it's closed early:

 (3) People are left with the opinions they already had, and now might 
also have the impression that Mozilla has heavy-handedly shut down the 
debate.


I mean, possibly leave a comment like Just so you know, we are 
extremely unlikely to do this, but feel free to keep discussing, but 
I think that was clear to everyone at the outset. I just don't see 
what could have been gained by preventing the discussion from playing 
itself out.


Cheers,
Gábor



On Tue, Jul 1, 2014 at 1:23 AM, Nick Cameron li...@ncameron.org 
mailto:li...@ncameron.org wrote:


Hi all, there have recently been some calls to be more open about
the Rust meetings, in particular to publish the agenda beforehand.
The agenda setting has been quite informal, often not coming
together until the meeting starts. Not to say that we won't
publish an agenda in the future, but that it is not as easy as it
might seem. However, as a step towards that, I will be mailing out
the part of the agenda that is set in advance which is the set of
(usually older) RFCs where discussion has mostly ceased and where
we feel we can make a decision on progress. This email is a
relatively new convention in any case. It has been sent to most
meeting attendees at the start of the week. From now on, I'll send
it to the mailing list instead. If you have comments on the RFCs,
please comment on the RFC PR itself, please do not reply to the
mailing list.

Some explanation of the process here - each week there are two
Rust meetings where we discuss RFCs, the general Rust meeting and
the triage meeting. We only accept RFCs at the general meeting.
RFCs may be closed at either 

Re: [rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-02 Thread SiegeLordEx

On 07/02/2014 03:16 AM, Corey Richardson wrote:

Complaining about something I don't like:

Due to the choice of MPLv2, this won't be usable in the wider Rust
ecosystem, which is MIT/ASL2 focused. In particular, section 3.2(a)
requires that any distribution in Executable Form carry a notice
about how to acquire the source code of zmq.rs. This is not
unworkable, but it is something we have avoided so far in the
community.


I should note that this is not a universally held opinion in the Rust 
community. While it is true that many/most current Rust projects mimic 
the license of `rustc` itself, there's nothing in Rust as a language 
that precludes or encourages the use of any particular license. The 
mentioned 'avoidance' is likely a consequence of the people just 
preferring those licenses (i.e. they'd use them for their non-Rust 
projects as well) rather than Rust being against the spirit of 
attribution, share-alike, copyleft etc per se.


Personally, I would encourage Free Rust software just like I would 
encourage it in any other language. You shouldn't feel like you need to 
compromise on your moral principles (or whatever else you consult when 
choosing a license) to contribute to Rust's success.


-SL
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] [ANN] zmq.rs - native stack of ØMQ in Rus

2014-07-02 Thread Corey Richardson
See also the discussion on IRC:
https://botbot.me/mozilla/rust/2014-07-02/?msg=17359232page=22

It wasn't my intention to discourage using any particular license, but
to raise its requirements if they weren't consciously chosen.

On Wed, Jul 2, 2014 at 12:33 PM, SiegeLordEx slab...@aim.com wrote:
 On 07/02/2014 03:16 AM, Corey Richardson wrote:

 Complaining about something I don't like:

 Due to the choice of MPLv2, this won't be usable in the wider Rust
 ecosystem, which is MIT/ASL2 focused. In particular, section 3.2(a)
 requires that any distribution in Executable Form carry a notice
 about how to acquire the source code of zmq.rs. This is not
 unworkable, but it is something we have avoided so far in the
 community.


 I should note that this is not a universally held opinion in the Rust
 community. While it is true that many/most current Rust projects mimic the
 license of `rustc` itself, there's nothing in Rust as a language that
 precludes or encourages the use of any particular license. The mentioned
 'avoidance' is likely a consequence of the people just preferring those
 licenses (i.e. they'd use them for their non-Rust projects as well) rather
 than Rust being against the spirit of attribution, share-alike, copyleft etc
 per se.

 Personally, I would encourage Free Rust software just like I would encourage
 it in any other language. You shouldn't feel like you need to compromise on
 your moral principles (or whatever else you consult when choosing a license)
 to contribute to Rust's success.

 -SL

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev



-- 
http://octayn.net/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Partial meeting agenda - older RFCs

2014-07-02 Thread Nick Cameron
On Thu, Jul 3, 2014 at 6:19 AM, Gábor Lehel glaebho...@gmail.com wrote:

 Thanks, this is a good step, as is delaying taking actions by a day as
 proposed in the meeting itself.



 If you have any suggestions for how this regular email or the process in
 general could be improved, please let us know.


 Most fundamentally, what I'm wondering is, why do most of the things
 discussed at the meetings need to be discussed separately in the first
 place?

 Why not have those discussions directly in the comments for the respective
 RFC PRs? Up to and including leaving comments like we suggest closing
 this, because {justification}, unless someone convinces us otherwise, we
 suggest merging this because {justification}, and so on. In an ideal
 world, the meetings could merely ratify the decisions which were already
 evident from the PR discussions themselves. This could also help avoid
 situations where the two discussions end up disjoint in some way, e.g.
 according to this week's meeting notes @pcwalton and @aturon essentially
 recapitulated the exact same debate about the lifetime elision self rule
 at the meeting which @aturon and I had previously gone through in the PR
 comments.


 From the proposed-for-discussion list:


 https://github.com/rust-lang/rfcs/pull/122 - Syntax sugar for
 prefix-style type parameter lists - ben0x539
 Sugary syntax for putting a group of type parameters and their bounds
 before a group of functions. Motivation is our often unwieldly lists of
 type parameters.
 Not much feedback, but mostly positive. Generally for the motivation,
 rather than the solution.
 Recommend close in deference to RFC 135 (where clauses) which solve
 the motivating problem here, along with other issues.


 The two are complementary, not substitutive. 122 allows factoring out type
 parameter lists for multiple declarations. 135 allows writing them
 differently.

 Please comment on the RFCs rather than replying to the mailing list. I'll
make a note of this, but in the general case, I guarantee that  replies to
the mailing list will get lost or forgotten. I agree the two RFCs are not
substitutive and could both be accepted, but they do both tackle the same
problem (ugly type param lists).


 From the meeting itself, because it concerns process:


- nrc: Do we want to keep this open? It's the  to [] changes.
- acrichto: It's so new, I don't think we should close it.
- nrc: Even so, if we're not going to do it, I don't think we should
keep it open.

 I don't see what could have been gained by closing it. Potential
 scenarios if it's left open:

  (1) Participants end up convincing each other than the change is not
 worth doing. (This is what ended up happening in this case.)
  (2) Contrary to expectations, a consensus emerges in favor of the change.
 Maybe there is some factor that hadn't been taken into account previously,
 or the arguments of one side end up convincing the other. I think this
 might be useful information to have learned. Then you can evaluate the
 decision on the merits.

 Whereas if it's closed early:

  (3) People are left with the opinions they already had, and now might
 also have the impression that Mozilla has heavy-handedly shut down the
 debate.

 I mean, possibly leave a comment like Just so you know, we are extremely
 unlikely to do this, but feel free to keep discussing, but I think that
 was clear to everyone at the outset. I just don't see what could have been
 gained by preventing the discussion from playing itself out.

 We will (at some point) have a separate discussion on the policy, as was
briefly touched upon in the meeting we decided it was a policy question and
we shouldn't do anything in this case.

My motivation for early closure of some RFCs is to be honest - I don't want
to waste people's time, energy, or emotional investment arguing about it if
they have the (false) impression that it might change. As you suggest
leaving a comment and leaving the RFC open is probably a better way to do
this (although you can still comment on a closed PR, so I'm not sure there
is really much difference, other than whether the RFC shows up in the list
of open PRs). Another reason is simply that I don't like to see pointless
arguing, and I feel that on RFCs like this which come down to taste, it
really is arguing and not discussion. I think the Rust community would be a
better place without it. Of course, I could just ignore the GitHub spam,
but I would rather the arguing just doesn't happen. FWIW, your point 1 is
very valid and probably outweighs my points, just saying that there are
other disadvantages. The chance of 2 happening in a case like this seems so
small that I wouldn't worry about it.

Cheers, Nick

Cheers,
 Gábor



 On Tue, Jul 1, 2014 at 1:23 AM, Nick Cameron li...@ncameron.org wrote:

 Hi all, there have recently been some calls to be more open about the
 Rust meetings, in particular to publish the agenda beforehand. The agenda
 setting has 

Re: [rust-dev] Partial meeting agenda - older RFCs

2014-07-02 Thread Daniel Fagnan
I never thought a change like the one I proposed would be accepted. That
was until a few people also supported the idea so it was a shot in the dark.

My motivation for the rfc was the supposed elimination of the ambiguities
that the current syntax has. I mistakenly overlooked the conflict with the
array syntax.

I still think [] is better than  , but for Rust, there's no convincing
objective argument for such a change. Thus, if the rfc was kept open, it
would be subjective argument leading to nowhere. I definitely don't want to
participate in such argument, because it becomes a waste of time.

I'm convinced that the current syntax needs to stay because we simply don't
get any tangible benefits.

So I closed the rfc.
On Jul 2, 2014 12:19 PM, Gábor Lehel glaebho...@gmail.com wrote:

 Thanks, this is a good step, as is delaying taking actions by a day as
 proposed in the meeting itself.


 If you have any suggestions for how this regular email or the process in
 general could be improved, please let us know.


 Most fundamentally, what I'm wondering is, why do most of the things
 discussed at the meetings need to be discussed separately in the first
 place?

 Why not have those discussions directly in the comments for the respective
 RFC PRs? Up to and including leaving comments like we suggest closing
 this, because {justification}, unless someone convinces us otherwise, we
 suggest merging this because {justification}, and so on. In an ideal
 world, the meetings could merely ratify the decisions which were already
 evident from the PR discussions themselves. This could also help avoid
 situations where the two discussions end up disjoint in some way, e.g.
 according to this week's meeting notes @pcwalton and @aturon essentially
 recapitulated the exact same debate about the lifetime elision self rule
 at the meeting which @aturon and I had previously gone through in the PR
 comments.


 From the proposed-for-discussion list:

 https://github.com/rust-lang/rfcs/pull/122 - Syntax sugar for
 prefix-style type parameter lists - ben0x539
 Sugary syntax for putting a group of type parameters and their bounds
 before a group of functions. Motivation is our often unwieldly lists of
 type parameters.
 Not much feedback, but mostly positive. Generally for the motivation,
 rather than the solution.
 Recommend close in deference to RFC 135 (where clauses) which solve
 the motivating problem here, along with other issues.


 The two are complementary, not substitutive. 122 allows factoring out type
 parameter lists for multiple declarations. 135 allows writing them
 differently.


 From the meeting itself, because it concerns process:


- nrc: Do we want to keep this open? It's the  to [] changes.
- acrichto: It's so new, I don't think we should close it.
- nrc: Even so, if we're not going to do it, I don't think we should
keep it open.

 I don't see what could have been gained by closing it. Potential
 scenarios if it's left open:

  (1) Participants end up convincing each other than the change is not
 worth doing. (This is what ended up happening in this case.)
  (2) Contrary to expectations, a consensus emerges in favor of the change.
 Maybe there is some factor that hadn't been taken into account previously,
 or the arguments of one side end up convincing the other. I think this
 might be useful information to have learned. Then you can evaluate the
 decision on the merits.

 Whereas if it's closed early:

  (3) People are left with the opinions they already had, and now might
 also have the impression that Mozilla has heavy-handedly shut down the
 debate.

 I mean, possibly leave a comment like Just so you know, we are extremely
 unlikely to do this, but feel free to keep discussing, but I think that
 was clear to everyone at the outset. I just don't see what could have been
 gained by preventing the discussion from playing itself out.

 Cheers,
 Gábor



 On Tue, Jul 1, 2014 at 1:23 AM, Nick Cameron li...@ncameron.org wrote:

 Hi all, there have recently been some calls to be more open about the
 Rust meetings, in particular to publish the agenda beforehand. The agenda
 setting has been quite informal, often not coming together until the
 meeting starts. Not to say that we won't publish an agenda in the future,
 but that it is not as easy as it might seem. However, as a step towards
 that, I will be mailing out the part of the agenda that is set in advance
 which is the set of (usually older) RFCs where discussion has mostly ceased
 and where we feel we can make a decision on progress. This email is a
 relatively new convention in any case. It has been sent to most meeting
 attendees at the start of the week. From now on, I'll send it to the
 mailing list instead. If you have comments on the RFCs, please comment on
 the RFC PR itself, please do not reply to the mailing list.

 Some explanation of the process here - each week there are two Rust
 meetings where we discuss RFCs, the 

Re: [rust-dev] Rust 0.11.0 Released

2014-07-02 Thread Benjamin Striegel
Well done! 1.0 draws closer every day. I'm giddy with anticipation.


On Wed, Jul 2, 2014 at 2:07 PM, Alex Crichton a...@crichton.co wrote:

 Mozilla and the Rust community are pleased to announce version 0.11.0 of
 the Rust compiler and tools. Rust is a systems programming language with a
 focus on safety, performance and concurrency.

 While this was a very active development cycle, it was largely focused on
 polishing the type system and libraries. The major technical focuses this
 time were implementing infrastructure for dynamically sized types and
 refactoring the standard library. This release also marks the complete
 removal of the `~` and `@` syntax in favor of library types `Box` and
 `Gc`.

 The brief release notes are included in this announcement, and there is
 further explanation in the detailed release [notes] on the wiki.
 Documentation and all the links in this email are available on the
 [website]. As usual, version 0.11.0 should be considered an alpha release,
 suitable for early adopters and language enthusiasts. Please file [bugs]
 and join the [fun].

 [website]: http://www.rust-lang.org
 [notes]: https://github.com/mozilla/rust/wiki/Doc-detailed-release-notes
 [bugs]: https://github.com/mozilla/rust/issues
 [fun]:
 https://github.com/mozilla/rust/wiki/Note-guide-for-new-contributors

 Source

 * http://static.rust-lang.org/dist/rust-0.11.0.tar.gz
   http://static.rust-lang.org/dist/rust-0.11.0.tar.gz.asc
   SHA256 (of .tar.gz):
   d1b3e36448bf12b8c9289024df416de10774b6d3235d7b1d22b248ef634411ba

 Windows installer

 * http://static.rust-lang.org/dist/rust-0.11.0-install.exe
   http://static.rust-lang.org/dist/rust-0.11.0-install.exe.asc
   SHA256 (of .exe):
   fb253072ba5373eb0af388f63e51122af9dd13379d762ca4100ee7334dbec9d2

 Linux binary tarballs

 *
 http://static.rust-lang.org/dist/rust-0.11.0-x86_64-unknown-linux-gnu.tar.gz

 http://static.rust-lang.org/dist/rust-0.11.0-x86_64-unknown-linux-gnu.tar.gz.asc
   SHA256 (of .tar.gz):
   331d6374b3c8fca3e2b5fffb65ce75dfce3529bd47333de4a9ce636cb87be432

 *
 http://static.rust-lang.org/dist/rust-0.11.0-i686-unknown-linux-gnu.tar.gz

 http://static.rust-lang.org/dist/rust-0.11.0-i686-unknown-linux-gnu.tar.gz.asc
   SHA256 (of .tar.gz):
   cbfe2050f708479f2625a935d2f41165868f354ff740d2697e08acb2255670b2

 Mac OS X binary installers

 * http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.pkg
   http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.pkg.asc
   SHA256 (of .pkg):
   1183d6c8ab021f4049a2906c1527f705bae4bb4935aea897f4860eb5337363c3

 * http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.pkg
   http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.pkg.asc
   SHA256 (of .pkg):
   8f5a1fe491d83c6be0a3082f0ac8504c89eed38263ae0ac0fad15d8c02e3b267

 Mac OS X binary tarballs

 * http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.tar.gz

 http://static.rust-lang.org/dist/rust-0.11.0-x86_64-apple-darwin.tar.gz.asc
   SHA256 (of .tar.gz):
   bbac91aff5464c20f39afcf078a693c4612717d6b1cc3f86f92075b2103bc22e

 * http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.tar.gz

 http://static.rust-lang.org/dist/rust-0.11.0-i686-apple-darwin.tar.gz.asc
   SHA256 (of .tar.gz):
   93d6e6e98d00df3e946e4f7765172ad522a118dd34f1fac73ba74d43df92698b

 Thanks to everyone who contributed!

 Regards,
 The Rust Team

 Version 0.11.0 (July 2014)
 -

   * ~1700 changes, numerous bugfixes

   * Language
 * ~[T] has been removed from the language. This type is superseded by
   the VecT type.
 * ~str has been removed from the language. This type is superseded by
   the String type.
 * ~T has been removed from the language. This type is superseded by the
   BoxT type.
 * @T has been removed from the language. This type is superseded by the
   standard library's std::gc::GcT type.
 * Struct fields are now all private by default.
 * Vector indices and shift amounts are both required to be a `uint`
   instead of any integral type.
 * Byte character, byte string, and raw byte string literals are now all
   supported by prefixing the normal literal with a `b`.
 * Multiple ABIs are no longer allowed in an ABI string
 * The syntax for lifetimes on closures/procedures has been tweaked
   slightly: `'a|A, B|: 'b + K - T`
 * Floating point modulus has been removed from the language; however it
   is still provided by a library implementation.
 * Private enum variants are now disallowed.
 * The `priv` keyword has been removed from the language.
 * A closure can no longer be invoked through a -pointer.
 * The `use foo, bar, baz;` syntax has been removed from the language.
 * The transmute intrinsic no longer works on type parameters.
 * Statics now allow blocks/items in their definition.
 * Trait bounds are separated from objects with + instead of : now.
 * Objects can no longer be 

Re: [rust-dev] Rust 0.11.0 Released

2014-07-02 Thread Zoltán Tóth
Congrat and thank for the good work!


On Wed, Jul 2, 2014 at 8:07 PM, Alex Crichton a...@crichton.co wrote:

 Mozilla and the Rust community are pleased to announce version 0.11.0
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust 0.11.0 Released

2014-07-02 Thread Zoltán Tóth
A new number appeared in the version 0.11.0 compared to 0.10. This
looks like a preparation for 0.11.1, ... . Are you starting to support
these releases with bug-eliminations?
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] [ANN] libcurl bindings for rust (HTTP client at this point)

2014-07-02 Thread Carl Lerche
Hey all,

I've been working on libcurl bindings for rust. So far, I've only been
focusing on HTTP support. The goal is to provide a fully functioning
HTTP client that robustly handles all the edge cases needed in the
real world. I'm not trying to build the world's most amazing HTTP
client for rust. I'm hoping that one day a pure rust option will fill
that need.

In the mean time, curl-rust will satisfy your needs.

In case you don't know, libcurl (http://curl.haxx.se/libcurl/) is a
client-side URL transfer library supporting many, many protocols.
Hopefully, if anybody needs support for any of the other protocols
curl supports, I will see PRs for them!

Cheers,
Carl
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] [ANN] libcurl bindings for rust (HTTP client at this point)

2014-07-02 Thread Carl Lerche
And, it seems that I completely forgot to actually provide the link. I
need more coffee!

https://github.com/carllerche/curl-rust

On Wed, Jul 2, 2014 at 3:00 PM, Carl Lerche m...@carllerche.com wrote:
 Hey all,

 I've been working on libcurl bindings for rust. So far, I've only been
 focusing on HTTP support. The goal is to provide a fully functioning
 HTTP client that robustly handles all the edge cases needed in the
 real world. I'm not trying to build the world's most amazing HTTP
 client for rust. I'm hoping that one day a pure rust option will fill
 that need.

 In the mean time, curl-rust will satisfy your needs.

 In case you don't know, libcurl (http://curl.haxx.se/libcurl/) is a
 client-side URL transfer library supporting many, many protocols.
 Hopefully, if anybody needs support for any of the other protocols
 curl supports, I will see PRs for them!

 Cheers,
 Carl
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] Met with a terrible fate

2014-07-02 Thread Isak Andersson
Hello!

I have written a library in Rust that has some pub extern fv's in it so
that they are callable from C. I wrote a C program to try calling these
functions and I was met with the following message:

% ./test

You've met with a terrible fate, haven't you?

fatal runtime error: Could not unwind stack, error = 5
zsh: illegal hardware instruction  ./test

To begin with, nice reference!

Second of all. How do I fix this, I am guessing that I need to start the
rust runtime or something but I don't know how to do this, if someone could
point me in the right direction that would be great!

If you need more specific code examples of what I'm doing I can provide it
it's just that I'm gonna sleep now and it doesn't seem like that's all too
relevant. Also I did link to the libraries in the order it told me to.

Cheers!

Isak Andersson
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust 0.11.0 Released

2014-07-02 Thread Benjamin Striegel
 Are you starting to support these releases with bug-eliminations?

AFAIK there is no intention to start issuing bugfix releases at this time.
The reason for the extra number at the end is for stricter adherence to
Semantic Versioning, which requires a bugfix number.


On Wed, Jul 2, 2014 at 5:50 PM, Zoltán Tóth zo1...@gmail.com wrote:

 A new number appeared in the version 0.11.0 compared to 0.10. This
 looks like a preparation for 0.11.1, ... . Are you starting to support
 these releases with bug-eliminations?

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Rust 0.11.0 Released

2014-07-02 Thread Evan G
I think its just so we parse as a proper semantic version. I know I ran
into a problem yesterday where Cargo had to have an extra .0 in my version
number to understand my version declaration.


On Wed, Jul 2, 2014 at 4:50 PM, Zoltán Tóth zo1...@gmail.com wrote:

 A new number appeared in the version 0.11.0 compared to 0.10. This
 looks like a preparation for 0.11.1, ... . Are you starting to support
 these releases with bug-eliminations?

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Met with a terrible fate

2014-07-02 Thread Benjamin Herr
Hi!

Anything in the std lib that touches the runtime (task spawning and
concurrency stuff, i/o, probably `GcT` and some things I'm forgetting)
will assert that it's being called from within a rust task, meaning it
can obtain a reference to the runtime object providing those services
from it.

As far as I know, your options are pretty much to try really hard to
avoid using that functionality in code called from C, or arrange for
everything that makes use of the runtime into to be wrapped in a call to
`native::start()` or `green::start()`, which start up and tear down a
runtime object to make it available to user code they run.

This isn't super satisfying so I hope someone proves me wrong and
provides a better option. I vaguely hope that in the long run there'll
be something you can call from all extern C functions like
`start_up_a_runtime_in_the_background_for_this_thread_if_necessary()`
that would make sure that subsequent code can use runtime services
without requiring C code to be significantly restructured (and ideally
also something more lightweight to catch task failure before it tries to
unwind through C code), but afaik we aren't there yet.

-benh


On Thu, 2014-07-03 at 00:07 +0200, Isak Andersson wrote:
 Hello!

 I have written a library in Rust that has some pub extern fv's in it
 so that they are callable from C. I wrote a C program to try calling
 these functions and I was met with the following message:
 
 % ./test
 
 You've met with a terrible fate, haven't you?
 
 fatal runtime error: Could not unwind stack, error = 5
 zsh: illegal hardware instruction  ./test
 
 
 To begin with, nice reference!
 
 
 Second of all. How do I fix this, I am guessing that I need to start
 the rust runtime or something but I don't know how to do this, if
 someone could point me in the right direction that would be great!
 
 
 If you need more specific code examples of what I'm doing I can
 provide it it's just that I'm gonna sleep now and it doesn't seem like
 that's all too relevant. Also I did link to the libraries in the order
 it told me to.
 
 Cheers!
 
 
 Isak Andersson
 
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev


___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] Met with a terrible fate

2014-07-02 Thread Alex Crichton
If you touch runtime services (such as those mentioned by Benjamin),
it is assume that a Rust Task [1] is available. In your case, you're
touching the unwinding service, but you have no set a catch-point for
the call to unwinding anywhere. This sounds like you're triggering a
failure without a task. This is akin to throwing a C++ exception
without a try/catch block on the stack.

You may wish to explore the std::rt::unwind [2] module, specifically
the try function [3], but keep in mind that it is unsafe and you must
be careful about what you're doing (the documentation explains this).

I love getting the runtime running in nonstandard locations, so if you
have any trouble, feel free to ping me on IRC! My nick is acrichto.


[1]: http://doc.rust-lang.org/std/rt/task/struct.Task.html
[2]: http://doc.rust-lang.org/std/rt/unwind/
[3]: http://doc.rust-lang.org/std/rt/unwind/fn.try.html

On Wed, Jul 2, 2014 at 6:07 PM, Isak Andersson cont...@bitpuffin.com wrote:
 Hello!

 I have written a library in Rust that has some pub extern fv's in it so that
 they are callable from C. I wrote a C program to try calling these functions
 and I was met with the following message:

 % ./test

 You've met with a terrible fate, haven't you?

 fatal runtime error: Could not unwind stack, error = 5
 zsh: illegal hardware instruction  ./test

 To begin with, nice reference!

 Second of all. How do I fix this, I am guessing that I need to start the
 rust runtime or something but I don't know how to do this, if someone could
 point me in the right direction that would be great!

 If you need more specific code examples of what I'm doing I can provide it
 it's just that I'm gonna sleep now and it doesn't seem like that's all too
 relevant. Also I did link to the libraries in the order it told me to.

 Cheers!

 Isak Andersson

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


[rust-dev] box syntax question

2014-07-02 Thread Oscar Boykin
Once in the tutorial, I see this syntax:

let x = box(GC) [1i, 2, 3, 4, 5, 6, 7, 8, 9, 10];

It seems to me, that should be: boxGc, as it feels like box is referring
to a container type (which the default type is Box_, but may be Rc_ or
Gc_).

What is the principle behind the current notation? What is GC is this
context other than a special string that is a one-off syntax?
-- 
Oscar Boykin :: @posco :: http://twitter.com/posco
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] box syntax question

2014-07-02 Thread Corey Richardson
The full syntax is: box [( EXPR )] EXPR

The first expression is the boxer, or where the result of the second
expression will be stored. GC and HEAP are special cased right now as
the only boxers, but the goal is to use a trait such that you can use
Rc, arenas, vectors, or any other arbitrary type as a boxer.

On Wed, Jul 2, 2014 at 7:29 PM, Oscar Boykin os...@twitter.com wrote:
 Once in the tutorial, I see this syntax:


 let x = box(GC) [1i, 2, 3, 4, 5, 6, 7, 8, 9, 10];

 It seems to me, that should be: boxGc, as it feels like box is referring
 to a container type (which the default type is Box_, but may be Rc_ or
 Gc_).

 What is the principle behind the current notation? What is GC is this
 context other than a special string that is a one-off syntax?
 --
 Oscar Boykin :: @posco :: http://twitter.com/posco

 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev




-- 
http://octayn.net/
___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev


Re: [rust-dev] box syntax question

2014-07-02 Thread Benjamin Striegel
To expand upon what Corey was saying, `box` is basically a huge
special-cased hack right now. I'm surprised that a mention of `box(GC)` is
even included in the tutorial. Someone tell Steve to rip that out. :P

We'll be clarfiying how best to use `box` before 1.0. In the meantime, just
don't use GC. Like, at all. You don't need it! :)


On Wed, Jul 2, 2014 at 10:39 PM, Corey Richardson co...@octayn.net wrote:

 The full syntax is: box [( EXPR )] EXPR

 The first expression is the boxer, or where the result of the second
 expression will be stored. GC and HEAP are special cased right now as
 the only boxers, but the goal is to use a trait such that you can use
 Rc, arenas, vectors, or any other arbitrary type as a boxer.

 On Wed, Jul 2, 2014 at 7:29 PM, Oscar Boykin os...@twitter.com wrote:
  Once in the tutorial, I see this syntax:
 
 
  let x = box(GC) [1i, 2, 3, 4, 5, 6, 7, 8, 9, 10];
 
  It seems to me, that should be: boxGc, as it feels like box is
 referring
  to a container type (which the default type is Box_, but may be Rc_
 or
  Gc_).
 
  What is the principle behind the current notation? What is GC is this
  context other than a special string that is a one-off syntax?
  --
  Oscar Boykin :: @posco :: http://twitter.com/posco
 
  ___
  Rust-dev mailing list
  Rust-dev@mozilla.org
  https://mail.mozilla.org/listinfo/rust-dev
 



 --
 http://octayn.net/
 ___
 Rust-dev mailing list
 Rust-dev@mozilla.org
 https://mail.mozilla.org/listinfo/rust-dev

___
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev