[rust-dev] new compile errors in the master since a few days

2013-12-05 Thread Philippe Delrieu

Hello,

since a few days, I have a lot of new errors in the master compiler. For 
example in the rust_zmq lib that I use. When I compile it I have these 
errors :
321:9 error: last argument in `do` call has non-procedure type: |*i8| - 
V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319 
let rc = do endpoint.with_c_str |cstr| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320 
unsafe {zmq_bind(self.sock, cstr)}
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321 
};
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29: 
330:9 error: last argument in `do` call has non-procedure type: |*i8| - 
V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328 
let rc = do endpoint.with_c_str |cstr| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329 
unsafe {zmq_connect(self.sock, cstr)}
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330 
};
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16: 
352:9 error: last argument in `do` call has non-procedure type: |*u8, 
uint| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337 
do data.as_imm_buf |base_ptr, len| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338 
let msg = [0, ..32];

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340 
unsafe {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341 
// Copy the data into the message.
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
zmq_msg_init_size(msg, len as size_t);

...
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40: 
342:43 error: the type of this value must be known in this context
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
zmq_msg_init_size(msg, len as size_t);

^~~
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16: 
344:32 error: cannot determine a type for this bounded type parameter: 
unconstrained type
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344 
ptr::copy_memory(::cast::transmute(zmq_msg_data(msg)), base_ptr, len);

^~~~
I have the same type of errors in my code plus other error when the 
trait can't be found like type `MyType` does not implement any method in 
scope named `encode` and the function is implemented just above.

This code where compiling last week.

Philippe Delrieu

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


Re: [rust-dev] new compile errors in the master since a few days

2013-12-05 Thread Kevin Ballard
`do` no longer works with stack closures. It now only works with the new proc() 
type, which basically means you're only going to see it used with spawn().

You need to now say something like

let rc = endpoint.with_c_str(|cstr| {
unsafe {smq_bind(self.sock, cstr)}
});

I can't speculate on your encode error without seeing it.

-Kevin

On Dec 5, 2013, at 12:43 AM, Philippe Delrieu philippe.delr...@free.fr wrote:

 Hello,
 
 since a few days, I have a lot of new errors in the master compiler. For 
 example in the rust_zmq lib that I use. When I compile it I have these errors 
 :
 321:9 error: last argument in `do` call has non-procedure type: |*i8| - V3
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319 
 let rc = do endpoint.with_c_str |cstr| {
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320 
 unsafe {zmq_bind(self.sock, cstr)}
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321 };
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29:
  330:9 error: last argument in `do` call has non-procedure type: |*i8| - V3
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328 
 let rc = do endpoint.with_c_str |cstr| {
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329 
 unsafe {zmq_connect(self.sock, cstr)}
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330 };
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16:
  352:9 error: last argument in `do` call has non-procedure type: |*u8, uint| 
 - V3
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337 
 do data.as_imm_buf |base_ptr, len| {
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338 
 let msg = [0, ..32];
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340 
 unsafe {
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341 
 // Copy the data into the message.
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
 zmq_msg_init_size(msg, len as size_t);
 ...
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40:
  342:43 error: the type of this value must be known in this context
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
 zmq_msg_init_size(msg, len as size_t);
 ^~~
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16:
  344:32 error: cannot determine a type for this bounded type parameter: 
 unconstrained type
 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344 
 ptr::copy_memory(::cast::transmute(zmq_msg_data(msg)), base_ptr, len);
 ^~~~
 I have the same type of errors in my code plus other error when the trait 
 can't be found like type `MyType` does not implement any method in scope 
 named `encode` and the function is implemented just above.
 This code where compiling last week.
 
 Philippe Delrieu
 
 ___
 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] new compile errors in the master since a few days

2013-12-05 Thread Philippe Delrieu

Thank you it correct my first problems.

I didn't send code because I thought it has the same cause. For the last 
problems the code is :


use extra::serialize;
use extra::json::{Json, Decoder, ToJson, Object, Encoder, Decoder};
use extra::treemap::TreeMap;
use std::io::Decorator;

//second struct with manually implemented  Decodable, Encodable
#[deriving(Decodable, Encodable, Eq)]
pub struct TestStruct2{
dataInt: u8,
dataStr:~str,
dataArray:~[u8],
}

let test3 : TestStruct2 = TestStruct2 {dataInt: 1, dataStr:~toto, 
dataArray:~[2,3,4,5]}; 
//{\dataArray\:[2,3,4,5],\dataInt\:1,\dataStr\:\toto\}

let mut m3 = MemWriter::new();
{
let mut encoder3 =Encoder::init(mut m3 as mut Writer);
test3.encode(mut encoder3);
}

Rustc result :
test_json.rs:292:8: 292:36 error: type `TestStruct2` does not implement 
any method in scope named `encode`

test/test_json.rs:292 test3.encode(mut encoder3);

Philippe



Le 05/12/2013 09:56, Kevin Ballard a écrit :

`do` no longer works with stack closures. It now only works with the new proc() 
type, which basically means you're only going to see it used with spawn().

You need to now say something like

 let rc = endpoint.with_c_str(|cstr| {
 unsafe {smq_bind(self.sock, cstr)}
 });

I can't speculate on your encode error without seeing it.

-Kevin

On Dec 5, 2013, at 12:43 AM, Philippe Delrieu philippe.delr...@free.fr wrote:


Hello,

since a few days, I have a lot of new errors in the master compiler. For 
example in the rust_zmq lib that I use. When I compile it I have these errors :
321:9 error: last argument in `do` call has non-procedure type: |*i8| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319 let 
rc = do endpoint.with_c_str |cstr| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320 
unsafe {zmq_bind(self.sock, cstr)}
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321 };
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29: 330:9 
error: last argument in `do` call has non-procedure type: |*i8| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328 let 
rc = do endpoint.with_c_str |cstr| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329 
unsafe {zmq_connect(self.sock, cstr)}
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330 };
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16: 352:9 
error: last argument in `do` call has non-procedure type: |*u8, uint| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337 do 
data.as_imm_buf |base_ptr, len| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338 let 
msg = [0, ..32];
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340 
unsafe {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341 // 
Copy the data into the message.
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
zmq_msg_init_size(msg, len as size_t);
...
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40: 
342:43 error: the type of this value must be known in this context
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
zmq_msg_init_size(msg, len as size_t);
^~~
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16: 
344:32 error: cannot determine a type for this bounded type parameter: 
unconstrained type
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344 
ptr::copy_memory(::cast::transmute(zmq_msg_data(msg)), base_ptr, len);
^~~~
I have the same type of errors in my code plus other error when the trait can't 
be found like type `MyType` does not implement any method in scope named 
`encode` and the function is implemented just above.
This code where compiling last week.

Philippe Delrieu

___
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] new compile errors in the master since a few days

