Skip to content

Commit 52bc9a3

Browse files
committed
1.80.0
1 parent bbbfb22 commit 52bc9a3

File tree

8 files changed

+54
-19
lines changed

8 files changed

+54
-19
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Changelog
22

3-
## 1.80.0 - Pending
3+
## 1.80.0 - 2024-07-26
44

55
### Versions
66

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

command/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "firedbg-cli"
3-
version = "1.79.0"
3+
version = "1.80.0"
44
edition = "2021"
55
license = "MIT OR Apache-2.0"
66
authors = [

debugger/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "firedbg-rust-debugger"
3-
version = "1.79.0"
3+
version = "1.80.0"
44
edition = "2021"
55
license = "MIT OR Apache-2.0"
66
build = "build.rs"

debugger/src/debugger/return_value.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1160,7 +1160,24 @@ pub(super) fn write_return_value(
11601160
{
11611161
if left_type.is_float() && right_type.is_float() && left_type != right_type
11621162
{
1163-
// a pair of (f32, f64) will not be passed by register
1163+
let (left_value, right_value) = if left_size >= right_size {
1164+
(
1165+
get_float_from_xmm0(rwriter, &left_type)?,
1166+
get_float_from_xmm1(rwriter, &right_type)?,
1167+
)
1168+
} else {
1169+
(
1170+
get_float_from_xmm1(rwriter, &left_type)?,
1171+
get_float_from_xmm0(rwriter, &right_type)?,
1172+
)
1173+
};
1174+
1175+
let value = rwriter.struct_v(
1176+
return_type.name(),
1177+
[(left_name, left_value), (right_name, right_value)].into_iter(),
1178+
);
1179+
event.write_value(rwriter, RETVAL, value.as_bytes());
1180+
return Ok(());
11641181
} else {
11651182
log::trace!("{} rax, rdx", return_type.name());
11661183
let left_value = if left_type.is_primitive() {

debugger/testcases/return_struct.rs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ struct Vector {
1111
y: f64,
1212
}
1313
#[derive(Debug)]
14-
struct Coeff(f32, f64);
14+
struct Coeff36(f32, f64);
15+
#[derive(Debug)]
16+
struct Coeff63(f64, f32);
17+
#[derive(Debug)]
18+
struct Coeff32(f32, f32);
19+
#[derive(Debug)]
20+
struct Coeff64(f64, f64);
1521
#[derive(Debug)]
1622
struct Mixed {
1723
x: i32,
@@ -40,10 +46,13 @@ fn ret_2() -> (Point, i32) { bb((Point { x: 1, y: 2 }, 3)) }
4046
fn ret_3() -> Vector { bb(Vector { x: 1.1, y: 2.1 }) }
4147
fn ret_4() -> Mixed { bb(Mixed { x: 4, y: 0.1 }) }
4248
fn ret_5() -> Wrapper<Point> { bb(Wrapper{ i: Point { x: 3, y: 4 } }) }
43-
fn ret_6() -> Coeff { bb(Coeff(1.1, 2.2)) }
44-
fn ret_7() -> MapPoint { bb(MapPoint { u: Anchor(-22), v: Anchor(44) }) }
45-
fn ret_8() -> Label { bb(Label { s: "hello" }) }
46-
fn ret_9() -> Long { bb(Long(22_222_222_222_222_222_222)) }
49+
fn ret_6() -> Coeff36 { bb(Coeff36(1.1, 2.2)) }
50+
fn ret_7() -> Coeff63 { bb(Coeff63(64.1, 32.2)) }
51+
fn ret_8() -> Coeff32 { bb(Coeff32(32.1, 32.2)) }
52+
fn ret_9() -> Coeff64 { bb(Coeff64(64.1, 64.2)) }
53+
fn ret_10() -> MapPoint { bb(MapPoint { u: Anchor(-22), v: Anchor(44) }) }
54+
fn ret_11() -> Label { bb(Label { s: "hello" }) }
55+
fn ret_12() -> Long { bb(Long(22_222_222_222_222_222_222)) }
4756

4857
fn main() {
4958
let r = ret_1(); dbg!(r);
@@ -55,5 +64,8 @@ fn main() {
5564
let r = ret_7(); dbg!(r);
5665
let r = ret_8(); dbg!(r);
5766
let r = ret_9(); dbg!(r);
67+
let r = ret_10(); dbg!(r);
68+
let r = ret_11(); dbg!(r);
69+
let r = ret_12(); dbg!(r);
5870
println!();
5971
}

debugger/tests/return_struct.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ async fn main() -> Result<()> {
1818

1919
producer.end().await?;
2020

21-
for i in 0..20 {
21+
for i in 0..26 {
2222
let payload = consumer.next().await?.message().into_bytes();
2323
let event = EventStream::read_from(Bytes::from(payload));
2424
// println!("#{i} {:?}", event);
@@ -44,14 +44,20 @@ async fn main() -> Result<()> {
4444
10 =>
4545
r#"{"type":"Struct","typename":"return_struct::Wrapper<return_struct::Point>","fields":{"x":{"type":"Prim","typename":"i32","value":3},"y":{"type":"Prim","typename":"i32","value":4}}}"#,
4646
12 =>
47-
r#"{"type":"Struct","typename":"return_struct::Coeff","fields":{"0":{"type":"Prim","typename":"f32","value":1.1},"1":{"type":"Prim","typename":"f64","value":2.2}}}"#,
47+
r#"{"type":"Struct","typename":"return_struct::Coeff36","fields":{"0":{"type":"Prim","typename":"f32","value":1.1},"1":{"type":"Prim","typename":"f64","value":2.2}}}"#,
4848
14 =>
49-
r#"{"type":"Struct","typename":"return_struct::MapPoint","fields":{"u":{"type":"Prim","typename":"i64","value":"-22"},"v":{"type":"Prim","typename":"i64","value":"44"}}}"#,
49+
r#"{"type":"Struct","typename":"return_struct::Coeff63","fields":{"0":{"type":"Prim","typename":"f64","value":64.1},"1":{"type":"Prim","typename":"f32","value":32.2}}}"#,
5050
16 =>
51-
r#"{"type":"Struct","typename":"return_struct::Label","fields":{"s":{"type":"String","typename":"&str","value":"hello"}}}"#,
51+
r#"{"type":"Struct","typename":"return_struct::Coeff32","fields":{"0":{"type":"Prim","typename":"f32","value":32.1},"1":{"type":"Prim","typename":"f32","value":32.2}}}"#,
5252
18 =>
53+
r#"{"type":"Struct","typename":"return_struct::Coeff64","fields":{"0":{"type":"Prim","typename":"f64","value":64.1},"1":{"type":"Prim","typename":"f64","value":64.2}}}"#,
54+
20 =>
55+
r#"{"type":"Struct","typename":"return_struct::MapPoint","fields":{"u":{"type":"Prim","typename":"i64","value":"-22"},"v":{"type":"Prim","typename":"i64","value":"44"}}}"#,
56+
22 =>
57+
r#"{"type":"Struct","typename":"return_struct::Label","fields":{"s":{"type":"String","typename":"&str","value":"hello"}}}"#,
58+
24 =>
5359
r#"{"type":"Struct","typename":"return_struct::Long","fields":{"0":{"type":"Prim","typename":"i128","value":"22222222222222222222"}}}"#,
54-
19 => r#"{"type":"Unit"}"#,
60+
25 => r#"{"type":"Unit"}"#,
5561
i => panic!("Unexpected i {i}"),
5662
}
5763
);

indexer/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "firedbg-stream-indexer"
3-
version = "1.79.0"
3+
version = "1.80.0"
44
edition = "2021"
55
license = "MIT OR Apache-2.0"
66
authors = [
@@ -28,7 +28,7 @@ tokio = { version = "1", optional = true }
2828
pretty_assertions = { version = "1", optional = true }
2929
async-trait = { version = "0.1", optional = true }
3030
# workspace
31-
firedbg-rust-debugger = { path = "../debugger", version = "1.79.0", default-features = false }
31+
firedbg-rust-debugger = { path = "../debugger", version = "1.80.0", default-features = false }
3232

3333
[features]
3434
# The base feature only exports the sea-orm entities

0 commit comments

Comments
 (0)