user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 1/7] xap_helper_cxx: do not copy xap_helper.h source
  2023-11-26  2:10  5% [PATCH 0/7] more I/O + process reliability and cleanups Eric Wong
@ 2023-11-26  2:10  7% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2023-11-26  2:10 UTC (permalink / raw)
  To: meta

No need to waste memory bandwidth when we can just rely on
the preprocessor to load the header.
---
 lib/PublicInbox/XapHelperCxx.pm | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/lib/PublicInbox/XapHelperCxx.pm b/lib/PublicInbox/XapHelperCxx.pm
index 9e819546..b1deb665 100644
--- a/lib/PublicInbox/XapHelperCxx.pm
+++ b/lib/PublicInbox/XapHelperCxx.pm
@@ -8,7 +8,7 @@
 package PublicInbox::XapHelperCxx;
 use v5.12;
 use PublicInbox::Spawn qw(run_die run_qx which);
-use PublicInbox::IO qw(read_all try_cat write_file);
+use PublicInbox::IO qw(try_cat write_file);
 use PublicInbox::Search;
 use Fcntl qw(SEEK_SET);
 use Config;
@@ -62,11 +62,7 @@ sub build () {
 	my ($prog) = ($bin =~ m!/([^/]+)\z!);
 	my $lk = PublicInbox::Lock->new("$dir/$prog.lock")->lock_for_scope;
 	open my $fh, '>', "$dir/$prog.cpp";
-	for (@srcs) {
-		say $fh qq(# line 1 "$_");
-		open my $rfh, '<', $_;
-		print $fh read_all($rfh);
-	}
+	say $fh qq(# include "$_") for @srcs;
 	print $fh PublicInbox::Search::generate_cxx();
 	print $fh PublicInbox::CodeSearch::generate_cxx();
 	close $fh;
@@ -88,7 +84,7 @@ sub build () {
 				"$1-L$2 -Wl,-rpath=$2$3"/egsx;
 	my @xflags = split(' ', "$fl $xflags"); # ' ' awk-mode eats leading WS
 	my @cflags = grep(!/\A-(?:Wl|l|L)/, @xflags);
-	run_die([$cxx, '-c', "$prog.cpp", @cflags]);
+	run_die([$cxx, '-c', "$prog.cpp", '-I', $srcpfx, @cflags]);
 	run_die([$cxx, '-o', "$prog.tmp", "$prog.o", @xflags]);
 	unlink "$prog.cpp", "$prog.o";
 	write_file '>', 'XFLAGS.tmp', $xflags, "\n";

^ permalink raw reply related	[relevance 7%]

* [PATCH 0/7] more I/O + process reliability and cleanups
@ 2023-11-26  2:10  5% Eric Wong
  2023-11-26  2:10  7% ` [PATCH 1/7] xap_helper_cxx: do not copy xap_helper.h source Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2023-11-26  2:10 UTC (permalink / raw)
  To: meta

6/7 ought to fix another hang in t/lei-q-save.t when writing to
v2 outputs.

Much of this stuff will be relevant to code search since Xapian
searches will be moved to C++ (if available) to support features
which aren't usable from Perl bindings and allow more
predictable performance anyways.

Eric Wong (7):
  xap_helper_cxx: do not copy xap_helper.h source
  xap_client: attach PID to the IO object
  xap_client: pass arguments to top-level xap_helper
  xap_helper: allow PI_NO_CXX to disable C++ in more places
  git: move rbuf handling to PublicInbox::IO
  git: improve coupling with {sock} and {inflight} fields
  drop redundant calls to DS->Reset

 lib/PublicInbox/CodeSearchIdx.pm |  11 +--
 lib/PublicInbox/Daemon.pm        |   1 -
 lib/PublicInbox/Gcf2Client.pm    |   7 +-
 lib/PublicInbox/Git.pm           | 138 ++++++++++++-------------------
 lib/PublicInbox/GitAsyncCat.pm   |   2 +-
 lib/PublicInbox/IO.pm            |  70 ++++++++++++++--
 lib/PublicInbox/TestCommon.pm    |   2 +-
 lib/PublicInbox/Watch.pm         |   6 +-
 lib/PublicInbox/XapClient.pm     |   9 +-
 lib/PublicInbox/XapHelperCxx.pm  |  11 +--
 lib/PublicInbox/Xapcmd.pm        |   6 +-
 t/xap_helper.t                   |   5 +-
 12 files changed, 145 insertions(+), 123 deletions(-)

^ permalink raw reply	[relevance 5%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2023-11-26  2:10  5% [PATCH 0/7] more I/O + process reliability and cleanups Eric Wong
2023-11-26  2:10  7% ` [PATCH 1/7] xap_helper_cxx: do not copy xap_helper.h source Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).