2013-12-05 Thread Philippe Delrieu

I found my error. It's a classical problem.
TestStruct2 implement the trait `extra::serialize::Encodable` using the 
generated impl by the compiler.

I didn't declare : use extra::serialize::Encodable;
So the compiler doesn't find it and declare the problem at the 
implementation.
It's the same problem when you work with different file and the trait is 
implemented in one file and use in another.
Usually I found the error but I was confused with other errors and the 
message wasn't clear.
Is it possible to change the message by for example in this case trait 
`extra::serialize::Encodable` not found for encode,

or to add all `use` needed when using a type and its implementation.

Philippe

Le 05/12/2013 10:53, Philippe Delrieu a écrit :

Thank you it correct my first problems.

I didn't send code because I thought it has the same cause. For the 
last problems the code is :


use extra::serialize;
use extra::json::{Json, Decoder, ToJson, Object, Encoder, Decoder};
use extra::treemap::TreeMap;
use std::io::Decorator;

//second struct with manually implemented  Decodable, Encodable
#[deriving(Decodable, Encodable, Eq)]
pub struct TestStruct2{
dataInt: u8,
dataStr:~str,
dataArray:~[u8],
}

let test3 : TestStruct2 = TestStruct2 {dataInt: 1, 
dataStr:~toto, dataArray:~[2,3,4,5]}; 
//{\dataArray\:[2,3,4,5],\dataInt\:1,\dataStr\:\toto\}

