Merge branch 'tracing_fixes'
rust-build Build rust-build has failed Details
rustfmt Build rustfmt has succeeded Details
rust-test Build rust-test has succeeded Details

This commit is contained in:
Tom Alexander 2023-08-14 22:12:05 -04:00
commit 67b4dfdce6
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
4 changed files with 58 additions and 26 deletions

View File

@ -59,8 +59,8 @@ unittest:
jaeger:
# 4317 for OTLP gRPC, 4318 for OTLP HTTP. We currently use gRPC but I forward both ports regardless.
#
# These flags didn't help even though they seem like they would: --collector.otlp.grpc.max-message-size=10000000 --collector.queue-size=20000 --collector.num-workers=100
> docker run -d --rm --name organicdocker -p 4317:4317 -p 4318:4318 -p 16686:16686 -e COLLECTOR_OTLP_ENABLED=true jaegertracing/all-in-one:1.47 --collector.grpc-server.max-message-size=10000000
# These flags didn't help even though they seem like they would: --collector.queue-size=20000 --collector.num-workers=100
> docker run -d --rm --name organicdocker -p 4317:4317 -p 4318:4318 -p 16686:16686 -e COLLECTOR_OTLP_ENABLED=true jaegertracing/all-in-one:1.47 --collector.grpc-server.max-message-size=20000000 --collector.otlp.grpc.max-message-size=20000000
.PHONY: jaegerweb
jaegerweb:

View File

@ -9,6 +9,7 @@ use organic::compare_document;
use organic::emacs_parse_org_document;
#[cfg(feature = "compare")]
use organic::parser::sexp::sexp_with_padding;
use tracing::span;
use crate::init_tracing::init_telemetry;
use crate::init_tracing::shutdown_telemetry;
@ -28,12 +29,21 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
fn main_body() -> Result<(), Box<dyn std::error::Error>> {
init_telemetry()?;
run_compare(
std::env::args()
.nth(1)
.expect("Pass a single file into this script."),
)?;
let compare_result = {
#[cfg(feature = "tracing")]
let span = span!(tracing::Level::DEBUG, "run_compare");
#[cfg(feature = "tracing")]
let _enter = span.enter();
run_compare(
std::env::args()
.nth(1)
.expect("Pass a single file into this script."),
)
};
shutdown_telemetry()?;
compare_result?;
Ok(())
}

View File

@ -200,7 +200,7 @@ pub fn src_block<'r, 's>(context: Context<'r, 's>, input: &'s str) -> Res<&'s st
.with_additional_node(ContextElement::ConsumeTrailingWhitespace(true))
.with_additional_node(ContextElement::Context("lesser block"))
.with_additional_node(ContextElement::ExitMatcherNode(ExitMatcherNode {
class: ExitClass::Beta,
class: ExitClass::Alpha,
exit_matcher: &lesser_block_end_specialized,
}));
let parameters = match parameters {
@ -238,31 +238,49 @@ fn lesser_block_end(
) -> impl for<'r, 's> Fn(Context<'r, 's>, &'s str) -> Res<&'s str, &'s str> {
let current_name_lower = current_name.to_lowercase();
move |context: Context, input: &str| {
start_of_line(context, input)?;
let (remaining, _leading_whitespace) = space0(input)?;
let (remaining, (_begin, _name, _ws)) = tuple((
tag_no_case("#+end_"),
tag_no_case(current_name_lower.as_str()),
alt((eof, line_ending)),
))(remaining)?;
let source = get_consumed(input, remaining);
Ok((remaining, source))
_lesser_block_end(context, input, current_name_lower.as_str())
}
}
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
fn _lesser_block_end<'r, 's, 'x>(
context: Context<'r, 's>,
input: &'s str,
current_name_lower: &'x str,
) -> Res<&'s str, &'s str> {
start_of_line(context, input)?;
let (remaining, _leading_whitespace) = space0(input)?;
let (remaining, (_begin, _name, _ws)) = tuple((
tag_no_case("#+end_"),
tag_no_case(current_name_lower),
alt((eof, line_ending)),
))(remaining)?;
let source = get_consumed(input, remaining);
Ok((remaining, source))
}
fn lesser_block_begin(
current_name: &str,
) -> impl for<'r, 's> Fn(Context<'r, 's>, &'s str) -> Res<&'s str, &'s str> {
let current_name_lower = current_name.to_lowercase();
move |context: Context, input: &str| {
start_of_line(context, input)?;
let (remaining, _leading_whitespace) = space0(input)?;
let (remaining, (_begin, name)) = tuple((
tag_no_case("#+begin_"),
verify(name, |name: &str| {
name.to_lowercase().as_str() == current_name_lower
}),
))(remaining)?;
Ok((remaining, name))
_lesser_block_begin(context, input, current_name_lower.as_str())
}
}
#[cfg_attr(feature = "tracing", tracing::instrument(ret, level = "debug"))]
fn _lesser_block_begin<'r, 's, 'x>(
context: Context<'r, 's>,
input: &'s str,
current_name_lower: &'x str,
) -> Res<&'s str, &'s str> {
start_of_line(context, input)?;
let (remaining, _leading_whitespace) = space0(input)?;
let (remaining, (_begin, name)) = tuple((
tag_no_case("#+begin_"),
verify(name, |name: &str| {
name.to_lowercase().as_str() == current_name_lower
}),
))(remaining)?;
Ok((remaining, name))
}

View File

@ -60,6 +60,10 @@ impl<'s> TextWithProperties<'s> {
out.push('\\');
ParseState::Normal
}
(ParseState::Escape, '"') => {
out.push('"');
ParseState::Normal
}
_ => todo!(),
};
}