let mut m3 = MemWriter::new();
{
let mut encoder3 =Encoder::init(mut m3 as mut Writer);
test3.encode(mut encoder3);
}

Rustc result :
test_json.rs:292:8: 292:36 error: type `TestStruct2` does not 
implement any method in scope named `encode`

test/test_json.rs:292 test3.encode(mut encoder3);

Philippe



Le 05/12/2013 09:56, Kevin Ballard a écrit :
`do` no longer works with stack closures. It now only works with the 
new proc() type, which basically means you're only going to see it 
used with spawn().


You need to now say something like

 let rc = endpoint.with_c_str(|cstr| {
 unsafe {smq_bind(self.sock, cstr)}
 });

I can't speculate on your encode error without seeing it.

-Kevin

On Dec 5, 2013, at 12:43 AM, Philippe Delrieu 
philippe.delr...@free.fr wrote:



Hello,

since a few days, I have a lot of new errors in the master compiler. 
For example in the rust_zmq lib that I use. When I compile it I have 
these errors :
321:9 error: last argument in `do` call has non-procedure type: 
|*i8| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319 
let rc = do endpoint.with_c_str |cstr| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320 
unsafe {zmq_bind(self.sock, cstr)}
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321 
};
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29: 
330:9 error: last argument in `do` call has non-procedure type: 
|*i8| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328 
let rc = do endpoint.with_c_str |cstr| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329 
unsafe {zmq_connect(self.sock, cstr)}
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330 
};
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16: 
352:9 error: last argument in `do` call has non-procedure type: 
|*u8, uint| - V3
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337 
do data.as_imm_buf |base_ptr, len| {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338 
let msg = [0, ..32];
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339 

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340 
unsafe {
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341 
// Copy the data into the message.
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
zmq_msg_init_size(msg, len as size_t);

...
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40: 
342:43 error: the type of this value must be known in this context
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342 
zmq_msg_init_size(msg, len as size_t);

^~~
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16: 
344:32 error: cannot determine a type for this bounded type 
parameter: unconstrained type
/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344 
ptr::copy_memory(::cast::transmute(zmq_msg_data(msg)), base_ptr, len);

^~~~
I have the same type of errors in my code plus other error when the 
trait can't be found like type `MyType` does not implement any 
method in scope named `encode` and the function is implemented just 
above.

This code where compiling last week.

Philippe Delrieu

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

Re: [rust-dev] new compile errors in the master since a few days

2013-12-05 Thread Corey Richardson
No, since it isn't known which trait the method should come from. It
could list *all* the traits that provide that method with that
signature, but even that wouldn't be great if you had the signature
off.

On Thu, Dec 5, 2013 at 3:26 PM, Philippe Delrieu
philippe.delr...@free.fr wrote:
 I found my error. It's a classical problem.
 TestStruct2 implement the trait `extra::serialize::Encodable` using the
 generated impl by the compiler.
 I didn't declare : use extra::serialize::Encodable;
 So the compiler doesn't find it and declare the problem at the
 implementation.
 It's the same problem when you work with different file and the trait is
 implemented in one file and use in another.
 Usually I found the error but I was confused with other errors and the
 message wasn't clear.
 Is it possible to change the message by for example in this case trait
 `extra::serialize::Encodable` not found for encode,
 or to add all `use` needed when using a type and its implementation.

 Philippe

 Le 05/12/2013 10:53, Philippe Delrieu a écrit :

 Thank you it correct my first problems.

 I didn't send code because I thought it has the same cause. For the last
 problems the code is :

 use extra::serialize;
 use extra::json::{Json, Decoder, ToJson, Object, Encoder, Decoder};
 use extra::treemap::TreeMap;
 use std::io::Decorator;

 //second struct with manually implemented  Decodable, Encodable
 #[deriving(Decodable, Encodable, Eq)]
 pub struct TestStruct2{
 dataInt: u8,
 dataStr:~str,
 dataArray:~[u8],
 }

 let test3 : TestStruct2 = TestStruct2 {dataInt: 1, dataStr:~toto,
 dataArray:~[2,3,4,5]};
 //{\dataArray\:[2,3,4,5],\dataInt\:1,\dataStr\:\toto\}
 let mut m3 = MemWriter::new();
 {
 let mut encoder3 =Encoder::init(mut m3 as mut Writer);
 test3.encode(mut encoder3);
 }

 Rustc result :
 test_json.rs:292:8: 292:36 error: type `TestStruct2` does not implement
 any method in scope named `encode`
 test/test_json.rs:292 test3.encode(mut encoder3);

 Philippe



 Le 05/12/2013 09:56, Kevin Ballard a écrit :

 `do` no longer works with stack closures. It now only works with the new
 proc() type, which basically means you're only going to see it used with
 spawn().

 You need to now say something like

  let rc = endpoint.with_c_str(|cstr| {
  unsafe {smq_bind(self.sock, cstr)}
  });

 I can't speculate on your encode error without seeing it.

 -Kevin

 On Dec 5, 2013, at 12:43 AM, Philippe Delrieu philippe.delr...@free.fr
 wrote:

 Hello,

 since a few days, I have a lot of new errors in the master compiler. For
 example in the rust_zmq lib that I use. When I compile it I have these
 errors :
 321:9 error: last argument in `do` call has non-procedure type: |*i8| -
 V3

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319
 let rc = do endpoint.with_c_str |cstr| {

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320
 unsafe {zmq_bind(self.sock, cstr)}

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321
 };

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29:
 330:9 error: last argument in `do` call has non-procedure type: |*i8| -
 V3

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328
 let rc = do endpoint.with_c_str |cstr| {

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329
 unsafe {zmq_connect(self.sock, cstr)}

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330
 };

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16:
 352:9 error: last argument in `do` call has non-procedure type: |*u8, uint|
 - V3

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337
 do data.as_imm_buf |base_ptr, len| {

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338
 let msg = [0, ..32];

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340
 unsafe {

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341
 // Copy the data into the message.

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342
 zmq_msg_init_size(msg, len as size_t);
 ...

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40:
 342:43 error: the type of this value must be known in this context

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342
 zmq_msg_init_size(msg, len as size_t);
 ^~~

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16:
 344:32 error: cannot determine a type for this bounded type parameter:
 unconstrained type

 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344
 ptr::copy_memory(::cast::transmute(zmq_msg_data(msg)), base_ptr, len);
 ^~~~
 I have the same type of errors in my 

Re: [rust-dev] new compile errors in the master since a few days

2013-12-05 Thread Philippe Delrieu
Perhaps the error message can be more explicit like trait not found for 
method instead of method not found.



Le 05/12/2013 21:57, Corey Richardson a écrit :

No, since it isn't known which trait the method should come from. It
could list *all* the traits that provide that method with that
signature, but even that wouldn't be great if you had the signature
off.

On Thu, Dec 5, 2013 at 3:26 PM, Philippe Delrieu
philippe.delr...@free.fr wrote:

I found my error. It's a classical problem.
TestStruct2 implement the trait `extra::serialize::Encodable` using the
generated impl by the compiler.
I didn't declare : use extra::serialize::Encodable;
So the compiler doesn't find it and declare the problem at the
implementation.
It's the same problem when you work with different file and the trait is
implemented in one file and use in another.
Usually I found the error but I was confused with other errors and the
message wasn't clear.
Is it possible to change the message by for example in this case trait
`extra::serialize::Encodable` not found for encode,
or to add all `use` needed when using a type and its implementation.

Philippe

Le 05/12/2013 10:53, Philippe Delrieu a écrit :


Thank you it correct my first problems.

I didn't send code because I thought it has the same cause. For the last
problems the code is :

use extra::serialize;
use extra::json::{Json, Decoder, ToJson, Object, Encoder, Decoder};
use extra::treemap::TreeMap;
use std::io::Decorator;

//second struct with manually implemented  Decodable, Encodable
#[deriving(Decodable, Encodable, Eq)]
pub struct TestStruct2{
 dataInt: u8,
 dataStr:~str,
 dataArray:~[u8],
}

 let test3 : TestStruct2 = TestStruct2 {dataInt: 1, dataStr:~toto,
dataArray:~[2,3,4,5]};
//{\dataArray\:[2,3,4,5],\dataInt\:1,\dataStr\:\toto\}
 let mut m3 = MemWriter::new();
 {
 let mut encoder3 =Encoder::init(mut m3 as mut Writer);
 test3.encode(mut encoder3);
 }

Rustc result :
test_json.rs:292:8: 292:36 error: type `TestStruct2` does not implement
any method in scope named `encode`
test/test_json.rs:292 test3.encode(mut encoder3);

Philippe



Le 05/12/2013 09:56, Kevin Ballard a écrit :

`do` no longer works with stack closures. It now only works with the new
proc() type, which basically means you're only going to see it used with
spawn().

You need to now say something like

  let rc = endpoint.with_c_str(|cstr| {
  unsafe {smq_bind(self.sock, cstr)}
  });

I can't speculate on your encode error without seeing it.

-Kevin

On Dec 5, 2013, at 12:43 AM, Philippe Delrieu philippe.delr...@free.fr
wrote:


Hello,

since a few days, I have a lot of new errors in the master compiler. For
example in the rust_zmq lib that I use. When I compile it I have these
errors :
321:9 error: last argument in `do` call has non-procedure type: |*i8| -
V3

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319
let rc = do endpoint.with_c_str |cstr| {

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320
unsafe {zmq_bind(self.sock, cstr)}

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321
};

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29:
330:9 error: last argument in `do` call has non-procedure type: |*i8| -
V3

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328
let rc = do endpoint.with_c_str |cstr| {

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329
unsafe {zmq_connect(self.sock, cstr)}

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330
};

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16:
352:9 error: last argument in `do` call has non-procedure type: |*u8, uint|
- V3

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337
do data.as_imm_buf |base_ptr, len| {

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338
let msg = [0, ..32];

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340
unsafe {

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341
// Copy the data into the message.

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342
zmq_msg_init_size(msg, len as size_t);
...

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40:
342:43 error: the type of this value must be known in this context

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342
zmq_msg_init_size(msg, len as size_t);
^~~

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344:16:
344:32 error: cannot determine a type for this bounded type parameter:
unconstrained type

/home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:344
ptr::copy_memory(::cast::transmute(zmq_msg_data(msg)), 

Re: [rust-dev] new compile errors in the master since a few days

2013-12-05 Thread Corey Richardson
How about method `foo` no found and no trait in scope provided one ?

On Thu, Dec 5, 2013 at 4:29 PM, Philippe Delrieu
philippe.delr...@free.fr wrote:
 Perhaps the error message can be more explicit like trait not found for
 method instead of method not found.


 Le 05/12/2013 21:57, Corey Richardson a écrit :

 No, since it isn't known which trait the method should come from. It
 could list *all* the traits that provide that method with that
 signature, but even that wouldn't be great if you had the signature
 off.

 On Thu, Dec 5, 2013 at 3:26 PM, Philippe Delrieu
 philippe.delr...@free.fr wrote:

 I found my error. It's a classical problem.
 TestStruct2 implement the trait `extra::serialize::Encodable` using the
 generated impl by the compiler.
 I didn't declare : use extra::serialize::Encodable;
 So the compiler doesn't find it and declare the problem at the
 implementation.
 It's the same problem when you work with different file and the trait is
 implemented in one file and use in another.
 Usually I found the error but I was confused with other errors and the
 message wasn't clear.
 Is it possible to change the message by for example in this case trait
 `extra::serialize::Encodable` not found for encode,
 or to add all `use` needed when using a type and its implementation.

 Philippe

 Le 05/12/2013 10:53, Philippe Delrieu a écrit :

 Thank you it correct my first problems.

 I didn't send code because I thought it has the same cause. For the last
 problems the code is :

 use extra::serialize;
 use extra::json::{Json, Decoder, ToJson, Object, Encoder, Decoder};
 use extra::treemap::TreeMap;
 use std::io::Decorator;

 //second struct with manually implemented  Decodable, Encodable
 #[deriving(Decodable, Encodable, Eq)]
 pub struct TestStruct2{
  dataInt: u8,
  dataStr:~str,
  dataArray:~[u8],
 }

  let test3 : TestStruct2 = TestStruct2 {dataInt: 1, dataStr:~toto,
 dataArray:~[2,3,4,5]};
 //{\dataArray\:[2,3,4,5],\dataInt\:1,\dataStr\:\toto\}
  let mut m3 = MemWriter::new();
  {
  let mut encoder3 =Encoder::init(mut m3 as mut Writer);
  test3.encode(mut encoder3);
  }

 Rustc result :
 test_json.rs:292:8: 292:36 error: type `TestStruct2` does not implement
 any method in scope named `encode`
 test/test_json.rs:292 test3.encode(mut encoder3);

 Philippe



 Le 05/12/2013 09:56, Kevin Ballard a écrit :

 `do` no longer works with stack closures. It now only works with the
 new
 proc() type, which basically means you're only going to see it used
 with
 spawn().

 You need to now say something like

   let rc = endpoint.with_c_str(|cstr| {
   unsafe {smq_bind(self.sock, cstr)}
   });

 I can't speculate on your encode error without seeing it.

 -Kevin

 On Dec 5, 2013, at 12:43 AM, Philippe Delrieu
 philippe.delr...@free.fr
 wrote:

 Hello,

 since a few days, I have a lot of new errors in the master compiler.
 For
 example in the rust_zmq lib that I use. When I compile it I have these
 errors :
 321:9 error: last argument in `do` call has non-procedure type: |*i8|
 -
 V3


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:319
 let rc = do endpoint.with_c_str |cstr| {


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:320
 unsafe {zmq_bind(self.sock, cstr)}


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:321
 };


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328:29:
 330:9 error: last argument in `do` call has non-procedure type: |*i8|
 -
 V3


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:328
 let rc = do endpoint.with_c_str |cstr| {


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:329
 unsafe {zmq_connect(self.sock, cstr)}


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:330
 };


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337:16:
 352:9 error: last argument in `do` call has non-procedure type: |*u8,
 uint|
 - V3


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:337
 do data.as_imm_buf |base_ptr, len| {


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:338
 let msg = [0, ..32];


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:339


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:340
 unsafe {


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:341
 // Copy the data into the message.


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342
 zmq_msg_init_size(msg, len as size_t);
 ...


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342:40:
 342:43 error: the type of this value must be known in this context


 /home/pdelrieu/Documents/dev/musit/rust/zmq/git/rust-zmq/src/zmq/lib.rs:342
 zmq_msg_init_size(msg, len as size_t);
 ^~~


 

Re: [rust-dev] new compile errors in the master since a few days

2013-12-05 Thread Philippe Delrieu

I find this message better than the current. It won't mislead me.

Le 05/12/2013 22:50, Corey Richardson a écrit :

How about method `foo` no found and no trait in scope provided one ?

On Thu, Dec 5, 2013 at 4:29 PM, Philippe Delrieu
philippe.delr...@free.fr wrote:

Perhaps the error message can be more explicit like trait not found for
method instead of method not found.


Le 05/12/2013 21:57, Corey Richardson a écrit :


No, since it isn't known which trait the method should come from. It
could list *all* the traits that provide that method with that
signature, but even that wouldn't be great if you had the signature
off.

On Thu, Dec 5, 2013 at 3:26 PM, Philippe Delrieu
philippe.delr...@free.fr wrote:

I found my error. It's a classical problem.
TestStruct2 implement the trait `extra::serialize::Encodable` using the
generated impl by the compiler.
I didn't declare : use extra::serialize::Encodable;
So the compiler doesn't find it and declare the problem at the
implementation.
It's the same problem when you work with different file and the trait is
implemented in one file and use in another.
Usually I found the error but I was confused with other errors and the
message wasn't clear.
Is it possible to change the message by for example in this case trait
`extra::serialize::Encodable` not found for encode,
or to add all `use` needed when using a type and its implementation.

Philippe




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